MOON
Server: Apache
System: Linux e2e-78-16.ssdcloudindia.net 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
User: imensosw (1005)
PHP: 8.0.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/public_html/amanda/public/js/app.js
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "/";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 0);
/******/ })
/************************************************************************/
/******/ ({

/***/ "./config/app.json":
/*!*************************!*\
  !*** ./config/app.json ***!
  \*************************/
/*! exports provided: porturl, displayName, default */
/***/ (function(module) {

module.exports = JSON.parse("{\"porturl\":\"http://164.52.209.16:3000\",\"displayName\":\"audit_app\"}");

/***/ }),

/***/ "./node_modules/@babel/runtime/regenerator/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@babel/runtime/regenerator/index.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__(/*! regenerator-runtime */ "./node_modules/regenerator-runtime/runtime.js");


/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Main.vue?vue&type=script&lang=js&":
/*!****************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/Main.vue?vue&type=script&lang=js& ***!
  \****************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      user: null,
      orders: [],
      products: [],
      users: []
    };
  },
  mounted: function mounted() {
    var _this = this;

    // axios.get('/api/users/').then(response => this.users = response.data)

    /* axios.get('/api/admin/users').then((response) =>{ 
           this.users = response.data;
           console.log(this.users);
         }).catch((error) => { });
       axios.get('/api/products/').then(response => this.products = response.data)
     axios.get('/api/orders/').then(response => this.orders = response.data)*/
    axios.get('/api/admin/dashboard').then(function (response) {
      _this.users = response.data.users;
      _this.orders = response.data.orders;
      _this.products = response.data.products;
      console.log(response.data);
    })["catch"](function (error) {});
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Orders.vue?vue&type=script&lang=js&":
/*!******************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/Orders.vue?vue&type=script&lang=js& ***!
  \******************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      orders: [],
      search: "",
      isLoading: 0
    };
  },
  beforeMount: function beforeMount() {
    var _this = this;

    // this.searchFunction();
    this.getResults(1);
    axios.get('/api/admin/orders').then(function (response) {
      _this.orders = response.data;
      _this.orders.datalength = _this.orders.data.length;
      _this.orders.sno = _this.getSerialNumber(_this.orders);
    });
  },
  methods: {
    deliver: function deliver(index) {
      var _this2 = this;

      this.isLoading = 1;
      var order = this.orders[index];
      axios.patch("/api/admin/orders/".concat(order.id, "/deliver")).then(function (response) {
        _this2.orders[index].is_delivered = 1;

        _this2.$forceUpdate();

        _this2.isLoading = 0;
      });
    },
    getResults: function getResults() {
      var _this3 = this;

      var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      this.isLoading = 1;
      var search = this.search;
      axios.get('/api/admin/orders?page=' + page + '&search=' + search).then(function (response) {
        _this3.isLoading = 0;
        _this3.orders = response.data;
        _this3.orders.sno = _this3.getSerialNumber(_this3.orders);
      });
    },
    searchFunction: function searchFunction() {
      var _this4 = this;

      var search = this.search;
      this.isLoading = 1;
      axios.post('/api/admin/orders/search', {
        search: search
      }).then(function (response) {
        _this4.orders = response.data;
        _this4.orders.datalength = _this4.orders.data.length;
        _this4.orders.sno = _this4.getSerialNumber(_this4.orders);
        console.log(response.data);
        _this4.isLoading = 0;
      })["catch"](function (error) {
        _this4.isLoading = 0;
      });
    },
    getSerialNumber: function getSerialNumber(data) {
      console.log(data);
      return data.per_page * (data.current_page - 1);
    },
    getDateFormat: function getDateFormat(date) {
      var todayDate = new Date(date);
      var format = "AM";
      var hour = todayDate.getHours();
      var min = todayDate.getMinutes();

      if (hour > 11) {
        format = "PM";
      }

      if (hour > 12) {
        hour = hour - 12;
      }

      if (hour == 0) {
        hour = 12;
      }

      if (min < 10) {
        min = "0" + min;
      }

      var month = todayDate.toLocaleString('default', {
        month: 'long'
      }); // var day = todayDate.getDay();

      var day = todayDate.getDate() < 10 ? '0' + todayDate.getDate() : todayDate.getDate();
      var monthDigit = todayDate.getMonth() + 1 < 10 ? '0' + (todayDate.getMonth() + 1) : todayDate.getMonth() + 1;
      return monthDigit + "-" + day + "-" + todayDate.getFullYear() + ", " + hour + ":" + min + " " + format; // return  todayDate.getDate() + "-" + (todayDate.getMonth()+1) + "-" +  todayDate.getFullYear()+", "+hour+":"+min+" "+format;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/ProductModal.vue?vue&type=script&lang=js&":
/*!************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/ProductModal.vue?vue&type=script&lang=js& ***!
  \************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! sweetalert2 */ "./node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_0__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

/* harmony default export */ __webpack_exports__["default"] = ({
  props: ['product', 'errors'],
  data: function data() {
    return {
      attachment: [],
      showImages: [],
      showVideos: [],
      showPriceDay: [],
      tag_ids: [],
      isDisabled: false,
      isLoadingButtonSave: "Save",
      isLoadingButtonUpdate: "Update",
      profileShow: [],
      profileShowTracker: true,
      descriptionDataWithEmoji: ''
    };
  },
  computed: {
    data: function data() {
      if (this.product != null) {
        this.showImages = this.product.showImages;
        this.showVideos = this.product.showVideos;

        if (this.product.profileShow.length && this.profileShow.length == 0) {
          this.profileShow = this.product.profileShow;
        }
        /*else if (profileShowTracker && this.product.)
        {
          this.profileShow = this.profileShow;
        }*/


        console.log(123);
        console.log(this.product);
        return this.product;
      }

      return {
        name: "",
        units: "",
        price: "",
        description: "",
        days: "",
        image: false,
        category_id: "",
        tag_ids: [],
        profile: ''
      };
    }
  },
  methods: {
    resetProfile: function resetProfile() {
      this.profileShow = {};
    },
    //---------------- Emoji code start -----------------------
    descriptionWithEmoji: function descriptionWithEmoji(event) {
      //event.data contains the value of the textarea
      // console.log(event);
      this.product.descriptionDataWithEmoji = event.data;
    },
    clearTextarea: function clearTextarea() {
      this.$refs.emoji.clear();
    },
    //---------------- Emoji code End -------------------------------
    onProfileChange: function onProfileChange(e) {
      // this.resetProfile();
      var files = e.target.files;
      if (!files.length) return;
      this.showProfile(files[0]);
      this.product.image = files[0];
    },
    showProfile: function showProfile(file) {
      var ext = file.name.substr(file.name.lastIndexOf('.') + 1); //file.name.split('.')[1];

      var resType = file.type.split("/");
      var _size = file.size;

      if ($.inArray(ext, ['png', 'jpg', 'jpeg', 'mp4', 'm4v', 'mpeg', 'webm']) == -1) {
        // alert('Only allowed image/video.');
        this.alertMessageShow('Only allowed image/video.', 'warning');
        $('#profile').val('');
        return false;
      }

      var fSExt = new Array('Bytes', 'KB', 'MB', 'GB'),
          j = 0;

      while (_size > 900) {
        _size /= 1024;
        j++;
      }

      var actualsize = Math.round(_size * 100) / 100;
      var exactSize = actualsize + ' ' + fSExt[j]; // console.log('FILE SIZE = ',exactSize);
      ///////////////////////////////////////////////////////////////////////////////////////////

      if (fSExt[j] == 'MB' && actualsize > 6) {
        // alert('File is too large');  
        this.alertMessageShow('File is too large', 'warning');
      } else if (fSExt[j] == 'GB') {
        // alert(' File is too large');
        this.alertMessageShow('File is too large', 'warning');
      } else {
        var reader = new FileReader();
        var vm = this;
        /* reader.onload = (e) => {
           let newSrc = e.target.result;
             vm.profileShow =newSrc;
         };*/

        reader.addEventListener('load', function (e) {
          var newSrc = e.target.result;
          /*    vm.showImages = $.grep(vm.showImages, function(item) { 
                   return item.imageType !== 'profile';
                 });*/

          vm.profileShow = [{
            'path': newSrc,
            'imageType': 'profile111',
            'fileType': resType[0]
          }]; //vm.profileShow = [{'path':newSrc,'imageType':'multiImage','fileType':'image'}];
          // vm.profileShow =newSrc;
        });
        reader.readAsDataURL(file);
      }
    },
    attachFile: function attachFile(event) {
      var self = this;
      var files = event.target.files;

      for (var i = 0; i < files.length; i++) {
        var file = files[i];
        if (!file.type.match('image')) continue;
        var picReader = new FileReader();
        picReader.addEventListener('load', function (event) {
          var picFile = event.target;
          var newSrc = picFile.result; // self.showImages.push({'path':newSrc});

          self.showImages.push({
            'path': newSrc,
            'imageType': 'multiImage'
          });
        });
        picReader.readAsDataURL(file);
      }
    },
    uploadVideoFile: function uploadVideoFile(event) {
      // alert($('.videoFile1').)
      var self = this;
      var files = event.target.files;

      for (var i = 0; i < files.length; i++) {
        var file = files[i]; ///////////////// Check File Size /////////////////////////////////////////////////////////

        console.log(file);
        var _size = file.size;
        var fSExt = new Array('Bytes', 'KB', 'MB', 'GB'),
            j = 0;

        while (_size > 900) {
          _size /= 1024;
          j++;
        }

        var actualsize = Math.round(_size * 100) / 100;
        var exactSize = actualsize + ' ' + fSExt[j];
        console.log('FILE SIZE = ', exactSize); ///////////////////////////////////////////////////////////////////////////////////////////

        if (fSExt[j] == 'MB' && actualsize > 6) {
          // alert('Video file is too large'); 
          this.alertMessageShow('Video file is too large', 'warning');
        } else if (fSExt[j] == 'GB') {
          // alert('Video file is too large');
          this.alertMessageShow('Video file is too large', 'warning');
        } else {
          if (!file.type.match('video')) continue;
          var picReader = new FileReader();
          picReader.addEventListener('load', function (event) {
            var picFile = event.target;
            var newSrc = picFile.result;
            self.showVideos.push({
              'path': newSrc
            }); // console.log(self.showVideos.length)
            // console.log(self.showVideos);
          });
          picReader.readAsDataURL(file);
        }
      }
    },
    uploadFile: function uploadFile(event) {
      var _this = this;

      var self = this;
      $(self).prop("disabled", true); // if (self.showImages != null) {

      var formData = new FormData(); // console.log(self.profileShow.path);

      if (self.profileShow.length > 0) {
        if (self.profileShow[0].path != undefined) {
          formData.append("profile", self.profileShow[0]['path']);
        }
      }

      if (self.showImages.length > 0) {
        for (var i = 0; i < self.showImages.length; i++) {
          var file = self.showImages[i]; // if(self.showImages[i].imageType!='profile'){
          // console.log(self.showImages[i].imageType);

          formData.append("images[" + i + "]", file.path); // }
        }
      }

      if (self.showVideos.length > 0) {
        var image_count = self.showImages.length;

        for (var _i = 0; _i < self.showVideos.length; _i++) {
          var _file = self.showVideos[_i];
          var v = image_count + _i;
          formData.append("images[" + v + "]", _file.path);
        }
      }

      this.isDisabled = true;
      this.isLoadingButtonSave = 'Save <i class="fas fa-spinner fa-spin"></i>';
      this.isLoadingButtonUpdate = 'Update <i class="fas fa-spinner fa-spin"></i>';
      var headers = {
        'Content-Type': 'multipart/form-data'
      };
      axios.post("/api/admin/upload-file", formData, {
        headers: headers
      }).then(function (response) {
        _this.isDisabled = false;
        _this.isLoadingButtonSave = 'Save';
        _this.isLoadingButtonUpdate = 'Update';
        console.log(response);
        _this.product.multipleFiles = response.data.multiImage;
        _this.product.image = response.data.profileImage;

        _this.$emit('close', _this.product);
      })["catch"](function (error) {
        _this.alertMessageShow('Error in file upload', 'error'); // alert("Error in file upload");


        _this.isDisabled = false;
        _this.isLoadingButtonSave = 'Save';
        _this.isLoadingButtonUpdate = 'Update';
      });
    },
    deleteUplaodedFile: function deleteUplaodedFile(type, id, index) {
      var _this2 = this;

      if (type == "image") {
        if (id != undefined) {
          axios.post('/api/admin/deleteproductimage/' + id).then(function (res) {
            if (res.status == 200) {
              // alert(res.data.message);
              _this2.alertMessageShow(res.data.message, 'success');

              $('.imageFile1').find('.delete_index_' + index).remove();
            } else {
              // alert(res.data.message);
              _this2.alertMessageShow(res.data.message, 'error');
            }
          });
        } else {
          $('.imageFile1').find('.delete_index_' + index).remove();
        }
      } else if (type == "video") {
        if (id != undefined) {
          axios.post('/api/admin/deleteproductvideo/' + id).then(function (res) {
            if (res.status == 200) {
              // alert(res.data.message);
              _this2.alertMessageShow(res.data.message, 'success');

              $('.videoFile1').find('.delete_index_' + index).remove();
            } else {
              // alert(res.data.message);
              _this2.alertMessageShow(res.data.message, 'error');
            }
          });
        } else {
          $('.videoFile1').find('.delete_index_' + index).remove();
        }
      }
    },
    alertMessageShow: function alertMessageShow(message, type) {
      sweetalert2__WEBPACK_IMPORTED_MODULE_0___default.a.fire({
        // position: 'top-up',
        icon: type,
        title: message,
        showConfirmButton: true,
        timer: 2000 // toast: true,

      });
      $('.swal2-container').css('z-index', 1000000000000000);
    },
    hideMode: function hideMode() {
      this.$emit('hide');
      this.isDisabled = false;
      this.isLoadingButtonSave = "Save";
      this.isLoadingButtonUpdate = "Update"; //this.showImages=null;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Products.vue?vue&type=script&lang=js&":
/*!********************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/Products.vue?vue&type=script&lang=js& ***!
  \********************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ProductModal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ProductModal */ "./resources/assets/js/components/admin/ProductModal.vue");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sweetalert2 */ "./node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_1__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      products: [],
      editingItem: null,
      addingProduct: null,
      errors: [],
      search: "",
      isLoading: 0
    };
  },
  components: {
    Modal: _ProductModal__WEBPACK_IMPORTED_MODULE_0__["default"]
  },
  beforeMount: function beforeMount() {
    var _this = this;

    this.searchFunction();
    axios.get('/api/admin/products').then(function (response) {
      _this.products = response.data.products;
      _this.categorys = response.data.category;
      _this.tags = response.data.tags;
      _this.products.datalength = _this.products.length;
    });
  },
  methods: {
    /* getResults(page = 1) {
         axios.get('/api/products?page=' + page)
             .then(response => {
             console.log(response.data);
                 this.products = response.data;
             });
     }, */
    searchFunction: function searchFunction() {
      var _this2 = this;

      this.isLoading = 1;
      var search = this.search;
      axios.post('/api/admin/products/search', {
        search: search
      }).then(function (response) {
        /*this.products=response.data;
        // console.log(response.data);*/
        _this2.products = response.data.products;
        _this2.categorys = response.data.category;
        _this2.tags = response.data.tags;
        _this2.products.datalength = _this2.products.length;
        _this2.isLoading = 0;
      })["catch"](function (error) {});
    },
    newProduct: function newProduct() {
      this.addingProduct = {
        name: null,
        units: null,
        price: null,
        days: "",
        image: null,
        category_id: [],
        description: null,
        submit_button_text: 'add',
        heading: 'add',
        showImages: [],
        showVideos: [],
        profileShow: [],
        categoryData: this.categorys,
        tagData: this.tags,
        tag_ids: [],
        profile: null,
        descriptionDataWithEmoji: ''
      };
    },
    editProduct: function editProduct(product) {
      product.categoryData = this.categorys;
      product.descriptionDataWithEmoji = '';
      product.tagData = this.tags;
      product.category_id = {
        "id": product.category_id,
        "name": product.category_name
      };
      product.tag_ids = product.showProductTag;
      this.editingItem = product;

      if (this.editingItem.category_id == undefined) {
        this.editingItem.category_id = 0;
      }
    },
    endEditing: function endEditing(product) {
      var _this3 = this;

      var index = this.products.indexOf(product);
      var name = product.name;
      var units = product.units;
      var price = product.price;
      var days = product.days;
      var description = product.description;

      if (product.descriptionDataWithEmoji != '') {
        description = product.descriptionDataWithEmoji; // alert(product.descriptionDataWithEmoji);
      } // let image = product.image


      var profile = product.image;
      var multipleFiles = product.multipleFiles;
      var category_id = product.category_id; // console.log(product);

      var tag_ids = product.tag_ids;
      this.isLoading = 1;
      this.errors = [];
      axios.put("/api/admin/products/".concat(product.id), {
        name: name,
        units: units,
        price: price,
        days: days,
        description: description,
        profile: profile,
        multipleFiles: multipleFiles,
        category_id: category_id,
        tag_ids: tag_ids
      }).then(function (response) {
        _this3.editingItem = null;
        _this3.errors = [];
        _this3.isLoading = 0;
        _this3.products[index] = product;
        location.reload();
      })["catch"](function (error) {
        _this3.errors = error.response.data.errors;

        if (error.response.data.message != "") {
          _this3.errors = {
            'errors_profile': error.response.data.message
          };
        }

        console.log(_this3.errors);
        _this3.isLoading = 0;
      });
    },
    addProduct: function addProduct(product) {
      var _this4 = this;

      var name = product.name;
      var units = product.units;
      var price = product.price;
      var days = product.days;
      var description = product.description;

      if (product.descriptionDataWithEmoji != '') {
        description = product.descriptionDataWithEmoji; // alert(product.descriptionDataWithEmoji);
      }

      var image = product.image;
      var profile = product.image;
      var multipleFiles = product.multipleFiles;
      var category_id = product.category_id;
      var tag_ids = product.tag_ids;
      this.isLoading = 1;
      this.errors = [];
      axios.post("/api/admin/products", {
        name: name,
        units: units,
        price: price,
        days: days,
        description: description,
        profile: profile,
        multipleFiles: multipleFiles,
        category_id: category_id,
        tag_ids: tag_ids,
        image: image
      }).then(function (response) {
        _this4.addingProduct = null;
        _this4.errors = [];
        _this4.isLoading = 0;

        _this4.products.push(response.data.data);

        location.reload();
      })["catch"](function (error) {
        _this4.errors = error.response.data.errors; // console.log(this.errors);

        _this4.isLoading = 0;
      });
    },
    deleteProduct: function deleteProduct(product) {
      var _this5 = this;

      var index = this.products.indexOf(product);
      var name = product.name;
      var id = product.id;
      sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire({
        title: "Are you sure?",
        text: "Do you want to delete!",
        icon: "warning",
        showCancelButton: true,
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Yes, delete it!'
      }).then(function (willDelete) {
        if (willDelete.isConfirmed == true) {
          axios["delete"]('/api/admin/products/' + id, {
            name: name
          }).then(function (res) {
            if (res.status == 200) {
              _this5.isLoading = 0;

              _this5.products.splice(index, 1);

              sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire("Deleted!", res.data.message, "success");
              location.reload();
            } else {
              _this5.isLoading = 0;
              sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire(res.data.message);
            }

            _this5.isLoading = 0;
          });
        }
      });
    },

    /*deleteProduct(product) {
        let index = this.products.indexOf(product)
        let name = product.name
        let id = product.id
        let r = confirm("Do you want to delete!")
        if(r == true)
        {
            this.isLoading=1
            axios.delete('/api/admin/products/'+id, {name}).then((res)=>{
                if(res.status==200)
                {   
                    this.isLoading=0
                    this.products.splice(index, 1)
                    alert(res.data.message);
                    location.reload();
                }
                else{
                    this.isLoading=0
                    alert(res.data.message);
                }
                this.isLoading=0
            })
        }
    },*/
    hideMode: function hideMode() {
      this.addingProduct = null;
      this.editingItem = null;
      this.errors = [];
      this.isLoading = 0;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Users.vue?vue&type=script&lang=js&":
/*!*****************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/Users.vue?vue&type=script&lang=js& ***!
  \*****************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      users: {},
      search: "",
      isLoading: 0,
      sortBy: 'id',
      sortDir: 'desc'
    };
  },
  beforeMount: function beforeMount() {
    // this.searchFunction()
    this.getResults(1);
    /* axios.get('/api/admin/users').then((response) =>{ 
         this.users = response.data
         this.users.sno = this.getSerialNumber(this.users) ;
         this.users.datalength = this.users.data.length
     })*/
  },
  methods: {
    getResults: function getResults() {
      var _this = this;

      var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      this.isLoading = 1;
      var search = this.search;
      var sortBy = this.sortBy;
      var sortDir = this.sortDir;
      var url = '/api/admin/users?page=' + page + '&search=' + search + '&sortBy=' + sortBy + '&sortDir=' + sortDir; // let url = '/api/admin/users?page=' + page + '&search=' + search;

      axios.get(url).then(function (response) {
        _this.isLoading = 0;
        _this.users = response.data;
        _this.users.sno = _this.getSerialNumber(_this.users);
      });
    },
    searchFunction: function searchFunction() {
      var _this2 = this;

      var search = this.search;
      this.isLoading = 1;
      axios.post('/api/admin/users/search', {
        search: search
      }).then(function (response) {
        _this2.users = response.data;
        _this2.users.datalength = _this2.users.data.length;
        _this2.users.sno = _this2.getSerialNumber(_this2.users);
        _this2.isLoading = 0;
      })["catch"](function (error) {
        _this2.isLoading = 0;
      });
    },
    getSerialNumber: function getSerialNumber(data) {
      return data.per_page * (data.current_page - 1);
    },

    /* sorting(sortBy){
         this.clear_icon();
         this.sortBy = sortBy;
         if(this.sortDir=="asc")
         {
             this.sortDir='desc'  
             $('#'+this.sortBy+'_icon').html('<span style="opacity:0.5" class="opacity_5 fa fa-caret-up"></span><span class="fa fa-caret-down"></span>');
         }
         else{
             this.sortDir='asc'   
             $('#'+this.sortBy+'_icon').html('<span class=" fa fa-caret-up"></span><span style="opacity:0.5" class="fa fa-caret-down opacity_5"></span>');
         }
         this.getResults(1);
         // alert(sortBy);
     },*/
    clear_icon: function clear_icon() {
      $('#name_icon,#email_icon').html('<span style="opacity:0.5" class=" fa fa-caret-up"></span><span style="opacity:0.5" class="fa fa-caret-down opacity_5"></span>');
    },
    changeStatus: function changeStatus(user) {
      var _this3 = this;

      var id = user.id;
      axios.post('/api/admin/users/changeStatus', {
        id: id
      }).then(function (response) {
        /* this.users=response.data;
         this.users.datalength = this.users.data.length
         this.users.sno = this.getSerialNumber(this.users) ;
          this.isLoading=0 */
        _this3.isLoading = 0;
        location.reload();
      })["catch"](function (error) {
        _this3.isLoading = 0;
      });
    },
    getDateFormat: function getDateFormat(date) {
      var todayDate = new Date(date);
      var format = "AM";
      var hour = todayDate.getHours();
      var min = todayDate.getMinutes();

      if (hour > 11) {
        format = "PM";
      }

      if (hour > 12) {
        hour = hour - 12;
      }

      if (hour == 0) {
        hour = 12;
      }

      if (min < 10) {
        min = "0" + min;
      }

      var month = todayDate.toLocaleString('default', {
        month: 'long'
      }); // var day = todayDate.getDay();

      var day = todayDate.getDate() < 10 ? '0' + todayDate.getDate() : todayDate.getDate();
      var monthDigit = todayDate.getMonth() + 1 < 10 ? '0' + (todayDate.getMonth() + 1) : todayDate.getMonth() + 1;
      return monthDigit + "-" + day + "-" + todayDate.getFullYear() + ", " + hour + ":" + min + " " + format; // return  todayDate.getDate() + "-" + (todayDate.getMonth()+1) + "-" +  todayDate.getFullYear()+", "+hour+":"+min+" "+format;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/about-us/About_us.vue?vue&type=script&lang=js&":
/*!*****************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/about-us/About_us.vue?vue&type=script&lang=js& ***!
  \*****************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  //    props : ['nextUrl'],
  data: function data() {
    return {
      aboutData: {
        about: null,
        image: null
      },
      errors: [],
      isLoading: 0,
      imagePreview: null,
      textDataWithEmoji: ''
    };
  },
  beforeMount: function beforeMount() {
    var _this = this;

    axios.get('/api/admin/about-us').then(function (response) {
      _this.aboutData = response.data;

      if (_this.aboutData.image != null) {
        _this.imagePreview = _this.aboutData.path;
      }
    });
  },
  methods: {
    //---------------- Emoji code start -----------------------
    onInput: function onInput(event) {
      //event.data contains the value of the textarea
      this.textDataWithEmoji = event.data;
    },
    clearTextarea: function clearTextarea() {
      this.$refs.emoji.clear();
    },
    //---------------- Emoji code End -------------------------------
    onProfileChange: function onProfileChange(e) {
      var files = e.target.files;
      if (!files.length) return;
      this.showImage(files[0]);
      this.aboutData.image = files[0];
    },
    showImage: function showImage(file) {
      // console.log(file)
      var reader = new FileReader();
      var vm = this;

      reader.onload = function (e) {
        vm.imagePreview = e.target.result;
      };

      reader.readAsDataURL(file);
    },
    updateProfile: function updateProfile(e) {
      var _this2 = this;

      e.preventDefault();
      this.isLoading = 1;
      console.log(this.textDataWithEmoji);
      this.aboutData.about = this.textDataWithEmoji;
      var formData = new FormData();
      formData.append('image', this.aboutData.image);
      formData.append('about', this.aboutData.about);
      formData.append('id', this.aboutData.id);
      this.errors = [];
      axios.post("/api/admin/about-us/update", formData).then(function (response) {
        _this2.errors = [];
        _this2.isLoading = 0;
        _this2.aboutData = response.data.data;
        _this2.textDataWithEmoji = '';
        console.log(_this2.aboutData);
        location.reload(); // alert(response.data.message);
      })["catch"](function (error) {
        _this2.errors = error.response.data.errors;
        _this2.isLoading = 0;
      });
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/account/Change_password.vue?vue&type=script&lang=js&":
/*!***********************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/account/Change_password.vue?vue&type=script&lang=js& ***!
  \***********************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  //    props : ['nextUrl'],
  data: function data() {
    return {
      //current_password : "",
      password: "",
      confirm_password: "",
      errors: [],
      isLoading: 0
    };
  },
  methods: {
    updateChangePassword: function updateChangePassword(e) {
      var _this = this;

      e.preventDefault(); //this.$emit('loadingIn',1)
      //let current_password = this.current_password

      var password = this.password;
      var confirm_password = this.confirm_password;
      this.isLoading = 1;
      axios.post("/api/admin/change-password/updatePassword/", {
        password: password,
        confirm_password: confirm_password
      }).then(function (response) {
        _this.errors = [];
        _this.isLoading = 0;
        alert(response.data.message);
      })["catch"](function (error) {
        _this.isLoading = 0;
        /* if(error.response.data.action!=undefined){
             this.errors.msg = error.response.data.errors
         }
         else{ 
             this.errors = error.response.data.errors
         }
         */

        _this.errors = error.response.data.errors;
      });
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/account/Edit_profile.vue?vue&type=script&lang=js&":
/*!********************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/account/Edit_profile.vue?vue&type=script&lang=js& ***!
  \********************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  //    props : ['nextUrl'],
  data: function data() {
    return {
      user: [],
      errors: [],
      isLoading: 0,
      adminProfileImage: []
    };
  },
  beforeMount: function beforeMount() {
    var _this = this;

    axios.get('/api/admin/edit-profile').then(function (response) {
      _this.user = response.data.user;
      _this.adminProfileImage = response.data.adminProfileImage;
      console.log(_this.user);
    });
  },
  methods: {
    updateProfile: function updateProfile(e) {
      var _this2 = this;

      e.preventDefault();
      this.isLoading = 1;
      var formData = new FormData();
      var totalfiles = $('#aboutProfile').prop("files").length;

      if (totalfiles > 3) {
        alert('You have to upload a maximum of 3 files');
        this.isLoading = 0;
        return false;
      }

      for (var index = 0; index < totalfiles; index++) {
        formData.append("images[]", $('#aboutProfile').prop("files")[index]);
      }

      formData.append('name', this.user.name);
      formData.append('email', this.user.email);
      formData.append('id', this.user.id);
      formData.append('phone', this.user.phone);
      formData.append('location', this.user.location);
      formData.append('weight', this.user.weight);
      formData.append('height', this.user.height);
      formData.append('hair', this.user.hair);
      formData.append('eye', this.user.eye);
      formData.append('age', this.user.age);
      this.errors = [];
      axios.post("/api/admin/edit-profile/updateProfile", formData).then(function (response) {
        _this2.errors = [];
        _this2.isLoading = 0;
        location.reload();
        alert(response.data.message);
      })["catch"](function (error) {
        _this2.errors = error.response.data.errors;
        _this2.isLoading = 0;
      });
    },
    deleteUplaodedFile: function deleteUplaodedFile(type, id, index) {
      if (type == "image") {
        if (id != undefined) {
          axios.post('/api/admin/deleteprofileimage/' + id).then(function (res) {
            if (res.status == 200) {
              alert(res.data.message);
              $('.delete_index_' + index).remove();
            } else {
              alert(res.data.message);
            }
          });
        } else {
          $('.delete_index_' + index).remove();
        }
      }
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/category/Editor.vue?vue&type=script&lang=js&":
/*!***************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/category/Editor.vue?vue&type=script&lang=js& ***!
  \***************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  props: ['category', 'errors'],
  data: function data() {
    return {
      attachment: null
    };
  },
  computed: {
    data: function data() {
      if (this.category != null) {
        this.category.isDisabled = false;
        this.category.isLoadingButtonUpdate = "Update";
        return this.category;
      }

      return {
        name: "",
        id: ""
      };
    }
  },
  methods: {
    uploadFile: function uploadFile(event) {
      this.$emit('close', this.category);
    },
    hideMode: function hideMode() {
      this.$emit('hide');
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/category/Index.vue?vue&type=script&lang=js&":
/*!**************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/category/Index.vue?vue&type=script&lang=js& ***!
  \**************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Editor */ "./resources/assets/js/components/admin/category/Editor.vue");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sweetalert2 */ "./node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_1__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      categorys: {},
      editingItem: null,
      addingCategory: null,
      errors: [],
      isLoading: 0,
      search: ""
    };
  },
  components: {
    Modal: _Editor__WEBPACK_IMPORTED_MODULE_0__["default"]
  },
  beforeMount: function beforeMount() {
    // this.searchFunction()
    this.getResults(1);
    /*axios.get('/api/admin/category').then((response) => {
        this.categorys = response.data
        this.categorys.datalength = this.categorys.data.length
        this.categorys.sno = this.getSerialNumber(this.categorys);
    })*/
  },
  methods: {
    getResults: function getResults() {
      var _this = this;

      var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      var search = this.search;
      this.isLoading = 1;
      axios.get('/api/admin/category?page=' + page + '&search=' + search).then(function (response) {
        _this.categorys = response.data;
        _this.isLoading = 0;
        _this.categorys.datalength = _this.categorys.data.length;
        _this.categorys.sno = _this.getSerialNumber(_this.categorys);
      });
    },
    searchFunction: function searchFunction() {
      var _this2 = this;

      this.isLoading = 1;
      var search = this.search;
      axios.post('/api/admin/category/search', {
        search: search
      }).then(function (response) {
        _this2.categorys = response.data;
        _this2.categorys.datalength = _this2.categorys.data.length;
        _this2.isLoading = 0;
        _this2.categorys.sno = _this2.getSerialNumber(_this2.categorys);
      })["catch"](function (error) {
        _this2.isLoading = 0;
      });
    },
    getSerialNumber: function getSerialNumber(data) {
      return data.per_page * (data.current_page - 1);
    },
    newCategory: function newCategory() {
      this.errors = [];
      this.addingCategory = {
        name: null,
        submit_button_text: 'add',
        heading: 'add',
        isDisabled: false,
        isLoadingButtonSave: "Save"
      };
    },
    endEditing: function endEditing(category) {
      var _this3 = this;

      var index = this.categorys.data.indexOf(category);
      var name = category.name;
      this.errors = [];
      this.isLoading = 1;
      category.isDisabled = true;
      category.isLoadingButtonUpdate = 'Update <i class="fas fa-spinner fa-spin"></i>';
      axios.put("/api/admin/category/".concat(category.id), {
        name: name
      }).then(function (response) {
        location.reload();
        _this3.editingItem = null;
        _this3.errors = [];
        _this3.isLoading = 0;
        _this3.categorys[index] = category;
        _this3.editingItem.isDisabled = false;
        _this3.editingItem.isLoadingButtonUpdate = "Update";
      })["catch"](function (error) {
        if (error.response != undefined) {
          _this3.errors = error.response.data.errors;
          _this3.isLoading = 0;
          _this3.editingItem.isDisabled = false;
          _this3.editingItem.isLoadingButtonUpdate = "Update";
        }
      }); //axios.put(`/api/category/${category.id}`, {name})
      //   .then(response => this.categorys[index] = category)
    },
    addCategory: function addCategory(category) {
      var _this4 = this;

      this.errors = [];
      this.isLoading = 1;
      var name = category.name;
      category.isDisabled = true;
      category.isLoadingButtonSave = 'Save <i class="fas fa-spinner fa-spin"></i>';
      axios.post("/api/admin/category", {
        name: name
      }).then(function (response) {
        location.reload();
        _this4.addingCategory = null;
        _this4.errors = [];
        _this4.isLoading = 0;

        _this4.categorys.push(response.data.data); // console.log(this.categorys);


        _this4.addingCategory.isDisabled = false;
        _this4.addingCategory.isLoadingButtonSave = "Save";
      })["catch"](function (error) {
        if (error.response != undefined) {
          _this4.addingCategory.isDisabled = false;
          _this4.addingCategory.isLoadingButtonSave = "Save";
          _this4.errors = error.response.data.errors;
          _this4.isLoading = 0;
        }
      });
    },
    deleteItem: function deleteItem(category) {
      var _this5 = this;

      var index = this.categorys.data.indexOf(category);
      var name = category.name;
      var id = category.id;
      sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire({
        title: "Are you sure?",
        text: "Do you want to delete!",
        icon: "warning",
        showCancelButton: true,
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Yes, delete it!'
      }).then(function (willDelete) {
        if (willDelete.isConfirmed == true) {
          axios["delete"]('/api/admin/category/' + id, {
            name: name
          }).then(function (res) {
            if (res.status == 200) {
              _this5.categorys.data.splice(index, 1);

              $('.row_' + index).remove();
              sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire("Deleted!", res.data.message, "success");
              location.reload(); // this.getResults(1)
            } else {
              console.log(res);
              sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire(res.data.message);
            }

            _this5.isLoading = 0;
          })["catch"](function (error) {
            console.log(error);
          });
        }
      });
    },

    /*deleteItem(category) {
        let index = this.categorys.data.indexOf(category)
        let name = category.name
        let id = category.id
        let r = confirm("Do you want to delete!")
        if(r == true)
        {  
          this.isLoading=1
            axios.delete('/api/admin/category/'+id, {name}).then((res)=>{
                if(res.status==200)
                {
                    this.categorys.data.splice(index, 1)
                    alert(res.data.message);
                    location.reload();
                }
                else{
                    alert(res.data.message);
                }
                 this.isLoading=0
            })
        }
    },*/
    hideMode: function hideMode() {
      this.addingCategory = null;
      this.editingItem = null;
      this.errors = [];
      this.isLoading = 0;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/chat/Index.vue?vue&type=script&lang=js&":
/*!**********************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/chat/Index.vue?vue&type=script&lang=js& ***!
  \**********************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js");
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _config_app_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../config/app.json */ "./config/app.json");
var _config_app_json__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../../../../../../config/app.json */ "./config/app.json", 1);
/* harmony import */ var vue_advanced_chat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue-advanced-chat */ "./node_modules/vue-advanced-chat/dist/vue-advanced-chat.common.js");
/* harmony import */ var vue_advanced_chat__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue_advanced_chat__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var vue_advanced_chat_dist_vue_advanced_chat_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue-advanced-chat/dist/vue-advanced-chat.css */ "./node_modules/vue-advanced-chat/dist/vue-advanced-chat.css");
/* harmony import */ var vue_advanced_chat_dist_vue_advanced_chat_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue_advanced_chat_dist_vue_advanced_chat_css__WEBPACK_IMPORTED_MODULE_3__);


function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }

function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }

//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

var socket = io(_config_app_json__WEBPACK_IMPORTED_MODULE_1__["porturl"]);


/* harmony default export */ __webpack_exports__["default"] = ({
  components: {
    ChatWindow: vue_advanced_chat__WEBPACK_IMPORTED_MODULE_2___default.a
  },
  data: function data() {
    return {
      rooms: [],
      messages: [],
      currentUserId: 1,
      roomsLoaded: false,
      pageMassage: 1,
      page: 1,
      messagesLoaded: true
    };
  },
  beforeMount: function beforeMount() {
    this.fetchRooms();
    var messages = [{
      _id: 7890,
      content: 'message 1',
      senderId: 3,
      username: 'John Doe',
      date: '13 November',
      timestamp: '10:20',
      system: false,
      saved: true,
      distributed: true,
      seen: true,
      disableActions: false,
      disableReactions: false
    }];
    this.messages = messages;
    var rooms = [];
    this.rooms = rooms; // this.roomsLoaded=true;
  },
  created: function created() {
    var _this = this;

    if (this.$isloggedin == true) {
      socket.on("message", function (data) {
        if (_this.currentUserId == data.senderId && data.to == 1) {
          var message = {
            _id: data._id,
            content: data.content,
            senderId: 1,
            username: 'admin',
            date: data.date,
            timestamp: data.day,
            system: false,
            saved: true,
            distributed: true,
            seen: true,
            disableActions: true,
            disableReactions: true,
            fileStatus: false
          };

          if (data.fileStatus == true) {
            message.file = {
              name: data.file.name,
              size: data.file.size,
              type: data.file.type,
              extension: data.file.extension || data.file.type,
              url: data.file.url
            };
          } // this.updateStatus(data._id)


          _this.updateStatus(data.senderId);

          _this.messages.push(message);
        } else if (_this.currentUserId != data.senderId && data.to == 1) {
          _this.rooms.forEach(function (datarooms) {
            console.log(datarooms);

            if (datarooms.roomId == data.senderId) {
              datarooms.unreadCount++;
            }
          });
        }
      });
    }
  },
  methods: {
    fetchMessages: function fetchMessages(_ref) {
      var _this2 = this;

      var room = _ref.room,
          _ref$options = _ref.options,
          options = _ref$options === void 0 ? {} : _ref$options;

      if (this.currentUserId !== room.roomId) {
        this.pageMassage = 1;
        this.messages = [];
      }

      this.messagesLoaded = false;
      var sender_id = room.roomId;
      this.currentUserId = room.roomId;
      room.unreadCount = 0;
      axios.post('/api/admin/chat/getMessage?page=' + this.pageMassage, {
        sender_id: sender_id
      }).then(function (response) {
        if (response.data.data.length < 1) {
          _this2.messagesLoaded = true;
        } else {
          _this2.pageMassage++;
        }

        response.data.data.forEach(function (datas) {
          _this2.messages.push(datas);
        }); // this.messagesLoaded = true
        //console.log(response.data.data);
      });
    },
    openFile: function openFile(_ref2) {
      var message = _ref2.message;
      window.open(message.file.url, '_blank');
    },
    fetchMoreRooms: function () {
      var _fetchMoreRooms = _asyncToGenerator(
      /*#__PURE__*/
      _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() {
        var _this3 = this;

        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) {
          while (1) {
            switch (_context.prev = _context.next) {
              case 0:
                this.page++;
                axios.get('/api/admin/chat/getUser?page=' + this.page).then(function (response) {
                  //this.currentUserId=9
                  response.data.data.forEach(function (datas) {
                    _this3.rooms.push(datas);
                  });
                });

              case 2:
              case "end":
                return _context.stop();
            }
          }
        }, _callee, this);
      }));

      function fetchMoreRooms() {
        return _fetchMoreRooms.apply(this, arguments);
      }

      return fetchMoreRooms;
    }(),
    fetchRooms: function fetchRooms() {
      var _this4 = this;

      axios.get('/api/admin/chat/getUser?page=' + this.page).then(function (response) {
        //this.currentUserId=9
        _this4.rooms = response.data.data;
        console.log(response.data.data);
      });
    },
    sendMessage: function () {
      var _sendMessage = _asyncToGenerator(
      /*#__PURE__*/
      _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2(_ref3) {
        var _this5 = this;

        var content, roomId, file, replyMessage, form_data, message;
        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) {
          while (1) {
            switch (_context2.prev = _context2.next) {
              case 0:
                content = _ref3.content, roomId = _ref3.roomId, file = _ref3.file, replyMessage = _ref3.replyMessage;
                this.messagesLoaded = false;
                form_data = new FormData();
                message = {
                  sender_id: roomId,
                  content: content,
                  timestamp: new Date(),
                  username: 'John Doe',
                  date: '13 November',
                  system: false,
                  saved: true,
                  distributed: true,
                  seen: true,
                  disableActions: true,
                  disableReactions: true
                };
                form_data.append("sender_id", roomId);
                form_data.append("content", content);

                if (file) {
                  form_data.append("file", file.blob);
                  form_data.append("extension", file.extension);
                }

                axios.post('/api/admin/chat/sendMessage', form_data, {
                  headers: {
                    'Content-Type': 'multipart/form-data'
                  }
                }).then(function (response) {
                  var message = {
                    _id: response.data.data.id,
                    content: response.data.data.message,
                    senderId: _this5.currentUserId,
                    to: _this5.currentUserId,
                    username: 'admin',
                    date: response.data.data.date,
                    timestamp: response.data.data.day,
                    system: false,
                    saved: true,
                    distributed: true,
                    seen: true,
                    disableActions: true,
                    disableReactions: true,
                    fileStatus: false
                  };

                  if (file) {
                    message.fileStatus = true;
                    message.file = {
                      name: file.name,
                      size: file.size,
                      type: file.type,
                      extension: file.extension || file.type,
                      url: response.data.data.file.url
                    };
                  }

                  _this5.messages.push(message);

                  socket.emit('message', message);
                  _this5.messagesLoaded = true;
                })["catch"](function (error) {
                  _this5.messagesLoaded = true;
                });

              case 8:
              case "end":
                return _context2.stop();
            }
          }
        }, _callee2, this);
      }));

      function sendMessage(_x) {
        return _sendMessage.apply(this, arguments);
      }

      return sendMessage;
    }(),
    updateStatus: function updateStatus(senderId) {
      axios.post('/api/admin/chat/updateStatus', {
        senderId: senderId
      }).then(function (response) {//this.currentUserId=9
        // this.rooms =  response.data.data
      });
    },
    roomInformation: function roomInformation(room) {
      console.log("asdasda");
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/inquiry/Index.vue?vue&type=script&lang=js&":
/*!*************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/inquiry/Index.vue?vue&type=script&lang=js& ***!
  \*************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
// import Modal from './Editor'
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      inquirys: {},
      errors: [],
      isLoading: 0,
      search: ""
    };
  },
  // components: {Modal},
  beforeMount: function beforeMount() {
    var _this = this;

    this.getResults(1);
    this.isLoading = 1;
    axios.get('/api/admin/inquiry').then(function (response) {
      _this.isLoading = 0;
      _this.inquirys = response.data;
      console.log(response.data);
      _this.inquirys.datalength = _this.inquirys.data.length;
      _this.inquirys.sno = _this.getSerialNumber(_this.inquirys);
    });
  },
  methods: {
    getResults: function getResults() {
      var _this2 = this;

      var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      this.isLoading = 1;
      var search = this.search;
      axios.get('/api/admin/inquiry?page=' + page + '&search=' + search).then(function (response) {
        _this2.isLoading = 0;
        _this2.inquirys = response.data;
        _this2.inquirys.sno = _this2.getSerialNumber(_this2.inquirys); //this.tips.per_page * (this.tips.current_page - 1)
      });
    },
    searchFunction: function searchFunction() {
      var _this3 = this;

      var search = this.search;
      this.isLoading = 1;
      axios.post('/api/admin/inquiry/search', {
        search: search
      }).then(function (response) {
        _this3.inquirys = response.data;
        _this3.inquirys.datalength = _this3.inquirys.data.length;
        _this3.isLoading = 0;
        _this3.inquirys.sno = _this3.getSerialNumber(_this3.inquirys); //this.tips.per_page * (this.tips.current_page - 1)
      })["catch"](function (error) {
        _this3.isLoading = 0;
      });
    },
    getSerialNumber: function getSerialNumber(data) {
      return data.per_page * (data.current_page - 1);
    },
    deleteItem: function deleteItem(inquiry) {
      var _this4 = this;

      var index = this.inquirys.data.indexOf(inquiry);
      var amount = inquiry.amount;
      var id = inquiry.id;
      var r = confirm("Do you want to delete!");

      if (r == true) {
        this.isLoading = 1;
        axios["delete"]('/api/admin/inquiry/' + id, {
          amount: amount
        }).then(function (res) {
          if (res.status == 200) {
            _this4.inquirys.data.splice(index, 1);

            alert(res.data.message);
          } else {
            alert(res.data.message);
          }

          _this4.isLoading = 0;
        });
      }
    },
    hideMode: function hideMode() {
      this.errors = [];
      this.isLoading = 0;
    },
    getDateFormat: function getDateFormat(date) {
      var todayDate = new Date(date);
      var format = "AM";
      var hour = todayDate.getHours();
      var min = todayDate.getMinutes();

      if (hour > 11) {
        format = "PM";
      }

      if (hour > 12) {
        hour = hour - 12;
      }

      if (hour == 0) {
        hour = 12;
      }

      if (min < 10) {
        min = "0" + min;
      }

      var month = todayDate.toLocaleString('default', {
        month: 'long'
      }); // var day = todayDate.getDay();

      var day = todayDate.getDate() < 10 ? '0' + todayDate.getDate() : todayDate.getDate();
      var monthDigit = todayDate.getMonth() + 1 < 10 ? '0' + (todayDate.getMonth() + 1) : todayDate.getMonth() + 1;
      return monthDigit + "-" + day + "-" + todayDate.getFullYear() + ", " + hour + ":" + min + " " + format; // return  todayDate.getDate() + "-" + (todayDate.getMonth()+1) + "-" +  todayDate.getFullYear()+", "+hour+":"+min+" "+format;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/message_price/Index.vue?vue&type=script&lang=js&":
/*!*******************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/message_price/Index.vue?vue&type=script&lang=js& ***!
  \*******************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  //    props : ['nextUrl'],
  data: function data() {
    return {
      user: [],
      errors: [],
      isLoading: 0
    };
  },
  beforeMount: function beforeMount() {
    var _this = this;

    axios.get('/api/admin/edit-profile').then(function (response) {
      _this.user = response.data.user;
      console.log(_this.user);
    });
  },
  methods: {
    updateMessagePerPrice: function updateMessagePerPrice(e) {
      var _this2 = this;

      e.preventDefault();
      this.isLoading = 1;
      var formData = new FormData();
      formData.append('message_per_price', this.user.message_per_price);
      formData.append('id', this.user.id);
      this.errors = [];
      axios.post("/api/admin/edit-profile/updateMessagePerPrice", formData).then(function (response) {
        _this2.errors = [];
        _this2.isLoading = 0;
        location.reload();
        alert(response.data.message);
      })["catch"](function (error) {
        _this2.errors = error.response.data.errors;
        _this2.isLoading = 0;
      });
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/message_purchase_history/Index.vue?vue&type=script&lang=js&":
/*!******************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/message_purchase_history/Index.vue?vue&type=script&lang=js& ***!
  \******************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      messageData: [],
      search: "",
      isLoading: 0
    };
  },
  beforeMount: function beforeMount() {
    var _this = this;

    // this.searchFunction();
    this.getResults(1);
    axios.get('/api/admin/message-purchase-history').then(function (response) {
      _this.messageData = response.data;
      console.log(_this.messageData.data.length);
      _this.messageData.datalength = _this.messageData.data.length;
      _this.messageData.sno = _this.getSerialNumber(_this.messageData);
    });
  },
  methods: {
    getResults: function getResults() {
      var _this2 = this;

      var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      this.isLoading = 1;
      var search = this.search;
      axios.get('/api/admin/message-purchase-history?page=' + page + '&search=' + search).then(function (response) {
        _this2.isLoading = 0;
        _this2.messageData = response.data;
        _this2.messageData.sno = _this2.getSerialNumber(_this2.messageData);
      });
    },
    searchFunction: function searchFunction() {
      var _this3 = this;

      var search = this.search;
      this.isLoading = 1;
      axios.post('/api/admin/message-purchase-history/search', {
        search: search
      }).then(function (response) {
        _this3.messageData = response.data;
        _this3.messageData.datalength = _this3.messageData.data.length;
        _this3.messageData.sno = _this3.getSerialNumber(_this3.messageData);
        console.log(response.data);
        _this3.isLoading = 0;
      })["catch"](function (error) {
        _this3.isLoading = 0;
      });
    },
    getSerialNumber: function getSerialNumber(data) {
      console.log(data);
      return data.per_page * (data.current_page - 1);
    },
    getDateFormat: function getDateFormat(date) {
      var todayDate = new Date(date);
      var format = "AM";
      var hour = todayDate.getHours();
      var min = todayDate.getMinutes();

      if (hour > 11) {
        format = "PM";
      }

      if (hour > 12) {
        hour = hour - 12;
      }

      if (hour == 0) {
        hour = 12;
      }

      if (min < 10) {
        min = "0" + min;
      }

      var month = todayDate.toLocaleString('default', {
        month: 'long'
      }); // var day = todayDate.getDay();

      var day = todayDate.getDate() < 10 ? '0' + todayDate.getDate() : todayDate.getDate();
      var monthDigit = todayDate.getMonth() + 1 < 10 ? '0' + (todayDate.getMonth() + 1) : todayDate.getMonth() + 1;
      return monthDigit + "-" + day + "-" + todayDate.getFullYear() + ", " + hour + ":" + min + " " + format; // return  todayDate.getDate() + "-" + (todayDate.getMonth()+1) + "-" +  todayDate.getFullYear()+", "+hour+":"+min+" "+format;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/newsletter/Index.vue?vue&type=script&lang=js&":
/*!****************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/newsletter/Index.vue?vue&type=script&lang=js& ***!
  \****************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
// import Modal from './Editor'
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      newsletters: {},
      errors: [],
      isLoading: 0,
      search: ""
    };
  },
  // components: {Modal},
  beforeMount: function beforeMount() {
    var _this = this;

    this.getResults(1);
    this.isLoading = 1;
    axios.get('/api/admin/newsletter').then(function (response) {
      _this.isLoading = 0;
      _this.newsletters = response.data;
      _this.newsletters.datalength = _this.newsletters.data.length;
      _this.newsletters.sno = _this.getSerialNumber(_this.newsletters);
    });
  },
  methods: {
    getResults: function getResults() {
      var _this2 = this;

      var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      this.isLoading = 1;
      var search = this.search;
      axios.get('/api/admin/newsletter?page=' + page + '&search=' + search).then(function (response) {
        _this2.isLoading = 0;
        _this2.newsletters = response.data;
        _this2.newsletters.sno = _this2.getSerialNumber(_this2.newsletters); //this.tips.per_page * (this.tips.current_page - 1)
      });
    },
    searchFunction: function searchFunction() {
      var _this3 = this;

      var search = this.search;
      this.isLoading = 1;
      axios.post('/api/admin/newsletter/search', {
        search: search
      }).then(function (response) {
        _this3.newsletters = response.data;
        _this3.newsletters.datalength = _this3.newsletters.data.length;
        _this3.isLoading = 0;
        _this3.newsletters.sno = _this3.getSerialNumber(_this3.newsletters); //this.tips.per_page * (this.tips.current_page - 1)
      })["catch"](function (error) {
        _this3.isLoading = 0;
      });
    },
    getSerialNumber: function getSerialNumber(data) {
      console.log(data);
      return data.per_page * (data.current_page - 1);
    },
    deleteItem: function deleteItem(newsletter) {
      var _this4 = this;

      var index = this.newsletters.data.indexOf(newsletter);
      var amount = newsletter.amount;
      var id = newsletter.id;
      var r = confirm("Do you want to delete!");

      if (r == true) {
        this.isLoading = 1;
        axios["delete"]('/api/admin/newsletter/' + id, {
          amount: amount
        }).then(function (res) {
          if (res.status == 200) {
            _this4.newsletters.data.splice(index, 1);

            alert(res.data.message);
          } else {
            alert(res.data.message);
          }

          _this4.isLoading = 0;
        });
      }
    },
    hideMode: function hideMode() {
      this.errors = [];
      this.isLoading = 0;
    },
    getDateFormat: function getDateFormat(date) {
      var todayDate = new Date(date);
      var format = "AM";
      var hour = todayDate.getHours();
      var min = todayDate.getMinutes();

      if (hour > 11) {
        format = "PM";
      }

      if (hour > 12) {
        hour = hour - 12;
      }

      if (hour == 0) {
        hour = 12;
      }

      if (min < 10) {
        min = "0" + min;
      }

      var month = todayDate.toLocaleString('default', {
        month: 'long'
      }); // var day = todayDate.getDay();

      var day = todayDate.getDate() < 10 ? '0' + todayDate.getDate() : todayDate.getDate();
      var monthDigit = todayDate.getMonth() + 1 < 10 ? '0' + (todayDate.getMonth() + 1) : todayDate.getMonth() + 1;
      return monthDigit + "-" + day + "-" + todayDate.getFullYear() + ", " + hour + ":" + min + " " + format; // return  todayDate.getDate() + "-" + (todayDate.getMonth()+1) + "-" +  todayDate.getFullYear()+", "+hour+":"+min+" "+format;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/order_tax/Index.vue?vue&type=script&lang=js&":
/*!***************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/order_tax/Index.vue?vue&type=script&lang=js& ***!
  \***************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      orderTaxData: {},
      search: "",
      isLoading: 0,
      start_date: "",
      end_date: "",
      countries: {}
    };
  },
  beforeMount: function beforeMount() {
    this.getResults(1);
  },
  methods: {
    getResults: function getResults() {
      var _this = this;

      var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      this.getCountries();
      this.isLoading = 1;
      var search = this.search;
      var start_date = this.start_date;
      var end_date = this.end_date;
      axios.get('/api/admin/order-tax?page=' + page + '&search=' + search + '&start_date=' + start_date + '&end_date=' + end_date).then(function (response) {
        _this.isLoading = 0;
        _this.orderTaxData = response.data;
        _this.orderTaxData.datalength = _this.orderTaxData.data.length;
        _this.orderTaxData.sno = _this.getSerialNumber(_this.orderTaxData);
      });
    },

    /*searchFunction(){
        this.search = this.search;
        this.getResults(1);  
    },*/
    onSelectCode: function onSelectCode(e) {
      this.search = e.target.value;
      this.getResults(1);
    },
    startDateChange: function startDateChange(e) {
      // console.log(e.target.value);
      this.start_date = e.target.value;
      this.getResults(1);
    },
    endDateChange: function endDateChange(e) {
      // console.log(e.target.value);
      this.end_date = e.target.value;
      this.getResults(1);
    },
    getSerialNumber: function getSerialNumber(data) {
      return data.per_page * (data.current_page - 1);
    },
    getCountries: function getCountries() {
      var _this2 = this;

      axios.get('/api/getCountries').then(function (response) {
        _this2.countries = response.data; // console.log(response);
      });
    },
    getDateFormat: function getDateFormat(date) {
      var todayDate = new Date(date);
      var format = "AM";
      var hour = todayDate.getHours();
      var min = todayDate.getMinutes();

      if (hour > 11) {
        format = "PM";
      }

      if (hour > 12) {
        hour = hour - 12;
      }

      if (hour == 0) {
        hour = 12;
      }

      if (min < 10) {
        min = "0" + min;
      }

      var month = todayDate.toLocaleString('default', {
        month: 'long'
      }); // var day = todayDate.getDay();

      var day = todayDate.getDate() < 10 ? '0' + todayDate.getDate() : todayDate.getDate();
      var monthDigit = todayDate.getMonth() + 1 < 10 ? '0' + (todayDate.getMonth() + 1) : todayDate.getMonth() + 1;
      return monthDigit + "-" + day + "-" + todayDate.getFullYear() + ", " + hour + ":" + min + " " + format; // return  todayDate.getDate() + "-" + (todayDate.getMonth()+1) + "-" +  todayDate.getFullYear()+", "+hour+":"+min+" "+format;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=script&lang=js&":
/*!***********************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=script&lang=js& ***!
  \***********************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  props: ['tip', 'errors'],
  data: function data() {
    return {
      attachment: null
    };
  },
  computed: {
    data: function data() {
      if (this.tip != null) {
        this.tip.isDisabled = false;
        this.tip.isLoadingButtonUpdate = "Update";
        return this.tip;
      }

      return {
        amount: "",
        id: ""
      };
    }
  },
  methods: {
    uploadFile: function uploadFile(event) {
      this.$emit('close', this.tip);
    },
    hideMode: function hideMode() {
      this.$emit('hide');
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/product_comments/Index.vue?vue&type=script&lang=js&":
/*!**********************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/product_comments/Index.vue?vue&type=script&lang=js& ***!
  \**********************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Editor */ "./resources/assets/js/components/admin/product_comments/Editor.vue");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sweetalert2 */ "./node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_1__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      tips: {},
      errors: [],
      isLoading: 0,
      search: "",
      product_id: '',
      sortby: '',
      comments: {},
      productList: []
    };
  },
  components: {
    Modal: _Editor__WEBPACK_IMPORTED_MODULE_0__["default"]
  },
  beforeMount: function beforeMount() {
    this.getProductList();
    this.getResults(1);
  },
  methods: {
    getResults: function getResults() {
      var _this = this;

      var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      this.isLoading = 1;
      var search = this.search;
      var product_id = this.product_id;
      var sortby = this.sortby;
      axios.get('/api/admin/product-comment?page=' + page + '&search=' + search + '&sortby=' + sortby + '&filter=' + product_id).then(function (response) {
        _this.isLoading = 0;
        _this.comments = response.data;
        console.log(_this.comments);
        _this.comments.datalength = _this.comments.data.length;
        _this.comments.sno = _this.getSerialNumber(_this.comments);
      });
    },
    searchFunction: function searchFunction() {
      this.search = this.search;
      this.getResults(1);
    },
    getSerialNumber: function getSerialNumber(data) {
      return data.per_page * (data.current_page - 1);
    },
    onFilterChange: function onFilterChange(e) {
      this.product_id = e.target.value;
      this.getResults(1);
    },
    getProductList: function getProductList() {
      var _this2 = this;

      axios.get('/api/admin/getProductList').then(function (response) {
        _this2.productList = response.data;
      });
    },
    deleteItem: function deleteItem(comment) {
      var _this3 = this;

      var index = this.comments.data.indexOf(comment);
      var id = comment.id;
      sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire({
        title: "Are you sure?",
        text: "Do you want to delete!",
        icon: "warning",
        showCancelButton: true,
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Yes, delete it!'
      }).then(function (willDelete) {
        if (willDelete.isConfirmed == true) {
          // this.isLoading=1
          axios["delete"]('/api/admin/product-comment/' + id).then(function (res) {
            if (res.status == 200) {
              _this3.comments.data.splice(index, 1);

              sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire("Deleted!", res.data.message, "success");
              _this3.isLoading = 0;
            } else {
              sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire(res.data.message);
              _this3.isLoading = 0;
            }

            _this3.isLoading = 0;
          });
        }
      });
    },

    /*deleteItem(comment) {
        let index = this.comments.data.indexOf(comment)
        let id = comment.id
        let r = confirm("Do you want to delete!")
        if(r == true)
        {
            this.isLoading=1
            axios.delete('/api/admin/product-comment/'+id).then((res)=>{
                if(res.status==200)
                {   
                    this.comments.data.splice(index, 1)
                    alert(res.data.message);
                }
                else{
                    alert(res.data.message);
                }
                 this.isLoading=0
            })
        }
    },*/
    hideMode: function hideMode() {
      this.errors = [];
      this.isLoading = 0;
    },
    getDateFormat: function getDateFormat(date) {
      var todayDate = new Date(date);
      var format = "AM";
      var hour = todayDate.getHours();
      var min = todayDate.getMinutes();

      if (hour > 11) {
        format = "PM";
      }

      if (hour > 12) {
        hour = hour - 12;
      }

      if (hour == 0) {
        hour = 12;
      }

      if (min < 10) {
        min = "0" + min;
      }

      var month = todayDate.toLocaleString('default', {
        month: 'long'
      }); // var day = todayDate.getDay();

      var day = todayDate.getDate() < 10 ? '0' + todayDate.getDate() : todayDate.getDate();
      var monthDigit = todayDate.getMonth() + 1 < 10 ? '0' + (todayDate.getMonth() + 1) : todayDate.getMonth() + 1;
      return monthDigit + "-" + day + "-" + todayDate.getFullYear() + ", " + hour + ":" + min + " " + format; // return  todayDate.getDate() + "-" + (todayDate.getMonth()+1) + "-" +  todayDate.getFullYear()+", "+hour+":"+min+" "+format;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tags/Editor.vue?vue&type=script&lang=js&":
/*!***********************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tags/Editor.vue?vue&type=script&lang=js& ***!
  \***********************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  props: ['tag', 'errors'],
  data: function data() {
    return {
      attachment: null
    };
  },
  computed: {
    data: function data() {
      if (this.tag != null) {
        this.tag.isDisabled = false;
        this.tag.isLoadingButtonUpdate = "Update";
        console.log(this.tag);
        return this.tag;
      }

      return {
        name: ""
      };
    }
  },
  methods: {
    uploadFile: function uploadFile(event) {
      this.$emit('close', this.tag);
    },
    hideMode: function hideMode() {
      this.$emit('hide');
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tags/Index.vue?vue&type=script&lang=js&":
/*!**********************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tags/Index.vue?vue&type=script&lang=js& ***!
  \**********************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Editor */ "./resources/assets/js/components/admin/tags/Editor.vue");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sweetalert2 */ "./node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_1__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      tags: {},
      editingItem: null,
      addingTag: null,
      errors: [],
      isLoading: 0,
      search: ""
    };
  },
  components: {
    Modal: _Editor__WEBPACK_IMPORTED_MODULE_0__["default"]
  },
  beforeMount: function beforeMount() {
    var _this = this;

    // this.searchFunction()
    this.getResults(1);
    axios.get('/api/admin/tags').then(function (response) {
      _this.tags = response.data;
      _this.tags.datalength = _this.tags.data.length;
      _this.tags.sno = _this.getSerialNumber(_this.tags);
    });
  },
  methods: {
    getResults: function getResults() {
      var _this2 = this;

      var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      var search = this.search;
      this.isLoading = 1;
      axios.get('/api/admin/tags?page=' + page + '&search=' + search).then(function (response) {
        console.log(response.data);
        _this2.isLoading = 0;
        _this2.tags = response.data;
        _this2.tags.sno = _this2.getSerialNumber(_this2.tags);
      });
    },
    searchFunction: function searchFunction() {
      var _this3 = this;

      this.isLoading = 1;
      var search = this.search;
      axios.post('/api/admin/tags/search', {
        search: search
      }).then(function (response) {
        _this3.tags = response.data;
        _this3.tags.datalength = _this3.tags.data.length;
        _this3.isLoading = 0;
        _this3.tags.sno = _this3.getSerialNumber(_this3.tags);
      })["catch"](function (error) {
        _this3.isLoading = 0;
      });
    },
    getSerialNumber: function getSerialNumber(data) {
      console.log(data);
      return data.per_page * (data.current_page - 1);
    },
    newTag: function newTag() {
      this.addingTag = {
        name: null,
        submit_button_text: 'add',
        heading: 'add',
        isDisabled: false,
        isLoadingButtonSave: "Save"
      };
    },
    endEditing: function endEditing(tag) {
      var _this4 = this;

      var index = this.tags.data.indexOf(tag);
      var name = tag.name;
      this.errors = [];
      this.isLoading = 1;
      tag.isDisabled = true;
      tag.isLoadingButtonUpdate = 'Update <i class="fas fa-spinner fa-spin"></i>';
      axios.put("/api/admin/tags/".concat(tag.id), {
        name: name
      }).then(function (response) {
        location.reload();
        _this4.editingItem = null;
        _this4.errors = [];
        _this4.tags[index] = tag;
        _this4.isLoading = 0;
        _this4.editingItem.isDisabled = false;
        _this4.editingItem.isLoadingButtonUpdate = "Update";
      })["catch"](function (error) {
        if (error.response != undefined) {
          _this4.errors = error.response.data.errors;
          _this4.editingItem.isDisabled = false;
          _this4.editingItem.isLoadingButtonUpdate = "Update";
          console.log(_this4.errors);
          _this4.isLoading = 0;
        }
      });
    },
    addTag: function addTag(tag) {
      var _this5 = this;

      this.errors = [];
      var name = tag.name;
      this.isLoading = 1;
      tag.isDisabled = true;
      tag.isLoadingButtonSave = 'Save <i class="fas fa-spinner fa-spin"></i>';
      axios.post("/api/admin/tags", {
        name: name
      }).then(function (response) {
        location.reload();
        _this5.addingTag = null;
        _this5.errors = [];
        _this5.isLoading = 0;

        _this5.tags.push(response.data.data);

        _this5.addingTag.isDisabled = false;
        _this5.addingTag.isLoadingButtonSave = "Save";
      })["catch"](function (error) {
        if (error.response != undefined) {
          _this5.errors = error.response.data.errors;
          _this5.addingTag.isDisabled = false;
          _this5.addingTag.isLoadingButtonSave = "Save";
          console.log(_this5.errors);
          _this5.isLoading = 0;
        }
      });
    },
    deleteItem: function deleteItem(tag) {
      var _this6 = this;

      var index = this.tags.data.indexOf(tag);
      var name = tag.name;
      var id = tag.id;
      sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire({
        title: "Are you sure?",
        text: "Do you want to delete!",
        icon: "warning",
        showCancelButton: true,
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Yes, delete it!'
      }).then(function (willDelete) {
        if (willDelete.isConfirmed == true) {
          // this.isLoading=1
          axios["delete"]('/api/admin/tags/' + id, {
            name: name
          }).then(function (res) {
            if (res.status == 200) {
              _this6.tags.data.splice(index, 1);

              sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire("Deleted!", res.data.message, "success");
              _this6.isLoading = 0;
            } else {
              sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire(res.data.message);
              _this6.isLoading = 0;
            }

            _this6.isLoading = 0;
          });
        }
      });
    },

    /*deleteItem(tag) {
        let index = this.tags.data.indexOf(tag)
        let name = tag.name
        let id = tag.id
        let r = confirm("Do you want to delete!")
        if(r == true)
        {
         this.isLoading=1
            axios.delete('/api/admin/tags/'+id, {name}).then((res)=>{
                if(res.status==200)
                {
                    this.tags.data.splice(index, 1)
                    alert(res.data.message);
                }
                else{
                    alert(res.data.message);
                }
                 this.isLoading=0
            })
        }
      },*/
    hideMode: function hideMode() {
      this.addingTag = null;
      this.editingItem = null;
      this.errors = [];
      this.isLoading = 0;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tax/Editor.vue?vue&type=script&lang=js&":
/*!**********************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tax/Editor.vue?vue&type=script&lang=js& ***!
  \**********************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  props: ['tax', 'errors', 'countries'],
  data: function data() {
    return {
      attachment: null
    };
  },
  computed: {
    data: function data() {
      if (this.tax != null) {
        this.tax.isDisabled = false;
        this.tax.isLoadingButtonUpdate = "Update";
        return this.tax;
      }

      return {
        name: "",
        country_code: "",
        state_code: "",
        rate: ""
      };
    }
  },
  methods: {
    uploadFile: function uploadFile(event) {
      this.$emit('close', this.tax);
    },
    hideMode: function hideMode() {
      this.$emit('hide');
    },
    selectCountryCode: function selectCountryCode(e) {
      this.tax.country_code = e.target.value;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tax/Index.vue?vue&type=script&lang=js&":
/*!*********************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tax/Index.vue?vue&type=script&lang=js& ***!
  \*********************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Editor */ "./resources/assets/js/components/admin/tax/Editor.vue");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sweetalert2 */ "./node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_1__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      taxs: {},
      editingItem: null,
      addingTax: null,
      errors: [],
      isLoading: 0,
      search: "",
      countries: {}
    };
  },
  components: {
    Modal: _Editor__WEBPACK_IMPORTED_MODULE_0__["default"]
  },
  beforeMount: function beforeMount() {
    // this.searchFunction()
    this.getCountries();
    this.getResults(1);
    /*axios.get('/api/admin/tax')
        .then((response) => { 
            this.taxs = response.data
            this.taxs.datalength = this.taxs.data.length
            this.taxs.sno = this.getSerialNumber(this.taxs) ;
        })*/
  },
  methods: {
    getResults: function getResults() {
      var _this = this;

      var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      this.isLoading = 1;
      var search = this.search;
      axios.get('/api/admin/tax?page=' + page + '&search=' + search).then(function (response) {
        _this.isLoading = 0;
        _this.taxs = response.data.tax;
        _this.countries = response.data.countries; // console.log(this.countries);

        _this.taxs.datalength = _this.taxs.data.length;
        _this.taxs.sno = _this.getSerialNumber(_this.taxs);
      });
    },
    searchFunction: function searchFunction() {
      var _this2 = this;

      var search = this.search;
      this.isLoading = 1;
      axios.post('/api/admin/tax/search', {
        search: search
      }).then(function (response) {
        _this2.taxs = response.data.tax;
        _this2.isLoading = 0;
        _this2.taxs.datalength = _this2.taxs.data.length;
        _this2.taxs.sno = _this2.getSerialNumber(_this2.taxs);
      })["catch"](function (error) {
        _this2.isLoading = 0;
      });
    },
    getCountries: function getCountries() {
      var _this3 = this;

      axios.get('/api/getCountries').then(function (response) {
        _this3.countries = response.data; // console.log(response);
      });
    },
    getSerialNumber: function getSerialNumber(data) {
      return data.per_page * (data.current_page - 1);
    },
    newTax: function newTax() {
      this.addingTax = {
        name: null,
        country_code: null,
        state_code: null,
        rate: null,
        submit_button_text: 'add',
        heading: 'add',
        isDisabled: false,
        isLoadingButtonSave: "Save"
      };
    },
    endEditing: function endEditing(tax) {
      var _this4 = this;

      var index = this.taxs.data.indexOf(tax);
      var name = tax.name;
      var country_code = tax.country_code;
      var state_code = tax.state_code;
      var rate = tax.rate;
      this.errors = [];
      this.isLoading = 1;
      tax.isDisabled = true;
      tax.isLoadingButtonUpdate = 'Update <i class="fas fa-spinner fa-spin"></i>';
      axios.put("/api/admin/tax/".concat(tax.id), {
        name: name,
        country_code: country_code,
        state_code: state_code,
        rate: rate
      }).then(function (response) {
        location.reload();
        _this4.editingItem = null;
        _this4.errors = [];
        _this4.taxs[index] = tax;
        _this4.isLoading = 0;
        _this4.editingItem.isDisabled = false;
        _this4.editingItem.isLoadingButtonUpdate = "Update";
      })["catch"](function (error) {
        if (error.response != undefined) {
          _this4.errors = error.response.data.errors;
          console.log(_this4.errors);
          _this4.isLoading = 0;
          _this4.editingItem.isDisabled = false;
          _this4.editingItem.isLoadingButtonUpdate = "Update";
        }
      });
    },
    addTax: function addTax(tax) {
      var _this5 = this;

      this.errors = [];
      var name = tax.name;
      var country_code = tax.country_code;
      var state_code = tax.state_code;
      var rate = tax.rate;
      this.isLoading = 1;
      tax.isDisabled = true;
      tax.isLoadingButtonSave = 'Save <i class="fas fa-spinner fa-spin"></i>';
      axios.post("/api/admin/tax", {
        name: name,
        country_code: country_code,
        state_code: state_code,
        rate: rate
      }).then(function (response) {
        location.reload();
        _this5.addingTax = null;
        _this5.errors = [];
        _this5.isLoading = 0;

        _this5.taxs.push(response.data.data);

        _this5.addingTax.isDisabled = false;
        _this5.addingTax.isLoadingButtonSave = "Save";
      })["catch"](function (error) {
        if (error.response != undefined) {
          _this5.errors = error.response.data.errors;
          _this5.addingTax.isDisabled = false;
          _this5.addingTax.isLoadingButtonSave = "Save";
          console.log(_this5.errors);
          _this5.isLoading = 0;
        }
      });
    },
    deleteItem: function deleteItem(tax) {
      var _this6 = this;

      var index = this.taxs.data.indexOf(tax);
      var name = tax.name;
      var id = tax.id;
      sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire({
        title: "Are you sure?",
        text: "Do you want to delete!",
        icon: "warning",
        showCancelButton: true,
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Yes, delete it!'
      }).then(function (willDelete) {
        if (willDelete.isConfirmed == true) {
          axios["delete"]('/api/admin/tax/' + id, {
            name: name
          }).then(function (res) {
            if (res.status == 200) {
              _this6.taxs.data.splice(index, 1);

              sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire("Deleted!", res.data.message, "success");
            } else {
              sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire(res.data.message);
            }

            _this6.isLoading = 0;
          });
        }
      });
    },

    /*deleteItem(tax) {
        let index = this.taxs.data.indexOf(tax)
        let name = tax.name
        let id = tax.id
        let r = confirm("Do you want to delete!")
        if(r == true)
        {
         this.isLoading=1
            axios.delete('/api/admin/tax/'+id, {name}).then((res)=>{
                if(res.status==200)
                {   
                    this.taxs.data.splice(index, 1)
                  
                    alert(res.data.message);
                }
                else{
                    alert(res.data.message);
                }
                 this.isLoading=0
            })
        }
    },*/
    hideMode: function hideMode() {
      this.addingTax = null;
      this.editingItem = null;
      this.errors = [];
      this.isLoading = 0;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tip_history/Index.vue?vue&type=script&lang=js&":
/*!*****************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tip_history/Index.vue?vue&type=script&lang=js& ***!
  \*****************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
// import Modal from './Editor'
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      tip_history: {},
      errors: [],
      isLoading: 0,
      search: ""
    };
  },
  // components: {Modal},
  beforeMount: function beforeMount() {
    var _this = this;

    this.getResults(1);
    this.isLoading = 1;
    axios.get('/api/admin/tip-history').then(function (response) {
      _this.isLoading = 0;
      _this.tip_history = response.data;
      _this.tip_history.datalength = _this.tip_history.data.length;
      _this.tip_history.sno = _this.getSerialNumber(_this.tip_history);
    });
  },
  methods: {
    getResults: function getResults() {
      var _this2 = this;

      var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      this.isLoading = 1;
      var search = this.search;
      axios.get('/api/admin/tip-history?page=' + page + '&search=' + search).then(function (response) {
        _this2.isLoading = 0;
        _this2.tip_history = response.data;
        _this2.tip_history.sno = _this2.getSerialNumber(_this2.tip_history); //this.tips.per_page * (this.tips.current_page - 1)
      });
    },
    searchFunction: function searchFunction() {
      var _this3 = this;

      var search = this.search;
      this.isLoading = 1;
      axios.post('/api/admin/tip-history/search', {
        search: search
      }).then(function (response) {
        _this3.tip_history = response.data;
        _this3.tip_history.datalength = _this3.tip_history.data.length;
        _this3.isLoading = 0;
        _this3.tip_history.sno = _this3.getSerialNumber(_this3.tip_history); //this.tips.per_page * (this.tips.current_page - 1)
      })["catch"](function (error) {
        _this3.isLoading = 0;
      });
    },
    getSerialNumber: function getSerialNumber(data) {
      console.log(data);
      return data.per_page * (data.current_page - 1);
    },
    getDateFormat: function getDateFormat(date) {
      var todayDate = new Date(date);
      var format = "AM";
      var hour = todayDate.getHours();
      var min = todayDate.getMinutes();

      if (hour > 11) {
        format = "PM";
      }

      if (hour > 12) {
        hour = hour - 12;
      }

      if (hour == 0) {
        hour = 12;
      }

      if (min < 10) {
        min = "0" + min;
      }

      var month = todayDate.toLocaleString('default', {
        month: 'long'
      });
      var day = todayDate.getDay();
      var day = todayDate.getDate() < 10 ? '0' + todayDate.getDate() : todayDate.getDate();
      var monthDigit = todayDate.getMonth() + 1 < 10 ? '0' + (todayDate.getMonth() + 1) : todayDate.getMonth() + 1;
      return monthDigit + "-" + day + "-" + todayDate.getFullYear() + ", " + hour + ":" + min + " " + format; // return  todayDate.getDate() + "-" + (todayDate.getMonth()+1) + "-" +  todayDate.getFullYear()+", "+hour+":"+min+" "+format;
    },

    /*deleteItem(inquiry) {
        let index = this.inquirys.data.indexOf(inquiry)
        let amount = inquiry.amount
        let id = inquiry.id
        let r = confirm("Do you want to delete!")
        if(r == true)
        {
            this.isLoading=1
            axios.delete('/api/inquiry/'+id, {amount}).then((res)=>{
                if(res.status==200)
                {   
                    this.inquirys.data.splice(index, 1)
                    alert(res.data.message);
                }
                else{
                    alert(res.data.message);
                }
                 this.isLoading=0
            })
        }
    },*/
    hideMode: function hideMode() {
      this.errors = [];
      this.isLoading = 0;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tips/Editor.vue?vue&type=script&lang=js&":
/*!***********************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tips/Editor.vue?vue&type=script&lang=js& ***!
  \***********************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  props: ['tip', 'errors'],
  data: function data() {
    return {
      attachment: null
    };
  },
  computed: {
    data: function data() {
      if (this.tip != null) {
        this.tip.isDisabled = false;
        this.tip.isLoadingButtonUpdate = "Update";
        return this.tip;
      }

      return {
        amount: "",
        id: ""
      };
    }
  },
  methods: {
    uploadFile: function uploadFile(event) {
      this.$emit('close', this.tip);
    },
    hideMode: function hideMode() {
      this.$emit('hide');
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tips/Index.vue?vue&type=script&lang=js&":
/*!**********************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tips/Index.vue?vue&type=script&lang=js& ***!
  \**********************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Editor */ "./resources/assets/js/components/admin/tips/Editor.vue");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sweetalert2 */ "./node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_1__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      tips: {},
      editingItem: null,
      addingTip: null,
      errors: [],
      isLoading: 0,
      search: "",
      sortBy: 'id',
      sortDir: 'asc'
    };
  },
  components: {
    Modal: _Editor__WEBPACK_IMPORTED_MODULE_0__["default"]
  },
  beforeMount: function beforeMount() {
    var _this = this;

    this.getResults(1);
    this.isLoading = 1;
    axios.get('/api/admin/tips').then(function (response) {
      _this.isLoading = 0;
      _this.tips = response.data;
      _this.tips.datalength = _this.tips.data.length;
      _this.tips.sno = _this.getSerialNumber(_this.tips); //this.tips.per_page * (this.tips.current_page - 1)

      console.log(response);
    });
  },
  methods: {
    getResults: function getResults() {
      var _this2 = this;

      var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      this.isLoading = 1;
      var search = this.search;
      var sortBy = this.sortBy;
      var sortDir = this.sortDir;
      axios.get('/api/admin/tips?page=' + page + '&search=' + search + '&sortBy=' + sortBy + '&sortDir=' + sortDir).then(function (response) {
        _this2.isLoading = 0;
        _this2.tips = response.data;
        _this2.tips.sno = _this2.getSerialNumber(_this2.tips); //this.tips.per_page * (this.tips.current_page - 1)
      });
    },
    searchFunction: function searchFunction() {
      var _this3 = this;

      var search = this.search;
      this.isLoading = 1;
      axios.post('/api/admin/tips/search', {
        search: search
      }).then(function (response) {
        _this3.tips = response.data;
        _this3.tips.datalength = _this3.tips.data.length;
        _this3.isLoading = 0;
        _this3.tips.sno = _this3.getSerialNumber(_this3.tips); //this.tips.per_page * (this.tips.current_page - 1)
      })["catch"](function (error) {
        _this3.isLoading = 0;
      });
    },
    getSerialNumber: function getSerialNumber(data) {
      return data.per_page * (data.current_page - 1);
    },
    newTip: function newTip() {
      this.errors = [];
      this.addingTip = {
        amount: null,
        submit_button_text: 'add',
        heading: 'add',
        isDisabled: false,
        isLoadingButtonSave: "Save"
      };
    },
    endEditing: function endEditing(tip) {
      var _this4 = this;

      var index = this.tips.data.indexOf(tip);
      var amount = tip.amount;
      this.errors = [];
      this.isLoading = 1;
      tip.isDisabled = true;
      tip.isLoadingButtonUpdate = 'Update <i class="fas fa-spinner fa-spin"></i>';
      axios.put("/api/admin/tips/".concat(tip.id), {
        amount: amount
      }).then(function (response) {
        location.reload();
        _this4.editingItem = null;
        _this4.errors = [];
        _this4.isLoading = 0;
        _this4.tips[index] = tip;
        _this4.editingItem.isDisabled = false;
        _this4.editingItem.isLoadingButtonUpdate = "Update";
      })["catch"](function (error) {
        if (error.response != undefined) {
          _this4.errors = error.response.data.errors;
          _this4.editingItem.isDisabled = false;
          _this4.editingItem.isLoadingButtonUpdate = "Update";
          _this4.isLoading = 0;
        }
      });
    },
    addTip: function addTip(tip) {
      var _this5 = this;

      this.errors = [];
      var amount = tip.amount;
      this.isLoading = 1;
      tip.isDisabled = true;
      tip.isLoadingButtonSave = 'Save <i class="fas fa-spinner fa-spin"></i>';
      axios.post("/api/admin/tips", {
        amount: amount
      }).then(function (response) {
        location.reload();
        _this5.addingTip = null;
        _this5.errors = [];
        _this5.isLoading = 0;

        _this5.tips.push(response.data);

        _this5.addingTip.isDisabled = false;
        _this5.addingTip.isLoadingButtonSave = "Save";
      })["catch"](function (error) {
        if (error.response != undefined) {
          _this5.addingTip.isDisabled = false;
          _this5.addingTip.isLoadingButtonSave = "Save";
          _this5.errors = error.response.data.errors;
          _this5.isLoading = 0;
        } // console.log(this.errors);

      });
    },
    deleteItem: function deleteItem(tip) {
      var _this6 = this;

      var index = this.tips.data.indexOf(tip);
      var amount = tip.amount;
      var id = tip.id; // this.isLoading=1

      sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire({
        title: "Are you sure?",
        text: "Do you want to delete!",
        icon: "warning",
        showCancelButton: true,
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Yes, delete it!'
      }).then(function (willDelete) {
        if (willDelete.isConfirmed == true) {
          // this.isLoading=1
          axios["delete"]('/api/admin/tips/' + id, {
            amount: amount
          }).then(function (res) {
            if (res.status == 200) {
              _this6.tips.data.splice(index, 1);

              sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire("Deleted!", res.data.message, "success");
            } else {
              sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire(res.data.message);
            }

            _this6.isLoading = 0;
          });
        }
      });
    },

    /*sorting(sortBy){
        this.clear_icon();
        this.sortBy = sortBy;
        if(this.sortDir=="asc")
        {
            this.sortDir='desc'  
            $('#'+this.sortBy+'_icon').html('<span style="opacity:0.5" class="opacity_5 fa fa-caret-up"></span><span class="fa fa-caret-down"></span>');
        }
        else{
            this.sortDir='asc'   
            $('#'+this.sortBy+'_icon').html('<span class=" fa fa-caret-up"></span><span style="opacity:0.5" class="fa fa-caret-down opacity_5"></span>');
        }
        this.getResults(1);
        // alert(sortBy);
    },*/
    clear_icon: function clear_icon() {
      $('#amount_icon').html('<span style="opacity:0.5" class=" fa fa-caret-up"></span><span style="opacity:0.5" class="fa fa-caret-down opacity_5"></span>');
    },

    /*deleteItem(tip) {
        let index = this.tips.data.indexOf(tip)
        let amount = tip.amount
        let id = tip.id
        let r = confirm("Do you want to delete!")
        if(r == true)
        {
            this.isLoading=1
            axios.delete('/api/admin/tips/'+id, {amount}).then((res)=>{
                if(res.status==200)
                {   
                    this.tips.data.splice(index, 1)
                    alert(res.data.message);
                }
                else{
                    alert(res.data.message);
                }
                 this.isLoading=0
            })
        }
    },*/
    hideMode: function hideMode() {
      this.addingTip = null;
      this.editingItem = null;
      this.errors = [];
      this.isLoading = 0;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/Banner.vue?vue&type=script&lang=js&":
/*!***************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/home/Banner.vue?vue&type=script&lang=js& ***!
  \***************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {};
  },
  components: {},
  beforeMount: function beforeMount() {
    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');
  },
  methods: {
    goToPremium: function goToPremium(type) {
      $('.homepage-banner').scrollTop($('.homepage-banner')[0].scrollHeight); // this.$emit("setPremiumVideoComponent", type);

      this.$router.push('/' + '?status=' + type);
      location.reload();
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/BuyNow.vue?vue&type=script&lang=js&":
/*!***************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/home/BuyNow.vue?vue&type=script&lang=js& ***!
  \***************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {};
  },
  components: {},
  beforeMount: function beforeMount() {
    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');
  },
  methods: {
    goToPremium: function goToPremium(type) {
      // this.$emit("setPremiumVideoComponent", type);
      this.$router.push('/' + '?status=' + type);
      location.reload();
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/BuyTip.vue?vue&type=script&lang=js&":
/*!***************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/home/BuyTip.vue?vue&type=script&lang=js& ***!
  \***************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _BuyNow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BuyNow */ "./resources/assets/js/components/front-end/home/BuyNow.vue");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sweetalert2 */ "./node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_1__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      tips: [],
      tipsValue: '',
      sendTip: [],
      BuyNowComponent: null,
      paypal_amount: '0.00',
      paypal: {
        sandbox: paypal_client_id,
        production: ''
      }
    };
  },
  components: {
    BuyNow: _BuyNow__WEBPACK_IMPORTED_MODULE_0__["default"]
  },
  beforeMount: function beforeMount() {
    var _this = this;

    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');
    axios.get('/api/send-tip').then(function (response) {
      _this.tips = response.data;
    })["catch"](function (error) {});
    this.BuyNowComponent = _BuyNow__WEBPACK_IMPORTED_MODULE_0__["default"];
  },
  methods: {
    paymentAuthorized: function paymentAuthorized(data) {
      console.log(data);
    },
    paymentCompleted: function paymentCompleted(data) {
      console.log(data);
      this.SendATip(data.state, data.id);
    },
    paymentCancelled: function paymentCancelled(data) {
      console.log(data);
    },
    send_tip_valid: function send_tip_valid() {
      if (this.sendTip.length == 0) {
        // alert('Please select tip');
        this.alertMessageShow('Please select tip', 'warning');
      }
    },
    SendATip: function SendATip(transaction_status, transaction_id) {
      var _this2 = this;

      if (this.sendTip.length == 0) {
        // alert('Please select tip');
        this.alertMessageShow('Please select tip', 'warning');
      } else {
        var id = this.sendTip.id;
        axios.post("/api/send-tip", {
          id: id,
          transaction_status: transaction_status,
          transaction_id: transaction_id
        }).then(function (response) {
          // alert(response.data.message);
          _this2.alertMessageShow(response.data.message, 'success'); // location.reload();

        })["catch"](function (error) {
          if (error.response != undefined) {} // console.log(this.errors);

        });
      }
    },
    OnTipAmountSelect: function OnTipAmountSelect(tip) {
      this.sendTip = tip;
      this.paypal_amount = tip.amount + ".00";
      $('.send_tip_button').html('Send Tip ' + '$' + tip.amount);
    },
    alertMessageShow: function alertMessageShow(message, type) {
      sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire({
        position: 'top',
        icon: type,
        title: message,
        showConfirmButton: true,
        timer: 2000,
        toast: true
      }); // $('.swal2-container').css('z-index',1000000000000000);
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/Indx.vue?vue&type=script&lang=js&":
/*!*************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/home/Indx.vue?vue&type=script&lang=js& ***!
  \*************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Banner__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Banner */ "./resources/assets/js/components/front-end/home/Banner.vue");
/* harmony import */ var _SideBar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SideBar */ "./resources/assets/js/components/front-end/home/SideBar.vue");
/* harmony import */ var _BuyNow__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BuyNow */ "./resources/assets/js/components/front-end/home/BuyNow.vue");
/* harmony import */ var _CommentModal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CommentModal */ "./resources/assets/js/components/front-end/home/CommentModal.vue");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! sweetalert2 */ "./node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_4__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//





/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      products: {},
      BannerComponent: null,
      SideBarComponent: null,
      BuyNowComponent: null,
      allfreepaid: 'all',
      sortby: '',
      category: '',
      tag: '',
      errors: [],
      productId: '',
      commentForm: {
        message: ""
      },
      isUserId: 0,
      isLoading: 0,
      searchText: '',
      page: 1,
      commentWithEmoji: '',
      cCode: '',
      paypal_amount: '10.00',
      paypal: {
        sandbox: paypal_client_id,
        production: ''
      }
    };
  },
  components: {
    Banner: _Banner__WEBPACK_IMPORTED_MODULE_0__["default"],
    SideBar: _SideBar__WEBPACK_IMPORTED_MODULE_1__["default"],
    BuyNow: _BuyNow__WEBPACK_IMPORTED_MODULE_2__["default"],
    Modal: _CommentModal__WEBPACK_IMPORTED_MODULE_3__["default"]
  },
  beforeMount: function beforeMount() {
    $('body').removeClass('login-area');
    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');

    if (localStorage.getItem('bigStore.user') != null) {
      var userLoginData = JSON.parse(localStorage.getItem('bigStore.user'));
      this.isUserId = userLoginData.id;
    }

    this.getCountryCode();
    this.getProducts();
    this.BannerComponent = _Banner__WEBPACK_IMPORTED_MODULE_0__["default"];
    this.SideBarComponent = _SideBar__WEBPACK_IMPORTED_MODULE_1__["default"];
    this.BuyNowComponent = _BuyNow__WEBPACK_IMPORTED_MODULE_2__["default"];
  },
  mounted: function mounted() {
    // if back button is pressed
    window.onpopstate = function (event) {
      location.reload(); // alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
    };
  },
  methods: {
    //---------------- Emoji code start -----------------------
    onInput: function onInput(event) {
      //event.data contains the value of the textarea
      this.commentWithEmoji = event.data;
    },
    clearTextarea: function clearTextarea() {
      this.$refs.emoji.clear();
    },
    //---------------- Emoji code End -------------------------------
    getProducts: function getProducts() {
      var _this = this;

      this.getResults(this.page); // var  page=1;
      // this.$emit('loadingIn',1);

      this.isLoading = 1;
      var searchParams = new URLSearchParams(window.location.search);
      var tag = this.tag;
      var category = this.category;
      var productId = this.productId;
      var allfreepaidStatus = this.allfreepaid;

      if (searchParams.has('tagId')) {
        tag = searchParams.get('tagId');
      }

      if (searchParams.has('categoryId')) {
        category = searchParams.get('categoryId');
      }

      if (searchParams.has('status')) {
        allfreepaidStatus = searchParams.get('status');
        this.allfreepaid = allfreepaidStatus;
      }

      var searchText = this.searchText;

      if (searchParams.has('search')) {
        searchText = searchParams.get('search');
      }

      var sortby = this.sortby;
      var url = '/api/products' + '?status=' + allfreepaidStatus + '&sortby=' + sortby + '&category=' + category + '&tag=' + tag + '&login=' + this.isUserId + '&productId=' + productId + '&search=' + searchText;
      axios.get(url).then(function (response) {
        var d = new Date();
        var currentDate = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
        _this.products = response.data;
        _this.isLoading = 0;

        if (tag) {
          _this.scrollTopOnProduct();
        }

        if (category) {
          _this.scrollTopOnProduct();
        }

        if (allfreepaidStatus != "") {
          _this.scrollTopOnProduct();
        }

        var productsAddData = _this.products.data;

        for (var i = 0; i < productsAddData.length; i++) {
          var sd = new Date(productsAddData[i].created_at);
          var created_date = sd.getFullYear() + "-" + (sd.getMonth() + 1) + "-" + sd.getDate();
          var day_start = new Date(created_date);
          var day_end = new Date(currentDate);
          var total_days = (day_end - day_start) / (1000 * 60 * 60 * 24);
          productsAddData[i].days = Math.round(total_days);
          productsAddData[i].orderPaid = _this.getOrderPaid(productsAddData[i].testt);
        }
      })["catch"](function (error) {
        _this.isLoading = 0;
      });
    },
    getOrderPaid: function getOrderPaid(dateText) {
      var todayDate = new Date();
      var format = "AM";
      var hour = todayDate.getHours();
      var min = todayDate.getMinutes();

      if (hour > 11) {
        format = "PM";
      }

      if (hour > 12) {
        hour = hour - 12;
      }

      if (hour == 0) {
        hour = 12;
      }

      if (min < 10) {
        min = "0" + min;
      }

      var month = todayDate.toLocaleString('default', {
        month: 'long'
      }); // var day = todayDate.getDay();

      var day = todayDate.getDate() < 10 ? '0' + todayDate.getDate() : todayDate.getDate();
      var monthDigit = todayDate.getMonth() + 1 < 10 ? '0' + (todayDate.getMonth() + 1) : todayDate.getMonth() + 1;
      var newDate = monthDigit + "-" + day + "-" + todayDate.getFullYear() + " " + hour + ":" + min;

      if (dateText > newDate) {
        return 1;
      } else {
        return 0;
      }

      ;
    },
    getResults: function getResults(page) {
      var _this2 = this;

      // this.$emit('loadingIn',1);
      this.page = page;
      this.isLoading = 1;
      var searchParams = new URLSearchParams(window.location.search);
      var tag = this.tag;
      var category = this.category;
      var productId = this.productId;
      var allfreepaidStatus = this.allfreepaid;

      if (searchParams.has('tagId')) {
        tag = searchParams.get('tagId');
      }

      if (searchParams.has('categoryId')) {
        category = searchParams.get('categoryId');
      }

      if (searchParams.has('status')) {
        allfreepaidStatus = searchParams.get('status');
        this.allfreepaid = allfreepaidStatus;
      }

      var searchText = this.searchText;

      if (searchParams.has('search')) {
        searchText = searchParams.get('search');
      }

      var sortby = this.sortby;
      var url = '/api/products' + '?status=' + allfreepaidStatus + '&sortby=' + sortby + '&category=' + category + '&tag=' + tag + '&login=' + this.isUserId + '&productId=' + productId + '&search=' + searchText + '&page=' + page;
      axios.get(url).then(function (response) {
        var d = new Date();
        var currentDate = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
        _this2.products = response.data;
        _this2.isLoading = 0;

        if (tag) {
          _this2.scrollTopOnProduct();
        }

        if (category) {
          _this2.scrollTopOnProduct();
        }

        if (allfreepaidStatus != "") {
          _this2.scrollTopOnProduct();
        }

        var productsAddData = _this2.products.data;

        for (var i = 0; i < productsAddData.length; i++) {
          var sd = new Date(productsAddData[i].created_at);
          var created_date = sd.getFullYear() + "-" + (sd.getMonth() + 1) + "-" + sd.getDate();
          var day_start = new Date(created_date);
          var day_end = new Date(currentDate);
          var total_days = (day_end - day_start) / (1000 * 60 * 60 * 24);
          productsAddData[i].days = Math.round(total_days);
          productsAddData[i].orderPaid = _this2.getOrderPaid(productsAddData[i].testt);
        }

        console.log(_this2.products.data);
      })["catch"](function (error) {
        _this2.isLoading = 0;
      });
    },
    sortFreePaid: function sortFreePaid(status) {
      this.allfreepaid = status;
      this.$router.push('/' + '?status=' + this.allfreepaid);
      this.getProducts();
    },
    getSelectSortBy: function getSelectSortBy(e) {
      this.sortby = e.target.value;
      this.getProducts();
    },
    getCategoryTagId: function getCategoryTagId(id, type) {
      if (type == "category") {
        this.category = id;
        this.tag = '';
        this.$router.push('/' + '?categoryId=' + this.category); // location.reload();

        this.getProducts();
      } else if (type == "tag") {
        this.tag = id;
        this.category = '';
        this.$router.push('/' + '?tagId=' + this.tag);
        this.getProducts();
      } // this.scrollTopOnProduct();

    },
    getProductId: function getProductId(id) {
      this.productId = id;
      this.category = '';
      this.tag = '';
      this.getProducts();
    },
    getPremiumVideo: function getPremiumVideo(type) {
      this.allfreepaid = type;
      this.sortby = "";
      this.category = "";
      this.tag = "";
      this.getProducts(); // this.scrollTopOnProduct();
    },
    commentModalShow: function commentModalShow(id, opne_popup) {
      this.productId = id; // $('.custom-popup-overlay').attr('id', opne_popup);
      // document.getElementById(opne_popup).style.display = "block";
      // $('.custom-popup-overlay').attr('id', opne_popup);

      document.getElementById(opne_popup).style.display = "block";
    },
    custompopupclose: function custompopupclose(close_popup) {
      document.getElementById(close_popup).style.display = "none"; // $('.custom-popup-overlay').attr('id', '');

      this.errors = [];
      this.commentForm.message = '';
    },
    commentSubmit: function commentSubmit(e) {
      var _this3 = this;

      e.preventDefault();
      this.commentForm.message = this.commentWithEmoji;
      var message = this.commentForm.message;
      var productId = this.productId;
      this.errors = [];
      axios.post("/api/productComment", {
        message: message,
        productId: productId
      }).then(function (response) {
        // location.reload();
        $('.comment_' + productId).html(response.data.data.count);
        _this3.commentForm.message = ''; // $('#commentModal').modal('hide');
        // this.custompopupclose($('.custom-popup-overlay').attr('id'));

        _this3.custompopupclose($('.custom-popup-overlay').attr('id'));

        _this3.errors = [];
      })["catch"](function (error) {
        if (error.response != undefined) {
          _this3.errors = error.response.data.errors;
          console.log(_this3.errors);
        } // console.log(this.errors);

      });
    },
    likeSubmit: function likeSubmit(productId) {
      var _this4 = this;

      axios.post("/api/whichList", {
        productId: productId
      }).then(function (response) {
        $('.like_' + productId).html(response.data.data.count);
        var pro = _this4.products.data;

        for (var i = 0; i < pro.length; i++) {
          if (pro[i].id == productId) {
            if (response.data.data.status == "like") {
              pro[i].like_count_user = 1;
            } else {
              pro[i].like_count_user = 0;
            } // console.log(pro[i].like_count_user);

          }
        }
        /* if(response.data.data.status=="like"){
          
         }
         else{
          alert(2);
         }*/
        // if(response.data.data.count>0){
        // img/like-white.png
        // }


        console.log(response); // this.getResults(this.page);
      })["catch"](function (error) {
        if (error.response != undefined) {} // console.log(this.errors);

      });
    },
    paymentAuthorized: function paymentAuthorized(data) {
      console.log(data);
    },
    paymentCompleted: function paymentCompleted(data) {
      console.log(data);
      this.BuyProduct(data.state, data.id, data.product_id);
    },
    paymentCancelled: function paymentCancelled(data) {
      console.log(data);
    },
    BuyProduct: function BuyProduct(transaction_status, transaction_id, productId) {
      var _this5 = this;

      // BuyProduct(productId){
      this.isLoading = 1;
      var countryCode = this.countryCode;
      console.log(countryCode + " 123");
      axios.post("/api/buyProduct", {
        productId: productId,
        countryCode: countryCode,
        transaction_status: transaction_status,
        transaction_id: transaction_id // axios.post("/api/buyProduct", {productId,countryCode

      }).then(function (response) {
        // alert(response.data.message);
        // console.log(response);
        if (response.data.status == false) {
          _this5.alertMessageShow(response.data.message, 'error');
        } else {
          _this5.alertMessageShow(response.data.message, 'success');
        }

        _this5.getResults(_this5.page);

        _this5.isLoading = 0;
      })["catch"](function (error) {
        _this5.isLoading = 0; // console.log(error);

        if (error.response != undefined) {} // console.log(this.errors);

      });
    },
    scrollTopOnProduct: function scrollTopOnProduct() {
      /* $("html, body").animate({ 
           scrollTop: $(".productContentList").offset().top
       }, "slow");*/
      $("html, body").animate({
        scrollTop: 600
      }, "fast");
      return false;
    },
    getCountryCode: function getCountryCode() {
      var that = this;
      var countryCode = null;
      $.get("https://ipinfo.io", function (response) {
        // alert(response.country);
        that.countryCode = response.country; // console.log(response.city, response.country);
      }, "jsonp"); // setTimeout(function(){alert(that.countryCode);},1000);
    },
    alertMessageShow: function alertMessageShow(message, type) {
      sweetalert2__WEBPACK_IMPORTED_MODULE_4___default.a.fire({
        position: 'top',
        icon: type,
        title: message,
        showConfirmButton: true,
        timer: 2000,
        toast: true
      });
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/SideBar.vue?vue&type=script&lang=js&":
/*!****************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/home/SideBar.vue?vue&type=script&lang=js& ***!
  \****************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      categorys: [],
      tags: [],
      latestPosts: [],
      adminDetails: [],
      adminProfileImage: [],
      isUserId: 0,
      productId: ''
    };
  },
  components: {},
  beforeMount: function beforeMount() {
    var _this = this;

    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');

    if (localStorage.getItem('bigStore.user') != null) {
      var userLoginData = JSON.parse(localStorage.getItem('bigStore.user'));
      this.isUserId = userLoginData.id;
    }

    this.getAdminDetails();
    axios.get('/api/categories').then(function (response) {
      _this.categorys = response.data;
    })["catch"](function (error) {});
    axios.get('/api/tags').then(function (response) {
      _this.tags = response.data;
    })["catch"](function (error) {});
    this.getProducts();
  },
  methods: {
    getProducts: function getProducts() {
      var _this2 = this;

      var productId = this.productId;
      axios.get('/api/products?login=' + this.isUserId).then(function (response) {
        _this2.latestPosts = response.data;
        var productsAddData = _this2.latestPosts.data;

        for (var i = 0; i < productsAddData.length; i++) {
          productsAddData[i].orderPaid = _this2.getOrderPaid(productsAddData[i].testt);
        }

        var searchParams = new URLSearchParams(window.location.search);
        var category = '';

        if (searchParams.has('categoryId')) {
          category = searchParams.get('categoryId');
          $('.category-nav a').removeClass('category-active');
          $('#category_' + category + ' a').addClass('category-active');
        }
      })["catch"](function (error) {});
    },
    getOrderPaid: function getOrderPaid(dateText) {
      var todayDate = new Date();
      var format = "AM";
      var hour = todayDate.getHours();
      var min = todayDate.getMinutes();

      if (hour > 11) {
        format = "PM";
      }

      if (hour > 12) {
        hour = hour - 12;
      }

      if (hour == 0) {
        hour = 12;
      }

      if (min < 10) {
        min = "0" + min;
      }

      var month = todayDate.toLocaleString('default', {
        month: 'long'
      }); // var day = todayDate.getDay();

      var day = todayDate.getDate() < 10 ? '0' + todayDate.getDate() : todayDate.getDate();
      var monthDigit = todayDate.getMonth() + 1 < 10 ? '0' + (todayDate.getMonth() + 1) : todayDate.getMonth() + 1;
      var newDate = monthDigit + "-" + day + "-" + todayDate.getFullYear() + " " + hour + ":" + min;

      if (dateText > newDate) {
        return 1;
      } else {
        return 0;
      }

      ;
    },
    onProductClick: function onProductClick(id) {
      this.$emit("setProductIdForComponent", id);
    },
    onCategoryClick: function onCategoryClick(id) {
      this.$emit("setDetailsForComponent", id, 'category');
      $('.category-nav a').removeClass('category-active');
      $('#category_' + id + ' a').addClass('category-active');
    },
    onTagClick: function onTagClick(id) {
      this.$emit("setDetailsForComponent", id, 'tag');
    },
    getAdminDetails: function getAdminDetails() {
      var _this3 = this;

      axios.get('/api/getAdminDetails').then(function (response) {
        _this3.adminDetails = response.data.adminDetails;
        _this3.adminProfileImage = response.data.adminProfileImage;
        console.log(_this3.adminDetails); // this.tags=this.tags;
      })["catch"](function (error) {});
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=script&lang=js&":
/*!*****************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=script&lang=js& ***!
  \*****************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _config_app_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../../config/app.json */ "./config/app.json");
var _config_app_json__WEBPACK_IMPORTED_MODULE_0___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../../../../../../config/app.json */ "./config/app.json", 1);
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sweetalert2 */ "./node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_1__);
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }

function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }

//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


var socket = io(_config_app_json__WEBPACK_IMPORTED_MODULE_0__["porturl"]);
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      newLetter: {
        email: ""
      },
      about_us: [],
      errors: {},
      isLoading: 0,
      alwaysScrollToBottom: true,
      storeUserMessage: [],
      icons: {
        open: {
          img: '/img/chat_icon/logo-no-bg.svg',
          name: 'default'
        },
        close: {
          img: '/img/chat_icon/close-icon.png',
          //CloseIcon,
          name: 'default'
        },
        file: {
          img: '/img/chat_icon/file.svg',
          //FileIcon,
          name: 'default'
        },
        closeSvg: {
          img: '/img/chat_icon/close.svg',
          //CloseIconSvg,
          name: 'default'
        }
      },
      participants: [],

      /*[
        {
          id: 'user1',
          name: 'Matteo',
          imageUrl: 'https://avatars3.githubusercontent.com/u/1915989?s=230&v=4'
        },
        {
          id: 'user2',
          name: 'Support',
          imageUrl: 'https://avatars3.githubusercontent.com/u/37018832?s=200&v=4'
        }
      ], */
      // the list of all the participant of the conversation. `name` is the user name, `id` is used to establish the author of a message, `imageUrl` is supposed to be the user avatar.
      titleImageUrl: 'https://a.slack-edge.com/66f9/img/avatars-teams/ava_0001-34.png',
      messageList: [],
      // the list of the messages to show, can be paginated and adjusted dynamically
      newMessagesCount: 0,
      isChatOpen: false,
      // to determine whether the chat window should be open or closed
      showTypingIndicator: '',
      // when set to a value matching the participant.id it shows the typing indicator for the specific user
      colors: {
        header: {
          bg: '#4e8cff',
          text: '#ffffff'
        },
        launcher: {
          bg: '#4e8cff'
        },
        messageList: {
          bg: '#ffffff'
        },
        sentMessage: {
          bg: '#4e8cff',
          text: '#ffffff'
        },
        receivedMessage: {
          bg: '#eaeaea',
          text: '#222222'
        },
        userInput: {
          bg: '#f4f7f9',
          text: '#565867'
        }
      }
    };
  },
  components: {},
  beforeMount: function beforeMount() {
    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');

    if (localStorage.getItem('bigStore.user') != null) {
      this.user = JSON.parse(localStorage.getItem('bigStore.user'));
      this.getUser();
    }

    this.getAdminDetails();
  },
  created: function created() {
    var _this = this;

    if (this.$isloggedin == true) {
      socket.on("message", function (data) {
        if (_this.user.id == data.to) {
          var msg1 = "";
          var text = data.content;

          if (data.fileStatus == true) {
            msg1 = {
              type: 'file',
              author: 'support',
              id: data._id,
              data: {
                text: text,
                file: {
                  name: data.file.name,
                  url: data.file.url
                }
              }
            };
          } else {
            msg1 = {
              author: 'support',
              type: 'text',
              id: data._id,
              data: {
                text: text
              }
            };
            _this.messageList = [].concat(_toConsumableArray(_this.messageList), [msg1]);
          }

          _this.storeUserMessage = msg1; // Count Unread Message Start

          _this.newMessagesCount = _this.isChatOpen ? _this.newMessagesCount : _this.newMessagesCount + 1; // Count Unread Message End

          if (_this.newMessagesCount == 0) {
            _this.updateStatus();
          }

          console.log(_this.newMessagesCount); //unread condion
        }
      });
    }
  },
  methods: {
    linkTochatOpen: function linkTochatOpen() {
      this.isChatOpen = true;
    },
    newsLetterSubmit: function newsLetterSubmit(e) {
      var _this2 = this;

      e.preventDefault();
      $('.Newsletter').find('i').removeClass('fa fa-location-arrow').addClass('fa fa-spinner');
      var email = this.newLetter.email;
      axios.post("/api/send-news-letter", {
        email: email
      }).then(function (response) {
        // console.log(response);
        // location.reload();
        _this2.newLetter.email = '';
        _this2.errors = {}; // this.isLoading=0

        if (response.status == 200) {
          $('.Newsletter').find('i').removeClass('fa fa-spinner').addClass('fa fa-location-arrow');
          $('#newsletter_alert').show();
          $("#newsletter_alert").fadeTo(2000, 500).slideUp(500, function () {
            $("#newsletter_alert").slideUp(500);
          });
        }
      })["catch"](function (error) {
        $('.Newsletter').find('i').removeClass('fa fa-spinner').addClass('fa fa-location-arrow');

        if (error.response != undefined) {
          _this2.errors = error.response.data.errors;
        } //console.log(this.errors.email[0]);

      });
    },
    getAdminDetails: function getAdminDetails() {
      var _this3 = this;

      axios.get('/api/getAdminDetails').then(function (response) {
        // this.adminDetails=response.data.adminDetails;  
        // this.adminProfileImage = response.data.adminProfileImage;
        _this3.about_us = response.data.about_us;
      })["catch"](function (error) {});
    },
    getUser: function getUser() {
      var _this4 = this;

      axios.get('/api/message-list').then(function (response) {
        var chatData = response.data.chatData;
        var chatParticipants = response.data.chatParticipants; // console.log(chatParticipants);

        var messageTest = [{
          type: 'text',
          author: "me",
          data: {
            text: "Say yes!"
          }
        }, {
          type: 'text',
          author: "user1",
          data: {
            text: "No."
          }
        }];
        _this4.$data.messageList = chatData;
        _this4.$data.participants = [chatParticipants];
      })["catch"](function (error) {});
    },
    charactersLeft: function charactersLeft(text) {
      var _char = text.length,
          limit = 1000;

      if (_char > limit) {
        return false;
      }

      return true;
    },
    insertUserMessage: function insertUserMessage() {
      var _this5 = this;

      var message = '';
      var id = this.user.id;
      var file = null;

      if (this.storeUserMessage.data.emoji != undefined) {
        message = this.storeUserMessage.data.emoji;
      } else if (this.storeUserMessage.data.text != undefined && this.storeUserMessage.data.file == undefined) {
        message = this.storeUserMessage.data.text;
        var checkCharLimit = this.charactersLeft(this.storeUserMessage.data.text);

        if (checkCharLimit == false) {
          // alert('You reach the limit');
          var icon = "warning";
          var html = '<b style="font-size:22px; color:#616176">You reach the character limit</b>';
          var timer = 2000;
          var toast = true;
          var add_class = "";
          this.alertMessage(icon, html, timer, toast, add_class);
          return false;
        }
      } else if (this.storeUserMessage.data.text == undefined && this.storeUserMessage.data.file != undefined) {
        file = this.storeUserMessage.data.file;
      } else if (this.storeUserMessage.data.file != undefined && this.storeUserMessage.data.text != undefined) {
        file = this.storeUserMessage.data.file;
        message = this.storeUserMessage.data.text;
      }

      if (file != null) {
        var checkFileSize = this.checkFileSizeOnUpload(file);

        if (checkFileSize == false) {
          var icon = "warning";
          var html = '<b style="font-size:20px; color:#616176">File size too large</b>';
          var timer = 2000;
          var toast = true;
          var add_class = "";
          this.alertMessage(icon, html, timer, toast, add_class);
          return false;
        }
      }

      if (message != "" || file != "") {
        var formData = new FormData();
        formData.append('file', file);
        formData.append('message', message);
        formData.append('id', id);
        axios.post("/api/insertUserMessage", formData).then(function (response) {
          var msg1 = "";

          if (response.data.error == 422) {
            // alert(response.data.message);
            // sweetalert.fire("Warning!", response.data.message, "warning");
            var icon = "warning";

            if (response.data.action == 0) {
              icon = "info";
            }

            var html = '<b style="font-size:22px; color:#616176">' + response.data.message + '</b>';
            var timer = 2000;
            var toast = false;
            var add_class = "swal-wide"; //sweetalert.fire({
            //   // position: 'top-up',
            //   icon: icon,
            //   // html:'You can use <b>bold text</b>, ' + '<a href="//sweetalert2.github.io">links</a> ' + 'and other HTML tags',
            //   // title: response.data.message,
            //   html:'<b style="font-size:22px; color:#616176">'+ response.data.message + '</b>',
            //   showConfirmButto: true,
            //   customClass: 'swal-wide',
            //   timer: 2000,
            //   // toast: true,
            // })

            _this5.alertMessage(icon, html, timer, toast, add_class);

            return false;
          }

          if (file) {
            msg1 = {
              type: 'file',
              author: 'me',
              id: response.data.data.id,
              data: {
                text: response.data.data.message,
                file: {
                  name: response.data.data.file.name,
                  url: response.data.data.file.url,
                  meta: response.data.data.file.metaDate
                }
              }
            };
          } else {
            msg1 = {
              author: 'me',
              type: 'text',
              id: response.data.data.id,
              data: {
                text: response.data.data.message,
                meta: response.data.data.metaDate
              }
            };
          }

          console.log(msg1);
          _this5.messageList = [].concat(_toConsumableArray(_this5.messageList), [msg1]);
          _this5.storeUserMessage = msg1;
          var message1 = {
            _id: response.data.data.id,
            content: response.data.data.message,
            senderId: _this5.user.id,
            to: 1,
            username: _this5.user.name,
            date: response.data.data.date,
            timestamp: response.data.data.day,
            system: false,
            saved: true,
            distributed: true,
            seen: true,
            disableActions: true,
            disableReactions: true,
            fileStatus: false
          };

          if (file) {
            message1.fileStatus = true;
            message1.file = {
              name: response.data.data.file.name,
              size: file.size,
              type: file.type,
              extension: file.extension || file.type,
              url: response.data.data.file.url
            };
          }

          socket.emit('message', message1); //socket.on("message", (data) => {
          // 	console.log(data);
          // });
        })["catch"](function (error) {
          console.log(error);

          if (error.response != undefined) {}
        });
      }
    },

    /*gototop(){
    	if (window.scrollY>0)
    	{
    		jQuery("html").animate({ scrollTop: 0 }, "slow");
    	}
    }*/
    checkFileSizeOnUpload: function checkFileSizeOnUpload(file) {
      var _size = file.size;
      var fSExt = new Array('Bytes', 'KB', 'MB', 'GB'),
          j = 0;

      while (_size > 900) {
        _size /= 1024;
        j++;
      }

      var actualsize = Math.round(_size * 100) / 100;
      var exactSize = actualsize + ' ' + fSExt[j];
      console.log('FILE SIZE = ', exactSize);

      if (fSExt[j] == 'MB' && actualsize > 6) {
        // alert('File is too large');  
        // this.alertMessageShow('File is too large','warning');
        return false;
      } else if (fSExt[j] == 'GB') {
        // alert(' File is too large');
        // this.alertMessageShow('File is too large','warning');
        return false;
      } else {
        return true;
      }
    },
    updateUserMessage: function updateUserMessage(userMessage) {
      var formData = new FormData();
      var message = userMessage.data.text;
      var id = userMessage.id;
      formData.append('message', message);
      formData.append('id', id);
      axios.post("/api/updateUserMessage", formData).then(function (response) {// console.log(response.data.message);
      })["catch"](function (error) {
        if (error.response != undefined) {}
      });
    },
    deleteUserMessage: function deleteUserMessage(id) {
      axios.post("/api/deleteUserMessage", {
        id: id
      }).then(function (response) {// console.log(response.data.message);
      })["catch"](function (error) {
        if (error.response != undefined) {}
      });
    },
    sendMessage: function sendMessage(text) {
      if (text.length > 0) {
        this.newMessagesCount = this.isChatOpen ? this.newMessagesCount : this.newMessagesCount + 1;
        this.onMessageWasSent({
          author: 'support',
          type: 'text',
          data: {
            text: text
          }
        });
      }
    },
    onMessageWasSent: function onMessageWasSent(message) {
      // called when the user sends a message
      // this.messageList = [ ...this.messageList, message ]
      // this.messageList = [...this.messageList, Object.assign({}, message, {id: Math.random()})]
      // console.log(this.messageList)
      this.storeUserMessage = message;
      this.insertUserMessage();
    },
    openChat: function openChat() {
      // called when the user clicks on the fab button to open the chat
      this.isChatOpen = true;
      this.newMessagesCount = 0;
      this.updateStatus();
    },
    closeChat: function closeChat() {
      // called when the user clicks on the botton to close the chat
      this.isChatOpen = false;
    },
    handleScrollToTop: function handleScrollToTop() {// called when the user scrolls message list to top
      // leverage pagination for loading another page of messages
    },
    handleOnType: function handleOnType() {
      console.log('Emit typing event');
    },
    removeMessage: function removeMessage(message) {
      if (confirm('Delete?')) {
        var m = this.messageList.find(function (m) {
          return m.id === message.id;
        });
        m.type = 'system';
        m.data.text = 'This message has been removed'; // this.deleteUserMessage(m.id);
      }
    },
    editMessage: function editMessage(message) {
      var m = this.messageList.find(function (m) {
        return m.id === message.id;
      });
      m.isEdited = true;
      m.data.text = message.data.text; // console.log(message);

      this.updateUserMessage(message);
    },
    updateStatus: function updateStatus() {
      var id = 1;
      axios.post('/api/chat/updateStatus', {
        messageId: id
      }).then(function (response) {//this.currentUserId=9
        // this.rooms =  response.data.data
      });
    },
    alertMessage: function alertMessage(icon, html, timer, toast, add_class) {
      sweetalert2__WEBPACK_IMPORTED_MODULE_1___default.a.fire({
        // position: 'top-up',
        icon: icon,
        // html:'You can use <b>bold text</b>, ' + '<a href="//sweetalert2.github.io">links</a> ' + 'and other HTML tags',
        // title: response.data.message,
        html: html,
        showConfirmButto: true,
        customClass: add_class,
        timer: timer,
        toast: toast
      });
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/layout/Header.vue?vue&type=script&lang=js&":
/*!*****************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/layout/Header.vue?vue&type=script&lang=js& ***!
  \*****************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      products: [],
      searchText: ''
    };
  },
  components: {},
  beforeMount: function beforeMount() {
    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');
  },
  methods: {
    logout: function logout() {
      localStorage.removeItem('bigStore.jwt');
      localStorage.removeItem('bigStore.user');
      localStorage.removeItem('bigStore.user.id');
      this.$isloggedin = false;
      this.$router.push('/login');
      location.reload();
    },
    OnClickSearchFilter: function OnClickSearchFilter(e) {
      if (e.keyCode === 13) {
        /*this.searchText = e.target.value;
        this.$router.push('/'+'?search='+this.searchText);*/
        var searchText = $('#searchText').val();
        this.$router.push('/' + '?search=' + searchText);
        location.reload();
      }
    },
    OnSearchFilter: function OnSearchFilter(e) {
      /*this.searchText = e.target.value;
      this.$router.push('/'+'?search='+this.searchText);*/
      var searchText = $('#searchText').val();
      this.$router.push('/' + '?search=' + searchText);
      location.reload();
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/About.vue?vue&type=script&lang=js&":
/*!******************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/About.vue?vue&type=script&lang=js& ***!
  \******************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/front-end/layout/Header */ "./resources/assets/js/components/front-end/layout/Header.vue");
/* harmony import */ var _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/front-end/layout/Footer */ "./resources/assets/js/components/front-end/layout/Footer.vue");
/* harmony import */ var _components_front_end_home_BuyNow__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/front-end/home/BuyNow */ "./resources/assets/js/components/front-end/home/BuyNow.vue");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//



/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      HeaderComponent: null,
      FooterComponent: null,
      BuyNowComponent: null,
      userData: [],
      contact: {
        fname: "",
        lname: "",
        email: "",
        message: ""
      },
      errors: [],
      isLoading: 0,
      adminDetails: [],
      tags: [],
      adminProfileImage: [],
      about_us: []
    };
  },
  components: {
    Header: _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"],
    Footer: _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"],
    BuyNow: _components_front_end_home_BuyNow__WEBPACK_IMPORTED_MODULE_2__["default"]
  },
  beforeMount: function beforeMount() {
    this.HeaderComponent = _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"];
    this.FooterComponent = _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"];
    this.BuyNowComponent = _components_front_end_home_BuyNow__WEBPACK_IMPORTED_MODULE_2__["default"];
    this.user = JSON.parse(localStorage.getItem('bigStore.  d fuser'));
    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt'); // this.getUser();

    this.getAdminDetails();
    this.getTags();
  },
  methods: {
    getUser: function getUser() {
      var _this = this;

      axios.get('/api/about').then(function (response) {
        _this.userData = response.data;
        console.log(_this.userData);
      })["catch"](function (error) {});
    },
    enquirySubmit: function enquirySubmit(e) {
      var _this2 = this;

      e.preventDefault();
      this.isLoading = 1;
      this.errors = [];
      var formData = new FormData();
      formData.append('fname', this.contact.fname);
      formData.append('lname', this.contact.lname);
      formData.append('email', this.contact.email);
      formData.append('message', this.contact.message);
      axios.post("api/inquirySubmit", formData).then(function (response) {
        _this2.errors = [];
        _this2.isLoading = 0; // location.reload();

        _this2.contact.fname = '';
        _this2.contact.lname = '';
        _this2.contact.email = '';
        _this2.contact.message = '';
        $('#contact_alert').show();
        $("#contact_alert").fadeTo(2000, 500).slideUp(500, function () {
          $("#contact_alert").slideUp(500);
        }); //alert(response.data.message);
      })["catch"](function (error) {
        _this2.errors = error.response.data.errors;
        _this2.isLoading = 0;
      });
    },
    getAdminDetails: function getAdminDetails() {
      var _this3 = this;

      axios.get('/api/getAdminDetails').then(function (response) {
        _this3.adminDetails = response.data.adminDetails;
        _this3.adminProfileImage = response.data.adminProfileImage;
        _this3.about_us = response.data.about_us;
      })["catch"](function (error) {});
    },
    getTags: function getTags() {
      var _this4 = this;

      axios.get('/api/tags').then(function (response) {
        _this4.tags = response.data;
      })["catch"](function (error) {});
    },
    onTagClick: function onTagClick(id) {
      // this.$emit('loadingIn',1);
      this.$router.push('/' + '?tagId=' + id); // this.$emit('loadingIn',0);

      /*           $("html, body").animate({ 
                              scrollTop: $(".productContentList").offset().top
                          }, "slow");
                          return false;*/
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/AccountSetting.vue?vue&type=script&lang=js&":
/*!***************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/AccountSetting.vue?vue&type=script&lang=js& ***!
  \***************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/front-end/layout/Header */ "./resources/assets/js/components/front-end/layout/Header.vue");
/* harmony import */ var _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/front-end/layout/Footer */ "./resources/assets/js/components/front-end/layout/Footer.vue");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! sweetalert2 */ "./node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_2__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//



/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      HeaderComponent: null,
      FooterComponent: null,
      user: [],
      errors: [],
      isLoading: 0,
      imagePreview: null
    };
  },
  components: {
    Header: _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"],
    Footer: _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"]
  },
  beforeMount: function beforeMount() {
    this.HeaderComponent = _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"];
    this.FooterComponent = _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"];
    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');
    this.getUser();
  },
  methods: {
    getUser: function getUser() {
      var _this = this;

      axios.get('/api/account-setting').then(function (response) {
        _this.user = response.data;

        if (_this.user.image != null) {
          _this.imagePreview = _this.user.path;
        }
      })["catch"](function (error) {});
    },
    onProfileChange: function onProfileChange(e) {
      var files = e.target.files;
      if (!files.length) return;
      this.showImage(files[0]);
      this.user.image = files[0];
    },
    showImage: function showImage(file) {
      // console.log(file)
      var reader = new FileReader();
      var vm = this;

      reader.onload = function (e) {
        vm.imagePreview = e.target.result;
      };

      reader.readAsDataURL(file);
    },
    accountUpdate: function accountUpdate(e) {
      var _this2 = this;

      var self = this;
      e.preventDefault();
      this.isLoading = 1;
      this.errors = []; // let fname = this.user.fname
      // let lname = this.user.lname
      // let email = this.user.email
      // let dob = this.user.dob
      // let id = this.user.id
      // let image = this.imagePreview; //this.user.image

      var formData = new FormData();
      formData.append('image', this.user.image);
      formData.append('name', this.user.name);
      formData.append('lname', this.user.lname);
      formData.append('email', this.user.email);
      formData.append('id', this.user.id);
      formData.append('dob', this.user.dob);
      axios.post("api/account-setting/updateAccount", formData // {fname, lname, email, dob, id, image}
      ).then(function (response) {
        _this2.errors = [];
        _this2.isLoading = 0;
        location.reload();
      })["catch"](function (error) {
        _this2.errors = error.response.data.errors;
        _this2.isLoading = 0;
      });
    },
    removeAccountImage: function removeAccountImage() {
      var id = this.user.id;
      axios.post("api/account-setting/remove-account-image", {
        id: id
      }).then(function (response) {
        console.log(response.data); // alert(response.data.message);
        // location.reload();
      })["catch"](function (error) {
        if (error.response != undefined) {} // console.log(this.errors);

      });
    },
    alertMessageShow: function alertMessageShow(message, type) {
      sweetalert2__WEBPACK_IMPORTED_MODULE_2___default.a.fire({
        // position: 'top-up',
        icon: type,
        title: message,
        showConfirmButton: true,
        timer: 2000 // toast: true,

      });
      $('.swal2-container').css('z-index', 1000000000000000);
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Admin/Dashboard.vue?vue&type=script&lang=js&":
/*!****************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Admin/Dashboard.vue?vue&type=script&lang=js& ***!
  \****************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_admin_Main__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../components/admin/Main */ "./resources/assets/js/components/admin/Main.vue");
/* harmony import */ var _components_admin_Users__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/admin/Users */ "./resources/assets/js/components/admin/Users.vue");
/* harmony import */ var _components_admin_Products__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/admin/Products */ "./resources/assets/js/components/admin/Products.vue");
/* harmony import */ var _components_admin_category_Index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/admin/category/Index */ "./resources/assets/js/components/admin/category/Index.vue");
/* harmony import */ var _components_admin_Orders__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/admin/Orders */ "./resources/assets/js/components/admin/Orders.vue");
/* harmony import */ var _components_admin_tags_Index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/admin/tags/Index */ "./resources/assets/js/components/admin/tags/Index.vue");
/* harmony import */ var _components_admin_tips_Index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../components/admin/tips/Index */ "./resources/assets/js/components/admin/tips/Index.vue");
/* harmony import */ var _components_admin_tax_Index__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../components/admin/tax/Index */ "./resources/assets/js/components/admin/tax/Index.vue");
/* harmony import */ var _components_admin_inquiry_Index__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../components/admin/inquiry/Index */ "./resources/assets/js/components/admin/inquiry/Index.vue");
/* harmony import */ var _components_admin_newsletter_Index__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../components/admin/newsletter/Index */ "./resources/assets/js/components/admin/newsletter/Index.vue");
/* harmony import */ var _components_admin_tip_history_Index__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../components/admin/tip_history/Index */ "./resources/assets/js/components/admin/tip_history/Index.vue");
/* harmony import */ var _components_admin_account_Change_password__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../components/admin/account/Change_password */ "./resources/assets/js/components/admin/account/Change_password.vue");
/* harmony import */ var _components_admin_account_Edit_profile__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../components/admin/account/Edit_profile */ "./resources/assets/js/components/admin/account/Edit_profile.vue");
/* harmony import */ var _components_admin_about_us_About_us__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../components/admin/about-us/About_us */ "./resources/assets/js/components/admin/about-us/About_us.vue");
/* harmony import */ var _components_admin_product_comments_Index__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../components/admin/product_comments/Index */ "./resources/assets/js/components/admin/product_comments/Index.vue");
/* harmony import */ var _components_admin_chat_Index__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../components/admin/chat/Index */ "./resources/assets/js/components/admin/chat/Index.vue");
/* harmony import */ var _components_admin_message_price_Index__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../components/admin/message_price/Index */ "./resources/assets/js/components/admin/message_price/Index.vue");
/* harmony import */ var _components_admin_message_purchase_history_Index__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../components/admin/message_purchase_history/Index */ "./resources/assets/js/components/admin/message_purchase_history/Index.vue");
/* harmony import */ var _components_admin_order_tax_Index__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../components/admin/order_tax/Index */ "./resources/assets/js/components/admin/order_tax/Index.vue");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//



















/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      user: null,
      activeComponent: null,
      activeMenu: null
    };
  },
  components: {
    Main: _components_admin_Main__WEBPACK_IMPORTED_MODULE_0__["default"],
    Users: _components_admin_Users__WEBPACK_IMPORTED_MODULE_1__["default"],
    Products: _components_admin_Products__WEBPACK_IMPORTED_MODULE_2__["default"],
    Orders: _components_admin_Orders__WEBPACK_IMPORTED_MODULE_4__["default"],
    Tags: _components_admin_tags_Index__WEBPACK_IMPORTED_MODULE_5__["default"],
    Tips: _components_admin_tips_Index__WEBPACK_IMPORTED_MODULE_6__["default"],
    Tax: _components_admin_tax_Index__WEBPACK_IMPORTED_MODULE_7__["default"],
    ChangePassword: _components_admin_account_Change_password__WEBPACK_IMPORTED_MODULE_11__["default"],
    EditProfile: _components_admin_account_Edit_profile__WEBPACK_IMPORTED_MODULE_12__["default"],
    Inquiry: _components_admin_inquiry_Index__WEBPACK_IMPORTED_MODULE_8__["default"],
    Tip_history: _components_admin_tip_history_Index__WEBPACK_IMPORTED_MODULE_10__["default"],
    AboutUs: _components_admin_about_us_About_us__WEBPACK_IMPORTED_MODULE_13__["default"],
    ProductComments: _components_admin_product_comments_Index__WEBPACK_IMPORTED_MODULE_14__["default"],
    MessagePerPrice: _components_admin_message_price_Index__WEBPACK_IMPORTED_MODULE_16__["default"],
    MessagePurchaseHistory: _components_admin_message_purchase_history_Index__WEBPACK_IMPORTED_MODULE_17__["default"],
    Chats: _components_admin_chat_Index__WEBPACK_IMPORTED_MODULE_15__["default"],
    OrderTax: _components_admin_order_tax_Index__WEBPACK_IMPORTED_MODULE_18__["default"]
  },
  beforeMount: function beforeMount() {
    this.setComponent(this.$route.params.page);
    this.user = JSON.parse(localStorage.getItem('bigStore.  d fuser'));
    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');
  },
  methods: {
    setComponent: function setComponent(value) {
      switch (value) {
        case "users":
          this.activeComponent = _components_admin_Users__WEBPACK_IMPORTED_MODULE_1__["default"];
          this.activeMenu = "Users";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'users'
            }
          });
          break;

        case "orders":
          this.activeComponent = _components_admin_Orders__WEBPACK_IMPORTED_MODULE_4__["default"];
          this.activeMenu = "Orders";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'orders'
            }
          });
          break;

        case "products":
          this.activeComponent = _components_admin_Products__WEBPACK_IMPORTED_MODULE_2__["default"];
          this.activeMenu = "Products";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'products'
            }
          });
          break;

        case "category":
          this.activeComponent = _components_admin_category_Index__WEBPACK_IMPORTED_MODULE_3__["default"];
          this.activeMenu = "Category";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'category'
            }
          });
          break;

        case "tags":
          this.activeComponent = _components_admin_tags_Index__WEBPACK_IMPORTED_MODULE_5__["default"];
          this.activeMenu = "Tags";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'tags'
            }
          });
          break;

        case "tips":
          this.activeComponent = _components_admin_tips_Index__WEBPACK_IMPORTED_MODULE_6__["default"];
          this.activeMenu = "Tips";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'tips'
            }
          });
          break;

        case "tax":
          this.activeComponent = _components_admin_tax_Index__WEBPACK_IMPORTED_MODULE_7__["default"];
          this.activeMenu = "Tax";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'tax'
            }
          });
          break;

        case "change-password":
          this.activeComponent = _components_admin_account_Change_password__WEBPACK_IMPORTED_MODULE_11__["default"];
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'change-password'
            }
          });
          break;

        case "edit-profile":
          this.activeComponent = _components_admin_account_Edit_profile__WEBPACK_IMPORTED_MODULE_12__["default"];
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'edit-profile'
            }
          });
          break;

        case "inquiry":
          this.activeComponent = _components_admin_inquiry_Index__WEBPACK_IMPORTED_MODULE_8__["default"];
          this.activeMenu = "Inquiry";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'inquiry'
            }
          });
          break;

        case "newsletter":
          this.activeComponent = _components_admin_newsletter_Index__WEBPACK_IMPORTED_MODULE_9__["default"];
          this.activeMenu = "Newsletter";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'newsletter'
            }
          });
          break;

        case "tip-history":
          this.activeComponent = _components_admin_tip_history_Index__WEBPACK_IMPORTED_MODULE_10__["default"];
          this.activeMenu = "Tip_history";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'tip-history'
            }
          });
          break;

        case "about-us":
          this.activeComponent = _components_admin_about_us_About_us__WEBPACK_IMPORTED_MODULE_13__["default"];
          this.activeMenu = "AboutUs";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'about-us'
            }
          });
          break;

        case "product-comment":
          this.activeComponent = _components_admin_product_comments_Index__WEBPACK_IMPORTED_MODULE_14__["default"];
          this.activeMenu = "ProductComments";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'product-comment'
            }
          });
          break;

        case "chat":
          this.activeComponent = _components_admin_chat_Index__WEBPACK_IMPORTED_MODULE_15__["default"];
          this.activeMenu = "Chats";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'chat'
            }
          });
          break;

        case "message-per-price":
          this.activeComponent = _components_admin_message_price_Index__WEBPACK_IMPORTED_MODULE_16__["default"];
          this.activeMenu = "MessagePerPrice";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'message-per-price'
            }
          });
          break;

        case "message-purchase-history":
          this.activeComponent = _components_admin_message_purchase_history_Index__WEBPACK_IMPORTED_MODULE_17__["default"];
          this.activeMenu = "MessagePurchaseHistory";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'message-purchase-history'
            }
          });
          break;

        case "order-tax":
          this.activeComponent = _components_admin_order_tax_Index__WEBPACK_IMPORTED_MODULE_18__["default"];
          this.activeMenu = "OrderTax";
          this.$router.push({
            name: 'admin-pages',
            params: {
              page: 'order-tax'
            }
          });
          break;

        default:
          this.activeComponent = _components_admin_Main__WEBPACK_IMPORTED_MODULE_0__["default"];
          this.activeMenu = "Main";
          this.$router.push({
            name: 'admin'
          });
          break;
      }
    },
    setDefaults: function setDefaults() {
      if (this.isLoggedIn) {
        var user = JSON.parse(localStorage.getItem('bigStore.user'));
        this.name = user.name;
        this.user_type = user.is_admin;
      }
    },
    change: function change() {
      this.isLoggedIn = localStorage.getItem('bigStore.jwt') != null;
      this.setDefaults();
    },
    logout: function logout() {
      localStorage.removeItem('bigStore.jwt');
      localStorage.removeItem('bigStore.user'); // localStorage.removeItem('bigStore.user.id')

      this.change();
      this.$router.push('/admin/login');
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/App.vue?vue&type=script&lang=js&":
/*!****************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/App.vue?vue&type=script&lang=js& ***!
  \****************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      name: null,
      user_type: 0,
      isLoading: 0,
      isLoggedIn: localStorage.getItem('bigStore.jwt') != null
    };
  },
  mounted: function mounted() {
    this.setDefaults();
  },
  methods: {
    setDefaults: function setDefaults() {
      if (this.isLoggedIn) {
        var user = JSON.parse(localStorage.getItem('bigStore.user'));
        this.name = user.name;
        this.user_type = user.is_admin;
      }
    },
    change: function change() {
      this.isLoggedIn = localStorage.getItem('bigStore.jwt') != null;
      this.setDefaults();
    },
    changeLoading: function changeLoading(flag) {
      console.log("dd ");
      this.isLoading = flag;
      console.log("dd " + flag);
    },
    logout: function logout() {
      localStorage.removeItem('bigStore.jwt');
      localStorage.removeItem('bigStore.user');
      this.change();
      this.$router.push('/');
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/BuyTip.vue?vue&type=script&lang=js&":
/*!*******************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/BuyTip.vue?vue&type=script&lang=js& ***!
  \*******************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_front_end_home_BuyTip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/front-end/home/BuyTip */ "./resources/assets/js/components/front-end/home/BuyTip.vue");
/* harmony import */ var _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/front-end/layout/Header */ "./resources/assets/js/components/front-end/layout/Header.vue");
/* harmony import */ var _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/front-end/layout/Footer */ "./resources/assets/js/components/front-end/layout/Footer.vue");
//
//
//
//
//
//
//
//



/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      tips: [],
      HeaderComponent: null,
      FooterComponent: null,
      pageComponent: null
    };
  },
  components: {
    Header: _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_1__["default"],
    Footer: _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_2__["default"],
    BuyTip: _components_front_end_home_BuyTip__WEBPACK_IMPORTED_MODULE_0__["default"]
  },
  beforeMount: function beforeMount() {
    this.HeaderComponent = _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_1__["default"];
    this.FooterComponent = _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_2__["default"];
    this.pageComponent = _components_front_end_home_BuyTip__WEBPACK_IMPORTED_MODULE_0__["default"];
  },
  mounted: function mounted() {// axios.get("api/buy-tip").then(response => this.tips = response.data, console.log(this.tips))      
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/ChangePassword.vue?vue&type=script&lang=js&":
/*!***************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/ChangePassword.vue?vue&type=script&lang=js& ***!
  \***************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/front-end/layout/Header */ "./resources/assets/js/components/front-end/layout/Header.vue");
/* harmony import */ var _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/front-end/layout/Footer */ "./resources/assets/js/components/front-end/layout/Footer.vue");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      HeaderComponent: null,
      FooterComponent: null,
      current_password: null,
      password: null,
      confirm_password: null,
      errors: [],
      isLoading: 0
    };
  },
  components: {
    Header: _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"],
    Footer: _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"]
  },
  beforeMount: function beforeMount() {
    this.HeaderComponent = _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"];
    this.FooterComponent = _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"];
    this.user = JSON.parse(localStorage.getItem('bigStore.  d fuser'));
    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');
  },
  methods: {
    changePassword: function changePassword(e) {
      var _this = this;

      e.preventDefault();
      var current_password = this.current_password;
      var password = this.password;
      var confirm_password = this.confirm_password;
      this.isLoading = 1;
      axios.post("/api/change-password/updatePassword", {
        password: password,
        confirm_password: confirm_password,
        current_password: current_password
      }).then(function (response) {
        // alert(response.data.message);
        if (response.data.errors == "error") {
          // this.errors.error_msg = response.data.message;
          alert(response.data.message);
          _this.isLoading = 0;
        } else {
          _this.errors = [];
          _this.isLoading = 0;
          alert('Password change successfully');
          location.reload();
        }
      })["catch"](function (error) {
        _this.isLoading = 0;

        if (error.response != undefined) {
          _this.errors = error.response.data.errors;
        }
      });
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Chat.vue?vue&type=script&lang=js&":
/*!*****************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Chat.vue?vue&type=script&lang=js& ***!
  \*****************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/front-end/layout/Header */ "./resources/assets/js/components/front-end/layout/Header.vue");
/* harmony import */ var _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/front-end/layout/Footer */ "./resources/assets/js/components/front-end/layout/Footer.vue");
/* harmony import */ var _components_front_end_home_chat_messageHistory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/front-end/home/chat/messageHistory */ "./resources/assets/js/components/front-end/home/chat/messageHistory.js");
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }

function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }

//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//



/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'app',
  data: function data() {
    return {
      HeaderComponent: null,
      FooterComponent: null,
      userData: [],
      storeUserMessage: [],
      icons: {
        open: {
          img: './img/chat_icon/logo-no-bg.svg',
          name: 'default'
        },
        close: {
          img: './img/chat_icon/close-icon.png',
          //CloseIcon,
          name: 'default'
        },
        file: {
          img: './img/chat_icon/file.svg',
          //FileIcon,
          name: 'default'
        },
        closeSvg: {
          img: './img/chat_icon/close.svg',
          //CloseIconSvg,
          name: 'default'
        }
      },
      participants: [],

      /*[
        {
          id: 'user1',
          name: 'Matteo',
          imageUrl: 'https://avatars3.githubusercontent.com/u/1915989?s=230&v=4'
        },
        {
          id: 'user2',
          name: 'Support',
          imageUrl: 'https://avatars3.githubusercontent.com/u/37018832?s=200&v=4'
        }
      ], */
      // the list of all the participant of the conversation. `name` is the user name, `id` is used to establish the author of a message, `imageUrl` is supposed to be the user avatar.
      titleImageUrl: 'https://a.slack-edge.com/66f9/img/avatars-teams/ava_0001-34.png',
      messageList: [],

      /*[ 
          { type: 'text', author: `me`, data: { text: `Say yes!` } },
          { type: 'text', author: `user1`, data: { text: `No.` } },
          { type: 'text', author: `user1`, data: { text: `No22.` } }
      ],*/
      // the list of the messages to show, can be paginated and adjusted dynamically
      newMessagesCount: 0,
      isChatOpen: false,
      // to determine whether the chat window should be open or closed
      showTypingIndicator: '',
      // when set to a value matching the participant.id it shows the typing indicator for the specific user
      colors: {
        header: {
          bg: '#4e8cff',
          text: '#ffffff'
        },
        launcher: {
          bg: '#4e8cff'
        },
        messageList: {
          bg: '#ffffff'
        },
        sentMessage: {
          bg: '#4e8cff',
          text: '#ffffff'
        },
        receivedMessage: {
          bg: '#eaeaea',
          text: '#222222'
        },
        userInput: {
          bg: '#f4f7f9',
          text: '#565867'
        }
      },
      // specifies the color scheme for the component
      alwaysScrollToBottom: true,
      // when set to true always scrolls the chat to the bottom when new events are in (new message, user starts typing...)
      messageStyling: true // enables *bold* /emph/ _underline_ and such (more info at github.com/mattezza/msgdown)

    };
  },
  beforeMount: function beforeMount() {
    this.HeaderComponent = _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"];
    this.FooterComponent = _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"];

    if (localStorage.getItem('bigStore.user') != null) {
      this.user = JSON.parse(localStorage.getItem('bigStore.user'));
    }

    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');
    this.getUser();
  },
  methods: {
    getUser: function getUser() {
      var _this = this;

      axios.get('/api/message-list').then(function (response) {
        var chatParticipants = response.data.chatParticipants;
        var chatData = response.data.chatData;
        var messageTest = [{
          type: 'text',
          author: "me",
          data: {
            text: "Say yes!"
          }
        }, {
          type: 'file',
          author: "user1",
          data: {
            text: "No.",
            file: {
              url: 'http://192.168.43.210:8000/api/imagesView/6311613479180.png'
            }
          }
        }];
        _this.$data.messageList = chatData;
        _this.$data.participants = [chatParticipants];
      })["catch"](function (error) {});
    },
    insertUserMessage: function insertUserMessage() {
      var message = '';
      var id = this.user.id;
      var file = null;

      if (this.storeUserMessage.data.emoji != undefined) {
        message = this.storeUserMessage.data.emoji;
      } else if (this.storeUserMessage.data.text != undefined && this.storeUserMessage.data.file == undefined) {
        message = this.storeUserMessage.data.text;
      } else if (this.storeUserMessage.data.text == undefined && this.storeUserMessage.data.file != undefined) {
        file = this.storeUserMessage.data.file;
      } else if (this.storeUserMessage.data.file != undefined && this.storeUserMessage.data.text != undefined) {
        file = this.storeUserMessage.data.file;
        message = this.storeUserMessage.data.text;
      }

      if (message != "" || file != "") {
        var formData = new FormData();
        formData.append('file', file);
        formData.append('message', message);
        formData.append('id', id);
        axios.post("/api/insertUserMessage", formData).then(function (response) {
          console.log(response.data.message);
        })["catch"](function (error) {
          if (error.response != undefined) {}
        });
      }
    },
    updateUserMessage: function updateUserMessage(userMessage) {
      var formData = new FormData();
      var message = userMessage.data.text;
      var id = userMessage.id;
      formData.append('message', message);
      formData.append('id', id);
      axios.post("/api/updateUserMessage", formData).then(function (response) {
        console.log(response.data.message);
      })["catch"](function (error) {
        if (error.response != undefined) {}
      });
    },
    deleteUserMessage: function deleteUserMessage(id) {
      axios.post("/api/deleteUserMessage", {
        id: id
      }).then(function (response) {
        console.log(response.data.message);
      })["catch"](function (error) {
        if (error.response != undefined) {}
      });
    },
    sendMessage: function sendMessage(text) {
      if (text.length > 0) {
        this.newMessagesCount = this.isChatOpen ? this.newMessagesCount : this.newMessagesCount + 1;
        this.onMessageWasSent({
          author: 'support',
          type: 'text',
          data: {
            text: text
          }
        });
      }
    },
    onMessageWasSent: function onMessageWasSent(message) {
      // called when the user sends a message
      this.messageList = [].concat(_toConsumableArray(this.messageList), [message]); // this.messageList = [...this.messageList, Object.assign({}, message, {id: Math.random()})]
      // console.log(this.messageList)

      this.storeUserMessage = message;
      this.insertUserMessage();
    },
    openChat: function openChat() {
      // called when the user clicks on the fab button to open the chat
      this.isChatOpen = true;
      this.newMessagesCount = 0;
    },
    closeChat: function closeChat() {
      // called when the user clicks on the botton to close the chat
      this.isChatOpen = false;
    },
    handleScrollToTop: function handleScrollToTop() {// called when the user scrolls message list to top
      // leverage pagination for loading another page of messages
    },
    handleOnType: function handleOnType() {
      console.log('Emit typing event');
    },
    removeMessage: function removeMessage(message) {
      if (confirm('Delete?')) {
        var m = this.messageList.find(function (m) {
          return m.id === message.id;
        });
        m.type = 'system';
        m.data.text = 'This message has been removed'; // this.deleteUserMessage(m.id);
      }
    },
    editMessage: function editMessage(message) {
      var m = this.messageList.find(function (m) {
        return m.id === message.id;
      });
      m.isEdited = true;
      m.data.text = message.data.text; // console.log(message);

      this.updateUserMessage(message);
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Checkout.vue?vue&type=script&lang=js&":
/*!*********************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Checkout.vue?vue&type=script&lang=js& ***!
  \*********************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  props: ['pid'],
  data: function data() {
    return {
      address: "",
      quantity: 1,
      isLoggedIn: null,
      product: []
    };
  },
  mounted: function mounted() {
    this.isLoggedIn = localStorage.getItem('bigStore.jwt') != null;
  },
  beforeMount: function beforeMount() {
    var _this = this;

    axios.get("/api/products/".concat(this.pid)).then(function (response) {
      return _this.product = response.data;
    });

    if (localStorage.getItem('bigStore.jwt') != null) {
      this.user = JSON.parse(localStorage.getItem('bigStore.user'));
      axios.defaults.headers.common['Content-Type'] = 'application/json';
      axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');
    }
  },
  methods: {
    login: function login() {
      this.$router.push({
        name: 'login',
        params: {
          nextUrl: this.$route.fullPath
        }
      });
    },
    register: function register() {
      this.$router.push({
        name: 'register',
        params: {
          nextUrl: this.$route.fullPath
        }
      });
    },
    placeOrder: function placeOrder(e) {
      var _this2 = this;

      e.preventDefault();
      var address = this.address;
      var product_id = this.product.id;
      var quantity = this.quantity;
      axios.post('api/orders/', {
        address: address,
        quantity: quantity,
        product_id: product_id
      }).then(function (response) {
        return _this2.$router.push('/confirmation');
      });
    },
    checkUnits: function checkUnits(e) {
      if (this.quantity > this.product.units) {
        this.quantity = this.product.units;
      }
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Confirmation.vue?vue&type=script&lang=js&":
/*!*************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Confirmation.vue?vue&type=script&lang=js& ***!
  \*************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/DetailView.vue?vue&type=script&lang=js&":
/*!***********************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/DetailView.vue?vue&type=script&lang=js& ***!
  \***********************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/front-end/layout/Header */ "./resources/assets/js/components/front-end/layout/Header.vue");
/* harmony import */ var _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/front-end/layout/Footer */ "./resources/assets/js/components/front-end/layout/Footer.vue");
/* harmony import */ var _components_front_end_home_BuyNow__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/front-end/home/BuyNow */ "./resources/assets/js/components/front-end/home/BuyNow.vue");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//



/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      HeaderComponent: null,
      FooterComponent: null,
      BuyNowComponent: null,
      product: [],
      comments: [],
      like_count: 0,
      product_images: [],
      errors: [],
      isLoading: 0,
      commentForm: {
        message: ""
      },
      product_tags: [],
      like_users: [],
      like_count_user: 0,
      categorys: [],
      tags: [],
      product_videos: [],
      textDataWithEmoji: ''
    };
  },
  components: {
    Header: _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"],
    Footer: _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"]
  },
  beforeMount: function beforeMount() {
    this.HeaderComponent = _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"];
    this.FooterComponent = _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"];
    this.BuyNowComponent = _components_front_end_home_BuyNow__WEBPACK_IMPORTED_MODULE_2__["default"]; // this.user = JSON.parse(localStorage.getItem('bigStore.  d fuser'))

    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');
    this.getProductDetail();
    this.getCategoryList();
    this.getTagsList();
  },
  methods: {
    //---------------- Emoji code start -----------------------
    onInput: function onInput(event) {
      //event.data contains the value of the textarea
      this.textDataWithEmoji = event.data;
    },
    clearTextarea: function clearTextarea() {
      this.$refs.emoji.clear();
    },
    //---------------- Emoji code End -------------------------------
    getProductDetail: function getProductDetail() {
      var _this = this;

      this.isLoading = 1;
      axios.get("/api/detail-view/".concat(this.$route.params.id)).then(function (response) {
        console.log(response);
        _this.product = response.data.product;
        _this.comments = response.data.product_comments;
        _this.product_images = response.data.product_images;
        _this.product_tags = response.data.product_tags;
        _this.like_users = response.data.like_users;
        _this.like_count = response.data.like_users.length;
        _this.product_videos = response.data.product_videos;
        _this.isLoading = 0;
        setTimeout(function () {
          $(".html5lightbox").html5lightbox(); // $( "#html5box-html5-lightbox" ).css( {'color':'red'} );
        }, 1000);
      })["catch"](function (error) {
        _this.isLoading = 0;
      });
    },
    getTagsList: function getTagsList() {
      var _this2 = this;

      axios.get('/api/tags').then(function (response) {
        _this2.tags = response.data;
      })["catch"](function (error) {});
    },
    getCategoryList: function getCategoryList() {
      var _this3 = this;

      axios.get('/api/categories').then(function (response) {
        _this3.categorys = response.data;
      })["catch"](function (error) {});
    },
    commentSubmit: function commentSubmit(e) {
      var _this4 = this;

      e.preventDefault();
      this.commentForm.message = this.textDataWithEmoji;
      var message = this.commentForm.message;
      var productId = this.$route.params.id;
      this.errors = [];
      axios.post("/api/productComment", {
        message: message,
        productId: productId
      }).then(function (response) {
        _this4.commentForm.message = '';
        _this4.comments = response.data.data.Comments;
        _this4.errors = [];
      })["catch"](function (error) {
        if (error.response != undefined) {
          _this4.errors = error.response.data.errors;
        } // console.log(this.errors);

      });
    },
    likeSubmit: function likeSubmit(productId) {
      var _this5 = this;

      axios.post("/api/whichList", {
        productId: productId
      }).then(function (response) {
        $('.like_' + productId).html(response.data.data.count);
        _this5.like_users = response.data.data.like_users;
        _this5.like_count = response.data.data.count;
        _this5.like_count_user = response.data.data.like_count_user;
      })["catch"](function (error) {
        if (error.response != undefined) {} // console.log(this.errors);

      });
    },
    onTagClick: function onTagClick(id) {
      // this.$emit("setDetailsForComponent", id,'tag');
      this.isLoading = 1;
      this.$router.push('/' + '?tagId=' + id); // this.isLoading=0;
      // location.reload();
    },
    onCategoryClick: function onCategoryClick(id) {
      this.$router.push('/' + '?categoryId=' + id); // this.isLoading=0;

      location.reload();
    },
    getDateFormat: function getDateFormat(date) {
      var todayDate = new Date(date);
      var format = "AM";
      var hour = todayDate.getHours();
      var min = todayDate.getMinutes();

      if (hour > 11) {
        format = "PM";
      }

      if (hour > 12) {
        hour = hour - 12;
      }

      if (hour == 0) {
        hour = 12;
      }

      if (min < 10) {
        min = "0" + min;
      }

      var month = todayDate.toLocaleString('default', {
        month: 'long'
      });
      var day = todayDate.getDay();
      return todayDate.getDate() + "  " + month + "  " + todayDate.getFullYear() + ", " + hour + ":" + min + " " + format;
    }
  }
});
$(document).on('contextmenu', 'img', function () {
  return false;
});
$(document).on('contextmenu', 'video', function () {
  return false;
});
/*$('.image_tn a').on('click', function(){
    //$('body').css('overflow', 'hidden');
    console.log("there");
});*/

var myVar = setInterval(screenLock, 500);

function screenLock() {
  if ($("div").hasClass("html5-elem-box")) {
    //$("body").addClass("stopScroll");
    $("body").css({
      "overflow": "hidden"
    });
  } else {
    //$("body").removeClass("stopScroll");
    $("body").css({
      "overflow": "auto"
    });
  }
}

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Front-Login.vue?vue&type=script&lang=js&":
/*!************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Front-Login.vue?vue&type=script&lang=js& ***!
  \************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/front-end/layout/Header */ "./resources/assets/js/components/front-end/layout/Header.vue");
/* harmony import */ var _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/front-end/layout/Footer */ "./resources/assets/js/components/front-end/layout/Footer.vue");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      products: [],
      HeaderComponent: null,
      FooterComponent: null,
      email: "",
      password: "",
      errors: [],
      isLoading: 0
    };
  },
  components: {
    Header: _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"],
    Footer: _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"]
  },
  beforeMount: function beforeMount() {
    this.HeaderComponent = _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"];
    this.FooterComponent = _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"];
    $('body').addClass('login-area');
  },
  methods: {
    viewPassword: function viewPassword() {
      var passwordInput = document.getElementById('password');
      var passStatus = document.getElementById('pass-status');

      if (passwordInput.type == 'password') {
        passwordInput.type = 'text';
        passStatus.className = 'fa fa-eye-slash show_password';
      } else {
        passwordInput.type = 'password';
        passStatus.className = 'fa fa-eye show_password';
      } // console.log(passStatus);

    },
    handleSubmit: function handleSubmit(e) {
      var _this = this;

      e.preventDefault(); //if (this.password.length > 0) {

      this.errors = [];
      var email = this.email;
      var password = this.password; // this.$emit('loadingIn',1);

      this.isLoading = 1;
      axios.post('/api/login', {
        email: email,
        password: password
      }).then(function (response) {
        var user = response.data.user;
        var is_admin = user.is_admin;
        console.log(response.data);

        if (is_admin != 0) {
          // alert(1);
          _this.errors = "Username or password does not match.";
          _this.isLoading = 0;
          return false;
        } // this.$emit('loadingIn',0);


        _this.isLoading = 1;
        _this.errors = [];
        localStorage.setItem('bigStore.user', JSON.stringify(user));
        localStorage.setItem('bigStore.user.id', user.id);
        localStorage.setItem('bigStore.jwt', response.data.token);

        if (localStorage.getItem('bigStore.jwt') != null) {
          _this.$emit('loggedIn');

          if (_this.$route.params.nextUrl != null) {
            _this.$router.push(_this.$route.params.nextUrl);
          } else {
            $('body').removeClass('login-area');
            _this.isLoading = 1;

            _this.$router.push(is_admin == 1 ? 'admin' : '/');

            location.reload();
          }
        }
      })["catch"](function (error) {
        // console.log(error);
        // if(error.response!=undefined){
        _this.errors = error.response.data.error; // this.$emit('loadingIn',0);

        _this.isLoading = 0; // }
      }); // }
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Home.vue?vue&type=script&lang=js&":
/*!*****************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Home.vue?vue&type=script&lang=js& ***!
  \*****************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_front_end_home_Indx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/front-end/home/Indx */ "./resources/assets/js/components/front-end/home/Indx.vue");
/* harmony import */ var _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/front-end/layout/Header */ "./resources/assets/js/components/front-end/layout/Header.vue");
/* harmony import */ var _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/front-end/layout/Footer */ "./resources/assets/js/components/front-end/layout/Footer.vue");
//
//
//
//
//
//
//
//
//



/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      products: [],
      HeaderComponent: null,
      FooterComponent: null,
      pageComponent: null
    };
  },
  components: {
    Header: _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_1__["default"],
    Footer: _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_2__["default"],
    Home: _components_front_end_home_Indx__WEBPACK_IMPORTED_MODULE_0__["default"]
  },
  beforeMount: function beforeMount() {
    this.HeaderComponent = _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_1__["default"];
    this.FooterComponent = _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_2__["default"];
    this.pageComponent = _components_front_end_home_Indx__WEBPACK_IMPORTED_MODULE_0__["default"];
  },
  mounted: function mounted() {
    var _this = this;

    axios.get("api/products").then(function (response) {
      return _this.products = response.data;
    });
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Login.vue?vue&type=script&lang=js&":
/*!******************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Login.vue?vue&type=script&lang=js& ***!
  \******************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      email: "",
      password: "",
      errors: []
    };
  },
  methods: {
    viewPassword: function viewPassword() {
      var passwordInput = document.getElementById('password');
      var passStatus = document.getElementById('pass-status');

      if (passwordInput.type == 'password') {
        passwordInput.type = 'text';
        passStatus.className = 'fa fa-eye-slash show_password';
      } else {
        passwordInput.type = 'password';
        passStatus.className = 'fa fa-eye show_password';
      } // console.log(passStatus);

    },
    handleSubmit: function handleSubmit(e) {
      var _this = this;

      e.preventDefault(); //if (this.password.length > 0) {

      var email = this.email;
      var password = this.password;
      this.$emit('loadingIn', 1);
      axios.post('/api/login', {
        email: email,
        password: password
      }).then(function (response) {
        var user = response.data.user;
        var is_admin = user.is_admin;
        _this.errors = [];

        _this.$emit('loadingIn', 0);

        localStorage.setItem('bigStore.user', JSON.stringify(user));
        localStorage.setItem('bigStore.user.id', user.id);
        localStorage.setItem('bigStore.jwt', response.data.token);

        if (localStorage.getItem('bigStore.jwt') != null) {
          _this.$emit('loggedIn');

          if (_this.$route.params.nextUrl != null) {
            _this.$router.push(_this.$route.params.nextUrl);
          } else {
            _this.$router.push(is_admin == 1 ? 'admin' : 'dashboard');
          }
        }
      })["catch"](function (error) {
        _this.errors = error.response.data.error;
        console.log(_this.errors);

        _this.$emit('loadingIn', 0);
      }); // }
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/MessagePurchaseHistory.vue?vue&type=script&lang=js&":
/*!***********************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/MessagePurchaseHistory.vue?vue&type=script&lang=js& ***!
  \***********************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/front-end/layout/Header */ "./resources/assets/js/components/front-end/layout/Header.vue");
/* harmony import */ var _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/front-end/layout/Footer */ "./resources/assets/js/components/front-end/layout/Footer.vue");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      HeaderComponent: null,
      FooterComponent: null,
      transactionData: [],
      per_message_price: 0,
      errors: [],
      isLoading: 0,
      messagePriceForm: {
        quantity: ""
      },
      paypal_amount: '10.00',
      paypal: {
        sandbox: paypal_client_id,
        production: ''
      }
    };
  },
  components: {
    Header: _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"],
    Footer: _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"]
  },
  beforeMount: function beforeMount() {
    this.HeaderComponent = _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"];
    this.FooterComponent = _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"];
    this.user = JSON.parse(localStorage.getItem('bigStore.  d fuser'));
    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');
    this.getMessageHistory();
  },
  methods: {
    getMessageHistory: function getMessageHistory() {
      var _this = this;

      this.isLoading = 1;
      axios.get('/api/purchaseMessage').then(function (response) {
        _this.transactionData = response.data.purchaseHistory;
        _this.per_message_price = response.data.price; //console.log(response);

        _this.isLoading = 0;
      })["catch"](function (error) {
        _this.isLoading = 0;
      });
    },
    onMessagePriceChange: function onMessagePriceChange(e) {
      this.paypal_amount = e.target.value * this.per_message_price;
    },
    openMessagePerPrice: function openMessagePerPrice(opne_popup) {
      document.getElementById(opne_popup).style.display = "block";
    },
    custompopupclose: function custompopupclose(close_popup) {
      document.getElementById(close_popup).style.display = "none"; // $('.custom-popup-overlay').attr('id', '');

      this.errors = [];
      this.messagePriceForm.quantity = '';
    },
    messagePriceSubmit: function messagePriceSubmit(transaction_status, transaction_id) {
      var _this2 = this;

      // e.preventDefault()
      var quantity = this.messagePriceForm.quantity;
      this.errors = [];
      axios.post("/api/purchaseMessage", {
        quantity: quantity,
        transaction_status: transaction_status,
        transaction_id: transaction_id
      }).then(function (response) {
        // location.reload();
        _this2.transactionData = response.data.data;
        console.log(response);
        _this2.messagePriceForm.quantity = '';

        _this2.custompopupclose($('.custom-popup-overlay').attr('id'));

        _this2.errors = [];
      })["catch"](function (error) {
        if (error.response != undefined) {
          _this2.errors = error.response.data.errors;
          console.log(_this2.errors);
        } // console.log(this.errors);

      });
    },
    getDateFormat: function getDateFormat(date) {
      var todayDate = new Date(date);
      var format = "AM";
      var hour = todayDate.getHours();
      var min = todayDate.getMinutes();

      if (hour > 11) {
        format = "PM";
      }

      if (hour > 12) {
        hour = hour - 12;
      }

      if (hour == 0) {
        hour = 12;
      }

      if (min < 10) {
        min = "0" + min;
      }

      var month = todayDate.toLocaleString('default', {
        month: 'long'
      }); // var day = todayDate.getDay();
      // return  todayDate.getDate() + "-" + (todayDate.getMonth()+1) + "-" +  todayDate.getFullYear();

      var day = todayDate.getDate() < 10 ? '0' + todayDate.getDate() : todayDate.getDate();
      var monthDigit = todayDate.getMonth() + 1 < 10 ? '0' + (todayDate.getMonth() + 1) : todayDate.getMonth() + 1;
      return monthDigit + "-" + day + "-" + todayDate.getFullYear(); // return  todayDate.getDate() + "-" + (todayDate.getMonth()+1) + "-" +  todayDate.getFullYear()+", "+hour+":"+min+" "+format;
    },
    paymentAuthorized: function paymentAuthorized(data) {
      console.log(data);
    },
    paymentCompleted: function paymentCompleted(data) {
      console.log(data);
      this.messagePriceSubmit(data.state, data.id);
    },
    paymentCancelled: function paymentCancelled(data) {
      console.log(data);
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue?vue&type=script&lang=js&":
/*!******************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue?vue&type=script&lang=js& ***!
  \******************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var paypal_checkout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! paypal-checkout */ "./node_modules/paypal-checkout/index.js");
/* harmony import */ var paypal_checkout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(paypal_checkout__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _util_defaultProps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/defaultProps */ "./resources/assets/js/views/PayPalCheckout/util/defaultProps.js");
/* harmony import */ var _util_additionalProps__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/additionalProps */ "./resources/assets/js/views/PayPalCheckout/util/additionalProps.js");
/* harmony import */ var _util_paypalProp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/paypalProp */ "./resources/assets/js/views/PayPalCheckout/util/paypalProp.js");
//
//
//
//




var assignTo = Object(_util_paypalProp__WEBPACK_IMPORTED_MODULE_3__["assignToPropertyObject"])(_util_additionalProps__WEBPACK_IMPORTED_MODULE_2__["default"]);
/* harmony default export */ __webpack_exports__["default"] = ({
  props: Object.assign(Object(_util_defaultProps__WEBPACK_IMPORTED_MODULE_1__["default"])(), _util_additionalProps__WEBPACK_IMPORTED_MODULE_2__["default"].vmProps()),
  methods: {
    payment: function payment() {
      var vue = this;
      var transaction = Object.assign({
        amount: {
          total: this.amount,
          currency: this.currency,
          details: this.details
        }
      }, assignTo(vue, _util_paypalProp__WEBPACK_IMPORTED_MODULE_3__["propTypes"].TRANSACTION)); // TODO: clean this up

      if (transaction.shipping_address && transaction.item_list) {
        transaction.item_list.shipping_address = transaction.shipping_address;
        delete transaction.shipping_address;
      }

      var payment = {
        transactions: [transaction]
      };
      return paypal_checkout__WEBPACK_IMPORTED_MODULE_0___default.a.rest.payment.create(this.env, this.client, Object.assign({
        payment: payment
      }, assignTo(vue, _util_paypalProp__WEBPACK_IMPORTED_MODULE_3__["propTypes"].PAYMENT)));
    },
    onAuthorize: function onAuthorize(data, actions) {
      var vue = this;
      vue.$emit('payment-authorized', data);

      if (this.commit) {
        return actions.payment.execute().then(function (response) {
          // My code here Start
          if (vue.$attrs.product_id != undefined) {
            response.product_id = vue.$attrs.product_id;
          } // My code here End


          vue.$emit('payment-completed', response);
        });
      }

      return true;
    },
    onCancel: function onCancel(data) {
      var vue = this; // My code here Start

      if (vue.$attrs.product_id != undefined) {
        response.product_id = vue.$attrs.product_id;
      } // My code here End


      vue.$emit('payment-cancelled', data);
    }
  },
  mounted: function mounted() {
    var vue = this;
    var button = Object.assign({
      // Pass in env
      env: vue.env,
      // Pass in the client ids to use to create your transaction
      // on sandbox and production environments
      client: vue.client,
      // Pass the payment details for your transaction
      // See https://developer.paypal.com/docs/api/payments/#payment_create for the expected json parameters
      payment: vue.payment,
      // Display a "Pay Now" button rather than a "Continue" button
      commit: vue.commit,
      // Pass a function to be called when the customer completes the payment
      onAuthorize: vue.onAuthorize,
      // Pass a function to be called when the customer cancels the payment
      onCancel: vue.onCancel
    }, assignTo(vue, _util_paypalProp__WEBPACK_IMPORTED_MODULE_3__["propTypes"].BUTTON));
    paypal_checkout__WEBPACK_IMPORTED_MODULE_0___default.a.Button.render(button, vue.$el);
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/PurchaseHistory.vue?vue&type=script&lang=js&":
/*!****************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/PurchaseHistory.vue?vue&type=script&lang=js& ***!
  \****************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/front-end/layout/Header */ "./resources/assets/js/components/front-end/layout/Header.vue");
/* harmony import */ var _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/front-end/layout/Footer */ "./resources/assets/js/components/front-end/layout/Footer.vue");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      HeaderComponent: null,
      FooterComponent: null,
      tipHistory: [],
      errors: [],
      isLoading: 0
    };
  },
  components: {
    Header: _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"],
    Footer: _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"]
  },
  beforeMount: function beforeMount() {
    this.HeaderComponent = _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"];
    this.FooterComponent = _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"];
    this.user = JSON.parse(localStorage.getItem('bigStore.  d fuser'));
    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');
    this.getTipHistory();
  },
  methods: {
    getTipHistory: function getTipHistory() {
      var _this = this;

      this.isLoading = 1;
      axios.get('/api/tips-history').then(function (response) {
        _this.tipHistory = response.data; // this.tipHistory.sno = this.getSerialNumber(this.tipHistory) ;

        console.log(_this.tipHistory);
        _this.isLoading = 0;
      })["catch"](function (error) {
        _this.isLoading = 0;
      });
    },

    /*getSerialNumber(data){
       return data.per_page * (data.current_page - 1)
    },
    */
    getDateFormat: function getDateFormat(date) {
      var todayDate = new Date(date);
      var format = "AM";
      var hour = todayDate.getHours();
      var min = todayDate.getMinutes();

      if (hour > 11) {
        format = "PM";
      }

      if (hour > 12) {
        hour = hour - 12;
      }

      if (hour == 0) {
        hour = 12;
      }

      if (min < 10) {
        min = "0" + min;
      }

      var month = todayDate.toLocaleString('default', {
        month: 'long'
      }); // var day = todayDate.getDay();

      var day = todayDate.getDate() < 10 ? '0' + todayDate.getDate() : todayDate.getDate();
      var monthDigit = todayDate.getMonth() + 1 < 10 ? '0' + (todayDate.getMonth() + 1) : todayDate.getMonth() + 1;
      return monthDigit + "-" + day + "-" + todayDate.getFullYear(); // +", "+hour+":"+min+" "+format;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Register.vue?vue&type=script&lang=js&":
/*!*********************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Register.vue?vue&type=script&lang=js& ***!
  \*********************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/front-end/layout/Header */ "./resources/assets/js/components/front-end/layout/Header.vue");
/* harmony import */ var _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/front-end/layout/Footer */ "./resources/assets/js/components/front-end/layout/Footer.vue");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ __webpack_exports__["default"] = ({
  props: ['nextUrl'],
  data: function data() {
    return {
      HeaderComponent: null,
      FooterComponent: null,
      name: "",
      email: "",
      password: "",
      password_confirmation: "",
      gender: "",
      errors: [],
      reg: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,24}))$/
    };
  },
  components: {
    Header: _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"],
    Footer: _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"]
  },
  beforeMount: function beforeMount() {
    this.HeaderComponent = _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"];
    this.FooterComponent = _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"];
    $('body').addClass('login-area');
  },
  methods: {
    viewPassword: function viewPassword() {
      var passwordInput = document.getElementById('password');
      var passStatus = document.getElementById('pass-status');

      if (passwordInput.type == 'password') {
        passwordInput.type = 'text';
        passStatus.className = 'fa fa-eye-slash show_password';
      } else {
        passwordInput.type = 'password';
        passStatus.className = 'fa fa-eye show_password';
      } // console.log(passStatus);

    },
    handleSubmit: function handleSubmit(e) {
      var _this = this;

      e.preventDefault();
      this.$emit('loadingIn', 0);
      /* if(this.name == ""){
           this.errors.push({'name':"Please enter name"});
       } 
       else if(this.email == null || this.email == '') {
       
           this.errors.push({"Please enter email"});
       
       }
       else if(!this.reg.test(this.email)) {
           
           this.errors.push({"Please enter correct email"});
       
       }
       else if (this.password == null || this.password == ''){
       
           this.errors.push({"Please enter password"});
       }
        else if (this.password !== this.password_confirmation || this.password.length <= 0) {
           this.password = ""
           this.password_confirmation = ""
                      this.errors.push({"Passwords do not match"});
       } 
       */

      var name = this.name;
      var email = this.email;
      var password = this.password;
      var gender = $("input[name='gender']:checked").val();
      var confirm_password = this.password_confirmation;
      axios.post('api/register', {
        name: name,
        email: email,
        password: password,
        confirm_password: confirm_password,
        gender: gender
      }).then(function (response) {
        var data = response.data;

        _this.$emit('loadingIn', 0);

        localStorage.setItem('bigStore.user', JSON.stringify(data.user));
        localStorage.setItem('bigStore.jwt', data.token);

        if (localStorage.getItem('bigStore.jwt') != null) {
          _this.$emit('loggedIn');

          $('body').removeClass('login-area');
          var nextUrl = _this.$route.params.nextUrl;
          console.log(nextUrl);

          _this.$router.push(nextUrl != null ? nextUrl : '/');

          location.reload();
        }
      })["catch"](function (error) {
        _this.errors = error.response.data.error;
        console.log(_this.errors);

        _this.$emit('loadingIn', 0);
      });
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/ResetPasswordForm.vue?vue&type=script&lang=js&":
/*!******************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/ResetPasswordForm.vue?vue&type=script&lang=js& ***!
  \******************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/front-end/layout/Header */ "./resources/assets/js/components/front-end/layout/Header.vue");
/* harmony import */ var _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/front-end/layout/Footer */ "./resources/assets/js/components/front-end/layout/Footer.vue");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      products: [],
      HeaderComponent: null,
      FooterComponent: null,
      email: "",
      password: "",
      confirm_password: "",
      errors: []
    };
  },
  components: {
    Header: _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"],
    Footer: _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"]
  },
  beforeMount: function beforeMount() {
    this.HeaderComponent = _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"];
    this.FooterComponent = _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"];
    $('body').addClass('login-area');
  },
  methods: {
    updatePassword: function updatePassword() {
      var _this = this;

      // e.preventDefault()
      var email = this.email;
      var resettoken = this.$route.params.token;
      var password = this.password;
      var confirm_password = this.confirm_password; // this.$emit('loadingIn',1);

      axios.post('/api/password/reset/update', {
        email: email,
        password: password,
        confirm_password: confirm_password,
        resettoken: resettoken
      }).then(function (response) {
        if (response.data.status == false) {
          _this.errors = response.data.message;
        } else {
          _this.errors = response.data.message;

          _this.$router.push('/login');
        }
      })["catch"](function (error) {
        if (error.response != undefined) {
          _this.errors = error.response.data.errors;
          console.log(error.response.data.errors); // this.$emit('loadingIn',0);
        }
      });
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/SendResetPasswordLink.vue?vue&type=script&lang=js&":
/*!**********************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/SendResetPasswordLink.vue?vue&type=script&lang=js& ***!
  \**********************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/front-end/layout/Header */ "./resources/assets/js/components/front-end/layout/Header.vue");
/* harmony import */ var _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/front-end/layout/Footer */ "./resources/assets/js/components/front-end/layout/Footer.vue");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      products: [],
      HeaderComponent: null,
      FooterComponent: null,
      email: "",
      errors: [],
      isLoading: 0
    };
  },
  components: {
    Header: _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"],
    Footer: _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"]
  },
  beforeMount: function beforeMount() {
    this.HeaderComponent = _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"];
    this.FooterComponent = _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"];
    $('body').addClass('login-area');
  },
  methods: {
    resetPasswordLinkSend: function resetPasswordLinkSend() {
      var _this = this;

      // e.preventDefault()
      var email = this.email; // this.$emit('loadingIn',1);

      this.isLoading = 1;
      axios.post('/api/password/reset', {
        email: email
      }).then(function (response) {
        if (response.data.status == false) {
          _this.errors = response.data.message; // this.$emit('loadingIn',0);

          _this.isLoading = 0;
        } else {
          _this.errors = response.data.message;
          console.log(response); // this.$emit('loadingIn',0);

          _this.isLoading = 0;
        }
      })["catch"](function (error) {
        if (error.response != undefined) {
          _this.errors = error.response.data.error;
          console.log(_this.errors); // this.$emit('loadingIn',0);
        }

        _this.isLoading = 0;
      });
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/SingleProduct.vue?vue&type=script&lang=js&":
/*!**************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/SingleProduct.vue?vue&type=script&lang=js& ***!
  \**************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      product: []
    };
  },
  beforeMount: function beforeMount() {
    var _this = this;

    var url = "/api/products/".concat(this.$route.params.id);
    axios.get(url).then(function (response) {
      return _this.product = response.data;
    });
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/TransactionHistory.vue?vue&type=script&lang=js&":
/*!*******************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/TransactionHistory.vue?vue&type=script&lang=js& ***!
  \*******************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/front-end/layout/Header */ "./resources/assets/js/components/front-end/layout/Header.vue");
/* harmony import */ var _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/front-end/layout/Footer */ "./resources/assets/js/components/front-end/layout/Footer.vue");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! sweetalert2 */ "./node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_2__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//



/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      HeaderComponent: null,
      FooterComponent: null,
      transactionData: [],
      errors: [],
      isLoading: 0
    };
  },
  components: {
    Header: _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"],
    Footer: _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"]
  },
  beforeMount: function beforeMount() {
    this.HeaderComponent = _components_front_end_layout_Header__WEBPACK_IMPORTED_MODULE_0__["default"];
    this.FooterComponent = _components_front_end_layout_Footer__WEBPACK_IMPORTED_MODULE_1__["default"];
    this.user = JSON.parse(localStorage.getItem('bigStore.  d fuser'));
    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');
    this.getTransaction();
  },
  methods: {
    getTransaction: function getTransaction() {
      var _this = this;

      this.isLoading = 1;
      axios.get('/api/transaction-history').then(function (response) {
        _this.transactionData = response.data;
        console.log(_this.transactionData);
        _this.isLoading = 0;
      })["catch"](function (error) {
        _this.isLoading = 0;
      });
    },
    deleteOrderProduct: function deleteOrderProduct(order) {
      var _this2 = this;

      this.isLoading = 1;
      var order_id = order.id;
      axios.post("/api/deleteOrderProduct", {
        order_id: order_id
      }).then(function (response) {
        console.log(response.data); // alert(response.data.message);

        _this2.alertMessageShow(response.data.message, 'success');

        location.reload();
        _this2.isLoading = 0;
      })["catch"](function (error) {
        if (error.response != undefined) {
          _this2.isLoading = 0;
        } // console.log(this.errors);

      });
    },
    alertMessageShow: function alertMessageShow(message, type) {
      sweetalert2__WEBPACK_IMPORTED_MODULE_2___default.a.fire({
        position: 'top',
        icon: type,
        title: message,
        showConfirmButton: true,
        timer: 2000,
        toast: true
      }); // $('.swal2-container').css('z-index',1000000000000000);
    },
    getDateFormat: function getDateFormat(date) {
      var todayDate = new Date(date);
      var format = "AM";
      var hour = todayDate.getHours();
      var min = todayDate.getMinutes();

      if (hour > 11) {
        format = "PM";
      }

      if (hour > 12) {
        hour = hour - 12;
      }

      if (hour == 0) {
        hour = 12;
      }

      if (min < 10) {
        min = "0" + min;
      }

      var month = todayDate.toLocaleString('default', {
        month: 'long'
      }); // var day = todayDate.getDay();
      // return  todayDate.getDate() + "-" + (todayDate.getMonth()+1) + "-" +  todayDate.getFullYear();

      var day = todayDate.getDate() < 10 ? '0' + todayDate.getDate() : todayDate.getDate();
      var monthDigit = todayDate.getMonth() + 1 < 10 ? '0' + (todayDate.getMonth() + 1) : todayDate.getMonth() + 1;
      return monthDigit + "-" + day + "-" + todayDate.getFullYear(); // return  todayDate.getDate() + "-" + (todayDate.getMonth()+1) + "-" +  todayDate.getFullYear()+", "+hour+":"+min+" "+format;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/UserBoard.vue?vue&type=script&lang=js&":
/*!**********************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/UserBoard.vue?vue&type=script&lang=js& ***!
  \**********************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  data: function data() {
    return {
      user: null,
      orders: []
    };
  },
  beforeMount: function beforeMount() {
    var _this = this;

    this.user = JSON.parse(localStorage.getItem('bigStore.user'));
    axios.defaults.headers.common['Content-Type'] = 'application/json';
    axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('bigStore.jwt');
    axios.get("api/users/".concat(this.user.id, "/orders")).then(function (response) {
      return _this.orders = response.data;
    });
  }
});

/***/ }),

/***/ "./node_modules/base64-js/index.js":
/*!*****************************************!*\
  !*** ./node_modules/base64-js/index.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.byteLength = byteLength
exports.toByteArray = toByteArray
exports.fromByteArray = fromByteArray

var lookup = []
var revLookup = []
var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array

var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
for (var i = 0, len = code.length; i < len; ++i) {
  lookup[i] = code[i]
  revLookup[code.charCodeAt(i)] = i
}

// Support decoding URL-safe base64 strings, as Node.js does.
// See: https://en.wikipedia.org/wiki/Base64#URL_applications
revLookup['-'.charCodeAt(0)] = 62
revLookup['_'.charCodeAt(0)] = 63

function getLens (b64) {
  var len = b64.length

  if (len % 4 > 0) {
    throw new Error('Invalid string. Length must be a multiple of 4')
  }

  // Trim off extra bytes after placeholder bytes are found
  // See: https://github.com/beatgammit/base64-js/issues/42
  var validLen = b64.indexOf('=')
  if (validLen === -1) validLen = len

  var placeHoldersLen = validLen === len
    ? 0
    : 4 - (validLen % 4)

  return [validLen, placeHoldersLen]
}

// base64 is 4/3 + up to two characters of the original data
function byteLength (b64) {
  var lens = getLens(b64)
  var validLen = lens[0]
  var placeHoldersLen = lens[1]
  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
}

function _byteLength (b64, validLen, placeHoldersLen) {
  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
}

function toByteArray (b64) {
  var tmp
  var lens = getLens(b64)
  var validLen = lens[0]
  var placeHoldersLen = lens[1]

  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))

  var curByte = 0

  // if there are placeholders, only get up to the last complete 4 chars
  var len = placeHoldersLen > 0
    ? validLen - 4
    : validLen

  for (var i = 0; i < len; i += 4) {
    tmp =
      (revLookup[b64.charCodeAt(i)] << 18) |
      (revLookup[b64.charCodeAt(i + 1)] << 12) |
      (revLookup[b64.charCodeAt(i + 2)] << 6) |
      revLookup[b64.charCodeAt(i + 3)]
    arr[curByte++] = (tmp >> 16) & 0xFF
    arr[curByte++] = (tmp >> 8) & 0xFF
    arr[curByte++] = tmp & 0xFF
  }

  if (placeHoldersLen === 2) {
    tmp =
      (revLookup[b64.charCodeAt(i)] << 2) |
      (revLookup[b64.charCodeAt(i + 1)] >> 4)
    arr[curByte++] = tmp & 0xFF
  }

  if (placeHoldersLen === 1) {
    tmp =
      (revLookup[b64.charCodeAt(i)] << 10) |
      (revLookup[b64.charCodeAt(i + 1)] << 4) |
      (revLookup[b64.charCodeAt(i + 2)] >> 2)
    arr[curByte++] = (tmp >> 8) & 0xFF
    arr[curByte++] = tmp & 0xFF
  }

  return arr
}

function tripletToBase64 (num) {
  return lookup[num >> 18 & 0x3F] +
    lookup[num >> 12 & 0x3F] +
    lookup[num >> 6 & 0x3F] +
    lookup[num & 0x3F]
}

function encodeChunk (uint8, start, end) {
  var tmp
  var output = []
  for (var i = start; i < end; i += 3) {
    tmp =
      ((uint8[i] << 16) & 0xFF0000) +
      ((uint8[i + 1] << 8) & 0xFF00) +
      (uint8[i + 2] & 0xFF)
    output.push(tripletToBase64(tmp))
  }
  return output.join('')
}

function fromByteArray (uint8) {
  var tmp
  var len = uint8.length
  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
  var parts = []
  var maxChunkLength = 16383 // must be multiple of 3

  // go through the array every three bytes, we'll deal with trailing stuff later
  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
    parts.push(encodeChunk(
      uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)
    ))
  }

  // pad the end with zeros, but make sure to not forget the extra bytes
  if (extraBytes === 1) {
    tmp = uint8[len - 1]
    parts.push(
      lookup[tmp >> 2] +
      lookup[(tmp << 4) & 0x3F] +
      '=='
    )
  } else if (extraBytes === 2) {
    tmp = (uint8[len - 2] << 8) + uint8[len - 1]
    parts.push(
      lookup[tmp >> 10] +
      lookup[(tmp >> 4) & 0x3F] +
      lookup[(tmp << 2) & 0x3F] +
      '='
    )
  }

  return parts.join('')
}


/***/ }),

/***/ "./node_modules/buffer/index.js":
/*!**************************************!*\
  !*** ./node_modules/buffer/index.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/*!
 * The buffer module from node.js, for the browser.
 *
 * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
 * @license  MIT
 */
/* eslint-disable no-proto */



var base64 = __webpack_require__(/*! base64-js */ "./node_modules/base64-js/index.js")
var ieee754 = __webpack_require__(/*! ieee754 */ "./node_modules/ieee754/index.js")
var isArray = __webpack_require__(/*! isarray */ "./node_modules/isarray/index.js")

exports.Buffer = Buffer
exports.SlowBuffer = SlowBuffer
exports.INSPECT_MAX_BYTES = 50

/**
 * If `Buffer.TYPED_ARRAY_SUPPORT`:
 *   === true    Use Uint8Array implementation (fastest)
 *   === false   Use Object implementation (most compatible, even IE6)
 *
 * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
 * Opera 11.6+, iOS 4.2+.
 *
 * Due to various browser bugs, sometimes the Object implementation will be used even
 * when the browser supports typed arrays.
 *
 * Note:
 *
 *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
 *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
 *
 *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
 *
 *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
 *     incorrect length in some situations.

 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
 * get the Object implementation, which is slower but behaves correctly.
 */
Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
  ? global.TYPED_ARRAY_SUPPORT
  : typedArraySupport()

/*
 * Export kMaxLength after typed array support is determined.
 */
exports.kMaxLength = kMaxLength()

function typedArraySupport () {
  try {
    var arr = new Uint8Array(1)
    arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
    return arr.foo() === 42 && // typed array instances can be augmented
        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
  } catch (e) {
    return false
  }
}

function kMaxLength () {
  return Buffer.TYPED_ARRAY_SUPPORT
    ? 0x7fffffff
    : 0x3fffffff
}

function createBuffer (that, length) {
  if (kMaxLength() < length) {
    throw new RangeError('Invalid typed array length')
  }
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    // Return an augmented `Uint8Array` instance, for best performance
    that = new Uint8Array(length)
    that.__proto__ = Buffer.prototype
  } else {
    // Fallback: Return an object instance of the Buffer class
    if (that === null) {
      that = new Buffer(length)
    }
    that.length = length
  }

  return that
}

/**
 * The Buffer constructor returns instances of `Uint8Array` that have their
 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
 * returns a single octet.
 *
 * The `Uint8Array` prototype remains unmodified.
 */

function Buffer (arg, encodingOrOffset, length) {
  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
    return new Buffer(arg, encodingOrOffset, length)
  }

  // Common case.
  if (typeof arg === 'number') {
    if (typeof encodingOrOffset === 'string') {
      throw new Error(
        'If encoding is specified then the first argument must be a string'
      )
    }
    return allocUnsafe(this, arg)
  }
  return from(this, arg, encodingOrOffset, length)
}

Buffer.poolSize = 8192 // not used by this implementation

// TODO: Legacy, not needed anymore. Remove in next major version.
Buffer._augment = function (arr) {
  arr.__proto__ = Buffer.prototype
  return arr
}

function from (that, value, encodingOrOffset, length) {
  if (typeof value === 'number') {
    throw new TypeError('"value" argument must not be a number')
  }

  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
    return fromArrayBuffer(that, value, encodingOrOffset, length)
  }

  if (typeof value === 'string') {
    return fromString(that, value, encodingOrOffset)
  }

  return fromObject(that, value)
}

/**
 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
 * if value is a number.
 * Buffer.from(str[, encoding])
 * Buffer.from(array)
 * Buffer.from(buffer)
 * Buffer.from(arrayBuffer[, byteOffset[, length]])
 **/
Buffer.from = function (value, encodingOrOffset, length) {
  return from(null, value, encodingOrOffset, length)
}

if (Buffer.TYPED_ARRAY_SUPPORT) {
  Buffer.prototype.__proto__ = Uint8Array.prototype
  Buffer.__proto__ = Uint8Array
  if (typeof Symbol !== 'undefined' && Symbol.species &&
      Buffer[Symbol.species] === Buffer) {
    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
    Object.defineProperty(Buffer, Symbol.species, {
      value: null,
      configurable: true
    })
  }
}

function assertSize (size) {
  if (typeof size !== 'number') {
    throw new TypeError('"size" argument must be a number')
  } else if (size < 0) {
    throw new RangeError('"size" argument must not be negative')
  }
}

function alloc (that, size, fill, encoding) {
  assertSize(size)
  if (size <= 0) {
    return createBuffer(that, size)
  }
  if (fill !== undefined) {
    // Only pay attention to encoding if it's a string. This
    // prevents accidentally sending in a number that would
    // be interpretted as a start offset.
    return typeof encoding === 'string'
      ? createBuffer(that, size).fill(fill, encoding)
      : createBuffer(that, size).fill(fill)
  }
  return createBuffer(that, size)
}

/**
 * Creates a new filled Buffer instance.
 * alloc(size[, fill[, encoding]])
 **/
Buffer.alloc = function (size, fill, encoding) {
  return alloc(null, size, fill, encoding)
}

function allocUnsafe (that, size) {
  assertSize(size)
  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
  if (!Buffer.TYPED_ARRAY_SUPPORT) {
    for (var i = 0; i < size; ++i) {
      that[i] = 0
    }
  }
  return that
}

/**
 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
 * */
Buffer.allocUnsafe = function (size) {
  return allocUnsafe(null, size)
}
/**
 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
 */
Buffer.allocUnsafeSlow = function (size) {
  return allocUnsafe(null, size)
}

function fromString (that, string, encoding) {
  if (typeof encoding !== 'string' || encoding === '') {
    encoding = 'utf8'
  }

  if (!Buffer.isEncoding(encoding)) {
    throw new TypeError('"encoding" must be a valid string encoding')
  }

  var length = byteLength(string, encoding) | 0
  that = createBuffer(that, length)

  var actual = that.write(string, encoding)

  if (actual !== length) {
    // Writing a hex string, for example, that contains invalid characters will
    // cause everything after the first invalid character to be ignored. (e.g.
    // 'abxxcd' will be treated as 'ab')
    that = that.slice(0, actual)
  }

  return that
}

function fromArrayLike (that, array) {
  var length = array.length < 0 ? 0 : checked(array.length) | 0
  that = createBuffer(that, length)
  for (var i = 0; i < length; i += 1) {
    that[i] = array[i] & 255
  }
  return that
}

function fromArrayBuffer (that, array, byteOffset, length) {
  array.byteLength // this throws if `array` is not a valid ArrayBuffer

  if (byteOffset < 0 || array.byteLength < byteOffset) {
    throw new RangeError('\'offset\' is out of bounds')
  }

  if (array.byteLength < byteOffset + (length || 0)) {
    throw new RangeError('\'length\' is out of bounds')
  }

  if (byteOffset === undefined && length === undefined) {
    array = new Uint8Array(array)
  } else if (length === undefined) {
    array = new Uint8Array(array, byteOffset)
  } else {
    array = new Uint8Array(array, byteOffset, length)
  }

  if (Buffer.TYPED_ARRAY_SUPPORT) {
    // Return an augmented `Uint8Array` instance, for best performance
    that = array
    that.__proto__ = Buffer.prototype
  } else {
    // Fallback: Return an object instance of the Buffer class
    that = fromArrayLike(that, array)
  }
  return that
}

function fromObject (that, obj) {
  if (Buffer.isBuffer(obj)) {
    var len = checked(obj.length) | 0
    that = createBuffer(that, len)

    if (that.length === 0) {
      return that
    }

    obj.copy(that, 0, 0, len)
    return that
  }

  if (obj) {
    if ((typeof ArrayBuffer !== 'undefined' &&
        obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
      if (typeof obj.length !== 'number' || isnan(obj.length)) {
        return createBuffer(that, 0)
      }
      return fromArrayLike(that, obj)
    }

    if (obj.type === 'Buffer' && isArray(obj.data)) {
      return fromArrayLike(that, obj.data)
    }
  }

  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
}

function checked (length) {
  // Note: cannot use `length < kMaxLength()` here because that fails when
  // length is NaN (which is otherwise coerced to zero.)
  if (length >= kMaxLength()) {
    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
                         'size: 0x' + kMaxLength().toString(16) + ' bytes')
  }
  return length | 0
}

function SlowBuffer (length) {
  if (+length != length) { // eslint-disable-line eqeqeq
    length = 0
  }
  return Buffer.alloc(+length)
}

Buffer.isBuffer = function isBuffer (b) {
  return !!(b != null && b._isBuffer)
}

Buffer.compare = function compare (a, b) {
  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
    throw new TypeError('Arguments must be Buffers')
  }

  if (a === b) return 0

  var x = a.length
  var y = b.length

  for (var i = 0, len = Math.min(x, y); i < len; ++i) {
    if (a[i] !== b[i]) {
      x = a[i]
      y = b[i]
      break
    }
  }

  if (x < y) return -1
  if (y < x) return 1
  return 0
}

Buffer.isEncoding = function isEncoding (encoding) {
  switch (String(encoding).toLowerCase()) {
    case 'hex':
    case 'utf8':
    case 'utf-8':
    case 'ascii':
    case 'latin1':
    case 'binary':
    case 'base64':
    case 'ucs2':
    case 'ucs-2':
    case 'utf16le':
    case 'utf-16le':
      return true
    default:
      return false
  }
}

Buffer.concat = function concat (list, length) {
  if (!isArray(list)) {
    throw new TypeError('"list" argument must be an Array of Buffers')
  }

  if (list.length === 0) {
    return Buffer.alloc(0)
  }

  var i
  if (length === undefined) {
    length = 0
    for (i = 0; i < list.length; ++i) {
      length += list[i].length
    }
  }

  var buffer = Buffer.allocUnsafe(length)
  var pos = 0
  for (i = 0; i < list.length; ++i) {
    var buf = list[i]
    if (!Buffer.isBuffer(buf)) {
      throw new TypeError('"list" argument must be an Array of Buffers')
    }
    buf.copy(buffer, pos)
    pos += buf.length
  }
  return buffer
}

function byteLength (string, encoding) {
  if (Buffer.isBuffer(string)) {
    return string.length
  }
  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
      (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
    return string.byteLength
  }
  if (typeof string !== 'string') {
    string = '' + string
  }

  var len = string.length
  if (len === 0) return 0

  // Use a for loop to avoid recursion
  var loweredCase = false
  for (;;) {
    switch (encoding) {
      case 'ascii':
      case 'latin1':
      case 'binary':
        return len
      case 'utf8':
      case 'utf-8':
      case undefined:
        return utf8ToBytes(string).length
      case 'ucs2':
      case 'ucs-2':
      case 'utf16le':
      case 'utf-16le':
        return len * 2
      case 'hex':
        return len >>> 1
      case 'base64':
        return base64ToBytes(string).length
      default:
        if (loweredCase) return utf8ToBytes(string).length // assume utf8
        encoding = ('' + encoding).toLowerCase()
        loweredCase = true
    }
  }
}
Buffer.byteLength = byteLength

function slowToString (encoding, start, end) {
  var loweredCase = false

  // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
  // property of a typed array.

  // This behaves neither like String nor Uint8Array in that we set start/end
  // to their upper/lower bounds if the value passed is out of range.
  // undefined is handled specially as per ECMA-262 6th Edition,
  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
  if (start === undefined || start < 0) {
    start = 0
  }
  // Return early if start > this.length. Done here to prevent potential uint32
  // coercion fail below.
  if (start > this.length) {
    return ''
  }

  if (end === undefined || end > this.length) {
    end = this.length
  }

  if (end <= 0) {
    return ''
  }

  // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
  end >>>= 0
  start >>>= 0

  if (end <= start) {
    return ''
  }

  if (!encoding) encoding = 'utf8'

  while (true) {
    switch (encoding) {
      case 'hex':
        return hexSlice(this, start, end)

      case 'utf8':
      case 'utf-8':
        return utf8Slice(this, start, end)

      case 'ascii':
        return asciiSlice(this, start, end)

      case 'latin1':
      case 'binary':
        return latin1Slice(this, start, end)

      case 'base64':
        return base64Slice(this, start, end)

      case 'ucs2':
      case 'ucs-2':
      case 'utf16le':
      case 'utf-16le':
        return utf16leSlice(this, start, end)

      default:
        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
        encoding = (encoding + '').toLowerCase()
        loweredCase = true
    }
  }
}

// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
// Buffer instances.
Buffer.prototype._isBuffer = true

function swap (b, n, m) {
  var i = b[n]
  b[n] = b[m]
  b[m] = i
}

Buffer.prototype.swap16 = function swap16 () {
  var len = this.length
  if (len % 2 !== 0) {
    throw new RangeError('Buffer size must be a multiple of 16-bits')
  }
  for (var i = 0; i < len; i += 2) {
    swap(this, i, i + 1)
  }
  return this
}

Buffer.prototype.swap32 = function swap32 () {
  var len = this.length
  if (len % 4 !== 0) {
    throw new RangeError('Buffer size must be a multiple of 32-bits')
  }
  for (var i = 0; i < len; i += 4) {
    swap(this, i, i + 3)
    swap(this, i + 1, i + 2)
  }
  return this
}

Buffer.prototype.swap64 = function swap64 () {
  var len = this.length
  if (len % 8 !== 0) {
    throw new RangeError('Buffer size must be a multiple of 64-bits')
  }
  for (var i = 0; i < len; i += 8) {
    swap(this, i, i + 7)
    swap(this, i + 1, i + 6)
    swap(this, i + 2, i + 5)
    swap(this, i + 3, i + 4)
  }
  return this
}

Buffer.prototype.toString = function toString () {
  var length = this.length | 0
  if (length === 0) return ''
  if (arguments.length === 0) return utf8Slice(this, 0, length)
  return slowToString.apply(this, arguments)
}

Buffer.prototype.equals = function equals (b) {
  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
  if (this === b) return true
  return Buffer.compare(this, b) === 0
}

Buffer.prototype.inspect = function inspect () {
  var str = ''
  var max = exports.INSPECT_MAX_BYTES
  if (this.length > 0) {
    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
    if (this.length > max) str += ' ... '
  }
  return '<Buffer ' + str + '>'
}

Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
  if (!Buffer.isBuffer(target)) {
    throw new TypeError('Argument must be a Buffer')
  }

  if (start === undefined) {
    start = 0
  }
  if (end === undefined) {
    end = target ? target.length : 0
  }
  if (thisStart === undefined) {
    thisStart = 0
  }
  if (thisEnd === undefined) {
    thisEnd = this.length
  }

  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
    throw new RangeError('out of range index')
  }

  if (thisStart >= thisEnd && start >= end) {
    return 0
  }
  if (thisStart >= thisEnd) {
    return -1
  }
  if (start >= end) {
    return 1
  }

  start >>>= 0
  end >>>= 0
  thisStart >>>= 0
  thisEnd >>>= 0

  if (this === target) return 0

  var x = thisEnd - thisStart
  var y = end - start
  var len = Math.min(x, y)

  var thisCopy = this.slice(thisStart, thisEnd)
  var targetCopy = target.slice(start, end)

  for (var i = 0; i < len; ++i) {
    if (thisCopy[i] !== targetCopy[i]) {
      x = thisCopy[i]
      y = targetCopy[i]
      break
    }
  }

  if (x < y) return -1
  if (y < x) return 1
  return 0
}

// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
//
// Arguments:
// - buffer - a Buffer to search
// - val - a string, Buffer, or number
// - byteOffset - an index into `buffer`; will be clamped to an int32
// - encoding - an optional encoding, relevant is val is a string
// - dir - true for indexOf, false for lastIndexOf
function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
  // Empty buffer means no match
  if (buffer.length === 0) return -1

  // Normalize byteOffset
  if (typeof byteOffset === 'string') {
    encoding = byteOffset
    byteOffset = 0
  } else if (byteOffset > 0x7fffffff) {
    byteOffset = 0x7fffffff
  } else if (byteOffset < -0x80000000) {
    byteOffset = -0x80000000
  }
  byteOffset = +byteOffset  // Coerce to Number.
  if (isNaN(byteOffset)) {
    // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
    byteOffset = dir ? 0 : (buffer.length - 1)
  }

  // Normalize byteOffset: negative offsets start from the end of the buffer
  if (byteOffset < 0) byteOffset = buffer.length + byteOffset
  if (byteOffset >= buffer.length) {
    if (dir) return -1
    else byteOffset = buffer.length - 1
  } else if (byteOffset < 0) {
    if (dir) byteOffset = 0
    else return -1
  }

  // Normalize val
  if (typeof val === 'string') {
    val = Buffer.from(val, encoding)
  }

  // Finally, search either indexOf (if dir is true) or lastIndexOf
  if (Buffer.isBuffer(val)) {
    // Special case: looking for empty string/buffer always fails
    if (val.length === 0) {
      return -1
    }
    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
  } else if (typeof val === 'number') {
    val = val & 0xFF // Search for a byte value [0-255]
    if (Buffer.TYPED_ARRAY_SUPPORT &&
        typeof Uint8Array.prototype.indexOf === 'function') {
      if (dir) {
        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
      } else {
        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
      }
    }
    return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
  }

  throw new TypeError('val must be string, number or Buffer')
}

function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
  var indexSize = 1
  var arrLength = arr.length
  var valLength = val.length

  if (encoding !== undefined) {
    encoding = String(encoding).toLowerCase()
    if (encoding === 'ucs2' || encoding === 'ucs-2' ||
        encoding === 'utf16le' || encoding === 'utf-16le') {
      if (arr.length < 2 || val.length < 2) {
        return -1
      }
      indexSize = 2
      arrLength /= 2
      valLength /= 2
      byteOffset /= 2
    }
  }

  function read (buf, i) {
    if (indexSize === 1) {
      return buf[i]
    } else {
      return buf.readUInt16BE(i * indexSize)
    }
  }

  var i
  if (dir) {
    var foundIndex = -1
    for (i = byteOffset; i < arrLength; i++) {
      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
        if (foundIndex === -1) foundIndex = i
        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
      } else {
        if (foundIndex !== -1) i -= i - foundIndex
        foundIndex = -1
      }
    }
  } else {
    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
    for (i = byteOffset; i >= 0; i--) {
      var found = true
      for (var j = 0; j < valLength; j++) {
        if (read(arr, i + j) !== read(val, j)) {
          found = false
          break
        }
      }
      if (found) return i
    }
  }

  return -1
}

Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
  return this.indexOf(val, byteOffset, encoding) !== -1
}

Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
}

Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
}

function hexWrite (buf, string, offset, length) {
  offset = Number(offset) || 0
  var remaining = buf.length - offset
  if (!length) {
    length = remaining
  } else {
    length = Number(length)
    if (length > remaining) {
      length = remaining
    }
  }

  // must be an even number of digits
  var strLen = string.length
  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')

  if (length > strLen / 2) {
    length = strLen / 2
  }
  for (var i = 0; i < length; ++i) {
    var parsed = parseInt(string.substr(i * 2, 2), 16)
    if (isNaN(parsed)) return i
    buf[offset + i] = parsed
  }
  return i
}

function utf8Write (buf, string, offset, length) {
  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
}

function asciiWrite (buf, string, offset, length) {
  return blitBuffer(asciiToBytes(string), buf, offset, length)
}

function latin1Write (buf, string, offset, length) {
  return asciiWrite(buf, string, offset, length)
}

function base64Write (buf, string, offset, length) {
  return blitBuffer(base64ToBytes(string), buf, offset, length)
}

function ucs2Write (buf, string, offset, length) {
  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
}

Buffer.prototype.write = function write (string, offset, length, encoding) {
  // Buffer#write(string)
  if (offset === undefined) {
    encoding = 'utf8'
    length = this.length
    offset = 0
  // Buffer#write(string, encoding)
  } else if (length === undefined && typeof offset === 'string') {
    encoding = offset
    length = this.length
    offset = 0
  // Buffer#write(string, offset[, length][, encoding])
  } else if (isFinite(offset)) {
    offset = offset | 0
    if (isFinite(length)) {
      length = length | 0
      if (encoding === undefined) encoding = 'utf8'
    } else {
      encoding = length
      length = undefined
    }
  // legacy write(string, encoding, offset, length) - remove in v0.13
  } else {
    throw new Error(
      'Buffer.write(string, encoding, offset[, length]) is no longer supported'
    )
  }

  var remaining = this.length - offset
  if (length === undefined || length > remaining) length = remaining

  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
    throw new RangeError('Attempt to write outside buffer bounds')
  }

  if (!encoding) encoding = 'utf8'

  var loweredCase = false
  for (;;) {
    switch (encoding) {
      case 'hex':
        return hexWrite(this, string, offset, length)

      case 'utf8':
      case 'utf-8':
        return utf8Write(this, string, offset, length)

      case 'ascii':
        return asciiWrite(this, string, offset, length)

      case 'latin1':
      case 'binary':
        return latin1Write(this, string, offset, length)

      case 'base64':
        // Warning: maxLength not taken into account in base64Write
        return base64Write(this, string, offset, length)

      case 'ucs2':
      case 'ucs-2':
      case 'utf16le':
      case 'utf-16le':
        return ucs2Write(this, string, offset, length)

      default:
        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
        encoding = ('' + encoding).toLowerCase()
        loweredCase = true
    }
  }
}

Buffer.prototype.toJSON = function toJSON () {
  return {
    type: 'Buffer',
    data: Array.prototype.slice.call(this._arr || this, 0)
  }
}

function base64Slice (buf, start, end) {
  if (start === 0 && end === buf.length) {
    return base64.fromByteArray(buf)
  } else {
    return base64.fromByteArray(buf.slice(start, end))
  }
}

function utf8Slice (buf, start, end) {
  end = Math.min(buf.length, end)
  var res = []

  var i = start
  while (i < end) {
    var firstByte = buf[i]
    var codePoint = null
    var bytesPerSequence = (firstByte > 0xEF) ? 4
      : (firstByte > 0xDF) ? 3
      : (firstByte > 0xBF) ? 2
      : 1

    if (i + bytesPerSequence <= end) {
      var secondByte, thirdByte, fourthByte, tempCodePoint

      switch (bytesPerSequence) {
        case 1:
          if (firstByte < 0x80) {
            codePoint = firstByte
          }
          break
        case 2:
          secondByte = buf[i + 1]
          if ((secondByte & 0xC0) === 0x80) {
            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
            if (tempCodePoint > 0x7F) {
              codePoint = tempCodePoint
            }
          }
          break
        case 3:
          secondByte = buf[i + 1]
          thirdByte = buf[i + 2]
          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
              codePoint = tempCodePoint
            }
          }
          break
        case 4:
          secondByte = buf[i + 1]
          thirdByte = buf[i + 2]
          fourthByte = buf[i + 3]
          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
              codePoint = tempCodePoint
            }
          }
      }
    }

    if (codePoint === null) {
      // we did not generate a valid codePoint so insert a
      // replacement char (U+FFFD) and advance only 1 byte
      codePoint = 0xFFFD
      bytesPerSequence = 1
    } else if (codePoint > 0xFFFF) {
      // encode to utf16 (surrogate pair dance)
      codePoint -= 0x10000
      res.push(codePoint >>> 10 & 0x3FF | 0xD800)
      codePoint = 0xDC00 | codePoint & 0x3FF
    }

    res.push(codePoint)
    i += bytesPerSequence
  }

  return decodeCodePointsArray(res)
}

// Based on http://stackoverflow.com/a/22747272/680742, the browser with
// the lowest limit is Chrome, with 0x10000 args.
// We go 1 magnitude less, for safety
var MAX_ARGUMENTS_LENGTH = 0x1000

function decodeCodePointsArray (codePoints) {
  var len = codePoints.length
  if (len <= MAX_ARGUMENTS_LENGTH) {
    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
  }

  // Decode in chunks to avoid "call stack size exceeded".
  var res = ''
  var i = 0
  while (i < len) {
    res += String.fromCharCode.apply(
      String,
      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
    )
  }
  return res
}

function asciiSlice (buf, start, end) {
  var ret = ''
  end = Math.min(buf.length, end)

  for (var i = start; i < end; ++i) {
    ret += String.fromCharCode(buf[i] & 0x7F)
  }
  return ret
}

function latin1Slice (buf, start, end) {
  var ret = ''
  end = Math.min(buf.length, end)

  for (var i = start; i < end; ++i) {
    ret += String.fromCharCode(buf[i])
  }
  return ret
}

function hexSlice (buf, start, end) {
  var len = buf.length

  if (!start || start < 0) start = 0
  if (!end || end < 0 || end > len) end = len

  var out = ''
  for (var i = start; i < end; ++i) {
    out += toHex(buf[i])
  }
  return out
}

function utf16leSlice (buf, start, end) {
  var bytes = buf.slice(start, end)
  var res = ''
  for (var i = 0; i < bytes.length; i += 2) {
    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
  }
  return res
}

Buffer.prototype.slice = function slice (start, end) {
  var len = this.length
  start = ~~start
  end = end === undefined ? len : ~~end

  if (start < 0) {
    start += len
    if (start < 0) start = 0
  } else if (start > len) {
    start = len
  }

  if (end < 0) {
    end += len
    if (end < 0) end = 0
  } else if (end > len) {
    end = len
  }

  if (end < start) end = start

  var newBuf
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    newBuf = this.subarray(start, end)
    newBuf.__proto__ = Buffer.prototype
  } else {
    var sliceLen = end - start
    newBuf = new Buffer(sliceLen, undefined)
    for (var i = 0; i < sliceLen; ++i) {
      newBuf[i] = this[i + start]
    }
  }

  return newBuf
}

/*
 * Need to make sure that buffer isn't trying to write out of bounds.
 */
function checkOffset (offset, ext, length) {
  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
}

Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
  offset = offset | 0
  byteLength = byteLength | 0
  if (!noAssert) checkOffset(offset, byteLength, this.length)

  var val = this[offset]
  var mul = 1
  var i = 0
  while (++i < byteLength && (mul *= 0x100)) {
    val += this[offset + i] * mul
  }

  return val
}

Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
  offset = offset | 0
  byteLength = byteLength | 0
  if (!noAssert) {
    checkOffset(offset, byteLength, this.length)
  }

  var val = this[offset + --byteLength]
  var mul = 1
  while (byteLength > 0 && (mul *= 0x100)) {
    val += this[offset + --byteLength] * mul
  }

  return val
}

Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 1, this.length)
  return this[offset]
}

Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 2, this.length)
  return this[offset] | (this[offset + 1] << 8)
}

Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 2, this.length)
  return (this[offset] << 8) | this[offset + 1]
}

Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length)

  return ((this[offset]) |
      (this[offset + 1] << 8) |
      (this[offset + 2] << 16)) +
      (this[offset + 3] * 0x1000000)
}

Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length)

  return (this[offset] * 0x1000000) +
    ((this[offset + 1] << 16) |
    (this[offset + 2] << 8) |
    this[offset + 3])
}

Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
  offset = offset | 0
  byteLength = byteLength | 0
  if (!noAssert) checkOffset(offset, byteLength, this.length)

  var val = this[offset]
  var mul = 1
  var i = 0
  while (++i < byteLength && (mul *= 0x100)) {
    val += this[offset + i] * mul
  }
  mul *= 0x80

  if (val >= mul) val -= Math.pow(2, 8 * byteLength)

  return val
}

Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
  offset = offset | 0
  byteLength = byteLength | 0
  if (!noAssert) checkOffset(offset, byteLength, this.length)

  var i = byteLength
  var mul = 1
  var val = this[offset + --i]
  while (i > 0 && (mul *= 0x100)) {
    val += this[offset + --i] * mul
  }
  mul *= 0x80

  if (val >= mul) val -= Math.pow(2, 8 * byteLength)

  return val
}

Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 1, this.length)
  if (!(this[offset] & 0x80)) return (this[offset])
  return ((0xff - this[offset] + 1) * -1)
}

Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 2, this.length)
  var val = this[offset] | (this[offset + 1] << 8)
  return (val & 0x8000) ? val | 0xFFFF0000 : val
}

Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 2, this.length)
  var val = this[offset + 1] | (this[offset] << 8)
  return (val & 0x8000) ? val | 0xFFFF0000 : val
}

Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length)

  return (this[offset]) |
    (this[offset + 1] << 8) |
    (this[offset + 2] << 16) |
    (this[offset + 3] << 24)
}

Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length)

  return (this[offset] << 24) |
    (this[offset + 1] << 16) |
    (this[offset + 2] << 8) |
    (this[offset + 3])
}

Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length)
  return ieee754.read(this, offset, true, 23, 4)
}

Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length)
  return ieee754.read(this, offset, false, 23, 4)
}

Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 8, this.length)
  return ieee754.read(this, offset, true, 52, 8)
}

Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 8, this.length)
  return ieee754.read(this, offset, false, 52, 8)
}

function checkInt (buf, value, offset, ext, max, min) {
  if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
  if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
  if (offset + ext > buf.length) throw new RangeError('Index out of range')
}

Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
  value = +value
  offset = offset | 0
  byteLength = byteLength | 0
  if (!noAssert) {
    var maxBytes = Math.pow(2, 8 * byteLength) - 1
    checkInt(this, value, offset, byteLength, maxBytes, 0)
  }

  var mul = 1
  var i = 0
  this[offset] = value & 0xFF
  while (++i < byteLength && (mul *= 0x100)) {
    this[offset + i] = (value / mul) & 0xFF
  }

  return offset + byteLength
}

Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
  value = +value
  offset = offset | 0
  byteLength = byteLength | 0
  if (!noAssert) {
    var maxBytes = Math.pow(2, 8 * byteLength) - 1
    checkInt(this, value, offset, byteLength, maxBytes, 0)
  }

  var i = byteLength - 1
  var mul = 1
  this[offset + i] = value & 0xFF
  while (--i >= 0 && (mul *= 0x100)) {
    this[offset + i] = (value / mul) & 0xFF
  }

  return offset + byteLength
}

Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
  this[offset] = (value & 0xff)
  return offset + 1
}

function objectWriteUInt16 (buf, value, offset, littleEndian) {
  if (value < 0) value = 0xffff + value + 1
  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
    buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
      (littleEndian ? i : 1 - i) * 8
  }
}

Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = (value & 0xff)
    this[offset + 1] = (value >>> 8)
  } else {
    objectWriteUInt16(this, value, offset, true)
  }
  return offset + 2
}

Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = (value >>> 8)
    this[offset + 1] = (value & 0xff)
  } else {
    objectWriteUInt16(this, value, offset, false)
  }
  return offset + 2
}

function objectWriteUInt32 (buf, value, offset, littleEndian) {
  if (value < 0) value = 0xffffffff + value + 1
  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
    buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
  }
}

Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset + 3] = (value >>> 24)
    this[offset + 2] = (value >>> 16)
    this[offset + 1] = (value >>> 8)
    this[offset] = (value & 0xff)
  } else {
    objectWriteUInt32(this, value, offset, true)
  }
  return offset + 4
}

Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = (value >>> 24)
    this[offset + 1] = (value >>> 16)
    this[offset + 2] = (value >>> 8)
    this[offset + 3] = (value & 0xff)
  } else {
    objectWriteUInt32(this, value, offset, false)
  }
  return offset + 4
}

Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) {
    var limit = Math.pow(2, 8 * byteLength - 1)

    checkInt(this, value, offset, byteLength, limit - 1, -limit)
  }

  var i = 0
  var mul = 1
  var sub = 0
  this[offset] = value & 0xFF
  while (++i < byteLength && (mul *= 0x100)) {
    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
      sub = 1
    }
    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
  }

  return offset + byteLength
}

Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) {
    var limit = Math.pow(2, 8 * byteLength - 1)

    checkInt(this, value, offset, byteLength, limit - 1, -limit)
  }

  var i = byteLength - 1
  var mul = 1
  var sub = 0
  this[offset + i] = value & 0xFF
  while (--i >= 0 && (mul *= 0x100)) {
    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
      sub = 1
    }
    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
  }

  return offset + byteLength
}

Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
  if (value < 0) value = 0xff + value + 1
  this[offset] = (value & 0xff)
  return offset + 1
}

Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = (value & 0xff)
    this[offset + 1] = (value >>> 8)
  } else {
    objectWriteUInt16(this, value, offset, true)
  }
  return offset + 2
}

Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = (value >>> 8)
    this[offset + 1] = (value & 0xff)
  } else {
    objectWriteUInt16(this, value, offset, false)
  }
  return offset + 2
}

Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = (value & 0xff)
    this[offset + 1] = (value >>> 8)
    this[offset + 2] = (value >>> 16)
    this[offset + 3] = (value >>> 24)
  } else {
    objectWriteUInt32(this, value, offset, true)
  }
  return offset + 4
}

Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
  if (value < 0) value = 0xffffffff + value + 1
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = (value >>> 24)
    this[offset + 1] = (value >>> 16)
    this[offset + 2] = (value >>> 8)
    this[offset + 3] = (value & 0xff)
  } else {
    objectWriteUInt32(this, value, offset, false)
  }
  return offset + 4
}

function checkIEEE754 (buf, value, offset, ext, max, min) {
  if (offset + ext > buf.length) throw new RangeError('Index out of range')
  if (offset < 0) throw new RangeError('Index out of range')
}

function writeFloat (buf, value, offset, littleEndian, noAssert) {
  if (!noAssert) {
    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
  }
  ieee754.write(buf, value, offset, littleEndian, 23, 4)
  return offset + 4
}

Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
  return writeFloat(this, value, offset, true, noAssert)
}

Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
  return writeFloat(this, value, offset, false, noAssert)
}

function writeDouble (buf, value, offset, littleEndian, noAssert) {
  if (!noAssert) {
    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
  }
  ieee754.write(buf, value, offset, littleEndian, 52, 8)
  return offset + 8
}

Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
  return writeDouble(this, value, offset, true, noAssert)
}

Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
  return writeDouble(this, value, offset, false, noAssert)
}

// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
Buffer.prototype.copy = function copy (target, targetStart, start, end) {
  if (!start) start = 0
  if (!end && end !== 0) end = this.length
  if (targetStart >= target.length) targetStart = target.length
  if (!targetStart) targetStart = 0
  if (end > 0 && end < start) end = start

  // Copy 0 bytes; we're done
  if (end === start) return 0
  if (target.length === 0 || this.length === 0) return 0

  // Fatal error conditions
  if (targetStart < 0) {
    throw new RangeError('targetStart out of bounds')
  }
  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
  if (end < 0) throw new RangeError('sourceEnd out of bounds')

  // Are we oob?
  if (end > this.length) end = this.length
  if (target.length - targetStart < end - start) {
    end = target.length - targetStart + start
  }

  var len = end - start
  var i

  if (this === target && start < targetStart && targetStart < end) {
    // descending copy from end
    for (i = len - 1; i >= 0; --i) {
      target[i + targetStart] = this[i + start]
    }
  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
    // ascending copy from start
    for (i = 0; i < len; ++i) {
      target[i + targetStart] = this[i + start]
    }
  } else {
    Uint8Array.prototype.set.call(
      target,
      this.subarray(start, start + len),
      targetStart
    )
  }

  return len
}

// Usage:
//    buffer.fill(number[, offset[, end]])
//    buffer.fill(buffer[, offset[, end]])
//    buffer.fill(string[, offset[, end]][, encoding])
Buffer.prototype.fill = function fill (val, start, end, encoding) {
  // Handle string cases:
  if (typeof val === 'string') {
    if (typeof start === 'string') {
      encoding = start
      start = 0
      end = this.length
    } else if (typeof end === 'string') {
      encoding = end
      end = this.length
    }
    if (val.length === 1) {
      var code = val.charCodeAt(0)
      if (code < 256) {
        val = code
      }
    }
    if (encoding !== undefined && typeof encoding !== 'string') {
      throw new TypeError('encoding must be a string')
    }
    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
      throw new TypeError('Unknown encoding: ' + encoding)
    }
  } else if (typeof val === 'number') {
    val = val & 255
  }

  // Invalid ranges are not set to a default, so can range check early.
  if (start < 0 || this.length < start || this.length < end) {
    throw new RangeError('Out of range index')
  }

  if (end <= start) {
    return this
  }

  start = start >>> 0
  end = end === undefined ? this.length : end >>> 0

  if (!val) val = 0

  var i
  if (typeof val === 'number') {
    for (i = start; i < end; ++i) {
      this[i] = val
    }
  } else {
    var bytes = Buffer.isBuffer(val)
      ? val
      : utf8ToBytes(new Buffer(val, encoding).toString())
    var len = bytes.length
    for (i = 0; i < end - start; ++i) {
      this[i + start] = bytes[i % len]
    }
  }

  return this
}

// HELPER FUNCTIONS
// ================

var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g

function base64clean (str) {
  // Node strips out invalid characters like \n and \t from the string, base64-js does not
  str = stringtrim(str).replace(INVALID_BASE64_RE, '')
  // Node converts strings with length < 2 to ''
  if (str.length < 2) return ''
  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
  while (str.length % 4 !== 0) {
    str = str + '='
  }
  return str
}

function stringtrim (str) {
  if (str.trim) return str.trim()
  return str.replace(/^\s+|\s+$/g, '')
}

function toHex (n) {
  if (n < 16) return '0' + n.toString(16)
  return n.toString(16)
}

function utf8ToBytes (string, units) {
  units = units || Infinity
  var codePoint
  var length = string.length
  var leadSurrogate = null
  var bytes = []

  for (var i = 0; i < length; ++i) {
    codePoint = string.charCodeAt(i)

    // is surrogate component
    if (codePoint > 0xD7FF && codePoint < 0xE000) {
      // last char was a lead
      if (!leadSurrogate) {
        // no lead yet
        if (codePoint > 0xDBFF) {
          // unexpected trail
          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
          continue
        } else if (i + 1 === length) {
          // unpaired lead
          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
          continue
        }

        // valid lead
        leadSurrogate = codePoint

        continue
      }

      // 2 leads in a row
      if (codePoint < 0xDC00) {
        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
        leadSurrogate = codePoint
        continue
      }

      // valid surrogate pair
      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
    } else if (leadSurrogate) {
      // valid bmp char, but last char was a lead
      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
    }

    leadSurrogate = null

    // encode utf8
    if (codePoint < 0x80) {
      if ((units -= 1) < 0) break
      bytes.push(codePoint)
    } else if (codePoint < 0x800) {
      if ((units -= 2) < 0) break
      bytes.push(
        codePoint >> 0x6 | 0xC0,
        codePoint & 0x3F | 0x80
      )
    } else if (codePoint < 0x10000) {
      if ((units -= 3) < 0) break
      bytes.push(
        codePoint >> 0xC | 0xE0,
        codePoint >> 0x6 & 0x3F | 0x80,
        codePoint & 0x3F | 0x80
      )
    } else if (codePoint < 0x110000) {
      if ((units -= 4) < 0) break
      bytes.push(
        codePoint >> 0x12 | 0xF0,
        codePoint >> 0xC & 0x3F | 0x80,
        codePoint >> 0x6 & 0x3F | 0x80,
        codePoint & 0x3F | 0x80
      )
    } else {
      throw new Error('Invalid code point')
    }
  }

  return bytes
}

function asciiToBytes (str) {
  var byteArray = []
  for (var i = 0; i < str.length; ++i) {
    // Node's code seems to be doing this and not & 0x7F..
    byteArray.push(str.charCodeAt(i) & 0xFF)
  }
  return byteArray
}

function utf16leToBytes (str, units) {
  var c, hi, lo
  var byteArray = []
  for (var i = 0; i < str.length; ++i) {
    if ((units -= 2) < 0) break

    c = str.charCodeAt(i)
    hi = c >> 8
    lo = c % 256
    byteArray.push(lo)
    byteArray.push(hi)
  }

  return byteArray
}

function base64ToBytes (str) {
  return base64.toByteArray(base64clean(str))
}

function blitBuffer (src, dst, offset, length) {
  for (var i = 0; i < length; ++i) {
    if ((i + offset >= dst.length) || (i >= src.length)) break
    dst[i + offset] = src[i]
  }
  return i
}

function isnan (val) {
  return val !== val // eslint-disable-line no-self-compare
}

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))

/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/emoji-vue/src/lib/css/emoji.css":
/*!**************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/postcss-loader/src??ref--6-2!./node_modules/emoji-vue/src/lib/css/emoji.css ***!
  \**************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var escape = __webpack_require__(/*! ../../../../css-loader/lib/url/escape.js */ "./node_modules/css-loader/lib/url/escape.js");
exports = module.exports = __webpack_require__(/*! ../../../../css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "span.emoji {\n    display: -moz-inline-box;\n    display: inline-block;\n    vertical-align: baseline;\n    *vertical-align: auto;\n    *zoom: 1;\n    *display: inline;\n    width: 1em;\n    height: 1em;\n    background-size: 1em;\n    background-repeat: no-repeat;\n    text-indent: -9999px;\n}\n\nspan.emoji-sizer {\n    line-height: 0.81em;\n    font-size: 1em;\n    margin: -2px 0;\n}\n\nspan.emoji-outer {\n    display: -moz-inline-box;\n    display: inline-block;\n    *display: inline;\n    height: 1em;\n    width: 1em;\n}\n\nspan.emoji-inner {\n    display: -moz-inline-box;\n    display: inline-block;\n    text-indent: -9999px;\n    width: 100%;\n    height: 100%;\n    vertical-align: baseline;\n    *vertical-align: auto;\n    *zoom: 1;\n}\n\nimg.emoji {\n    width: 1em;\n    height: 1em;\n}\n\n.emoji-wysiwyg-editor:empty:before {\n    content: attr(placeholder);\n    color: #9aa2ab;\n}\n\n.emoji-picker-container {\n    position: relative;\n}\n\n.emoji-picker-icon {\n    position: absolute;\n    right: 10px;\n    top: 5px;\n    font-size: 20px;\n    opacity: 0.7;\n    z-index: 100;\n    transition: none;\n    color: black;\n    -moz-user-select: none;\n    -webkit-user-select: none;\n    -o-user-select: none;\n    -ms-user-select: none;\n        user-select: none;\n}\n\n.emoji-picker-icon.parent-has-scroll {\n    right: 28px;\n}\n\n.emoji-picker-icon:hover {\n    opacity: 1;\n}\n\n/* Emoji area */\n.emoji-wysiwyg-editor:empty:before {\n    content: attr(placeholder);\n    color: #9aa2ab;\n}\n\n.emoji-wysiwyg-editor:active:before,\n.emoji-wysiwyg-editor:focus:before {\n    content: none;\n}\n\n.emoji-wysiwyg-editor {\n    padding: 6px;\n    padding-right: 35px;\n    margin-bottom: 0px;\n    min-height: 35px; /* 35 */\n    height: 30px;\n    max-height: 284px;\n    overflow: auto;\n    line-height: 17px;\n    border: 1px solid #d2dbe3;\n    border-radius: 2px;\n    box-shadow: none;\n    transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n    -webkit-user-select: text;\n    word-wrap: break-word;\n}\n\n.emoji-wysiwyg-editor.parent-has-scroll {\n     padding-right: 40px;\n }\n\n.emoji-wysiwyg-editor.single-line-editor {\n    min-height: 35px;\n    height: inherit;\n}\n\n.emoji-wysiwyg-editor img {\n    width: 20px;\n    height: 20px;\n    vertical-align: middle;\n    margin: -3px 0 0 0;\n}\n\n.emoji-menu {\n    position: absolute;\n    z-index: 999;\n    width: 225px;\n    overflow: hidden;\n    border: 1px #dfdfdf solid;\n    border-radius: 3px;\n    overflow: hidden;\n    box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.1);\n}\n\n.emoji-items-wrap1 {\n    background: #ffffff;\n    padding: 5px 2px 5px 5px;\n}\n\n.emoji-items-wrap1 .emoji-menu-tabs {\n    width: 100%;\n    margin-bottom: 8px;\n    margin-top: 3px;\n}\n\n.emoji-items-wrap1 .emoji-menu-tabs td {\n    text-align: center;\n    color: white;\n    line-height: 0;\n}\n\n.emoji-menu-tabs .emoji-menu-tab {\n    display: inline-block;\n    width: 24px;\n    height: 29px;\n    background: url(" + escape(__webpack_require__(/*! ../img/IconsetSmiles.png */ "./node_modules/emoji-vue/src/lib/img/IconsetSmiles.png")) + ") no-repeat;\n    background-size: 42px 350px;\n    border: 0;\n}\n\n.is_1x .emoji-menu-tabs .emoji-menu-tab {\n    background-image: url(" + escape(__webpack_require__(/*! ../img/IconsetSmiles_1x.png */ "./node_modules/emoji-vue/src/lib/img/IconsetSmiles_1x.png")) + ");\n}\n\n.emoji-menu-tabs .icon-recent { background-position: -9px -306px; }\n\n.emoji-menu-tabs .icon-recent-selected { background-position: -9px -277px; }\n\n.emoji-menu-tabs .icon-smile { background-position: -9px -34px; }\n\n.emoji-menu-tabs .icon-smile-selected { background-position: -9px -5px; }\n\n.emoji-menu-tabs .icon-flower { background-position: -9px -145px; }\n\n.emoji-menu-tabs .icon-flower-selected { background-position: -9px -118px; }\n\n.emoji-menu-tabs .icon-bell { background-position: -9px -89px; }\n\n.emoji-menu-tabs .icon-bell-selected { background-position: -9px -61px; }\n\n.emoji-menu-tabs .icon-car { background-position: -9px -196px; }\n\n.emoji-menu-tabs .icon-car-selected { background-position: -9px -170px; }\n\n.emoji-menu-tabs .icon-grid { background-position: -9px -248px; }\n\n.emoji-menu-tabs .icon-grid-selected { background-position: -9px -222px; }\n\n.emoji-menu-tabs .icon-smile,\n.emoji-menu-tabs .icon-flower,\n.emoji-menu-tabs .icon-bell,\n.emoji-menu-tabs .icon-car,\n.emoji-menu-tabs .icon-grid {\n    opacity: 0.7;\n}\n\n.emoji-menu-tabs .icon-smile:hover,\n.emoji-menu-tabs .icon-flower:hover,\n.emoji-menu-tabs .icon-bell:hover,\n.emoji-menu-tabs .icon-car:hover,\n.emoji-menu-tabs .icon-grid:hover {\n    opacity: 1;\n}\n\n.emoji-menu .emoji-items-wrap {\n    position: relative;\n    height: 174px;\n}\n\n.emoji-menu .emoji-items {\n    padding-right: 8px;\n    outline: 0 !important;\n}\n\n.emoji-menu img {\n    width: 20px;\n    height: 20px;\n    vertical-align: middle;\n    border: 0 none;\n}\n\n.emoji-menu .emoji-items a {\n    margin: -1px 0 0 -1px;\n    padding: 5px;\n    display: block;\n    float: left;\n    border-radius: 2px;\n    border: 0;\n}\n\n.emoji-menu .emoji-items a:hover {\n    background-color: #edf2f5;\n}\n\n.emoji-menu:after {\n    content: ' ';\n    display: block;\n    clear: left;\n}\n\n.emoji-menu a .label {\n    display: none;\n}\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/nanoscroller/bin/css/nanoscroller.css":
/*!********************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/postcss-loader/src??ref--6-2!./node_modules/nanoscroller/bin/css/nanoscroller.css ***!
  \********************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "/** initial setup **/\n.nano {\n  position : relative;\n  width    : 100%;\n  height   : 100%;\n  overflow : hidden;\n}\n.nano > .nano-content {\n  position      : absolute;\n  overflow      : scroll;\n  overflow-x    : hidden;\n  top           : 0;\n  right         : 0;\n  bottom        : 0;\n  left          : 0;\n}\n.nano > .nano-content:focus {\n  outline: thin dotted;\n}\n.nano > .nano-content::-webkit-scrollbar {\n  display: none;\n}\n.has-scrollbar > .nano-content::-webkit-scrollbar {\n  display: block;\n}\n.nano > .nano-pane {\n  background : rgba(0,0,0,.25);\n  position   : absolute;\n  width      : 10px;\n  right      : 0;\n  top        : 0;\n  bottom     : 0;\n  visibility : hidden\\9; /* Target only IE7 and IE8 with this hack */\n  opacity    : .01;\n  transition            : .2s;\n  border-radius         : 5px;\n}\n.nano > .nano-pane > .nano-slider {\n  background: #444;\n  background: rgba(0,0,0,.5);\n  position              : relative;\n  margin                : 0 1px;\n  border-radius         : 3px;\n}\n.nano:hover > .nano-pane, .nano-pane.active, .nano-pane.flashed {\n  visibility : visible\\9; /* Target only IE7 and IE8 with this hack */\n  opacity    : 0.99;\n}\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-advanced-chat/dist/vue-advanced-chat.css":
/*!***************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-advanced-chat/dist/vue-advanced-chat.css ***!
  \***************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, ".vac-container-center[data-v-fd7c39d0]{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:9}.vac-container-top[data-v-fd7c39d0]{padding:21px}.vac-container-top #vac-circle[data-v-fd7c39d0]{height:20px;width:20px}#vac-circle[data-v-fd7c39d0]{margin:auto;height:28px;width:28px;border:3px solid rgba(0,0,0,.25);border-top:3px var(--chat-color-spinner) solid;border-right:3px var(--chat-color-spinner) solid;border-bottom:3px var(--chat-color-spinner) solid;border-radius:50%;-webkit-animation:vac-spin-data-v-fd7c39d0 1s linear infinite;animation:vac-spin-data-v-fd7c39d0 1s linear infinite}@media only screen and (max-width:768px){#vac-circle[data-v-fd7c39d0]{height:24px;width:24px}.vac-container-top[data-v-fd7c39d0]{padding:18px}.vac-container-top #vac-circle[data-v-fd7c39d0]{height:16px;width:16px}}@-webkit-keyframes vac-spin-data-v-fd7c39d0{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes vac-spin-data-v-fd7c39d0{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}#vac-icon-search{fill:var(--chat-icon-color-search)}#vac-icon-add{fill:var(--chat-icon-color-add)}#vac-icon-toggle{fill:var(--chat-icon-color-toggle)}#vac-icon-menu{fill:var(--chat-icon-color-menu)}#vac-icon-close{fill:var(--chat-icon-color-close)}#vac-icon-close-image{fill:var(--chat-icon-color-close-image)}#vac-icon-file{fill:var(--chat-icon-color-file)}#vac-icon-paperclip{fill:var(--chat-icon-color-paperclip)}#vac-icon-close-outline{fill:var(--chat-icon-color-close-outline)}#vac-icon-send{fill:var(--chat-icon-color-send)}#vac-icon-send-disabled{fill:var(--chat-icon-color-send-disabled)}#vac-icon-emoji{fill:var(--chat-icon-color-emoji)}#vac-icon-emoji-reaction{fill:var(--chat-icon-color-emoji-reaction)}#vac-icon-document{fill:var(--chat-icon-color-document)}#vac-icon-pencil{fill:var(--chat-icon-color-pencil)}#vac-icon-checkmark,#vac-icon-double-checkmark{fill:var(--chat-icon-color-checkmark)}#vac-icon-checkmark-seen,#vac-icon-double-checkmark-seen{fill:var(--chat-icon-color-checkmark-seen)}#vac-icon-eye{fill:var(--chat-icon-color-eye)}#vac-icon-dropdown-message{fill:var(--chat-icon-color-dropdown-message)}#vac-icon-dropdown-room{fill:var(--chat-icon-color-dropdown-room)}#vac-icon-dropdown-scroll{fill:var(--chat-icon-color-dropdown-scroll)}#vac-icon-audio-play{fill:var(--chat-icon-color-audio-play)}#vac-icon-audio-pause{fill:var(--chat-icon-color-audio-pause)}.vac-box-search[data-v-75dd31cd]{position:-webkit-sticky;position:sticky;display:flex;align-items:center;height:64px;padding:0 15px}.vac-icon-search[data-v-75dd31cd]{display:flex;position:absolute;left:30px}.vac-icon-search svg[data-v-75dd31cd]{width:18px;height:18px}.vac-input[data-v-75dd31cd]{height:38px;width:100%;background:var(--chat-bg-color-input);color:var(--chat-color);border-radius:4px;font-size:15px;outline:0;caret-color:var(--chat-color-caret);padding:10px 10px 10px 40px;border:1px solid var(--chat-sidemenu-border-color-search);border-radius:20px}.vac-input[data-v-75dd31cd]::-moz-placeholder{color:var(--chat-color-placeholder)}.vac-input[data-v-75dd31cd]:-ms-input-placeholder{color:var(--chat-color-placeholder)}.vac-input[data-v-75dd31cd]::-webkit-input-placeholder{color:var(--chat-color-placeholder)}.vac-input[data-v-75dd31cd]::-ms-input-placeholder{color:var(--chat-color-placeholder)}.vac-input[data-v-75dd31cd]::placeholder{color:var(--chat-color-placeholder)}.vac-add-icon[data-v-75dd31cd]{margin-left:auto;padding-left:10px}@media only screen and (max-width:768px){.vac-box-search[data-v-75dd31cd]{height:58px}}.vac-icon-deleted{height:14px;width:14px;vertical-align:middle;margin:-3px 1px 0 0;fill:var(--chat-room-color-message)}.vac-text-ellipsis{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-image-link-container{background-color:var(--chat-message-bg-color-media);padding:8px;margin:2px auto;border-radius:4px}.vac-image-link{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:contain;background-position:50%!important;background-repeat:no-repeat!important;height:150px;width:150px;max-width:100%;border-radius:4px;margin:0 auto}.vac-image-link-message{max-width:166px;font-size:12px}.vac-room-container[data-v-0060733d]{display:flex;flex:1;align-items:center;width:100%}.vac-name-container[data-v-0060733d]{flex:1}.vac-text-ellipsis[data-v-0060733d]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-title-container[data-v-0060733d]{display:flex;align-items:center;line-height:25px}.vac-state-circle[data-v-0060733d]{width:9px;height:9px;border-radius:50%;background-color:var(--chat-room-color-offline);margin-right:6px;transition:.3s}.vac-state-online[data-v-0060733d]{background-color:var(--chat-room-color-online)}.vac-room-name[data-v-0060733d]{flex:1;color:var(--chat-room-color-username);font-weight:500}.vac-text-date[data-v-0060733d]{margin-left:5px;font-size:11px;color:var(--chat-room-color-timestamp)}.vac-text-last[data-v-0060733d]{display:flex;align-items:center;font-size:12px;line-height:19px;color:var(--chat-room-color-message)}.vac-message-new[data-v-0060733d]{color:var(--chat-room-color-username);font-weight:500}.vac-icon-check[data-v-0060733d]{display:flex;vertical-align:middle;height:14px;width:14px;margin-top:-2px;margin-right:2px}.vac-icon-microphone[data-v-0060733d]{height:15px;width:15px;vertical-align:middle;margin:-3px 1px 0 -2px;fill:var(--chat-room-color-message)}.vac-room-options-container[data-v-0060733d]{display:flex;margin-left:auto}.vac-room-badge[data-v-0060733d]{background-color:var(--chat-room-bg-color-badge);color:var(--chat-room-color-badge);margin-left:5px}.vac-list-room-options[data-v-0060733d]{height:19px;width:19px;align-items:center;margin-left:5px}.vac-rooms-container[data-v-0906a622]{display:flex;flex-flow:column;flex:0 0 25%;min-width:260px;max-width:500px;position:relative;background:var(--chat-sidemenu-bg-color);height:100%;border-top-left-radius:var(--chat-container-border-radius);border-bottom-left-radius:var(--chat-container-border-radius)}.vac-rooms-container-full[data-v-0906a622]{flex:0 0 100%;max-width:100%}.vac-rooms-empty[data-v-0906a622]{font-size:14px;color:#9ca6af;font-style:italic;text-align:center;margin:40px 0;line-height:20px;white-space:pre-line}.vac-room-list[data-v-0906a622]{flex:1;position:relative;max-width:100%;cursor:pointer;padding:0 10px 5px;overflow-y:auto}.vac-room-item[data-v-0906a622]{border-radius:8px;align-items:center;display:flex;flex:1 1 100%;margin-bottom:5px;padding:0 14px;position:relative;min-height:71px}.vac-room-item[data-v-0906a622]:hover{background:var(--chat-sidemenu-bg-color-hover)}.vac-room-item[data-v-0906a622]:hover,.vac-room-item[data-v-0906a622]:not(:hover){transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-room-selected[data-v-0906a622]{color:var(--chat-sidemenu-color-active)!important}.vac-room-selected[data-v-0906a622],.vac-room-selected[data-v-0906a622]:hover{background:var(--chat-sidemenu-bg-color-active)!important}@media only screen and (max-width:768px){.vac-room-list[data-v-0906a622]{padding:0 7px 5px}.vac-room-item[data-v-0906a622]{min-height:60px;padding:0 8px}}.vac-wrapper[data-v-7ef95ce2]{position:relative;display:flex}.vac-emoji-picker[data-v-7ef95ce2]{position:absolute;z-index:9999;bottom:32px;right:10px;width:240px;overflow:scroll;padding:16px;box-sizing:border-box;border-radius:.5rem;background:var(--chat-emoji-bg-color);box-shadow:0 1px 2px -2px rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1),0 1px 2px 1px rgba(0,0,0,.1)}.vac-picker-reaction[data-v-7ef95ce2]{position:fixed;top:auto;right:auto}.vac-emoji-picker__search[data-v-7ef95ce2]{display:flex}.vac-emoji-picker__search>input[data-v-7ef95ce2]{flex:1;border-radius:10rem;border:var(--chat-border-style);padding:5px 10px;outline:none;background:var(--chat-bg-color-input);color:var(--chat-color)}.vac-emoji-picker h5[data-v-7ef95ce2]{margin:15px 0 8px;color:#b1b1b1;text-transform:uppercase;font-size:.8rem;cursor:default}.vac-emoji-picker .vac-emojis[data-v-7ef95ce2]{display:flex;flex-wrap:wrap;justify-content:space-between}.vac-emoji-picker .vac-emojis[data-v-7ef95ce2]:after{content:\"\";flex:auto}.vac-emoji-picker .vac-emojis span[data-v-7ef95ce2]{padding:.2rem;cursor:pointer;border-radius:5px}.vac-emoji-picker .vac-emojis span[data-v-7ef95ce2]:hover{background:var(--chat-sidemenu-bg-color-hover);cursor:pointer}.vac-button-reaction svg[data-v-7ef95ce2]{height:19px;width:19px}.vac-room-header[data-v-64950a2c]{position:absolute;display:flex;align-items:center;height:64px;width:100%;z-index:10;margin-right:1px;background:var(--chat-header-bg-color);border-top-right-radius:var(--chat-container-border-radius)}.vac-room-wrapper[data-v-64950a2c]{display:flex;align-items:center;min-width:0;height:100%;width:100%;padding:0 16px}.vac-toggle-button[data-v-64950a2c]{margin-right:15px}.vac-toggle-button svg[data-v-64950a2c]{height:26px;width:26px}.vac-rotate-icon[data-v-64950a2c]{-webkit-transform:rotate(180deg)!important;transform:rotate(180deg)!important}.vac-info-wrapper[data-v-64950a2c]{display:flex;align-items:center;min-width:0;width:100%;height:100%}.vac-room-name[data-v-64950a2c]{font-size:17px;font-weight:500;line-height:22px;color:var(--chat-header-color-name)}.vac-room-info[data-v-64950a2c]{font-size:13px;line-height:18px;color:var(--chat-header-color-info)}.vac-room-options[data-v-64950a2c]{margin-left:auto}@media only screen and (max-width:768px){.vac-room-header[data-v-64950a2c]{height:50px}.vac-room-header .vac-room-wrapper[data-v-64950a2c]{padding:0 10px}.vac-room-header .vac-room-name[data-v-64950a2c]{font-size:16px;line-height:22px}.vac-room-header .vac-room-info[data-v-64950a2c]{font-size:12px;line-height:16px}.vac-room-header .vac-room-avatar[data-v-64950a2c]{height:37px;width:37px;min-height:37px;min-width:37px}}.vac-reply-container[data-v-ba6c1600]{position:absolute;display:flex;padding:10px 10px 0 10px;background:var(--chat-footer-bg-color);align-items:center;width:calc(100% - 20px)}.vac-reply-container .vac-reply-box[data-v-ba6c1600]{width:100%;overflow:hidden;background:var(--chat-footer-bg-color-reply);border-radius:4px;padding:8px 10px;display:flex}.vac-reply-container .vac-reply-info[data-v-ba6c1600]{overflow:hidden}.vac-reply-container .vac-reply-username[data-v-ba6c1600]{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-container .vac-reply-content[data-v-ba6c1600]{font-size:12px;color:var(--chat-message-color-reply-content);white-space:pre-line}.vac-reply-container .vac-icon-reply[data-v-ba6c1600]{margin-left:10px}.vac-reply-container .vac-icon-reply svg[data-v-ba6c1600]{height:20px;width:20px}.vac-reply-container .vac-image-reply[data-v-ba6c1600]{max-height:100px;margin-right:10px;border-radius:4px}@media only screen and (max-width:768px){.vac-reply-container[data-v-ba6c1600]{padding:5px 8px;width:calc(100% - 16px)}}.vac-tags-container[data-v-38381158]{position:absolute;display:flex;flex-direction:column;align-items:center;width:100%}.vac-tags-container .vac-tags-box[data-v-38381158]{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color)}.vac-tags-container .vac-tags-box[data-v-38381158]:hover{background:var(--chat-footer-bg-color-tag-active)}.vac-tags-container .vac-tags-box[data-v-38381158]:hover,.vac-tags-container .vac-tags-box[data-v-38381158]:not(:hover){transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-tags-container .vac-tags-info[data-v-38381158]{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-tags-container .vac-tags-avatar[data-v-38381158]{height:34px;width:34px;min-height:34px;min-width:34px}.vac-tags-container .vac-tags-username[data-v-38381158]{font-size:14px}@media only screen and (max-width:768px){.vac-tags-container .vac-tags-container .vac-tags-box[data-v-38381158]{height:50px}.vac-tags-container .vac-tags-container .vac-tags-info[data-v-38381158]{padding:0 12px}}.vac-emojis-container[data-v-cb489922]{position:absolute;width:calc(100% - 16px);padding:10px 8px;background:var(--chat-footer-bg-color);display:flex;align-items:center;overflow:auto}.vac-emojis-container .vac-emoji-element[data-v-cb489922]{padding:0 8px;font-size:30px;border-radius:4px;cursor:pointer}.vac-emojis-container .vac-emoji-element[data-v-cb489922]:hover{background:var(--chat-footer-bg-color-tag-active);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-emojis-container .vac-emoji-element[data-v-cb489922]:not(:hover){transition:background-color .3s cubic-bezier(.25,.8,.5,1)}@media only screen and (max-width:768px){.vac-emojis-container[data-v-cb489922]{width:calc(100% - 10px);padding:7px 5px}.vac-emojis-container .vac-emoji-element[data-v-cb489922]{padding:0 7px;font-size:26px}}.vac-reply-message[data-v-0a737ce0]{background:var(--chat-message-bg-color-reply);border-radius:4px;margin:-1px -5px 8px;padding:8px 10px}.vac-reply-message .vac-reply-username[data-v-0a737ce0]{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-message .vac-image-reply-container[data-v-0a737ce0]{width:70px}.vac-reply-message .vac-image-reply-container .vac-message-image-reply[data-v-0a737ce0]{height:70px;width:70px;margin:4px auto 3px}.vac-reply-message .vac-reply-content[data-v-0a737ce0]{font-size:12px;color:var(--chat-message-color-reply-content)}.vac-image-container[data-v-66c96f2b]{width:250px;max-width:100%}.vac-image-loading[data-v-66c96f2b]{-webkit-filter:blur(3px);filter:blur(3px)}.vac-image-buttons[data-v-66c96f2b]{position:absolute;width:100%;height:100%;border-radius:4px;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.02) 60%,rgba(0,0,0,.05) 65%,rgba(0,0,0,.1) 70%,rgba(0,0,0,.2) 75%,rgba(0,0,0,.3) 80%,rgba(0,0,0,.5) 85%,rgba(0,0,0,.6) 90%,rgba(0,0,0,.7) 95%,rgba(0,0,0,.8))}.vac-image-buttons svg[data-v-66c96f2b]{height:26px;width:26px}.vac-image-buttons .vac-button-download[data-v-66c96f2b],.vac-image-buttons .vac-button-view[data-v-66c96f2b]{position:absolute;bottom:6px;left:7px}.vac-image-buttons[data-v-66c96f2b] :first-child{left:40px}.vac-image-buttons .vac-button-view[data-v-66c96f2b]{max-width:18px;bottom:8px}.vac-options-container[data-v-2caa176e]{position:absolute;top:2px;right:10px;height:40px;width:70px;overflow:hidden;border-top-right-radius:8px}.vac-options-image .vac-blur-container[data-v-2caa176e]{background:hsla(0,0%,100%,.6);border-bottom-left-radius:15px}.vac-blur-container[data-v-2caa176e]{position:absolute;height:100%;width:100%;left:8px;bottom:10px;background:var(--chat-message-bg-color);-webkit-filter:blur(3px);filter:blur(3px);border-bottom-left-radius:8px}.vac-options-me[data-v-2caa176e]{background:var(--chat-message-bg-color-me)}.vac-message-options[data-v-2caa176e]{background:var(--chat-icon-bg-dropdown-message);border-radius:50%;position:absolute;top:7px;right:7px}.vac-message-options svg[data-v-2caa176e]{height:17px;width:17px;padding:5px;margin:-5px}.vac-message-reactions[data-v-2caa176e]{position:absolute;top:6px;right:30px}.vac-menu-options[data-v-2caa176e]{right:15px}.vac-menu-left[data-v-2caa176e]{right:-118px}@media only screen and (max-width:768px){.vac-options-container[data-v-2caa176e]{right:3px}.vac-menu-left[data-v-2caa176e]{right:-50px}}.vac-button-reaction[data-v-f0352b14]{display:inline-flex;align-items:center;border:var(--chat-message-border-style-reaction);outline:none;background:var(--chat-message-bg-color-reaction);border-radius:4px;margin:4px 2px 0;transition:.3s;padding:0 5px;font-size:18px;line-height:23px}.vac-button-reaction span[data-v-f0352b14]{font-size:11px;font-weight:500;min-width:7px;color:var(--chat-message-color-reaction-counter)}.vac-button-reaction[data-v-f0352b14]:hover{border:var(--chat-message-border-style-reaction-hover);background:var(--chat-message-bg-color-reaction-hover);cursor:pointer}.vac-reaction-me[data-v-f0352b14]{border:var(--chat-message-border-style-reaction-me);background:var(--chat-message-bg-color-reaction-me)}.vac-reaction-me span[data-v-f0352b14]{color:var(--chat-message-color-reaction-counter-me)}.vac-reaction-me[data-v-f0352b14]:hover{border:var(--chat-message-border-style-reaction-hover-me);background:var(--chat-message-bg-color-reaction-hover-me)}.vac-player-bar{display:flex;align-items:center;max-width:calc(100% - 18px);margin-right:7px;margin-left:20px}.vac-player-bar .vac-player-progress{width:190px}.vac-player-bar .vac-player-progress .vac-line-container{position:relative;height:4px;border-radius:5px;background-color:var(--chat-message-bg-color-audio-line)}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-progress{position:absolute;height:inherit;background-color:var(--chat-message-bg-color-audio-progress);border-radius:inherit}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{position:absolute;top:-5px;margin-left:-7px;height:14px;width:14px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-progress-selector);transition:-webkit-transform .25s;transition:transform .25s;transition:transform .25s, -webkit-transform .25s}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot__active{-webkit-transform:scale(1.2);transform:scale(1.2)}@media only screen and (max-width:768px){.vac-player-bar{margin-right:5px}.vac-player-bar .vac-player-progress .vac-line-container{height:3px}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{height:12px;width:12px;top:-5px;margin-left:-5px}}.vac-audio-player{display:flex;margin:8px 0 5px}.vac-audio-player .vac-svg-button{max-width:18px;margin-left:7px}@media only screen and (max-width:768px){.vac-audio-player{margin:4px 0 0}.vac-audio-player .vac-svg-button{max-width:16px;margin-left:5px}}.vac-card-info[data-v-91e9e26c]{border-radius:4px;text-align:center;margin:10px auto;font-size:12px;padding:4px;display:block;overflow-wrap:break-word;position:relative;white-space:normal;box-shadow:0 1px 1px -1px rgba(0,0,0,.1),0 1px 1px -1px rgba(0,0,0,.11),0 1px 2px -1px rgba(0,0,0,.11)}.vac-card-date[data-v-91e9e26c]{max-width:150px;font-weight:500;text-transform:uppercase;color:var(--chat-message-color-date);background:var(--chat-message-bg-color-date)}.vac-card-system[data-v-91e9e26c]{max-width:250px;padding:8px 4px;color:var(--chat-message-color-system);background:var(--chat-message-bg-color-system)}.vac-line-new[data-v-91e9e26c]{color:var(--chat-message-color-new-messages);position:relative;text-align:center;font-size:13px;padding:10px 0}.vac-line-new[data-v-91e9e26c]:after,.vac-line-new[data-v-91e9e26c]:before{border-top:1px solid var(--chat-message-color-new-messages);content:\"\";left:0;position:absolute;top:50%;width:calc(50% - 60px)}.vac-line-new[data-v-91e9e26c]:before{left:auto;right:0}.vac-message-box[data-v-91e9e26c]{display:flex;flex:0 0 50%;max-width:50%;justify-content:flex-start;line-height:1.4}.vac-message-container[data-v-91e9e26c]{position:relative;padding:2px 10px;align-items:end;min-width:100px;box-sizing:content-box}.vac-message-container-offset[data-v-91e9e26c]{margin-top:10px}.vac-offset-current[data-v-91e9e26c]{margin-left:50%;justify-content:flex-end}.vac-message-card[data-v-91e9e26c]{background:var(--chat-message-bg-color);color:var(--chat-message-color);border-radius:8px;font-size:14px;padding:6px 9px 3px;white-space:pre-line;max-width:100%;transition-property:box-shadow,opacity;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);will-change:box-shadow;box-shadow:0 1px 1px -1px rgba(0,0,0,.1),0 1px 1px -1px rgba(0,0,0,.11),0 1px 2px -1px rgba(0,0,0,.11)}.vac-message-highlight[data-v-91e9e26c]{box-shadow:0 1px 2px -1px rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.11),0 1px 5px -1px rgba(0,0,0,.11)}.vac-message-current[data-v-91e9e26c]{background:var(--chat-message-bg-color-me)!important}.vac-message-deleted[data-v-91e9e26c]{color:var(--chat-message-color-deleted)!important;font-size:13px!important;font-style:italic!important;background:var(--chat-message-bg-color-deleted)!important}.vac-icon-deleted[data-v-91e9e26c]{height:14px;width:14px;vertical-align:middle;margin:-2px 2px 0 0;fill:var(--chat-message-color-deleted)}.vac-video-container[data-v-91e9e26c]{width:350px;max-width:100%;margin:4px auto 5px}.vac-video-container video[data-v-91e9e26c]{border-radius:4px}[data-v-91e9e26c] .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:50%!important;background-repeat:no-repeat!important;height:250px;width:250px;max-width:100%;border-radius:4px;margin:4px auto 5px;transition:-webkit-filter .4s linear;transition:filter .4s linear;transition:filter .4s linear, -webkit-filter .4s linear}.vac-text-username[data-v-91e9e26c]{font-size:13px;color:var(--chat-message-color-username);margin-bottom:2px}.vac-username-reply[data-v-91e9e26c]{margin-bottom:5px}.vac-text-timestamp[data-v-91e9e26c]{font-size:10px;color:var(--chat-message-color-timestamp);text-align:right}.vac-progress-time[data-v-91e9e26c]{float:left;margin:-2px 0 0 40px;color:var(--chat-color);font-size:12px}.vac-file-message[data-v-91e9e26c]{display:flex;flex-wrap:wrap;align-items:center;margin-top:3px}.vac-file-message span[data-v-91e9e26c]{max-width:100%}.vac-file-message .vac-icon-file svg[data-v-91e9e26c]{margin-right:5px}.vac-icon-edited[data-v-91e9e26c]{align-items:center;display:inline-flex;justify-content:center;letter-spacing:normal;line-height:1;text-indent:0;vertical-align:middle;margin:0 4px 2px}.vac-icon-edited svg[data-v-91e9e26c]{height:12px;width:12px}.vac-icon-check[data-v-91e9e26c]{height:14px;width:14px;vertical-align:middle;margin:-3px -3px 0 3px}@media only screen and (max-width:768px){.vac-message-container[data-v-91e9e26c]{padding:2px 3px 1px}.vac-message-container-offset[data-v-91e9e26c]{margin-top:10px}.vac-message-box[data-v-91e9e26c]{flex:0 0 80%;max-width:80%}.vac-offset-current[data-v-91e9e26c]{margin-left:20%}.vac-progress-time[data-v-91e9e26c]{margin-left:37px}}.vac-container-center[data-v-cb4b1406]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.vac-room-empty[data-v-cb4b1406]{font-size:14px;color:#9ca6af;font-style:italic;line-height:20px;white-space:pre-line}.vac-room-empty div[data-v-cb4b1406]{padding:0 10%}.vac-col-messages[data-v-cb4b1406]{position:relative;height:100%;flex:1;overflow:hidden;display:flex;flex-flow:column}.vac-container-scroll[data-v-cb4b1406]{background:var(--chat-content-bg-color);flex:1;overflow-y:auto;margin-right:1px;margin-top:60px;-webkit-overflow-scrolling:touch}.vac-container-scroll.vac-scroll-smooth[data-v-cb4b1406]{scroll-behavior:smooth}.vac-messages-container[data-v-cb4b1406]{padding:0 5px 5px}.vac-text-started[data-v-cb4b1406]{font-size:14px;color:var(--chat-message-color-started);font-style:italic;text-align:center;margin-top:30px;margin-bottom:20px}.vac-infinite-loading[data-v-cb4b1406]{height:68px}.vac-icon-scroll[data-v-cb4b1406]{position:absolute;bottom:80px;right:20px;padding:8px;background:var(--chat-bg-scroll-icon);border-radius:50%;box-shadow:0 1px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 2px 0 rgba(0,0,0,.12);display:flex;cursor:pointer;z-index:10}.vac-icon-scroll svg[data-v-cb4b1406]{height:25px;width:25px}.vac-messages-count[data-v-cb4b1406]{position:absolute;top:-8px;left:11px;background-color:var(--chat-message-bg-color-scroll-counter);color:var(--chat-message-color-scroll-counter)}.vac-room-footer[data-v-cb4b1406]{width:100%;border-bottom-right-radius:4px;z-index:10}.vac-box-footer[data-v-cb4b1406]{display:flex;position:relative;background:var(--chat-footer-bg-color);padding:10px 8px 10px}.vac-textarea[data-v-cb4b1406]{height:20px;width:100%;line-height:20px;overflow:hidden;outline:0;resize:none;border-radius:20px;padding:12px 16px;box-sizing:content-box;font-size:16px;background:var(--chat-bg-color-input);color:var(--chat-color);caret-color:var(--chat-color-caret);border:var(--chat-border-style-input)}.vac-textarea[data-v-cb4b1406]::-moz-placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea[data-v-cb4b1406]:-ms-input-placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea[data-v-cb4b1406]::-webkit-input-placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea[data-v-cb4b1406]::-ms-input-placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea[data-v-cb4b1406]::placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea-outline[data-v-cb4b1406]{border:1px solid var(--chat-border-color-input-selected);box-shadow:inset 0 0 0 1px var(--chat-border-color-input-selected)}.vac-icon-textarea-left[data-v-cb4b1406],.vac-icon-textarea[data-v-cb4b1406]{display:flex;align-items:center}.vac-icon-textarea-left .vac-wrapper[data-v-cb4b1406],.vac-icon-textarea-left svg[data-v-cb4b1406],.vac-icon-textarea .vac-wrapper[data-v-cb4b1406],.vac-icon-textarea svg[data-v-cb4b1406]{margin:0 7px}.vac-icon-textarea[data-v-cb4b1406]{margin-left:5px}.vac-icon-textarea-left[data-v-cb4b1406]{display:flex;align-items:center;margin-right:5px}.vac-icon-textarea-left .vac-wrapper[data-v-cb4b1406],.vac-icon-textarea-left svg[data-v-cb4b1406]{margin:0 7px}.vac-icon-textarea-left .vac-icon-microphone[data-v-cb4b1406]{fill:var(--chat-icon-color-microphone);margin:0 7px}.vac-icon-textarea-left .vac-dot-audio-record[data-v-cb4b1406]{height:15px;width:15px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-record);-webkit-animation:vac-scaling-data-v-cb4b1406 .8s ease-in-out infinite alternate;animation:vac-scaling-data-v-cb4b1406 .8s ease-in-out infinite alternate}@-webkit-keyframes vac-scaling-data-v-cb4b1406{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.4}to{-webkit-transform:scale(1.1);transform:scale(1.1);opacity:1}}@keyframes vac-scaling-data-v-cb4b1406{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.4}to{-webkit-transform:scale(1.1);transform:scale(1.1);opacity:1}}.vac-icon-textarea-left .vac-dot-audio-record-time[data-v-cb4b1406]{font-size:16px;color:var(--chat-color);margin-left:8px;width:45px}.vac-icon-textarea-left .vac-icon-audio-confirm[data-v-cb4b1406],.vac-icon-textarea-left .vac-icon-audio-confirm svg[data-v-cb4b1406],.vac-icon-textarea-left .vac-icon-audio-stop[data-v-cb4b1406],.vac-icon-textarea-left .vac-icon-audio-stop svg[data-v-cb4b1406]{min-height:28px;min-width:28px}.vac-icon-textarea-left .vac-icon-audio-stop[data-v-cb4b1406]{margin-right:20px}.vac-icon-textarea-left .vac-icon-audio-stop[data-v-cb4b1406] #vac-icon-close-outline{fill:var(--chat-icon-color-audio-cancel)}.vac-icon-textarea-left .vac-icon-audio-confirm[data-v-cb4b1406]{margin-right:3px;margin-left:12px}.vac-icon-textarea-left .vac-icon-audio-confirm[data-v-cb4b1406] #vac-icon-checkmark{fill:var(--chat-icon-color-audio-confirm)}.vac-media-container[data-v-cb4b1406]{position:absolute;max-width:25%;left:16px;top:18px}.vac-media-file[data-v-cb4b1406]{display:flex;justify-content:center;flex-direction:column;min-height:30px}.vac-media-file img[data-v-cb4b1406]{border-radius:15px;width:100%;max-width:150px;max-height:100%}.vac-media-file video[data-v-cb4b1406]{border-radius:15px;width:100%;max-width:250px;max-height:100%}.vac-icon-media[data-v-cb4b1406]{position:absolute;top:6px;left:6px;z-index:10}.vac-icon-media svg[data-v-cb4b1406]{height:20px;width:20px;border-radius:50%}.vac-icon-media[data-v-cb4b1406]:before{content:\" \";position:absolute;width:100%;height:100%;background:rgba(0,0,0,.5);border-radius:50%;z-index:-1}.vac-file-container[data-v-cb4b1406]{display:flex;align-items:center;width:calc(100% - 115px);height:20px;padding:12px 0;box-sizing:content-box;background:var(--chat-bg-color-input);border:var(--chat-border-style-input);border-radius:20px}.vac-file-container-edit[data-v-cb4b1406]{width:calc(100% - 150px)}.vac-file-message[data-v-cb4b1406]{max-width:calc(100% - 75px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-icon-file[data-v-cb4b1406]{display:flex;margin:0 8px 0 15px}.vac-icon-remove[data-v-cb4b1406]{margin:0 8px}.vac-icon-remove svg[data-v-cb4b1406]{height:18px;width:18px}.vac-send-disabled[data-v-cb4b1406],.vac-send-disabled svg[data-v-cb4b1406]{cursor:none!important;pointer-events:none!important;-webkit-transform:none!important;transform:none!important}.vac-messages-hidden[data-v-cb4b1406]{opacity:0}@media only screen and (max-width:768px){.vac-container-scroll[data-v-cb4b1406]{margin-top:50px}.vac-infinite-loading[data-v-cb4b1406]{height:58px}.vac-box-footer[data-v-cb4b1406]{border-top:var(--chat-border-style-input);padding:7px 2px 7px 7px}.vac-text-started[data-v-cb4b1406]{margin-top:20px}.vac-textarea[data-v-cb4b1406]{padding:7px;line-height:18px}.vac-textarea[data-v-cb4b1406]::-moz-placeholder{color:transparent}.vac-textarea[data-v-cb4b1406]:-ms-input-placeholder{color:transparent}.vac-textarea[data-v-cb4b1406]::-webkit-input-placeholder{color:transparent}.vac-textarea[data-v-cb4b1406]::-ms-input-placeholder{color:transparent}.vac-textarea[data-v-cb4b1406]::placeholder{color:transparent}.vac-icon-textarea-left .vac-wrapper[data-v-cb4b1406],.vac-icon-textarea-left svg[data-v-cb4b1406],.vac-icon-textarea .vac-wrapper[data-v-cb4b1406],.vac-icon-textarea svg[data-v-cb4b1406]{margin:0 5px!important}.vac-media-container[data-v-cb4b1406]{top:10px;left:10px}.vac-media-file img[data-v-cb4b1406],.vac-media-file video[data-v-cb4b1406]{-webkit-transform:scale(.97);transform:scale(.97)}.vac-room-footer[data-v-cb4b1406]{width:100%}.vac-file-container[data-v-cb4b1406]{padding:7px 0}.vac-file-container .icon-file[data-v-cb4b1406]{margin-left:10px}.vac-icon-scroll[data-v-cb4b1406]{bottom:70px}}.vac-fade-spinner-enter{opacity:0}.vac-fade-spinner-enter-active{transition:opacity .8s}.vac-fade-spinner-leave-active{transition:opacity .2s;opacity:0}.vac-fade-image-enter{opacity:0}.vac-fade-image-enter-active{transition:opacity 1s}.vac-fade-image-leave-active{transition:opacity .5s;opacity:0}.vac-fade-message-enter{opacity:0}.vac-fade-message-enter-active{transition:opacity .5s}.vac-fade-message-leave-active{transition:opacity .2s;opacity:0}.vac-slide-left-enter-active,.vac-slide-right-enter-active{transition:all .3s ease;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform}.vac-slide-left-leave-active,.vac-slide-right-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1);transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform}.vac-slide-left-enter,.vac-slide-left-leave-to{-webkit-transform:translateX(10px);transform:translateX(10px);opacity:0}.vac-slide-right-enter,.vac-slide-right-leave-to{-webkit-transform:translateX(-10px);transform:translateX(-10px);opacity:0}.vac-slide-up-enter-active{transition:all .3s ease}.vac-slide-up-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)}.vac-slide-up-enter,.vac-slide-up-leave-to{-webkit-transform:translateY(10px);transform:translateY(10px);opacity:0}.vac-bounce-enter-active{-webkit-animation:vac-bounce-in .5s;animation:vac-bounce-in .5s}.vac-bounce-leave-active{animation:vac-bounce-in .3s reverse}@-webkit-keyframes vac-bounce-in{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes vac-bounce-in{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}to{-webkit-transform:scale(1);transform:scale(1)}}.vac-menu-list{border-radius:4px;display:block;cursor:pointer;background:var(--chat-dropdown-bg-color);padding:6px 0}.vac-menu-list :hover{background:var(--chat-dropdown-bg-color-hover)}.vac-menu-list :hover,.vac-menu-list :not(:hover){transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-menu-item{align-items:center;display:flex;flex:1 1 100%;min-height:30px;padding:5px 16px;position:relative;white-space:nowrap;line-height:30px}.vac-menu-options{position:absolute;right:10px;top:20px;z-index:9999;min-width:150px;display:inline-block;border-radius:4px;font-size:14px;color:var(--chat-color);overflow-y:auto;overflow-x:hidden;contain:content;box-shadow:0 2px 2px -4px rgba(0,0,0,.1),0 2px 2px 1px rgba(0,0,0,.12),0 1px 8px 1px rgba(0,0,0,.12)}.vac-app-border{border:var(--chat-border-style)}.vac-app-border-t{border-top:var(--chat-border-style)}.vac-app-border-r{border-right:var(--chat-border-style)}.vac-app-border-b{border-bottom:var(--chat-border-style)}.vac-app-box-shadow{box-shadow:0 2px 2px -4px rgba(0,0,0,.1),0 2px 2px 1px rgba(0,0,0,.12),0 1px 8px 1px rgba(0,0,0,.12)}.vac-item-clickable{cursor:pointer}.vac-vertical-center{display:flex;align-items:center;height:100%}.vac-vertical-center .vac-vertical-container{width:100%;text-align:center}.vac-svg-button{max-height:30px;display:flex;cursor:pointer;transition:all .2s}.vac-svg-button:hover{-webkit-transform:scale(1.1);transform:scale(1.1);opacity:.7}.vac-room-avatar{background-size:cover;background-position:50%;background-repeat:no-repeat;background-color:#ddd;height:42px;width:42px;min-height:42px;min-width:42px;margin-right:15px;border-radius:50%}.vac-badge-counter{height:13px;width:auto;min-width:13px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:3px;font-size:11px;font-weight:500}.vac-text-bold{font-weight:700}.vac-text-italic{font-style:italic}.vac-text-strike{text-decoration:line-through}.vac-text-underline{text-decoration:underline}.vac-text-inline-code{display:inline-block;color:var(--chat-markdown-color);margin:2px 0;padding:2px 3px}.vac-text-inline-code,.vac-text-multiline-code{font-size:12px;background:var(--chat-markdown-bg);border:1px solid var(--chat-markdown-border);border-radius:3px}.vac-text-multiline-code{display:block;color:var(--chat-markdown-color-multi);margin:4px 0;padding:7px}.vac-text-tag{color:var(--chat-message-color-tag);cursor:pointer}.vac-card-window{width:100%;display:block;max-width:100%;background:var(--chat-content-bg-color);color:var(--chat-color);overflow-wrap:break-word;position:relative;white-space:normal;border:var(--chat-container-border);border-radius:var(--chat-container-border-radius);box-shadow:var(--chat-container-box-shadow);-webkit-tap-highlight-color:transparent}.vac-card-window *{font-family:inherit}.vac-card-window a{color:#0d579c;font-weight:500}.vac-card-window .vac-chat-container{height:100%;display:flex}.vac-card-window .vac-chat-container input{min-width:10px}.vac-card-window .vac-chat-container input[type=search],.vac-card-window .vac-chat-container input[type=text],.vac-card-window .vac-chat-container textarea{-webkit-appearance:none}", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=style&index=0&lang=css&":
/*!*****************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=style&index=0&lang=css& ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\ni.emoji-picker-icon.emoji-picker {\n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAB+ElEQVRYhe2WPS8EURSGHxQkFOIrNHaRbFT8BDWdwkfYWk2Cf+CnIAoJkRAdtXJVW4hkKZesECJ2RzHvNbOzd3bvjO14k5vZnI/3nHPv2XsP/OOvoyOh/RSwAswBM0C/5M9AAbgCjoC7NuX3gyxwCFQBr8WqAgdApl3B88CLyD+BY8mmgV6tacmOZePJZ/23wXeBmghPgJyDT062nnx30gbPi6CqRJJiV741UuxEhmDbU1egJDzgFb+BnXFIsO0GC8CD1rzFJ05/Kq4D1+BT+Fv3Sf2ZPxB0esniF6fPiesLmIg6dVqIViQ/A4ohudci8Th9UVxd4m6JS5HlI/J5/MpK2I+gmT4vzguXBB5l7PKXc0WO+KNrwIeM+9qYQJ8436MKWw+Ys0z6TjSDidPQJ7YEnvQdi8hngY0YnzDfhmzDGNW33DRNIa4JzyVfauK7LJvziDy2CW3VXOu7aEkMYA8YtviNSIclkOG6svg1YBL7RdQD3OJXUsSvdhAY0u+idAWgO+QXvoiyLgmA/SoG/40wSdhWARiP+CS+ik0g8xhFX8IeYAu4Ad60boBN6iuH4DGqkGJAWad9z/FaCn/Af4rNQHKK+0Bitr0GbKcNbpB2JKvwi8qjyOA3kctQ+gXs43jmSa/bLLBKMJYPSF6mfiy/T8j7jz+Mb+FSr4ihuoIZAAAAAElFTkSuQmCC') no-repeat center center;\n width: 24px;\n height: 24px;\n opacity: 0.5;\n cursor: pointer\n}\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Main.vue?vue&type=style&index=0&id=63080d70&scoped=true&lang=css&":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/Main.vue?vue&type=style&index=0&id=63080d70&scoped=true&lang=css& ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.big-text[data-v-63080d70] { font-size: 28px;\n}\n.product-box[data-v-63080d70] { border: 1px solid #cccccc; padding: 10px 15px; height: 20vh\n}\r\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/ProductModal.vue?vue&type=style&index=1&id=63afc935&scoped=true&lang=css&":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/ProductModal.vue?vue&type=style&index=1&id=63afc935&scoped=true&lang=css& ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.modal-mask[data-v-63afc935] {\r\n    position: fixed;\r\n    z-index: 9998;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    background-color: rgba(0, 0, 0, .5);\r\n    display: table;\r\n    transition: opacity .3s ease;\n}\n.modal-wrapper[data-v-63afc935] {\r\n    display: table-cell;\r\n    vertical-align: middle;\n}\n.modal-container[data-v-63afc935] {\r\n    width: 300px;\r\n    margin: 0px auto;\r\n    padding: 20px 30px;\r\n    background-color: #fff;\r\n    border-radius: 2px;\r\n    box-shadow: 0 2px 8px rgba(0, 0, 0, .33);\r\n    transition: all .3s ease;\r\n    font-family: Helvetica, Arial, sans-serif;\n}\n.modal-header h3[data-v-63afc935] {\r\n    margin-top: 0;\r\n    color: #42b983;\n}\n.modal-body[data-v-63afc935] {\r\n    margin: 20px 0;\n}\n.modal-default-button[data-v-63afc935] {\r\n    float: right;\n}\n.modal-enter[data-v-63afc935] {\r\n    opacity: 0;\n}\n.modal-leave-active[data-v-63afc935] {\r\n    opacity: 0;\n}\n.modal-enter .modal-container[data-v-63afc935],\r\n.modal-leave-active .modal-container[data-v-63afc935] {\r\n    -webkit-transform: scale(1.1);\r\n    transform: scale(1.1);\n}\r\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/category/Editor.vue?vue&type=style&index=0&id=d7fd5f12&scoped=true&lang=css&":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/category/Editor.vue?vue&type=style&index=0&id=d7fd5f12&scoped=true&lang=css& ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.modal-mask[data-v-d7fd5f12] {\r\n    position: fixed;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    z-index: 1050;\r\n    background-color: rgba(0, 0, 0, .5);\r\n    display: table;\r\n    transition: opacity .3s ease;\n}\n.modal-container[data-v-d7fd5f12] {\r\n    width: 300px;\r\n    margin: 0px auto;\r\n    padding: 20px 30px;\r\n    background-color: #fff;\r\n    display: flex;\r\n    border-radius: 2px;\r\n    box-shadow: 0 2px 8px rgba(0, 0, 0, .33);\r\n    transition: all .3s ease;\r\n    font-family: Helvetica, Arial, sans-serif;\n}\n.modal-dialog-slideout[data-v-d7fd5f12] {\r\n     min-height: auto;\n}\r\n\r\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=style&index=0&id=1974151e&scoped=true&lang=css&":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=style&index=0&id=1974151e&scoped=true&lang=css& ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.modal-mask[data-v-1974151e] {\r\n    position: fixed;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    z-index: 1050;\r\n    background-color: rgba(0, 0, 0, .5);\r\n    display: table;\r\n    transition: opacity .3s ease;\n}\n.modal-container[data-v-1974151e] {\r\n    width: 300px;\r\n    margin: 0px auto;\r\n    padding: 20px 30px;\r\n    background-color: #fff;\r\n    display: flex;\r\n    border-radius: 2px;\r\n    box-shadow: 0 2px 8px rgba(0, 0, 0, .33);\r\n    transition: all .3s ease;\r\n    font-family: Helvetica, Arial, sans-serif;\n}\n.modal-dialog-slideout[data-v-1974151e] {\r\n     min-height: auto;\n}\r\n\r\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tags/Editor.vue?vue&type=style&index=0&id=54e8ba08&scoped=true&lang=css&":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tags/Editor.vue?vue&type=style&index=0&id=54e8ba08&scoped=true&lang=css& ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.modal-mask[data-v-54e8ba08] {\r\n    position: fixed;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    z-index: 1050;\r\n    background-color: rgba(0, 0, 0, .5);\r\n    display: table;\r\n    transition: opacity .3s ease;\n}\n.modal-container[data-v-54e8ba08] {\r\n    width: 300px;\r\n    margin: 0px auto;\r\n    padding: 20px 30px;\r\n    background-color: #fff;\r\n    display: flex;\r\n    border-radius: 2px;\r\n    box-shadow: 0 2px 8px rgba(0, 0, 0, .33);\r\n    transition: all .3s ease;\r\n    font-family: Helvetica, Arial, sans-serif;\n}\n.modal-dialog-slideout[data-v-54e8ba08] {\r\n     min-height: auto;\n}\r\n\r\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tax/Editor.vue?vue&type=style&index=0&id=e1a31670&scoped=true&lang=css&":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tax/Editor.vue?vue&type=style&index=0&id=e1a31670&scoped=true&lang=css& ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.modal-mask[data-v-e1a31670] {\r\n    position: fixed;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    z-index: 1050;\r\n    background-color: rgba(0, 0, 0, .5);\r\n    display: table;\r\n    transition: opacity .3s ease;\n}\n.modal-container[data-v-e1a31670] {\r\n    width: 300px;\r\n    margin: 0px auto;\r\n    padding: 20px 30px;\r\n    background-color: #fff;\r\n    display: flex;\r\n    border-radius: 2px;\r\n    box-shadow: 0 2px 8px rgba(0, 0, 0, .33);\r\n    transition: all .3s ease;\r\n    font-family: Helvetica, Arial, sans-serif;\n}\n.modal-dialog-slideout[data-v-e1a31670] {\r\n     min-height: auto;\n}\r\n\r\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tips/Editor.vue?vue&type=style&index=0&id=47152a7d&scoped=true&lang=css&":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tips/Editor.vue?vue&type=style&index=0&id=47152a7d&scoped=true&lang=css& ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.modal-mask[data-v-47152a7d] {\r\n    position: fixed;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    z-index: 1050;\r\n    background-color: rgba(0, 0, 0, .5);\r\n    display: table;\r\n    transition: opacity .3s ease;\n}\n.modal-container[data-v-47152a7d] {\r\n    width: 300px;\r\n    margin: 0px auto;\r\n    padding: 20px 30px;\r\n    background-color: #fff;\r\n    display: flex;\r\n    border-radius: 2px;\r\n    box-shadow: 0 2px 8px rgba(0, 0, 0, .33);\r\n    transition: all .3s ease;\r\n    font-family: Helvetica, Arial, sans-serif;\n}\n.modal-dialog-slideout[data-v-47152a7d] {\r\n     min-height: auto;\n}\r\n\r\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=style&index=0&lang=css&":
/*!************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=style&index=0&lang=css& ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.swal-wide{width:500px !important;\n}\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Admin/Dashboard.vue?vue&type=style&index=0&id=ee70649e&scoped=true&lang=css&":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Admin/Dashboard.vue?vue&type=style&index=0&id=ee70649e&scoped=true&lang=css& ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.hero-section[data-v-ee70649e] { height: 20vh; background: #ababab; align-items: center; margin-bottom: 20px; margin-top: -20px;\n}\n.title[data-v-ee70649e] { font-size: 60px; color: #ffffff;\n}\r\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/BuyTip.vue?vue&type=style&index=0&id=11ab9548&scoped=true&lang=css&":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/BuyTip.vue?vue&type=style&index=0&id=11ab9548&scoped=true&lang=css& ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.small-text[data-v-11ab9548] {\n    font-size: 14px;\n}\n.product-box[data-v-11ab9548] {\n    border: 1px solid #cccccc;\n    padding: 10px 15px;\n}\n.hero-section[data-v-11ab9548] {\n    height: 30vh;\n    background: #ababab;\n    align-items: center;\n    margin-bottom: 20px;\n    margin-top: -20px;\n}\n.title[data-v-11ab9548] {\n    font-size: 60px;\n    color: #ffffff;\n}\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Checkout.vue?vue&type=style&index=0&id=7b3dab19&scoped=true&lang=css&":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Checkout.vue?vue&type=style&index=0&id=7b3dab19&scoped=true&lang=css& ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.small-text[data-v-7b3dab19] { font-size: 18px;\n}\n.order-box[data-v-7b3dab19] { border: 1px solid #cccccc; padding: 10px 15px;\n}\n.title[data-v-7b3dab19] { font-size: 36px;\n}\r\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Confirmation.vue?vue&type=style&index=0&id=296b75f0&scoped=true&lang=css&":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Confirmation.vue?vue&type=style&index=0&id=296b75f0&scoped=true&lang=css& ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.medium-text[data-v-296b75f0] { font-size: 36px;\n}\n.small-link[data-v-296b75f0] { font-size: 24px; text-decoration: underline; color: #777;\n}\n.product-box[data-v-296b75f0] { border: 1px solid #cccccc; padding: 10px 15px;\n}\n.hero-section[data-v-296b75f0] { height: 80vh; align-items: center; margin-top: -20px; margin-bottom: 20px;\n}\n.title[data-v-296b75f0] { font-size: 60px;\n}\r\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/DetailView.vue?vue&type=style&index=0&lang=css&":
/*!******************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/DetailView.vue?vue&type=style&index=0&lang=css& ***!
  \******************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.lightboxcontainer {width:100%; text-align:left;\n}\n.lightboxleft {width: 40%; float:left;\n}\n.lightboxright {width: 60%; float:left;\n}\n.lightboxright iframe {min-height: 390px;\n}\n.divtext {margin: 36px;\n}\n@media (max-width: 800px) \n{\n.lightboxleft {width: 100%;\n}\n.lightboxright {width: 100%;\n}\n.divtext {margin: 12px;\n}\n}\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Home.vue?vue&type=style&index=0&id=6c0a33b2&scoped=true&lang=css&":
/*!************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Home.vue?vue&type=style&index=0&id=6c0a33b2&scoped=true&lang=css& ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.small-text[data-v-6c0a33b2] {\n    font-size: 14px;\n}\n.product-box[data-v-6c0a33b2] {\n    border: 1px solid #cccccc;\n    padding: 10px 15px;\n}\n.hero-section[data-v-6c0a33b2] {\n    height: 30vh;\n    background: #ababab;\n    align-items: center;\n    margin-bottom: 20px;\n    margin-top: -20px;\n}\n.title[data-v-6c0a33b2] {\n    font-size: 60px;\n    color: #ffffff;\n}\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/SingleProduct.vue?vue&type=style&index=0&id=25288544&scoped=true&lang=css&":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/SingleProduct.vue?vue&type=style&index=0&id=25288544&scoped=true&lang=css& ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.small-text[data-v-25288544] { font-size: 18px;\n}\n.title[data-v-25288544] { font-size: 36px;\n}\r\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/UserBoard.vue?vue&type=style&index=0&id=751a1018&scoped=true&lang=css&":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/UserBoard.vue?vue&type=style&index=0&id=751a1018&scoped=true&lang=css& ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "\n.small-text[data-v-751a1018] { font-size: 14px;\n}\n.product-box[data-v-751a1018] { border: 1px solid #cccccc; padding: 10px 15px;\n}\n.hero-section[data-v-751a1018] { background: #ababab; height: 20vh; align-items: center; margin-bottom: 20px; margin-top: -20px;\n}\n.title[data-v-751a1018] { font-size: 60px; color: #ffffff;\n}\r\n", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-multiselect/dist/vue-multiselect.min.css?vue&type=style&index=0&lang=css&":
/*!*********************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-multiselect/dist/vue-multiselect.min.css?vue&type=style&index=0&lang=css& ***!
  \*********************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports


// module
exports.push([module.i, "fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:48px;height:35px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:\"\";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border:2px solid transparent;border-top-color:#41b883;box-shadow:0 0 0 1px transparent}.multiselect__spinner:before{-webkit-animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__spinner:after{-webkit-animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;touch-action:manipulation}.multiselect{box-sizing:content-box;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input:-ms-input-placeholder{color:#35495e}.multiselect__input::-webkit-input-placeholder{color:#35495e}.multiselect__input::-moz-placeholder{color:#35495e}.multiselect__input::-ms-input-placeholder{color:#35495e}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:\"\\D7\";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus,.multiselect__tag-icon:hover{background:#369a6e}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 30px 0 12px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease, -webkit-transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 0;content:\"\"}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}@-webkit-keyframes spinning{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(2turn);transform:rotate(2turn)}}@keyframes spinning{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(2turn);transform:rotate(2turn)}}", ""]);

// exports


/***/ }),

/***/ "./node_modules/css-loader/lib/css-base.js":
/*!*************************************************!*\
  !*** ./node_modules/css-loader/lib/css-base.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

/*
	MIT License http://www.opensource.org/licenses/mit-license.php
	Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
module.exports = function(useSourceMap) {
	var list = [];

	// return the list of modules as css string
	list.toString = function toString() {
		return this.map(function (item) {
			var content = cssWithMappingToString(item, useSourceMap);
			if(item[2]) {
				return "@media " + item[2] + "{" + content + "}";
			} else {
				return content;
			}
		}).join("");
	};

	// import a list of modules into the list
	list.i = function(modules, mediaQuery) {
		if(typeof modules === "string")
			modules = [[null, modules, ""]];
		var alreadyImportedModules = {};
		for(var i = 0; i < this.length; i++) {
			var id = this[i][0];
			if(typeof id === "number")
				alreadyImportedModules[id] = true;
		}
		for(i = 0; i < modules.length; i++) {
			var item = modules[i];
			// skip already imported module
			// this implementation is not 100% perfect for weird media query combinations
			//  when a module is imported multiple times with different media queries.
			//  I hope this will never occur (Hey this way we have smaller bundles)
			if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
				if(mediaQuery && !item[2]) {
					item[2] = mediaQuery;
				} else if(mediaQuery) {
					item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
				}
				list.push(item);
			}
		}
	};
	return list;
};

function cssWithMappingToString(item, useSourceMap) {
	var content = item[1] || '';
	var cssMapping = item[3];
	if (!cssMapping) {
		return content;
	}

	if (useSourceMap && typeof btoa === 'function') {
		var sourceMapping = toComment(cssMapping);
		var sourceURLs = cssMapping.sources.map(function (source) {
			return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
		});

		return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
	}

	return [content].join('\n');
}

// Adapted from convert-source-map (MIT)
function toComment(sourceMap) {
	// eslint-disable-next-line no-undef
	var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
	var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;

	return '/*# ' + data + ' */';
}


/***/ }),

/***/ "./node_modules/css-loader/lib/url/escape.js":
/*!***************************************************!*\
  !*** ./node_modules/css-loader/lib/url/escape.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = function escape(url) {
    if (typeof url !== 'string') {
        return url
    }
    // If url is already wrapped in quotes, remove them
    if (/^['"].*['"]$/.test(url)) {
        url = url.slice(1, -1);
    }
    // Should url be wrapped?
    // See https://drafts.csswg.org/css-values-3/#urls
    if (/["'() \t\n]/.test(url)) {
        return '"' + url.replace(/"/g, '\\"').replace(/\n/g, '\\n') + '"'
    }

    return url
}


/***/ }),

/***/ "./node_modules/emoji-vue/index.js":
/*!*****************************************!*\
  !*** ./node_modules/emoji-vue/index.js ***!
  \*****************************************/
/*! exports provided: default, VueEmoji */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _src_VueEmoji__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/VueEmoji */ "./node_modules/emoji-vue/src/VueEmoji.vue");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VueEmoji", function() { return _src_VueEmoji__WEBPACK_IMPORTED_MODULE_0__["default"]; });



/* harmony default export */ __webpack_exports__["default"] = (_src_VueEmoji__WEBPACK_IMPORTED_MODULE_0__["default"]);


/***/ }),

/***/ "./node_modules/emoji-vue/src/VueEmoji.vue":
/*!*************************************************!*\
  !*** ./node_modules/emoji-vue/src/VueEmoji.vue ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _VueEmoji_vue_vue_type_template_id_573fdbbc___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VueEmoji.vue?vue&type=template&id=573fdbbc& */ "./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=template&id=573fdbbc&");
/* harmony import */ var _VueEmoji_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VueEmoji.vue?vue&type=script&lang=js& */ "./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _VueEmoji_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VueEmoji.vue?vue&type=style&index=0&lang=css& */ "./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=style&index=0&lang=css&");
/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _VueEmoji_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _VueEmoji_vue_vue_type_template_id_573fdbbc___WEBPACK_IMPORTED_MODULE_0__["render"],
  _VueEmoji_vue_vue_type_template_id_573fdbbc___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "node_modules/emoji-vue/src/VueEmoji.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=script&lang=js&":
/*!**************************************************************************!*\
  !*** ./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=script&lang=js& ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_VueEmoji_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../vue-loader/lib??vue-loader-options!./VueEmoji.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_VueEmoji_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=style&index=0&lang=css&":
/*!**********************************************************************************!*\
  !*** ./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=style&index=0&lang=css& ***!
  \**********************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _style_loader_index_js_css_loader_index_js_ref_6_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_6_2_vue_loader_lib_index_js_vue_loader_options_VueEmoji_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../style-loader!../../css-loader??ref--6-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src??ref--6-2!../../vue-loader/lib??vue-loader-options!./VueEmoji.vue?vue&type=style&index=0&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=style&index=0&lang=css&");
/* harmony import */ var _style_loader_index_js_css_loader_index_js_ref_6_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_6_2_vue_loader_lib_index_js_vue_loader_options_VueEmoji_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_index_js_css_loader_index_js_ref_6_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_6_2_vue_loader_lib_index_js_vue_loader_options_VueEmoji_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _style_loader_index_js_css_loader_index_js_ref_6_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_6_2_vue_loader_lib_index_js_vue_loader_options_VueEmoji_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _style_loader_index_js_css_loader_index_js_ref_6_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_6_2_vue_loader_lib_index_js_vue_loader_options_VueEmoji_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_style_loader_index_js_css_loader_index_js_ref_6_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_6_2_vue_loader_lib_index_js_vue_loader_options_VueEmoji_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=template&id=573fdbbc&":
/*!********************************************************************************!*\
  !*** ./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=template&id=573fdbbc& ***!
  \********************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VueEmoji_vue_vue_type_template_id_573fdbbc___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../vue-loader/lib??vue-loader-options!./VueEmoji.vue?vue&type=template&id=573fdbbc& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=template&id=573fdbbc&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VueEmoji_vue_vue_type_template_id_573fdbbc___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VueEmoji_vue_vue_type_template_id_573fdbbc___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/css/emoji.css":
/*!******************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/css/emoji.css ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../css-loader??ref--6-1!../../../../postcss-loader/src??ref--6-2!./emoji.css */ "./node_modules/css-loader/index.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/emoji-vue/src/lib/css/emoji.css");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/img/IconsetSmiles.png":
/*!**************************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/img/IconsetSmiles.png ***!
  \**************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = "/images/vendor/emoji-vue/src/lib/IconsetSmiles.png?3bb24c0037f38bf0de73b3c7bb114313";

/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/img/IconsetSmiles_1x.png":
/*!*****************************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/img/IconsetSmiles_1x.png ***!
  \*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = "/images/vendor/emoji-vue/src/lib/IconsetSmiles_1x.png?8a98b6a0f8cf2b11c7b8e85696e17417";

/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/img/IconsetW.png":
/*!*********************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/img/IconsetW.png ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = "/images/vendor/emoji-vue/src/lib/IconsetW.png?93f289139b43587ab55b89c77efe0351";

/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/img/IconsetW_1x.png":
/*!************************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/img/IconsetW_1x.png ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = "/images/vendor/emoji-vue/src/lib/IconsetW_1x.png?7b1ef418b993a93c48bd566a5d32a69f";

/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/img/blank.gif":
/*!******************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/img/blank.gif ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = "/images/vendor/emoji-vue/src/lib/blank.gif?56398e76be6355ad5999b262208a17c9";

/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_0.png":
/*!********************************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_0.png ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = "/images/vendor/emoji-vue/src/lib/emoji_spritesheet_0.png?cce267d042a31fa24dc933603de5a735";

/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_1.png":
/*!********************************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_1.png ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = "/images/vendor/emoji-vue/src/lib/emoji_spritesheet_1.png?6cbaf42abb5720ecf531a62ab303743a";

/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_2.png":
/*!********************************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_2.png ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = "/images/vendor/emoji-vue/src/lib/emoji_spritesheet_2.png?06aca5a634d281b50cecff0f69feacfc";

/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_3.png":
/*!********************************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_3.png ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = "/images/vendor/emoji-vue/src/lib/emoji_spritesheet_3.png?d76a9fcc24b7b68961edd44bfcf21973";

/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_4.png":
/*!********************************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_4.png ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = "/images/vendor/emoji-vue/src/lib/emoji_spritesheet_4.png?9759ad2bdcde9327c495fc0f9be2dd05";

/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/js/config.js":
/*!*****************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/js/config.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);

var Config = {}
Config.Emoji = {
  '00a9': ['\u00A9', ['copyright']],
  '00ae': ['\u00AE', ['registered']],
  '203c': ['\u203C', ['bangbang']],
  '2049': ['\u2049', ['interrobang']],
  '2122': ['\u2122', ['tm']],
  '2139': ['\u2139', ['information_source']],
  '2194': ['\u2194', ['left_right_arrow']],
  '2195': ['\u2195', ['arrow_up_down']],
  '2196': ['\u2196', ['arrow_upper_left']],
  '2197': ['\u2197', ['arrow_upper_right']],
  '2198': ['\u2198', ['arrow_lower_right']],
  '2199': ['\u2199', ['arrow_lower_left']],
  '21a9': ['\u21A9', ['leftwards_arrow_with_hook']],
  '21aa': ['\u21AA', ['arrow_right_hook']],
  '231a': ['\u231A', ['watch']],
  '231b': ['\u231B', ['hourglass']],
  '23e9': ['\u23E9', ['fast_forward']],
  '23ea': ['\u23EA', ['rewind']],
  '23eb': ['\u23EB', ['arrow_double_up']],
  '23ec': ['\u23EC', ['arrow_double_down']],
  '23f0': ['\u23F0', ['alarm_clock']],
  '23f3': ['\u23F3', ['hourglass_flowing_sand']],
  '24c2': ['\u24C2', ['m']],
  '25aa': ['\u25AA', ['black_small_square']],
  '25ab': ['\u25AB', ['white_small_square']],
  '25b6': ['\u25B6', ['arrow_forward']],
  '25c0': ['\u25C0', ['arrow_backward']],
  '25fb': ['\u25FB', ['white_medium_square']],
  '25fc': ['\u25FC', ['black_medium_square']],
  '25fd': ['\u25FD', ['white_medium_small_square']],
  '25fe': ['\u25FE', ['black_medium_small_square']],
  '2600': ['\u2600', ['sunny']],
  '2601': ['\u2601', ['cloud']],
  '260e': ['\u260E', ['phone', 'telephone']],
  '2611': ['\u2611', ['ballot_box_with_check']],
  '2614': ['\u2614', ['umbrella']],
  '2615': ['\u2615', ['coffee']],
  '261d': ['\u261D', ['point_up']],
  '263a': ['\u263A', ['relaxed']],
  '2648': ['\u2648', ['aries']],
  '2649': ['\u2649', ['taurus']],
  '264a': ['\u264A', ['gemini']],
  '264b': ['\u264B', ['cancer']],
  '264c': ['\u264C', ['leo']],
  '264d': ['\u264D', ['virgo']],
  '264e': ['\u264E', ['libra']],
  '264f': ['\u264F', ['scorpius']],
  '2650': ['\u2650', ['sagittarius']],
  '2651': ['\u2651', ['capricorn']],
  '2652': ['\u2652', ['aquarius']],
  '2653': ['\u2653', ['pisces']],
  '2660': ['\u2660', ['spades']],
  '2663': ['\u2663', ['clubs']],
  '2665': ['\u2665', ['hearts']],
  '2666': ['\u2666', ['diamonds']],
  '2668': ['\u2668', ['hotsprings']],
  '267b': ['\u267B', ['recycle']],
  '267f': ['\u267F', ['wheelchair']],
  '2693': ['\u2693', ['anchor']],
  '26a0': ['\u26A0', ['warning']],
  '26a1': ['\u26A1', ['zap']],
  '26aa': ['\u26AA', ['white_circle']],
  '26ab': ['\u26AB', ['black_circle']],
  '26bd': ['\u26BD', ['soccer']],
  '26be': ['\u26BE', ['baseball']],
  '26c4': ['\u26C4', ['snowman']],
  '26c5': ['\u26C5', ['partly_sunny']],
  '26ce': ['\u26CE', ['ophiuchus']],
  '26d4': ['\u26D4', ['no_entry']],
  '26ea': ['\u26EA', ['church']],
  '26f2': ['\u26F2', ['fountain']],
  '26f3': ['\u26F3', ['golf']],
  '26f5': ['\u26F5', ['boat', 'sailboat']],
  '26fa': ['\u26FA', ['tent']],
  '26fd': ['\u26FD', ['fuelpump']],
  '2702': ['\u2702', ['scissors']],
  '2705': ['\u2705', ['white_check_mark']],
  '2708': ['\u2708', ['airplane']],
  '2709': ['\u2709', ['email', 'envelope']],
  '270a': ['\u270A', ['fist']],
  '270b': ['\u270B', ['hand', 'raised_hand']],
  '270c': ['\u270C', ['v']],
  '270f': ['\u270F', ['pencil2']],
  '2712': ['\u2712', ['black_nib']],
  '2714': ['\u2714', ['heavy_check_mark']],
  '2716': ['\u2716', ['heavy_multiplication_x']],
  '2728': ['\u2728', ['sparkles']],
  '2733': ['\u2733', ['eight_spoked_asterisk']],
  '2734': ['\u2734', ['eight_pointed_black_star']],
  '2744': ['\u2744', ['snowflake']],
  '2747': ['\u2747', ['sparkle']],
  '274c': ['\u274C', ['x']],
  '274e': ['\u274E', ['negative_squared_cross_mark']],
  '2753': ['\u2753', ['question']],
  '2754': ['\u2754', ['grey_question']],
  '2755': ['\u2755', ['grey_exclamation']],
  '2757': ['\u2757', ['exclamation', 'heavy_exclamation_mark']],
  '2764': ['\u2764', ['heart'], '<3'],
  '2795': ['\u2795', ['heavy_plus_sign']],
  '2796': ['\u2796', ['heavy_minus_sign']],
  '2797': ['\u2797', ['heavy_division_sign']],
  '27a1': ['\u27A1', ['arrow_right']],
  '27b0': ['\u27B0', ['curly_loop']],
  '27bf': ['\u27BF', ['loop']],
  '2934': ['\u2934', ['arrow_heading_up']],
  '2935': ['\u2935', ['arrow_heading_down']],
  '2b05': ['\u2B05', ['arrow_left']],
  '2b06': ['\u2B06', ['arrow_up']],
  '2b07': ['\u2B07', ['arrow_down']],
  '2b1b': ['\u2B1B', ['black_large_square']],
  '2b1c': ['\u2B1C', ['white_large_square']],
  '2b50': ['\u2B50', ['star']],
  '2b55': ['\u2B55', ['o']],
  '3030': ['\u3030', ['wavy_dash']],
  '303d': ['\u303D', ['part_alternation_mark']],
  '3297': ['\u3297', ['congratulations']],
  '3299': ['\u3299', ['secret']],
  '1f004': ['\uD83C\uDC04', ['mahjong']],
  '1f0cf': ['\uD83C\uDCCF', ['black_joker']],
  '1f170': ['\uD83C\uDD70', ['a']],
  '1f171': ['\uD83C\uDD71', ['b']],
  '1f17e': ['\uD83C\uDD7E', ['o2']],
  '1f17f': ['\uD83C\uDD7F', ['parking']],
  '1f18e': ['\uD83C\uDD8E', ['ab']],
  '1f191': ['\uD83C\uDD91', ['cl']],
  '1f192': ['\uD83C\uDD92', ['cool']],
  '1f193': ['\uD83C\uDD93', ['free']],
  '1f194': ['\uD83C\uDD94', ['id']],
  '1f195': ['\uD83C\uDD95', ['new']],
  '1f196': ['\uD83C\uDD96', ['ng']],
  '1f197': ['\uD83C\uDD97', ['ok']],
  '1f198': ['\uD83C\uDD98', ['sos']],
  '1f199': ['\uD83C\uDD99', ['up']],
  '1f19a': ['\uD83C\uDD9A', ['vs']],
  '1f201': ['\uD83C\uDE01', ['koko']],
  '1f202': ['\uD83C\uDE02', ['sa']],
  '1f21a': ['\uD83C\uDE1A', ['u7121']],
  '1f22f': ['\uD83C\uDE2F', ['u6307']],
  '1f232': ['\uD83C\uDE32', ['u7981']],
  '1f233': ['\uD83C\uDE33', ['u7a7a']],
  '1f234': ['\uD83C\uDE34', ['u5408']],
  '1f235': ['\uD83C\uDE35', ['u6e80']],
  '1f236': ['\uD83C\uDE36', ['u6709']],
  '1f237': ['\uD83C\uDE37', ['u6708']],
  '1f238': ['\uD83C\uDE38', ['u7533']],
  '1f239': ['\uD83C\uDE39', ['u5272']],
  '1f23a': ['\uD83C\uDE3A', ['u55b6']],
  '1f250': ['\uD83C\uDE50', ['ideograph_advantage']],
  '1f251': ['\uD83C\uDE51', ['accept']],
  '1f300': ['\uD83C\uDF00', ['cyclone']],
  '1f301': ['\uD83C\uDF01', ['foggy']],
  '1f302': ['\uD83C\uDF02', ['closed_umbrella']],
  '1f303': ['\uD83C\uDF03', ['night_with_stars']],
  '1f304': ['\uD83C\uDF04', ['sunrise_over_mountains']],
  '1f305': ['\uD83C\uDF05', ['sunrise']],
  '1f306': ['\uD83C\uDF06', ['city_sunset']],
  '1f307': ['\uD83C\uDF07', ['city_sunrise']],
  '1f308': ['\uD83C\uDF08', ['rainbow']],
  '1f309': ['\uD83C\uDF09', ['bridge_at_night']],
  '1f30a': ['\uD83C\uDF0A', ['ocean']],
  '1f30b': ['\uD83C\uDF0B', ['volcano']],
  '1f30c': ['\uD83C\uDF0C', ['milky_way']],
  '1f30d': ['\uD83C\uDF0D', ['earth_africa']],
  '1f30e': ['\uD83C\uDF0E', ['earth_americas']],
  '1f30f': ['\uD83C\uDF0F', ['earth_asia']],
  '1f310': ['\uD83C\uDF10', ['globe_with_meridians']],
  '1f311': ['\uD83C\uDF11', ['new_moon']],
  '1f312': ['\uD83C\uDF12', ['waxing_crescent_moon']],
  '1f313': ['\uD83C\uDF13', ['first_quarter_moon']],
  '1f314': ['\uD83C\uDF14', ['moon', 'waxing_gibbous_moon']],
  '1f315': ['\uD83C\uDF15', ['full_moon']],
  '1f316': ['\uD83C\uDF16', ['waning_gibbous_moon']],
  '1f317': ['\uD83C\uDF17', ['last_quarter_moon']],
  '1f318': ['\uD83C\uDF18', ['waning_crescent_moon']],
  '1f319': ['\uD83C\uDF19', ['crescent_moon']],
  '1f320': ['\uD83C\uDF20', ['stars']],
  '1f31a': ['\uD83C\uDF1A', ['new_moon_with_face']],
  '1f31b': ['\uD83C\uDF1B', ['first_quarter_moon_with_face']],
  '1f31c': ['\uD83C\uDF1C', ['last_quarter_moon_with_face']],
  '1f31d': ['\uD83C\uDF1D', ['full_moon_with_face']],
  '1f31e': ['\uD83C\uDF1E', ['sun_with_face']],
  '1f31f': ['\uD83C\uDF1F', ['star2']],
  '1f330': ['\uD83C\uDF30', ['chestnut']],
  '1f331': ['\uD83C\uDF31', ['seedling']],
  '1f332': ['\uD83C\uDF32', ['evergreen_tree']],
  '1f333': ['\uD83C\uDF33', ['deciduous_tree']],
  '1f334': ['\uD83C\uDF34', ['palm_tree']],
  '1f335': ['\uD83C\uDF35', ['cactus']],
  '1f337': ['\uD83C\uDF37', ['tulip']],
  '1f338': ['\uD83C\uDF38', ['cherry_blossom']],
  '1f339': ['\uD83C\uDF39', ['rose']],
  '1f33a': ['\uD83C\uDF3A', ['hibiscus']],
  '1f33b': ['\uD83C\uDF3B', ['sunflower']],
  '1f33c': ['\uD83C\uDF3C', ['blossom']],
  '1f33d': ['\uD83C\uDF3D', ['corn']],
  '1f33e': ['\uD83C\uDF3E', ['ear_of_rice']],
  '1f33f': ['\uD83C\uDF3F', ['herb']],
  '1f340': ['\uD83C\uDF40', ['four_leaf_clover']],
  '1f341': ['\uD83C\uDF41', ['maple_leaf']],
  '1f342': ['\uD83C\uDF42', ['fallen_leaf']],
  '1f343': ['\uD83C\uDF43', ['leaves']],
  '1f344': ['\uD83C\uDF44', ['mushroom']],
  '1f345': ['\uD83C\uDF45', ['tomato']],
  '1f346': ['\uD83C\uDF46', ['eggplant']],
  '1f347': ['\uD83C\uDF47', ['grapes']],
  '1f348': ['\uD83C\uDF48', ['melon']],
  '1f349': ['\uD83C\uDF49', ['watermelon']],
  '1f34a': ['\uD83C\uDF4A', ['tangerine']],
  '1f34b': ['\uD83C\uDF4B', ['lemon']],
  '1f34c': ['\uD83C\uDF4C', ['banana']],
  '1f34d': ['\uD83C\uDF4D', ['pineapple']],
  '1f34e': ['\uD83C\uDF4E', ['apple']],
  '1f34f': ['\uD83C\uDF4F', ['green_apple']],
  '1f350': ['\uD83C\uDF50', ['pear']],
  '1f351': ['\uD83C\uDF51', ['peach']],
  '1f352': ['\uD83C\uDF52', ['cherries']],
  '1f353': ['\uD83C\uDF53', ['strawberry']],
  '1f354': ['\uD83C\uDF54', ['hamburger']],
  '1f355': ['\uD83C\uDF55', ['pizza']],
  '1f356': ['\uD83C\uDF56', ['meat_on_bone']],
  '1f357': ['\uD83C\uDF57', ['poultry_leg']],
  '1f358': ['\uD83C\uDF58', ['rice_cracker']],
  '1f359': ['\uD83C\uDF59', ['rice_ball']],
  '1f35a': ['\uD83C\uDF5A', ['rice']],
  '1f35b': ['\uD83C\uDF5B', ['curry']],
  '1f35c': ['\uD83C\uDF5C', ['ramen']],
  '1f35d': ['\uD83C\uDF5D', ['spaghetti']],
  '1f35e': ['\uD83C\uDF5E', ['bread']],
  '1f35f': ['\uD83C\uDF5F', ['fries']],
  '1f360': ['\uD83C\uDF60', ['sweet_potato']],
  '1f361': ['\uD83C\uDF61', ['dango']],
  '1f362': ['\uD83C\uDF62', ['oden']],
  '1f363': ['\uD83C\uDF63', ['sushi']],
  '1f364': ['\uD83C\uDF64', ['fried_shrimp']],
  '1f365': ['\uD83C\uDF65', ['fish_cake']],
  '1f366': ['\uD83C\uDF66', ['icecream']],
  '1f367': ['\uD83C\uDF67', ['shaved_ice']],
  '1f368': ['\uD83C\uDF68', ['ice_cream']],
  '1f369': ['\uD83C\uDF69', ['doughnut']],
  '1f36a': ['\uD83C\uDF6A', ['cookie']],
  '1f36b': ['\uD83C\uDF6B', ['chocolate_bar']],
  '1f36c': ['\uD83C\uDF6C', ['candy']],
  '1f36d': ['\uD83C\uDF6D', ['lollipop']],
  '1f36e': ['\uD83C\uDF6E', ['custard']],
  '1f36f': ['\uD83C\uDF6F', ['honey_pot']],
  '1f370': ['\uD83C\uDF70', ['cake']],
  '1f371': ['\uD83C\uDF71', ['bento']],
  '1f372': ['\uD83C\uDF72', ['stew']],
  '1f373': ['\uD83C\uDF73', ['egg']],
  '1f374': ['\uD83C\uDF74', ['fork_and_knife']],
  '1f375': ['\uD83C\uDF75', ['tea']],
  '1f376': ['\uD83C\uDF76', ['sake']],
  '1f377': ['\uD83C\uDF77', ['wine_glass']],
  '1f378': ['\uD83C\uDF78', ['cocktail']],
  '1f379': ['\uD83C\uDF79', ['tropical_drink']],
  '1f37a': ['\uD83C\uDF7A', ['beer']],
  '1f37b': ['\uD83C\uDF7B', ['beers']],
  '1f37c': ['\uD83C\uDF7C', ['baby_bottle']],
  '1f380': ['\uD83C\uDF80', ['ribbon']],
  '1f381': ['\uD83C\uDF81', ['gift']],
  '1f382': ['\uD83C\uDF82', ['birthday']],
  '1f383': ['\uD83C\uDF83', ['jack_o_lantern']],
  '1f384': ['\uD83C\uDF84', ['christmas_tree']],
  '1f385': ['\uD83C\uDF85', ['santa']],
  '1f386': ['\uD83C\uDF86', ['fireworks']],
  '1f387': ['\uD83C\uDF87', ['sparkler']],
  '1f388': ['\uD83C\uDF88', ['balloon']],
  '1f389': ['\uD83C\uDF89', ['tada']],
  '1f38a': ['\uD83C\uDF8A', ['confetti_ball']],
  '1f38b': ['\uD83C\uDF8B', ['tanabata_tree']],
  '1f38c': ['\uD83C\uDF8C', ['crossed_flags']],
  '1f38d': ['\uD83C\uDF8D', ['bamboo']],
  '1f38e': ['\uD83C\uDF8E', ['dolls']],
  '1f38f': ['\uD83C\uDF8F', ['flags']],
  '1f390': ['\uD83C\uDF90', ['wind_chime']],
  '1f391': ['\uD83C\uDF91', ['rice_scene']],
  '1f392': ['\uD83C\uDF92', ['school_satchel']],
  '1f393': ['\uD83C\uDF93', ['mortar_board']],
  '1f3a0': ['\uD83C\uDFA0', ['carousel_horse']],
  '1f3a1': ['\uD83C\uDFA1', ['ferris_wheel']],
  '1f3a2': ['\uD83C\uDFA2', ['roller_coaster']],
  '1f3a3': ['\uD83C\uDFA3', ['fishing_pole_and_fish']],
  '1f3a4': ['\uD83C\uDFA4', ['microphone']],
  '1f3a5': ['\uD83C\uDFA5', ['movie_camera']],
  '1f3a6': ['\uD83C\uDFA6', ['cinema']],
  '1f3a7': ['\uD83C\uDFA7', ['headphones']],
  '1f3a8': ['\uD83C\uDFA8', ['art']],
  '1f3a9': ['\uD83C\uDFA9', ['tophat']],
  '1f3aa': ['\uD83C\uDFAA', ['circus_tent']],
  '1f3ab': ['\uD83C\uDFAB', ['ticket']],
  '1f3ac': ['\uD83C\uDFAC', ['clapper']],
  '1f3ad': ['\uD83C\uDFAD', ['performing_arts']],
  '1f3ae': ['\uD83C\uDFAE', ['video_game']],
  '1f3af': ['\uD83C\uDFAF', ['dart']],
  '1f3b0': ['\uD83C\uDFB0', ['slot_machine']],
  '1f3b1': ['\uD83C\uDFB1', ['8ball']],
  '1f3b2': ['\uD83C\uDFB2', ['game_die']],
  '1f3b3': ['\uD83C\uDFB3', ['bowling']],
  '1f3b4': ['\uD83C\uDFB4', ['flower_playing_cards']],
  '1f3b5': ['\uD83C\uDFB5', ['musical_note']],
  '1f3b6': ['\uD83C\uDFB6', ['notes']],
  '1f3b7': ['\uD83C\uDFB7', ['saxophone']],
  '1f3b8': ['\uD83C\uDFB8', ['guitar']],
  '1f3b9': ['\uD83C\uDFB9', ['musical_keyboard']],
  '1f3ba': ['\uD83C\uDFBA', ['trumpet']],
  '1f3bb': ['\uD83C\uDFBB', ['violin']],
  '1f3bc': ['\uD83C\uDFBC', ['musical_score']],
  '1f3bd': ['\uD83C\uDFBD', ['running_shirt_with_sash']],
  '1f3be': ['\uD83C\uDFBE', ['tennis']],
  '1f3bf': ['\uD83C\uDFBF', ['ski']],
  '1f3c0': ['\uD83C\uDFC0', ['basketball']],
  '1f3c1': ['\uD83C\uDFC1', ['checkered_flag']],
  '1f3c2': ['\uD83C\uDFC2', ['snowboarder']],
  '1f3c3': ['\uD83C\uDFC3', ['runner', 'running']],
  '1f3c4': ['\uD83C\uDFC4', ['surfer']],
  '1f3c6': ['\uD83C\uDFC6', ['trophy']],
  '1f3c7': ['\uD83C\uDFC7', ['horse_racing']],
  '1f3c8': ['\uD83C\uDFC8', ['football']],
  '1f3c9': ['\uD83C\uDFC9', ['rugby_football']],
  '1f3ca': ['\uD83C\uDFCA', ['swimmer']],
  '1f3e0': ['\uD83C\uDFE0', ['house']],
  '1f3e1': ['\uD83C\uDFE1', ['house_with_garden']],
  '1f3e2': ['\uD83C\uDFE2', ['office']],
  '1f3e3': ['\uD83C\uDFE3', ['post_office']],
  '1f3e4': ['\uD83C\uDFE4', ['european_post_office']],
  '1f3e5': ['\uD83C\uDFE5', ['hospital']],
  '1f3e6': ['\uD83C\uDFE6', ['bank']],
  '1f3e7': ['\uD83C\uDFE7', ['atm']],
  '1f3e8': ['\uD83C\uDFE8', ['hotel']],
  '1f3e9': ['\uD83C\uDFE9', ['love_hotel']],
  '1f3ea': ['\uD83C\uDFEA', ['convenience_store']],
  '1f3eb': ['\uD83C\uDFEB', ['school']],
  '1f3ec': ['\uD83C\uDFEC', ['department_store']],
  '1f3ed': ['\uD83C\uDFED', ['factory']],
  '1f3ee': ['\uD83C\uDFEE', ['izakaya_lantern', 'lantern']],
  '1f3ef': ['\uD83C\uDFEF', ['japanese_castle']],
  '1f3f0': ['\uD83C\uDFF0', ['european_castle']],
  '1f400': ['\uD83D\uDC00', ['rat']],
  '1f401': ['\uD83D\uDC01', ['mouse2']],
  '1f402': ['\uD83D\uDC02', ['ox']],
  '1f403': ['\uD83D\uDC03', ['water_buffalo']],
  '1f404': ['\uD83D\uDC04', ['cow2']],
  '1f405': ['\uD83D\uDC05', ['tiger2']],
  '1f406': ['\uD83D\uDC06', ['leopard']],
  '1f407': ['\uD83D\uDC07', ['rabbit2']],
  '1f408': ['\uD83D\uDC08', ['cat2']],
  '1f409': ['\uD83D\uDC09', ['dragon']],
  '1f40a': ['\uD83D\uDC0A', ['crocodile']],
  '1f40b': ['\uD83D\uDC0B', ['whale2']],
  '1f40c': ['\uD83D\uDC0C', ['snail']],
  '1f40d': ['\uD83D\uDC0D', ['snake']],
  '1f40e': ['\uD83D\uDC0E', ['racehorse']],
  '1f40f': ['\uD83D\uDC0F', ['ram']],
  '1f410': ['\uD83D\uDC10', ['goat']],
  '1f411': ['\uD83D\uDC11', ['sheep']],
  '1f412': ['\uD83D\uDC12', ['monkey']],
  '1f413': ['\uD83D\uDC13', ['rooster']],
  '1f414': ['\uD83D\uDC14', ['chicken']],
  '1f415': ['\uD83D\uDC15', ['dog2']],
  '1f416': ['\uD83D\uDC16', ['pig2']],
  '1f417': ['\uD83D\uDC17', ['boar']],
  '1f418': ['\uD83D\uDC18', ['elephant']],
  '1f419': ['\uD83D\uDC19', ['octopus']],
  '1f41a': ['\uD83D\uDC1A', ['shell']],
  '1f41b': ['\uD83D\uDC1B', ['bug']],
  '1f41c': ['\uD83D\uDC1C', ['ant']],
  '1f41d': ['\uD83D\uDC1D', ['bee', 'honeybee']],
  '1f41e': ['\uD83D\uDC1E', ['beetle']],
  '1f41f': ['\uD83D\uDC1F', ['fish']],
  '1f420': ['\uD83D\uDC20', ['tropical_fish']],
  '1f421': ['\uD83D\uDC21', ['blowfish']],
  '1f422': ['\uD83D\uDC22', ['turtle']],
  '1f423': ['\uD83D\uDC23', ['hatching_chick']],
  '1f424': ['\uD83D\uDC24', ['baby_chick']],
  '1f425': ['\uD83D\uDC25', ['hatched_chick']],
  '1f426': ['\uD83D\uDC26', ['bird']],
  '1f427': ['\uD83D\uDC27', ['penguin']],
  '1f428': ['\uD83D\uDC28', ['koala']],
  '1f429': ['\uD83D\uDC29', ['poodle']],
  '1f42a': ['\uD83D\uDC2A', ['dromedary_camel']],
  '1f42b': ['\uD83D\uDC2B', ['camel']],
  '1f42c': ['\uD83D\uDC2C', ['dolphin', 'flipper']],
  '1f42d': ['\uD83D\uDC2D', ['mouse']],
  '1f42e': ['\uD83D\uDC2E', ['cow']],
  '1f42f': ['\uD83D\uDC2F', ['tiger']],
  '1f430': ['\uD83D\uDC30', ['rabbit']],
  '1f431': ['\uD83D\uDC31', ['cat']],
  '1f432': ['\uD83D\uDC32', ['dragon_face']],
  '1f433': ['\uD83D\uDC33', ['whale']],
  '1f434': ['\uD83D\uDC34', ['horse']],
  '1f435': ['\uD83D\uDC35', ['monkey_face']],
  '1f436': ['\uD83D\uDC36', ['dog']],
  '1f437': ['\uD83D\uDC37', ['pig']],
  '1f438': ['\uD83D\uDC38', ['frog']],
  '1f439': ['\uD83D\uDC39', ['hamster']],
  '1f43a': ['\uD83D\uDC3A', ['wolf']],
  '1f43b': ['\uD83D\uDC3B', ['bear']],
  '1f43c': ['\uD83D\uDC3C', ['panda_face']],
  '1f43d': ['\uD83D\uDC3D', ['pig_nose']],
  '1f43e': ['\uD83D\uDC3E', ['feet', 'paw_prints']],
  '1f440': ['\uD83D\uDC40', ['eyes']],
  '1f442': ['\uD83D\uDC42', ['ear']],
  '1f443': ['\uD83D\uDC43', ['nose']],
  '1f444': ['\uD83D\uDC44', ['lips']],
  '1f445': ['\uD83D\uDC45', ['tongue']],
  '1f446': ['\uD83D\uDC46', ['point_up_2']],
  '1f447': ['\uD83D\uDC47', ['point_down']],
  '1f448': ['\uD83D\uDC48', ['point_left']],
  '1f449': ['\uD83D\uDC49', ['point_right']],
  '1f44a': ['\uD83D\uDC4A', ['facepunch', 'punch']],
  '1f44b': ['\uD83D\uDC4B', ['wave']],
  '1f44c': ['\uD83D\uDC4C', ['ok_hand']],
  '1f44d': ['\uD83D\uDC4D', ['+1', 'thumbsup']],
  '1f44e': ['\uD83D\uDC4E', ['-1', 'thumbsdown']],
  '1f44f': ['\uD83D\uDC4F', ['clap']],
  '1f450': ['\uD83D\uDC50', ['open_hands']],
  '1f451': ['\uD83D\uDC51', ['crown']],
  '1f452': ['\uD83D\uDC52', ['womans_hat']],
  '1f453': ['\uD83D\uDC53', ['eyeglasses']],
  '1f454': ['\uD83D\uDC54', ['necktie']],
  '1f455': ['\uD83D\uDC55', ['shirt', 'tshirt']],
  '1f456': ['\uD83D\uDC56', ['jeans']],
  '1f457': ['\uD83D\uDC57', ['dress']],
  '1f458': ['\uD83D\uDC58', ['kimono']],
  '1f459': ['\uD83D\uDC59', ['bikini']],
  '1f45a': ['\uD83D\uDC5A', ['womans_clothes']],
  '1f45b': ['\uD83D\uDC5B', ['purse']],
  '1f45c': ['\uD83D\uDC5C', ['handbag']],
  '1f45d': ['\uD83D\uDC5D', ['pouch']],
  '1f45e': ['\uD83D\uDC5E', ['mans_shoe', 'shoe']],
  '1f45f': ['\uD83D\uDC5F', ['athletic_shoe']],
  '1f460': ['\uD83D\uDC60', ['high_heel']],
  '1f461': ['\uD83D\uDC61', ['sandal']],
  '1f462': ['\uD83D\uDC62', ['boot']],
  '1f463': ['\uD83D\uDC63', ['footprints']],
  '1f464': ['\uD83D\uDC64', ['bust_in_silhouette']],
  '1f465': ['\uD83D\uDC65', ['busts_in_silhouette']],
  '1f466': ['\uD83D\uDC66', ['boy']],
  '1f467': ['\uD83D\uDC67', ['girl']],
  '1f468': ['\uD83D\uDC68', ['man']],
  '1f469': ['\uD83D\uDC69', ['woman']],
  '1f46a': ['\uD83D\uDC6A', ['family']],
  '1f46b': ['\uD83D\uDC6B', ['couple']],
  '1f46c': ['\uD83D\uDC6C', ['two_men_holding_hands']],
  '1f46d': ['\uD83D\uDC6D', ['two_women_holding_hands']],
  '1f46e': ['\uD83D\uDC6E', ['cop']],
  '1f46f': ['\uD83D\uDC6F', ['dancers']],
  '1f470': ['\uD83D\uDC70', ['bride_with_veil']],
  '1f471': ['\uD83D\uDC71', ['person_with_blond_hair']],
  '1f472': ['\uD83D\uDC72', ['man_with_gua_pi_mao']],
  '1f473': ['\uD83D\uDC73', ['man_with_turban']],
  '1f474': ['\uD83D\uDC74', ['older_man']],
  '1f475': ['\uD83D\uDC75', ['older_woman']],
  '1f476': ['\uD83D\uDC76', ['baby']],
  '1f477': ['\uD83D\uDC77', ['construction_worker']],
  '1f478': ['\uD83D\uDC78', ['princess']],
  '1f479': ['\uD83D\uDC79', ['japanese_ogre']],
  '1f47a': ['\uD83D\uDC7A', ['japanese_goblin']],
  '1f47b': ['\uD83D\uDC7B', ['ghost']],
  '1f47c': ['\uD83D\uDC7C', ['angel']],
  '1f47d': ['\uD83D\uDC7D', ['alien']],
  '1f47e': ['\uD83D\uDC7E', ['space_invader']],
  '1f47f': ['\uD83D\uDC7F', ['imp']],
  '1f480': ['\uD83D\uDC80', ['skull']],
  '1f481': ['\uD83D\uDC81', ['information_desk_person']],
  '1f482': ['\uD83D\uDC82', ['guardsman']],
  '1f483': ['\uD83D\uDC83', ['dancer']],
  '1f484': ['\uD83D\uDC84', ['lipstick']],
  '1f485': ['\uD83D\uDC85', ['nail_care']],
  '1f486': ['\uD83D\uDC86', ['massage']],
  '1f487': ['\uD83D\uDC87', ['haircut']],
  '1f488': ['\uD83D\uDC88', ['barber']],
  '1f489': ['\uD83D\uDC89', ['syringe']],
  '1f48a': ['\uD83D\uDC8A', ['pill']],
  '1f48b': ['\uD83D\uDC8B', ['kiss']],
  '1f48c': ['\uD83D\uDC8C', ['love_letter']],
  '1f48d': ['\uD83D\uDC8D', ['ring']],
  '1f48e': ['\uD83D\uDC8E', ['gem']],
  '1f48f': ['\uD83D\uDC8F', ['couplekiss']],
  '1f490': ['\uD83D\uDC90', ['bouquet']],
  '1f491': ['\uD83D\uDC91', ['couple_with_heart']],
  '1f492': ['\uD83D\uDC92', ['wedding']],
  '1f493': ['\uD83D\uDC93', ['heartbeat']],
  '1f494': ['\uD83D\uDC94', ['broken_heart'], '<\/3'],
  '1f495': ['\uD83D\uDC95', ['two_hearts']],
  '1f496': ['\uD83D\uDC96', ['sparkling_heart']],
  '1f497': ['\uD83D\uDC97', ['heartpulse']],
  '1f498': ['\uD83D\uDC98', ['cupid']],
  '1f499': ['\uD83D\uDC99', ['blue_heart'], '<3'],
  '1f49a': ['\uD83D\uDC9A', ['green_heart'], '<3'],
  '1f49b': ['\uD83D\uDC9B', ['yellow_heart'], '<3'],
  '1f49c': ['\uD83D\uDC9C', ['purple_heart'], '<3'],
  '1f49d': ['\uD83D\uDC9D', ['gift_heart']],
  '1f49e': ['\uD83D\uDC9E', ['revolving_hearts']],
  '1f49f': ['\uD83D\uDC9F', ['heart_decoration']],
  '1f4a0': ['\uD83D\uDCA0', ['diamond_shape_with_a_dot_inside']],
  '1f4a1': ['\uD83D\uDCA1', ['bulb']],
  '1f4a2': ['\uD83D\uDCA2', ['anger']],
  '1f4a3': ['\uD83D\uDCA3', ['bomb']],
  '1f4a4': ['\uD83D\uDCA4', ['zzz']],
  '1f4a5': ['\uD83D\uDCA5', ['boom', 'collision']],
  '1f4a6': ['\uD83D\uDCA6', ['sweat_drops']],
  '1f4a7': ['\uD83D\uDCA7', ['droplet']],
  '1f4a8': ['\uD83D\uDCA8', ['dash']],
  '1f4a9': ['\uD83D\uDCA9', ['hankey', 'poop', 'shit']],
  '1f4aa': ['\uD83D\uDCAA', ['muscle']],
  '1f4ab': ['\uD83D\uDCAB', ['dizzy']],
  '1f4ac': ['\uD83D\uDCAC', ['speech_balloon']],
  '1f4ad': ['\uD83D\uDCAD', ['thought_balloon']],
  '1f4ae': ['\uD83D\uDCAE', ['white_flower']],
  '1f4af': ['\uD83D\uDCAF', ['100']],
  '1f4b0': ['\uD83D\uDCB0', ['moneybag']],
  '1f4b1': ['\uD83D\uDCB1', ['currency_exchange']],
  '1f4b2': ['\uD83D\uDCB2', ['heavy_dollar_sign']],
  '1f4b3': ['\uD83D\uDCB3', ['credit_card']],
  '1f4b4': ['\uD83D\uDCB4', ['yen']],
  '1f4b5': ['\uD83D\uDCB5', ['dollar']],
  '1f4b6': ['\uD83D\uDCB6', ['euro']],
  '1f4b7': ['\uD83D\uDCB7', ['pound']],
  '1f4b8': ['\uD83D\uDCB8', ['money_with_wings']],
  '1f4b9': ['\uD83D\uDCB9', ['chart']],
  '1f4ba': ['\uD83D\uDCBA', ['seat']],
  '1f4bb': ['\uD83D\uDCBB', ['computer']],
  '1f4bc': ['\uD83D\uDCBC', ['briefcase']],
  '1f4bd': ['\uD83D\uDCBD', ['minidisc']],
  '1f4be': ['\uD83D\uDCBE', ['floppy_disk']],
  '1f4bf': ['\uD83D\uDCBF', ['cd']],
  '1f4c0': ['\uD83D\uDCC0', ['dvd']],
  '1f4c1': ['\uD83D\uDCC1', ['file_folder']],
  '1f4c2': ['\uD83D\uDCC2', ['open_file_folder']],
  '1f4c3': ['\uD83D\uDCC3', ['page_with_curl']],
  '1f4c4': ['\uD83D\uDCC4', ['page_facing_up']],
  '1f4c5': ['\uD83D\uDCC5', ['date']],
  '1f4c6': ['\uD83D\uDCC6', ['calendar']],
  '1f4c7': ['\uD83D\uDCC7', ['card_index']],
  '1f4c8': ['\uD83D\uDCC8', ['chart_with_upwards_trend']],
  '1f4c9': ['\uD83D\uDCC9', ['chart_with_downwards_trend']],
  '1f4ca': ['\uD83D\uDCCA', ['bar_chart']],
  '1f4cb': ['\uD83D\uDCCB', ['clipboard']],
  '1f4cc': ['\uD83D\uDCCC', ['pushpin']],
  '1f4cd': ['\uD83D\uDCCD', ['round_pushpin']],
  '1f4ce': ['\uD83D\uDCCE', ['paperclip']],
  '1f4cf': ['\uD83D\uDCCF', ['straight_ruler']],
  '1f4d0': ['\uD83D\uDCD0', ['triangular_ruler']],
  '1f4d1': ['\uD83D\uDCD1', ['bookmark_tabs']],
  '1f4d2': ['\uD83D\uDCD2', ['ledger']],
  '1f4d3': ['\uD83D\uDCD3', ['notebook']],
  '1f4d4': ['\uD83D\uDCD4', ['notebook_with_decorative_cover']],
  '1f4d5': ['\uD83D\uDCD5', ['closed_book']],
  '1f4d6': ['\uD83D\uDCD6', ['book', 'open_book']],
  '1f4d7': ['\uD83D\uDCD7', ['green_book']],
  '1f4d8': ['\uD83D\uDCD8', ['blue_book']],
  '1f4d9': ['\uD83D\uDCD9', ['orange_book']],
  '1f4da': ['\uD83D\uDCDA', ['books']],
  '1f4db': ['\uD83D\uDCDB', ['name_badge']],
  '1f4dc': ['\uD83D\uDCDC', ['scroll']],
  '1f4dd': ['\uD83D\uDCDD', ['memo', 'pencil']],
  '1f4de': ['\uD83D\uDCDE', ['telephone_receiver']],
  '1f4df': ['\uD83D\uDCDF', ['pager']],
  '1f4e0': ['\uD83D\uDCE0', ['fax']],
  '1f4e1': ['\uD83D\uDCE1', ['satellite']],
  '1f4e2': ['\uD83D\uDCE2', ['loudspeaker']],
  '1f4e3': ['\uD83D\uDCE3', ['mega']],
  '1f4e4': ['\uD83D\uDCE4', ['outbox_tray']],
  '1f4e5': ['\uD83D\uDCE5', ['inbox_tray']],
  '1f4e6': ['\uD83D\uDCE6', ['package']],
  '1f4e7': ['\uD83D\uDCE7', ['e-mail']],
  '1f4e8': ['\uD83D\uDCE8', ['incoming_envelope']],
  '1f4e9': ['\uD83D\uDCE9', ['envelope_with_arrow']],
  '1f4ea': ['\uD83D\uDCEA', ['mailbox_closed']],
  '1f4eb': ['\uD83D\uDCEB', ['mailbox']],
  '1f4ec': ['\uD83D\uDCEC', ['mailbox_with_mail']],
  '1f4ed': ['\uD83D\uDCED', ['mailbox_with_no_mail']],
  '1f4ee': ['\uD83D\uDCEE', ['postbox']],
  '1f4ef': ['\uD83D\uDCEF', ['postal_horn']],
  '1f4f0': ['\uD83D\uDCF0', ['newspaper']],
  '1f4f1': ['\uD83D\uDCF1', ['iphone']],
  '1f4f2': ['\uD83D\uDCF2', ['calling']],
  '1f4f3': ['\uD83D\uDCF3', ['vibration_mode']],
  '1f4f4': ['\uD83D\uDCF4', ['mobile_phone_off']],
  '1f4f5': ['\uD83D\uDCF5', ['no_mobile_phones']],
  '1f4f6': ['\uD83D\uDCF6', ['signal_strength']],
  '1f4f7': ['\uD83D\uDCF7', ['camera']],
  '1f4f9': ['\uD83D\uDCF9', ['video_camera']],
  '1f4fa': ['\uD83D\uDCFA', ['tv']],
  '1f4fb': ['\uD83D\uDCFB', ['radio']],
  '1f4fc': ['\uD83D\uDCFC', ['vhs']],
  '1f500': ['\uD83D\uDD00', ['twisted_rightwards_arrows']],
  '1f501': ['\uD83D\uDD01', ['repeat']],
  '1f502': ['\uD83D\uDD02', ['repeat_one']],
  '1f503': ['\uD83D\uDD03', ['arrows_clockwise']],
  '1f504': ['\uD83D\uDD04', ['arrows_counterclockwise']],
  '1f505': ['\uD83D\uDD05', ['low_brightness']],
  '1f506': ['\uD83D\uDD06', ['high_brightness']],
  '1f507': ['\uD83D\uDD07', ['mute']],
  '1f508': ['\uD83D\uDD09', ['speaker']],
  '1f509': ['\uD83D\uDD09', ['sound']],
  '1f50a': ['\uD83D\uDD0A', ['loud_sound']],
  '1f50b': ['\uD83D\uDD0B', ['battery']],
  '1f50c': ['\uD83D\uDD0C', ['electric_plug']],
  '1f50d': ['\uD83D\uDD0D', ['mag']],
  '1f50e': ['\uD83D\uDD0E', ['mag_right']],
  '1f50f': ['\uD83D\uDD0F', ['lock_with_ink_pen']],
  '1f510': ['\uD83D\uDD10', ['closed_lock_with_key']],
  '1f511': ['\uD83D\uDD11', ['key']],
  '1f512': ['\uD83D\uDD12', ['lock']],
  '1f513': ['\uD83D\uDD13', ['unlock']],
  '1f514': ['\uD83D\uDD14', ['bell']],
  '1f515': ['\uD83D\uDD15', ['no_bell']],
  '1f516': ['\uD83D\uDD16', ['bookmark']],
  '1f517': ['\uD83D\uDD17', ['link']],
  '1f518': ['\uD83D\uDD18', ['radio_button']],
  '1f519': ['\uD83D\uDD19', ['back']],
  '1f51a': ['\uD83D\uDD1A', ['end']],
  '1f51b': ['\uD83D\uDD1B', ['on']],
  '1f51c': ['\uD83D\uDD1C', ['soon']],
  '1f51d': ['\uD83D\uDD1D', ['top']],
  '1f51e': ['\uD83D\uDD1E', ['underage']],
  '1f51f': ['\uD83D\uDD1F', ['keycap_ten']],
  '1f520': ['\uD83D\uDD20', ['capital_abcd']],
  '1f521': ['\uD83D\uDD21', ['abcd']],
  '1f522': ['\uD83D\uDD22', ['1234']],
  '1f523': ['\uD83D\uDD23', ['symbols']],
  '1f524': ['\uD83D\uDD24', ['abc']],
  '1f525': ['\uD83D\uDD25', ['fire']],
  '1f526': ['\uD83D\uDD26', ['flashlight']],
  '1f527': ['\uD83D\uDD27', ['wrench']],
  '1f528': ['\uD83D\uDD28', ['hammer']],
  '1f529': ['\uD83D\uDD29', ['nut_and_bolt']],
  '1f52a': ['\uD83D\uDD2A', ['hocho']],
  '1f52b': ['\uD83D\uDD2B', ['gun']],
  '1f52c': ['\uD83D\uDD2C', ['microscope']],
  '1f52d': ['\uD83D\uDD2D', ['telescope']],
  '1f52e': ['\uD83D\uDD2E', ['crystal_ball']],
  '1f52f': ['\uD83D\uDD2F', ['six_pointed_star']],
  '1f530': ['\uD83D\uDD30', ['beginner']],
  '1f531': ['\uD83D\uDD31', ['trident']],
  '1f532': ['\uD83D\uDD32', ['black_square_button']],
  '1f533': ['\uD83D\uDD33', ['white_square_button']],
  '1f534': ['\uD83D\uDD34', ['red_circle']],
  '1f535': ['\uD83D\uDD35', ['large_blue_circle']],
  '1f536': ['\uD83D\uDD36', ['large_orange_diamond']],
  '1f537': ['\uD83D\uDD37', ['large_blue_diamond']],
  '1f538': ['\uD83D\uDD38', ['small_orange_diamond']],
  '1f539': ['\uD83D\uDD39', ['small_blue_diamond']],
  '1f53a': ['\uD83D\uDD3A', ['small_red_triangle']],
  '1f53b': ['\uD83D\uDD3B', ['small_red_triangle_down']],
  '1f53c': ['\uD83D\uDD3C', ['arrow_up_small']],
  '1f53d': ['\uD83D\uDD3D', ['arrow_down_small']],
  '1f550': ['\uD83D\uDD50', ['clock1']],
  '1f551': ['\uD83D\uDD51', ['clock2']],
  '1f552': ['\uD83D\uDD52', ['clock3']],
  '1f553': ['\uD83D\uDD53', ['clock4']],
  '1f554': ['\uD83D\uDD54', ['clock5']],
  '1f555': ['\uD83D\uDD55', ['clock6']],
  '1f556': ['\uD83D\uDD56', ['clock7']],
  '1f557': ['\uD83D\uDD57', ['clock8']],
  '1f558': ['\uD83D\uDD58', ['clock9']],
  '1f559': ['\uD83D\uDD59', ['clock10']],
  '1f55a': ['\uD83D\uDD5A', ['clock11']],
  '1f55b': ['\uD83D\uDD5B', ['clock12']],
  '1f55c': ['\uD83D\uDD5C', ['clock130']],
  '1f55d': ['\uD83D\uDD5D', ['clock230']],
  '1f55e': ['\uD83D\uDD5E', ['clock330']],
  '1f55f': ['\uD83D\uDD5F', ['clock430']],
  '1f560': ['\uD83D\uDD60', ['clock530']],
  '1f561': ['\uD83D\uDD61', ['clock630']],
  '1f562': ['\uD83D\uDD62', ['clock730']],
  '1f563': ['\uD83D\uDD63', ['clock830']],
  '1f564': ['\uD83D\uDD64', ['clock930']],
  '1f565': ['\uD83D\uDD65', ['clock1030']],
  '1f566': ['\uD83D\uDD66', ['clock1130']],
  '1f567': ['\uD83D\uDD67', ['clock1230']],
  '1f5fb': ['\uD83D\uDDFB', ['mount_fuji']],
  '1f5fc': ['\uD83D\uDDFC', ['tokyo_tower']],
  '1f5fd': ['\uD83D\uDDFD', ['statue_of_liberty']],
  '1f5fe': ['\uD83D\uDDFE', ['japan']],
  '1f5ff': ['\uD83D\uDDFF', ['moyai']],
  '1f600': ['\uD83D\uDE00', ['grinning']],
  '1f601': ['\uD83D\uDE01', ['grin']],
  '1f602': ['\uD83D\uDE02', ['joy']],
  '1f603': ['\uD83D\uDE03', ['smiley'], ':)'],
  '1f604': ['\uD83D\uDE04', ['smile'], ':)'],
  '1f605': ['\uD83D\uDE05', ['sweat_smile']],
  '1f606': ['\uD83D\uDE06', ['satisfied']],
  '1f607': ['\uD83D\uDE07', ['innocent']],
  '1f608': ['\uD83D\uDE08', ['smiling_imp']],
  '1f609': ['\uD83D\uDE09', ['wink'], ';)'],
  '1f60a': ['\uD83D\uDE0A', ['blush']],
  '1f60b': ['\uD83D\uDE0B', ['yum']],
  '1f60c': ['\uD83D\uDE0C', ['relieved']],
  '1f60d': ['\uD83D\uDE0D', ['heart_eyes']],
  '1f60e': ['\uD83D\uDE0E', ['sunglasses']],
  '1f60f': ['\uD83D\uDE0F', ['smirk']],
  '1f610': ['\uD83D\uDE10', ['neutral_face']],
  '1f611': ['\uD83D\uDE11', ['expressionless']],
  '1f612': ['\uD83D\uDE12', ['unamused']],
  '1f613': ['\uD83D\uDE13', ['sweat']],
  '1f614': ['\uD83D\uDE14', ['pensive']],
  '1f615': ['\uD83D\uDE15', ['confused']],
  '1f616': ['\uD83D\uDE16', ['confounded']],
  '1f617': ['\uD83D\uDE17', ['kissing']],
  '1f618': ['\uD83D\uDE18', ['kissing_heart']],
  '1f619': ['\uD83D\uDE19', ['kissing_smiling_eyes']],
  '1f61a': ['\uD83D\uDE1A', ['kissing_closed_eyes']],
  '1f61b': ['\uD83D\uDE1B', ['stuck_out_tongue']],
  '1f61c': ['\uD83D\uDE1C', ['stuck_out_tongue_winking_eye'], ';p'],
  '1f61d': ['\uD83D\uDE1D', ['stuck_out_tongue_closed_eyes']],
  '1f61e': ['\uD83D\uDE1E', ['disappointed'], ':('],
  '1f61f': ['\uD83D\uDE1F', ['worried']],
  '1f620': ['\uD83D\uDE20', ['angry']],
  '1f621': ['\uD83D\uDE21', ['rage']],
  '1f622': ['\uD83D\uDE22', ['cry'], ":'("],
  '1f623': ['\uD83D\uDE23', ['persevere']],
  '1f624': ['\uD83D\uDE24', ['triumph']],
  '1f625': ['\uD83D\uDE25', ['disappointed_relieved']],
  '1f626': ['\uD83D\uDE26', ['frowning']],
  '1f627': ['\uD83D\uDE27', ['anguished']],
  '1f628': ['\uD83D\uDE28', ['fearful']],
  '1f629': ['\uD83D\uDE29', ['weary']],
  '1f62a': ['\uD83D\uDE2A', ['sleepy']],
  '1f62b': ['\uD83D\uDE2B', ['tired_face']],
  '1f62c': ['\uD83D\uDE2C', ['grimacing']],
  '1f62d': ['\uD83D\uDE2D', ['sob'], ":'("],
  '1f62e': ['\uD83D\uDE2E', ['open_mouth']],
  '1f62f': ['\uD83D\uDE2F', ['hushed']],
  '1f630': ['\uD83D\uDE30', ['cold_sweat']],
  '1f631': ['\uD83D\uDE31', ['scream']],
  '1f632': ['\uD83D\uDE32', ['astonished']],
  '1f633': ['\uD83D\uDE33', ['flushed']],
  '1f634': ['\uD83D\uDE34', ['sleeping']],
  '1f635': ['\uD83D\uDE35', ['dizzy_face']],
  '1f636': ['\uD83D\uDE36', ['no_mouth']],
  '1f637': ['\uD83D\uDE37', ['mask']],
  '1f638': ['\uD83D\uDE38', ['smile_cat']],
  '1f639': ['\uD83D\uDE39', ['joy_cat']],
  '1f63a': ['\uD83D\uDE3A', ['smiley_cat']],
  '1f63b': ['\uD83D\uDE3B', ['heart_eyes_cat']],
  '1f63c': ['\uD83D\uDE3C', ['smirk_cat']],
  '1f63d': ['\uD83D\uDE3D', ['kissing_cat']],
  '1f63e': ['\uD83D\uDE3E', ['pouting_cat']],
  '1f63f': ['\uD83D\uDE3F', ['crying_cat_face']],
  '1f640': ['\uD83D\uDE40', ['scream_cat']],
  '1f645': ['\uD83D\uDE45', ['no_good']],
  '1f646': ['\uD83D\uDE46', ['ok_woman']],
  '1f647': ['\uD83D\uDE47', ['bow']],
  '1f648': ['\uD83D\uDE48', ['see_no_evil']],
  '1f649': ['\uD83D\uDE49', ['hear_no_evil']],
  '1f64a': ['\uD83D\uDE4A', ['speak_no_evil']],
  '1f64b': ['\uD83D\uDE4B', ['raising_hand']],
  '1f64c': ['\uD83D\uDE4C', ['raised_hands']],
  '1f64d': ['\uD83D\uDE4D', ['person_frowning']],
  '1f64e': ['\uD83D\uDE4E', ['person_with_pouting_face']],
  '1f64f': ['\uD83D\uDE4F', ['pray']],
  '1f680': ['\uD83D\uDE80', ['rocket']],
  '1f681': ['\uD83D\uDE81', ['helicopter']],
  '1f682': ['\uD83D\uDE82', ['steam_locomotive']],
  '1f683': ['\uD83D\uDE83', ['railway_car']],
  '1f68b': ['\uD83D\uDE8B', ['train']],
  '1f684': ['\uD83D\uDE84', ['bullettrain_side']],
  '1f685': ['\uD83D\uDE85', ['bullettrain_front']],
  '1f686': ['\uD83D\uDE86', ['train2']],
  '1f687': ['\uD83D\uDE87', ['metro']],
  '1f688': ['\uD83D\uDE88', ['light_rail']],
  '1f689': ['\uD83D\uDE89', ['station']],
  '1f68a': ['\uD83D\uDE8A', ['tram']],
  '1f68c': ['\uD83D\uDE8C', ['bus']],
  '1f68d': ['\uD83D\uDE8D', ['oncoming_bus']],
  '1f68e': ['\uD83D\uDE8E', ['trolleybus']],
  '1f68f': ['\uD83D\uDE8F', ['busstop']],
  '1f690': ['\uD83D\uDE90', ['minibus']],
  '1f691': ['\uD83D\uDE91', ['ambulance']],
  '1f692': ['\uD83D\uDE92', ['fire_engine']],
  '1f693': ['\uD83D\uDE93', ['police_car']],
  '1f694': ['\uD83D\uDE94', ['oncoming_police_car']],
  '1f695': ['\uD83D\uDE95', ['taxi']],
  '1f696': ['\uD83D\uDE96', ['oncoming_taxi']],
  '1f697': ['\uD83D\uDE97', ['car', 'red_car']],
  '1f698': ['\uD83D\uDE98', ['oncoming_automobile']],
  '1f699': ['\uD83D\uDE99', ['blue_car']],
  '1f69a': ['\uD83D\uDE9A', ['truck']],
  '1f69b': ['\uD83D\uDE9B', ['articulated_lorry']],
  '1f69c': ['\uD83D\uDE9C', ['tractor']],
  '1f69d': ['\uD83D\uDE9D', ['monorail']],
  '1f69e': ['\uD83D\uDE9E', ['mountain_railway']],
  '1f69f': ['\uD83D\uDE9F', ['suspension_railway']],
  '1f6a0': ['\uD83D\uDEA0', ['mountain_cableway']],
  '1f6a1': ['\uD83D\uDEA1', ['aerial_tramway']],
  '1f6a2': ['\uD83D\uDEA2', ['ship']],
  '1f6a3': ['\uD83D\uDEA3', ['rowboat']],
  '1f6a4': ['\uD83D\uDEA4', ['speedboat']],
  '1f6a5': ['\uD83D\uDEA5', ['traffic_light']],
  '1f6a6': ['\uD83D\uDEA6', ['vertical_traffic_light']],
  '1f6a7': ['\uD83D\uDEA7', ['construction']],
  '1f6a8': ['\uD83D\uDEA8', ['rotating_light']],
  '1f6a9': ['\uD83D\uDEA9', ['triangular_flag_on_post']],
  '1f6aa': ['\uD83D\uDEAA', ['door']],
  '1f6ab': ['\uD83D\uDEAB', ['no_entry_sign']],
  '1f6ac': ['\uD83D\uDEAC', ['smoking']],
  '1f6ad': ['\uD83D\uDEAD', ['no_smoking']],
  '1f6ae': ['\uD83D\uDEAE', ['put_litter_in_its_place']],
  '1f6af': ['\uD83D\uDEAF', ['do_not_litter']],
  '1f6b0': ['\uD83D\uDEB0', ['potable_water']],
  '1f6b1': ['\uD83D\uDEB1', ['non-potable_water']],
  '1f6b2': ['\uD83D\uDEB2', ['bike']],
  '1f6b3': ['\uD83D\uDEB3', ['no_bicycles']],
  '1f6b4': ['\uD83D\uDEB4', ['bicyclist']],
  '1f6b5': ['\uD83D\uDEB5', ['mountain_bicyclist']],
  '1f6b6': ['\uD83D\uDEB6', ['walking']],
  '1f6b7': ['\uD83D\uDEB7', ['no_pedestrians']],
  '1f6b8': ['\uD83D\uDEB8', ['children_crossing']],
  '1f6b9': ['\uD83D\uDEB9', ['mens']],
  '1f6ba': ['\uD83D\uDEBA', ['womens']],
  '1f6bb': ['\uD83D\uDEBB', ['restroom']],
  '1f6bc': ['\uD83D\uDEBC', ['baby_symbol']],
  '1f6bd': ['\uD83D\uDEBD', ['toilet']],
  '1f6be': ['\uD83D\uDEBE', ['wc']],
  '1f6bf': ['\uD83D\uDEBF', ['shower']],
  '1f6c0': ['\uD83D\uDEC0', ['bath']],
  '1f6c1': ['\uD83D\uDEC1', ['bathtub']],
  '1f6c2': ['\uD83D\uDEC2', ['passport_control']],
  '1f6c3': ['\uD83D\uDEC3', ['customs']],
  '1f6c4': ['\uD83D\uDEC4', ['baggage_claim']],
  '1f6c5': ['\uD83D\uDEC5', ['left_luggage']],
  '0023': ['\u0023\u20E3', ['hash']],
  '0030': ['\u0030\u20E3', ['zero']],
  '0031': ['\u0031\u20E3', ['one']],
  '0032': ['\u0032\u20E3', ['two']],
  '0033': ['\u0033\u20E3', ['three']],
  '0034': ['\u0034\u20E3', ['four']],
  '0035': ['\u0035\u20E3', ['five']],
  '0036': ['\u0036\u20E3', ['six']],
  '0037': ['\u0037\u20E3', ['seven']],
  '0038': ['\u0038\u20E3', ['eight']],
  '0039': ['\u0039\u20E3', ['nine']],
  '1f1e8-1f1f3': ['\uD83C\uDDE8\uD83C\uDDF3', ['cn']],
  '1f1e9-1f1ea': ['\uD83C\uDDE9\uD83C\uDDEA', ['de']],
  '1f1ea-1f1f8': ['\uD83C\uDDEA\uD83C\uDDF8', ['es']],
  '1f1eb-1f1f7': ['\uD83C\uDDEB\uD83C\uDDF7', ['fr']],
  '1f1ec-1f1e7': ['\uD83C\uDDEC\uD83C\uDDE7', ['gb', 'uk']],
  '1f1ee-1f1f9': ['\uD83C\uDDEE\uD83C\uDDF9', ['it']],
  '1f1ef-1f1f5': ['\uD83C\uDDEF\uD83C\uDDF5', ['jp']],
  '1f1f0-1f1f7': ['\uD83C\uDDF0\uD83C\uDDF7', ['kr']],
  '1f1f7-1f1fa': ['\uD83C\uDDF7\uD83C\uDDFA', ['ru']],
  '1f1fa-1f1f8': ['\uD83C\uDDFA\uD83C\uDDF8', ['us']]
}

Config.EmojiCategories = [
    ['1f604', '1f603', '1f600', '1f60a', '263a', '1f609', '1f60d', '1f618', '1f61a', '1f617', '1f619', '1f61c', '1f61d', '1f61b', '1f633', '1f601', '1f614', '1f60c', '1f612', '1f61e', '1f623', '1f622', '1f602', '1f62d', '1f62a', '1f625', '1f630', '1f605', '1f613', '1f629', '1f62b', '1f628', '1f631', '1f620', '1f621', '1f624', '1f616', '1f606', '1f60b', '1f637', '1f60e', '1f634', '1f635', '1f632', '1f61f', '1f626', '1f627', '1f608', '1f47f', '1f62e', '1f62c', '1f610', '1f615', '1f62f', '1f636', '1f607', '1f60f', '1f611', '1f472', '1f473', '1f46e', '1f477', '1f482', '1f476', '1f466', '1f467', '1f468', '1f469', '1f474', '1f475', '1f471', '1f47c', '1f478', '1f63a', '1f638', '1f63b', '1f63d', '1f63c', '1f640', '1f63f', '1f639', '1f63e', '1f479', '1f47a', '1f648', '1f649', '1f64a', '1f480', '1f47d', '1f4a9', '1f525', '2728', '1f31f', '1f4ab', '1f4a5', '1f4a2', '1f4a6', '1f4a7', '1f4a4', '1f4a8', '1f442', '1f440', '1f443', '1f445', '1f444', '1f44d', '1f44e', '1f44c', '1f44a', '270a', '270c', '1f44b', '270b', '1f450', '1f446', '1f447', '1f449', '1f448', '1f64c', '1f64f', '261d', '1f44f', '1f4aa', '1f6b6', '1f3c3', '1f483', '1f46b', '1f46a', '1f46c', '1f46d', '1f48f', '1f491', '1f46f', '1f646', '1f645', '1f481', '1f64b', '1f486', '1f487', '1f485', '1f470', '1f64e', '1f64d', '1f647', '1f3a9', '1f451', '1f452', '1f45f', '1f45e', '1f461', '1f460', '1f462', '1f455', '1f454', '1f45a', '1f457', '1f3bd', '1f456', '1f458', '1f459', '1f4bc', '1f45c', '1f45d', '1f45b', '1f453', '1f380', '1f302', '1f484', '1f49b', '1f499', '1f49c', '1f49a', '2764', '1f494', '1f497', '1f493', '1f495', '1f496', '1f49e', '1f498', '1f48c', '1f48b', '1f48d', '1f48e', '1f464', '1f465', '1f4ac', '1f463', '1f4ad'],
    ['1f436', '1f43a', '1f431', '1f42d', '1f439', '1f430', '1f438', '1f42f', '1f428', '1f43b', '1f437', '1f43d', '1f42e', '1f417', '1f435', '1f412', '1f434', '1f411', '1f418', '1f43c', '1f427', '1f426', '1f424', '1f425', '1f423', '1f414', '1f40d', '1f422', '1f41b', '1f41d', '1f41c', '1f41e', '1f40c', '1f419', '1f41a', '1f420', '1f41f', '1f42c', '1f433', '1f40b', '1f404', '1f40f', '1f400', '1f403', '1f405', '1f407', '1f409', '1f40e', '1f410', '1f413', '1f415', '1f416', '1f401', '1f402', '1f432', '1f421', '1f40a', '1f42b', '1f42a', '1f406', '1f408', '1f429', '1f43e', '1f490', '1f338', '1f337', '1f340', '1f339', '1f33b', '1f33a', '1f341', '1f343', '1f342', '1f33f', '1f33e', '1f344', '1f335', '1f334', '1f332', '1f333', '1f330', '1f331', '1f33c', '1f310', '1f31e', '1f31d', '1f31a', '1f311', '1f312', '1f313', '1f314', '1f315', '1f316', '1f317', '1f318', '1f31c', '1f31b', '1f319', '1f30d', '1f30e', '1f30f', '1f30b', '1f30c', '1f320', '2b50', '2600', '26c5', '2601', '26a1', '2614', '2744', '26c4', '1f300', '1f301', '1f308', '1f30a'],
    ['1f38d', '1f49d', '1f38e', '1f392', '1f393', '1f38f', '1f386', '1f387', '1f390', '1f391', '1f383', '1f47b', '1f385', '1f384', '1f381', '1f38b', '1f389', '1f38a', '1f388', '1f38c', '1f52e', '1f3a5', '1f4f7', '1f4f9', '1f4fc', '1f4bf', '1f4c0', '1f4bd', '1f4be', '1f4bb', '1f4f1', '260e', '1f4de', '1f4df', '1f4e0', '1f4e1', '1f4fa', '1f4fb', '1f50a', '1f509', '1f508', '1f507', '1f514', '1f515', '1f4e3', '1f4e2', '23f3', '231b', '23f0', '231a', '1f513', '1f512', '1f50f', '1f510', '1f511', '1f50e', '1f4a1', '1f526', '1f506', '1f505', '1f50c', '1f50b', '1f50d', '1f6c0', '1f6c1', '1f6bf', '1f6bd', '1f527', '1f529', '1f528', '1f6aa', '1f6ac', '1f4a3', '1f52b', '1f52a', '1f48a', '1f489', '1f4b0', '1f4b4', '1f4b5', '1f4b7', '1f4b6', '1f4b3', '1f4b8', '1f4f2', '1f4e7', '1f4e5', '1f4e4', '2709', '1f4e9', '1f4e8', '1f4ef', '1f4eb', '1f4ea', '1f4ec', '1f4ed', '1f4ee', '1f4e6', '1f4dd', '1f4c4', '1f4c3', '1f4d1', '1f4ca', '1f4c8', '1f4c9', '1f4dc', '1f4cb', '1f4c5', '1f4c6', '1f4c7', '1f4c1', '1f4c2', '2702', '1f4cc', '1f4ce', '2712', '270f', '1f4cf', '1f4d0', '1f4d5', '1f4d7', '1f4d8', '1f4d9', '1f4d3', '1f4d4', '1f4d2', '1f4da', '1f4d6', '1f516', '1f4db', '1f52c', '1f52d', '1f4f0', '1f3a8', '1f3ac', '1f3a4', '1f3a7', '1f3bc', '1f3b5', '1f3b6', '1f3b9', '1f3bb', '1f3ba', '1f3b7', '1f3b8', '1f47e', '1f3ae', '1f0cf', '1f3b4', '1f004', '1f3b2', '1f3af', '1f3c8', '1f3c0', '26bd', '26be', '1f3be', '1f3b1', '1f3c9', '1f3b3', '26f3', '1f6b5', '1f6b4', '1f3c1', '1f3c7', '1f3c6', '1f3bf', '1f3c2', '1f3ca', '1f3c4', '1f3a3', '2615', '1f375', '1f376', '1f37c', '1f37a', '1f37b', '1f378', '1f379', '1f377', '1f374', '1f355', '1f354', '1f35f', '1f357', '1f356', '1f35d', '1f35b', '1f364', '1f371', '1f363', '1f365', '1f359', '1f358', '1f35a', '1f35c', '1f372', '1f362', '1f361', '1f373', '1f35e', '1f369', '1f36e', '1f366', '1f368', '1f367', '1f382', '1f370', '1f36a', '1f36b', '1f36c', '1f36d', '1f36f', '1f34e', '1f34f', '1f34a', '1f34b', '1f352', '1f347', '1f349', '1f353', '1f351', '1f348', '1f34c', '1f350', '1f34d', '1f360', '1f346', '1f345', '1f33d'],
    ['1f3e0', '1f3e1', '1f3eb', '1f3e2', '1f3e3', '1f3e5', '1f3e6', '1f3ea', '1f3e9', '1f3e8', '1f492', '26ea', '1f3ec', '1f3e4', '1f307', '1f306', '1f3ef', '1f3f0', '26fa', '1f3ed', '1f5fc', '1f5fe', '1f5fb', '1f304', '1f305', '1f303', '1f5fd', '1f309', '1f3a0', '1f3a1', '26f2', '1f3a2', '1f6a2', '26f5', '1f6a4', '1f6a3', '2693', '1f680', '2708', '1f4ba', '1f681', '1f682', '1f68a', '1f689', '1f69e', '1f686', '1f684', '1f685', '1f688', '1f687', '1f69d', '1f683', '1f68b', '1f68e', '1f68c', '1f68d', '1f699', '1f698', '1f697', '1f695', '1f696', '1f69b', '1f69a', '1f6a8', '1f693', '1f694', '1f692', '1f691', '1f690', '1f6b2', '1f6a1', '1f69f', '1f6a0', '1f69c', '1f488', '1f68f', '1f3ab', '1f6a6', '1f6a5', '26a0', '1f6a7', '1f530', '26fd', '1f3ee', '1f3b0', '2668', '1f5ff', '1f3aa', '1f3ad', '1f4cd', '1f6a9', '1f1ef-1f1f5', '1f1f0-1f1f7', '1f1e9-1f1ea', '1f1e8-1f1f3', '1f1fa-1f1f8', '1f1eb-1f1f7', '1f1ea-1f1f8', '1f1ee-1f1f9', '1f1f7-1f1fa', '1f1ec-1f1e7'],
    ['0031', '0032', '0033', '0034', '0035', '0036', '0037', '0038', '0039', '0030', '1f51f', '1f522', '0023', '1f523', '2b06', '2b07', '2b05', '27a1', '1f520', '1f521', '1f524', '2197', '2196', '2198', '2199', '2194', '2195', '1f504', '25c0', '25b6', '1f53c', '1f53d', '21a9', '21aa', '2139', '23ea', '23e9', '23eb', '23ec', '2935', '2934', '1f197', '1f500', '1f501', '1f502', '1f195', '1f199', '1f192', '1f193', '1f196', '1f4f6', '1f3a6', '1f201', '1f22f', '1f233', '1f235', '1f234', '1f232', '1f250', '1f239', '1f23a', '1f236', '1f21a', '1f6bb', '1f6b9', '1f6ba', '1f6bc', '1f6be', '1f6b0', '1f6ae', '1f17f', '267f', '1f6ad', '1f237', '1f238', '1f202', '24c2', '1f6c2', '1f6c4', '1f6c5', '1f6c3', '1f251', '3299', '3297', '1f191', '1f198', '1f194', '1f6ab', '1f51e', '1f4f5', '1f6af', '1f6b1', '1f6b3', '1f6b7', '1f6b8', '26d4', '2733', '2747', '274e', '2705', '2734', '1f49f', '1f19a', '1f4f3', '1f4f4', '1f170', '1f171', '1f18e', '1f17e', '1f4a0', '27bf', '267b', '2648', '2649', '264a', '264b', '264c', '264d', '264e', '264f', '2650', '2651', '2652', '2653', '26ce', '1f52f', '1f3e7', '1f4b9', '1f4b2', '1f4b1', '00a9', '00ae', '2122', '274c', '203c', '2049', '2757', '2753', '2755', '2754', '2b55', '1f51d', '1f51a', '1f519', '1f51b', '1f51c', '1f503', '1f55b', '1f567', '1f550', '1f55c', '1f551', '1f55d', '1f552', '1f55e', '1f553', '1f55f', '1f554', '1f560', '1f555', '1f556', '1f557', '1f558', '1f559', '1f55a', '1f561', '1f562', '1f563', '1f564', '1f565', '1f566', '2716', '2795', '2796', '2797', '2660', '2665', '2663', '2666', '1f4ae', '1f4af', '2714', '2611', '1f518', '1f517', '27b0', '3030', '303d', '1f531', '25fc', '25fb', '25fe', '25fd', '25aa', '25ab', '1f53a', '1f532', '1f533', '26ab', '26aa', '1f534', '1f535', '1f53b', '2b1c', '2b1b', '1f536', '1f537', '1f538', '1f539']
]

Config.EmojiCategorySpritesheetDimens = [
    [7, 27],
    [4, 29],
    [7, 33],
    [3, 34],
    [7, 34]
]

Config.emoji_data = {
  '00a9': [
        ['\u00A9'], '\uE24E', '\uDBBA\uDF29', ['copyright'], 0, 0
  ],
  '00ae': [
        ['\u00AE'], '\uE24F', '\uDBBA\uDF2D', ['registered'], 0, 1
  ],
  '203c': [
        ['\u203C\uFE0F', '\u203C'], '', '\uDBBA\uDF06', ['bangbang'], 0, 2
  ],
  '2049': [
        ['\u2049\uFE0F', '\u2049'], '', '\uDBBA\uDF05', ['interrobang'], 0, 3
  ],
  '2122': [
        ['\u2122'], '\uE537', '\uDBBA\uDF2A', ['tm'], 0, 4
  ],
  '2139': [
        ['\u2139\uFE0F', '\u2139'], '', '\uDBBA\uDF47', ['information_source'], 0, 5
  ],
  '2194': [
        ['\u2194\uFE0F', '\u2194'], '', '\uDBBA\uDEF6', ['left_right_arrow'], 0, 6
  ],
  '2195': [
        ['\u2195\uFE0F', '\u2195'], '', '\uDBBA\uDEF7', ['arrow_up_down'], 0, 7
  ],
  '2196': [
        ['\u2196\uFE0F', '\u2196'], '\uE237', '\uDBBA\uDEF2', ['arrow_upper_left'], 0, 8
  ],
  '2197': [
        ['\u2197\uFE0F', '\u2197'], '\uE236', '\uDBBA\uDEF0', ['arrow_upper_right'], 0, 9
  ],
  '2198': [
        ['\u2198\uFE0F', '\u2198'], '\uE238', '\uDBBA\uDEF1', ['arrow_lower_right'], 0, 10
  ],
  '2199': [
        ['\u2199\uFE0F', '\u2199'], '\uE239', '\uDBBA\uDEF3', ['arrow_lower_left'], 0, 11
  ],
  '21a9': [
        ['\u21A9\uFE0F', '\u21A9'], '', '\uDBBA\uDF83', ['leftwards_arrow_with_hook'], 0, 12
  ],
  '21aa': [
        ['\u21AA\uFE0F', '\u21AA'], '', '\uDBBA\uDF88', ['arrow_right_hook'], 0, 13
  ],
  '231a': [
        ['\u231A\uFE0F', '\u231A'], '', '\uDBB8\uDC1D', ['watch'], 0, 14
  ],
  '231b': [
        ['\u231B\uFE0F', '\u231B'], '', '\uDBB8\uDC1C', ['hourglass'], 0, 15
  ],
  '23e9': [
        ['\u23E9'], '\uE23C', '\uDBBA\uDEFE', ['fast_forward'], 0, 16
  ],
  '23ea': [
        ['\u23EA'], '\uE23D', '\uDBBA\uDEFF', ['rewind'], 0, 17
  ],
  '23eb': [
        ['\u23EB'], '', '\uDBBA\uDF03', ['arrow_double_up'], 0, 18
  ],
  '23ec': [
        ['\u23EC'], '', '\uDBBA\uDF02', ['arrow_double_down'], 0, 19
  ],
  '23f0': [
        ['\u23F0'], '\uE02D', '\uDBB8\uDC2A', ['alarm_clock'], 0, 20
  ],
  '23f3': [
        ['\u23F3'], '', '\uDBB8\uDC1B', ['hourglass_flowing_sand'], 0, 21
  ],
  '24c2': [
        ['\u24C2\uFE0F', '\u24C2'], '\uE434', '\uDBB9\uDFE1', ['m'], 0, 22
  ],
  '25aa': [
        ['\u25AA\uFE0F', '\u25AA'], '\uE21A', '\uDBBA\uDF6E', ['black_small_square'], 0, 23
  ],
  '25ab': [
        ['\u25AB\uFE0F', '\u25AB'], '\uE21B', '\uDBBA\uDF6D', ['white_small_square'], 0, 24
  ],
  '25b6': [
        ['\u25B6\uFE0F', '\u25B6'], '\uE23A', '\uDBBA\uDEFC', ['arrow_forward'], 0, 25
  ],
  '25c0': [
        ['\u25C0\uFE0F', '\u25C0'], '\uE23B', '\uDBBA\uDEFD', ['arrow_backward'], 0, 26
  ],
  '25fb': [
        ['\u25FB\uFE0F', '\u25FB'], '\uE21B', '\uDBBA\uDF71', ['white_medium_square'], 0, 27
  ],
  '25fc': [
        ['\u25FC\uFE0F', '\u25FC'], '\uE21A', '\uDBBA\uDF72', ['black_medium_square'], 0, 28
  ],
  '25fd': [
        ['\u25FD\uFE0F', '\u25FD'], '\uE21B', '\uDBBA\uDF6F', ['white_medium_small_square'], 0, 29
  ],
  '25fe': [
        ['\u25FE\uFE0F', '\u25FE'], '\uE21A', '\uDBBA\uDF70', ['black_medium_small_square'], 1, 0
  ],
  '2600': [
        ['\u2600\uFE0F', '\u2600'], '\uE04A', '\uDBB8\uDC00', ['sunny'], 1, 1
  ],
  '2601': [
        ['\u2601\uFE0F', '\u2601'], '\uE049', '\uDBB8\uDC01', ['cloud'], 1, 2
  ],
  '260e': [
        ['\u260E\uFE0F', '\u260E'], '\uE009', '\uDBB9\uDD23', ['phone', 'telephone'], 1, 3
  ],
  '2611': [
        ['\u2611\uFE0F', '\u2611'], '', '\uDBBA\uDF8B', ['ballot_box_with_check'], 1, 4
  ],
  '2614': [
        ['\u2614\uFE0F', '\u2614'], '\uE04B', '\uDBB8\uDC02', ['umbrella'], 1, 5
  ],
  '2615': [
        ['\u2615\uFE0F', '\u2615'], '\uE045', '\uDBBA\uDD81', ['coffee'], 1, 6
  ],
  '261d': [
        ['\u261D\uFE0F', '\u261D'], '\uE00F', '\uDBBA\uDF98', ['point_up'], 1, 7
  ],
  '263a': [
        ['\u263A\uFE0F', '\u263A'], '\uE414', '\uDBB8\uDF36', ['relaxed'], 1, 8
  ],
  '2648': [
        ['\u2648\uFE0F', '\u2648'], '\uE23F', '\uDBB8\uDC2B', ['aries'], 1, 9
  ],
  '2649': [
        ['\u2649\uFE0F', '\u2649'], '\uE240', '\uDBB8\uDC2C', ['taurus'], 1, 10
  ],
  '264a': [
        ['\u264A\uFE0F', '\u264A'], '\uE241', '\uDBB8\uDC2D', ['gemini'], 1, 11
  ],
  '264b': [
        ['\u264B\uFE0F', '\u264B'], '\uE242', '\uDBB8\uDC2E', ['cancer'], 1, 12
  ],
  '264c': [
        ['\u264C\uFE0F', '\u264C'], '\uE243', '\uDBB8\uDC2F', ['leo'], 1, 13
  ],
  '264d': [
        ['\u264D\uFE0F', '\u264D'], '\uE244', '\uDBB8\uDC30', ['virgo'], 1, 14
  ],
  '264e': [
        ['\u264E\uFE0F', '\u264E'], '\uE245', '\uDBB8\uDC31', ['libra'], 1, 15
  ],
  '264f': [
        ['\u264F\uFE0F', '\u264F'], '\uE246', '\uDBB8\uDC32', ['scorpius'], 1, 16
  ],
  '2650': [
        ['\u2650\uFE0F', '\u2650'], '\uE247', '\uDBB8\uDC33', ['sagittarius'], 1, 17
  ],
  '2651': [
        ['\u2651\uFE0F', '\u2651'], '\uE248', '\uDBB8\uDC34', ['capricorn'], 1, 18
  ],
  '2652': [
        ['\u2652\uFE0F', '\u2652'], '\uE249', '\uDBB8\uDC35', ['aquarius'], 1, 19
  ],
  '2653': [
        ['\u2653\uFE0F', '\u2653'], '\uE24A', '\uDBB8\uDC36', ['pisces'], 1, 20
  ],
  '2660': [
        ['\u2660\uFE0F', '\u2660'], '\uE20E', '\uDBBA\uDF1B', ['spades'], 1, 21
  ],
  '2663': [
        ['\u2663\uFE0F', '\u2663'], '\uE20F', '\uDBBA\uDF1D', ['clubs'], 1, 22
  ],
  '2665': [
        ['\u2665\uFE0F', '\u2665'], '\uE20C', '\uDBBA\uDF1A', ['hearts'], 1, 23
  ],
  '2666': [
        ['\u2666\uFE0F', '\u2666'], '\uE20D', '\uDBBA\uDF1C', ['diamonds'], 1, 24
  ],
  '2668': [
        ['\u2668\uFE0F', '\u2668'], '\uE123', '\uDBB9\uDFFA', ['hotsprings'], 1, 25
  ],
  '267b': [
        ['\u267B\uFE0F', '\u267B'], '', '\uDBBA\uDF2C', ['recycle'], 1, 26
  ],
  '267f': [
        ['\u267F\uFE0F', '\u267F'], '\uE20A', '\uDBBA\uDF20', ['wheelchair'], 1, 27
  ],
  '2693': [
        ['\u2693\uFE0F', '\u2693'], '\uE202', '\uDBB9\uDCC1', ['anchor'], 1, 28
  ],
  '26a0': [
        ['\u26A0\uFE0F', '\u26A0'], '\uE252', '\uDBBA\uDF23', ['warning'], 1, 29
  ],
  '26a1': [
        ['\u26A1\uFE0F', '\u26A1'], '\uE13D', '\uDBB8\uDC04', ['zap'], 2, 0
  ],
  '26aa': [
        ['\u26AA\uFE0F', '\u26AA'], '\uE219', '\uDBBA\uDF65', ['white_circle'], 2, 1
  ],
  '26ab': [
        ['\u26AB\uFE0F', '\u26AB'], '\uE219', '\uDBBA\uDF66', ['black_circle'], 2, 2
  ],
  '26bd': [
        ['\u26BD\uFE0F', '\u26BD'], '\uE018', '\uDBB9\uDFD4', ['soccer'], 2, 3
  ],
  '26be': [
        ['\u26BE\uFE0F', '\u26BE'], '\uE016', '\uDBB9\uDFD1', ['baseball'], 2, 4
  ],
  '26c4': [
        ['\u26C4\uFE0F', '\u26C4'], '\uE048', '\uDBB8\uDC03', ['snowman'], 2, 5
  ],
  '26c5': [
        ['\u26C5\uFE0F', '\u26C5'], '\uE04A\uE049', '\uDBB8\uDC0F', ['partly_sunny'], 2, 6
  ],
  '26ce': [
        ['\u26CE'], '\uE24B', '\uDBB8\uDC37', ['ophiuchus'], 2, 7
  ],
  '26d4': [
        ['\u26D4\uFE0F', '\u26D4'], '\uE137', '\uDBBA\uDF26', ['no_entry'], 2, 8
  ],
  '26ea': [
        ['\u26EA\uFE0F', '\u26EA'], '\uE037', '\uDBB9\uDCBB', ['church'], 2, 9
  ],
  '26f2': [
        ['\u26F2\uFE0F', '\u26F2'], '\uE121', '\uDBB9\uDCBC', ['fountain'], 2, 10
  ],
  '26f3': [
        ['\u26F3\uFE0F', '\u26F3'], '\uE014', '\uDBB9\uDFD2', ['golf'], 2, 11
  ],
  '26f5': [
        ['\u26F5\uFE0F', '\u26F5'], '\uE01C', '\uDBB9\uDFEA', ['boat', 'sailboat'], 2, 12
  ],
  '26fa': [
        ['\u26FA\uFE0F', '\u26FA'], '\uE122', '\uDBB9\uDFFB', ['tent'], 2, 13
  ],
  '26fd': [
        ['\u26FD\uFE0F', '\u26FD'], '\uE03A', '\uDBB9\uDFF5', ['fuelpump'], 2, 14
  ],
  '2702': [
        ['\u2702\uFE0F', '\u2702'], '\uE313', '\uDBB9\uDD3E', ['scissors'], 2, 15
  ],
  '2705': [
        ['\u2705'], '', '\uDBBA\uDF4A', ['white_check_mark'], 2, 16
  ],
  '2708': [
        ['\u2708\uFE0F', '\u2708'], '\uE01D', '\uDBB9\uDFE9', ['airplane'], 2, 17
  ],
  '2709': [
        ['\u2709\uFE0F', '\u2709'], '\uE103', '\uDBB9\uDD29', ['email', 'envelope'], 2, 18
  ],
  '270a': [
        ['\u270A'], '\uE010', '\uDBBA\uDF93', ['fist'], 2, 19
  ],
  '270b': [
        ['\u270B'], '\uE012', '\uDBBA\uDF95', ['hand', 'raised_hand'], 2, 20
  ],
  '270c': [
        ['\u270C\uFE0F', '\u270C'], '\uE011', '\uDBBA\uDF94', ['v'], 2, 21
  ],
  '270f': [
        ['\u270F\uFE0F', '\u270F'], '\uE301', '\uDBB9\uDD39', ['pencil2'], 2, 22
  ],
  '2712': [
        ['\u2712\uFE0F', '\u2712'], '', '\uDBB9\uDD36', ['black_nib'], 2, 23
  ],
  '2714': [
        ['\u2714\uFE0F', '\u2714'], '', '\uDBBA\uDF49', ['heavy_check_mark'], 2, 24
  ],
  '2716': [
        ['\u2716\uFE0F', '\u2716'], '\uE333', '\uDBBA\uDF53', ['heavy_multiplication_x'], 2, 25
  ],
  '2728': [
        ['\u2728'], '\uE32E', '\uDBBA\uDF60', ['sparkles'], 2, 26
  ],
  '2733': [
        ['\u2733\uFE0F', '\u2733'], '\uE206', '\uDBBA\uDF62', ['eight_spoked_asterisk'], 2, 27
  ],
  '2734': [
        ['\u2734\uFE0F', '\u2734'], '\uE205', '\uDBBA\uDF61', ['eight_pointed_black_star'], 2, 28
  ],
  '2744': [
        ['\u2744\uFE0F', '\u2744'], '', '\uDBB8\uDC0E', ['snowflake'], 2, 29
  ],
  '2747': [
        ['\u2747\uFE0F', '\u2747'], '\uE32E', '\uDBBA\uDF77', ['sparkle'], 3, 0
  ],
  '274c': [
        ['\u274C'], '\uE333', '\uDBBA\uDF45', ['x'], 3, 1
  ],
  '274e': [
        ['\u274E'], '\uE333', '\uDBBA\uDF46', ['negative_squared_cross_mark'], 3, 2
  ],
  '2753': [
        ['\u2753'], '\uE020', '\uDBBA\uDF09', ['question'], 3, 3
  ],
  '2754': [
        ['\u2754'], '\uE336', '\uDBBA\uDF0A', ['grey_question'], 3, 4
  ],
  '2755': [
        ['\u2755'], '\uE337', '\uDBBA\uDF0B', ['grey_exclamation'], 3, 5
  ],
  '2757': [
        ['\u2757\uFE0F', '\u2757'], '\uE021', '\uDBBA\uDF04', ['exclamation', 'heavy_exclamation_mark'], 3, 6
  ],
  '2764': [
        ['\u2764\uFE0F', '\u2764'], '\uE022', '\uDBBA\uDF0C', ['heart'], 3, 7, '<3'
  ],
  '2795': [
        ['\u2795'], '', '\uDBBA\uDF51', ['heavy_plus_sign'], 3, 8
  ],
  '2796': [
        ['\u2796'], '', '\uDBBA\uDF52', ['heavy_minus_sign'], 3, 9
  ],
  '2797': [
        ['\u2797'], '', '\uDBBA\uDF54', ['heavy_division_sign'], 3, 10
  ],
  '27a1': [
        ['\u27A1\uFE0F', '\u27A1'], '\uE234', '\uDBBA\uDEFA', ['arrow_right'], 3, 11
  ],
  '27b0': [
        ['\u27B0'], '', '\uDBBA\uDF08', ['curly_loop'], 3, 12
  ],
  '27bf': [
        ['\u27BF'], '\uE211', '\uDBBA\uDC2B', ['loop'], 3, 13
  ],
  '2934': [
        ['\u2934\uFE0F', '\u2934'], '\uE236', '\uDBBA\uDEF4', ['arrow_heading_up'], 3, 14
  ],
  '2935': [
        ['\u2935\uFE0F', '\u2935'], '\uE238', '\uDBBA\uDEF5', ['arrow_heading_down'], 3, 15
  ],
  '2b05': [
        ['\u2B05\uFE0F', '\u2B05'], '\uE235', '\uDBBA\uDEFB', ['arrow_left'], 3, 16
  ],
  '2b06': [
        ['\u2B06\uFE0F', '\u2B06'], '\uE232', '\uDBBA\uDEF8', ['arrow_up'], 3, 17
  ],
  '2b07': [
        ['\u2B07\uFE0F', '\u2B07'], '\uE233', '\uDBBA\uDEF9', ['arrow_down'], 3, 18
  ],
  '2b1b': [
        ['\u2B1B\uFE0F', '\u2B1B'], '\uE21A', '\uDBBA\uDF6C', ['black_large_square'], 3, 19
  ],
  '2b1c': [
        ['\u2B1C\uFE0F', '\u2B1C'], '\uE21B', '\uDBBA\uDF6B', ['white_large_square'], 3, 20
  ],
  '2b50': [
        ['\u2B50\uFE0F', '\u2B50'], '\uE32F', '\uDBBA\uDF68', ['star'], 3, 21
  ],
  '2b55': [
        ['\u2B55\uFE0F', '\u2B55'], '\uE332', '\uDBBA\uDF44', ['o'], 3, 22
  ],
  '3030': [
        ['\u3030'], '', '\uDBBA\uDF07', ['wavy_dash'], 3, 23
  ],
  '303d': [
        ['\u303D\uFE0F', '\u303D'], '\uE12C', '\uDBBA\uDC1B', ['part_alternation_mark'], 3, 24
  ],
  '3297': [
        ['\u3297\uFE0F', '\u3297'], '\uE30D', '\uDBBA\uDF43', ['congratulations'], 3, 25
  ],
  '3299': [
        ['\u3299\uFE0F', '\u3299'], '\uE315', '\uDBBA\uDF2B', ['secret'], 3, 26
  ],
  '1f004': [
        ['\uD83C\uDC04\uFE0F', '\uD83C\uDC04'], '\uE12D', '\uDBBA\uDC0B', ['mahjong'], 3, 27
  ],
  '1f0cf': [
        ['\uD83C\uDCCF'], '', '\uDBBA\uDC12', ['black_joker'], 3, 28
  ],
  '1f170': [
        ['\uD83C\uDD70'], '\uE532', '\uDBB9\uDD0B', ['a'], 3, 29
  ],
  '1f171': [
        ['\uD83C\uDD71'], '\uE533', '\uDBB9\uDD0C', ['b'], 4, 0
  ],
  '1f17e': [
        ['\uD83C\uDD7E'], '\uE535', '\uDBB9\uDD0E', ['o2'], 4, 1
  ],
  '1f17f': [
        ['\uD83C\uDD7F\uFE0F', '\uD83C\uDD7F'], '\uE14F', '\uDBB9\uDFF6', ['parking'], 4, 2
  ],
  '1f18e': [
        ['\uD83C\uDD8E'], '\uE534', '\uDBB9\uDD0D', ['ab'], 4, 3
  ],
  '1f191': [
        ['\uD83C\uDD91'], '', '\uDBBA\uDF84', ['cl'], 4, 4
  ],
  '1f192': [
        ['\uD83C\uDD92'], '\uE214', '\uDBBA\uDF38', ['cool'], 4, 5
  ],
  '1f193': [
        ['\uD83C\uDD93'], '', '\uDBBA\uDF21', ['free'], 4, 6
  ],
  '1f194': [
        ['\uD83C\uDD94'], '\uE229', '\uDBBA\uDF81', ['id'], 4, 7
  ],
  '1f195': [
        ['\uD83C\uDD95'], '\uE212', '\uDBBA\uDF36', ['new'], 4, 8
  ],
  '1f196': [
        ['\uD83C\uDD96'], '', '\uDBBA\uDF28', ['ng'], 4, 9
  ],
  '1f197': [
        ['\uD83C\uDD97'], '\uE24D', '\uDBBA\uDF27', ['ok'], 4, 10
  ],
  '1f198': [
        ['\uD83C\uDD98'], '', '\uDBBA\uDF4F', ['sos'], 4, 11
  ],
  '1f199': [
        ['\uD83C\uDD99'], '\uE213', '\uDBBA\uDF37', ['up'], 4, 12
  ],
  '1f19a': [
        ['\uD83C\uDD9A'], '\uE12E', '\uDBBA\uDF32', ['vs'], 4, 13
  ],
  '1f201': [
        ['\uD83C\uDE01'], '\uE203', '\uDBBA\uDF24', ['koko'], 4, 14
  ],
  '1f202': [
        ['\uD83C\uDE02'], '\uE228', '\uDBBA\uDF3F', ['sa'], 4, 15
  ],
  '1f21a': [
        ['\uD83C\uDE1A\uFE0F', '\uD83C\uDE1A'], '\uE216', '\uDBBA\uDF3A', ['u7121'], 4, 16
  ],
  '1f22f': [
        ['\uD83C\uDE2F\uFE0F', '\uD83C\uDE2F'], '\uE22C', '\uDBBA\uDF40', ['u6307'], 4, 17
  ],
  '1f232': [
        ['\uD83C\uDE32'], '', '\uDBBA\uDF2E', ['u7981'], 4, 18
  ],
  '1f233': [
        ['\uD83C\uDE33'], '\uE22B', '\uDBBA\uDF2F', ['u7a7a'], 4, 19
  ],
  '1f234': [
        ['\uD83C\uDE34'], '', '\uDBBA\uDF30', ['u5408'], 4, 20
  ],
  '1f235': [
        ['\uD83C\uDE35'], '\uE22A', '\uDBBA\uDF31', ['u6e80'], 4, 21
  ],
  '1f236': [
        ['\uD83C\uDE36'], '\uE215', '\uDBBA\uDF39', ['u6709'], 4, 22
  ],
  '1f237': [
        ['\uD83C\uDE37'], '\uE217', '\uDBBA\uDF3B', ['u6708'], 4, 23
  ],
  '1f238': [
        ['\uD83C\uDE38'], '\uE218', '\uDBBA\uDF3C', ['u7533'], 4, 24
  ],
  '1f239': [
        ['\uD83C\uDE39'], '\uE227', '\uDBBA\uDF3E', ['u5272'], 4, 25
  ],
  '1f23a': [
        ['\uD83C\uDE3A'], '\uE22D', '\uDBBA\uDF41', ['u55b6'], 4, 26
  ],
  '1f250': [
        ['\uD83C\uDE50'], '\uE226', '\uDBBA\uDF3D', ['ideograph_advantage'], 4, 27
  ],
  '1f251': [
        ['\uD83C\uDE51'], '', '\uDBBA\uDF50', ['accept'], 4, 28
  ],
  '1f300': [
        ['\uD83C\uDF00'], '\uE443', '\uDBB8\uDC05', ['cyclone'], 4, 29
  ],
  '1f301': [
        ['\uD83C\uDF01'], '', '\uDBB8\uDC06', ['foggy'], 5, 0
  ],
  '1f302': [
        ['\uD83C\uDF02'], '\uE43C', '\uDBB8\uDC07', ['closed_umbrella'], 5, 1
  ],
  '1f303': [
        ['\uD83C\uDF03'], '\uE44B', '\uDBB8\uDC08', ['night_with_stars'], 5, 2
  ],
  '1f304': [
        ['\uD83C\uDF04'], '\uE04D', '\uDBB8\uDC09', ['sunrise_over_mountains'], 5, 3
  ],
  '1f305': [
        ['\uD83C\uDF05'], '\uE449', '\uDBB8\uDC0A', ['sunrise'], 5, 4
  ],
  '1f306': [
        ['\uD83C\uDF06'], '\uE146', '\uDBB8\uDC0B', ['city_sunset'], 5, 5
  ],
  '1f307': [
        ['\uD83C\uDF07'], '\uE44A', '\uDBB8\uDC0C', ['city_sunrise'], 5, 6
  ],
  '1f308': [
        ['\uD83C\uDF08'], '\uE44C', '\uDBB8\uDC0D', ['rainbow'], 5, 7
  ],
  '1f309': [
        ['\uD83C\uDF09'], '\uE44B', '\uDBB8\uDC10', ['bridge_at_night'], 5, 8
  ],
  '1f30a': [
        ['\uD83C\uDF0A'], '\uE43E', '\uDBB8\uDC38', ['ocean'], 5, 9
  ],
  '1f30b': [
        ['\uD83C\uDF0B'], '', '\uDBB8\uDC3A', ['volcano'], 5, 10
  ],
  '1f30c': [
        ['\uD83C\uDF0C'], '\uE44B', '\uDBB8\uDC3B', ['milky_way'], 5, 11
  ],
  '1f30d': [
        ['\uD83C\uDF0D'], '', '', ['earth_africa'], 5, 12
  ],
  '1f30e': [
        ['\uD83C\uDF0E'], '', '', ['earth_americas'], 5, 13
  ],
  '1f30f': [
        ['\uD83C\uDF0F'], '', '\uDBB8\uDC39', ['earth_asia'], 5, 14
  ],
  '1f310': [
        ['\uD83C\uDF10'], '', '', ['globe_with_meridians'], 5, 15
  ],
  '1f311': [
        ['\uD83C\uDF11'], '', '\uDBB8\uDC11', ['new_moon'], 5, 16
  ],
  '1f312': [
        ['\uD83C\uDF12'], '', '', ['waxing_crescent_moon'], 5, 17
  ],
  '1f313': [
        ['\uD83C\uDF13'], '\uE04C', '\uDBB8\uDC13', ['first_quarter_moon'], 5, 18
  ],
  '1f314': [
        ['\uD83C\uDF14'], '\uE04C', '\uDBB8\uDC12', ['moon', 'waxing_gibbous_moon'], 5, 19
  ],
  '1f315': [
        ['\uD83C\uDF15'], '', '\uDBB8\uDC15', ['full_moon'], 5, 20
  ],
  '1f316': [
        ['\uD83C\uDF16'], '', '', ['waning_gibbous_moon'], 5, 21
  ],
  '1f317': [
        ['\uD83C\uDF17'], '', '', ['last_quarter_moon'], 5, 22
  ],
  '1f318': [
        ['\uD83C\uDF18'], '', '', ['waning_crescent_moon'], 5, 23
  ],
  '1f319': [
        ['\uD83C\uDF19'], '\uE04C', '\uDBB8\uDC14', ['crescent_moon'], 5, 24
  ],
  '1f31a': [
        ['\uD83C\uDF1A'], '', '', ['new_moon_with_face'], 5, 25
  ],
  '1f31b': [
        ['\uD83C\uDF1B'], '\uE04C', '\uDBB8\uDC16', ['first_quarter_moon_with_face'], 5, 26
  ],
  '1f31c': [
        ['\uD83C\uDF1C'], '', '', ['last_quarter_moon_with_face'], 5, 27
  ],
  '1f31d': [
        ['\uD83C\uDF1D'], '', '', ['full_moon_with_face'], 5, 28
  ],
  '1f31e': [
        ['\uD83C\uDF1E'], '', '', ['sun_with_face'], 5, 29
  ],
  '1f31f': [
        ['\uD83C\uDF1F'], '\uE335', '\uDBBA\uDF69', ['star2'], 6, 0
  ],
  '1f320': [
        ['\uD83C\uDF20'], '', '\uDBBA\uDF6A', ['stars'], 6, 1
  ],
  '1f330': [
        ['\uD83C\uDF30'], '', '\uDBB8\uDC4C', ['chestnut'], 6, 2
  ],
  '1f331': [
        ['\uD83C\uDF31'], '\uE110', '\uDBB8\uDC3E', ['seedling'], 6, 3
  ],
  '1f332': [
        ['\uD83C\uDF32'], '', '', ['evergreen_tree'], 6, 4
  ],
  '1f333': [
        ['\uD83C\uDF33'], '', '', ['deciduous_tree'], 6, 5
  ],
  '1f334': [
        ['\uD83C\uDF34'], '\uE307', '\uDBB8\uDC47', ['palm_tree'], 6, 6
  ],
  '1f335': [
        ['\uD83C\uDF35'], '\uE308', '\uDBB8\uDC48', ['cactus'], 6, 7
  ],
  '1f337': [
        ['\uD83C\uDF37'], '\uE304', '\uDBB8\uDC3D', ['tulip'], 6, 8
  ],
  '1f338': [
        ['\uD83C\uDF38'], '\uE030', '\uDBB8\uDC40', ['cherry_blossom'], 6, 9
  ],
  '1f339': [
        ['\uD83C\uDF39'], '\uE032', '\uDBB8\uDC41', ['rose'], 6, 10
  ],
  '1f33a': [
        ['\uD83C\uDF3A'], '\uE303', '\uDBB8\uDC45', ['hibiscus'], 6, 11
  ],
  '1f33b': [
        ['\uD83C\uDF3B'], '\uE305', '\uDBB8\uDC46', ['sunflower'], 6, 12
  ],
  '1f33c': [
        ['\uD83C\uDF3C'], '\uE305', '\uDBB8\uDC4D', ['blossom'], 6, 13
  ],
  '1f33d': [
        ['\uD83C\uDF3D'], '', '\uDBB8\uDC4A', ['corn'], 6, 14
  ],
  '1f33e': [
        ['\uD83C\uDF3E'], '\uE444', '\uDBB8\uDC49', ['ear_of_rice'], 6, 15
  ],
  '1f33f': [
        ['\uD83C\uDF3F'], '\uE110', '\uDBB8\uDC4E', ['herb'], 6, 16
  ],
  '1f340': [
        ['\uD83C\uDF40'], '\uE110', '\uDBB8\uDC3C', ['four_leaf_clover'], 6, 17
  ],
  '1f341': [
        ['\uD83C\uDF41'], '\uE118', '\uDBB8\uDC3F', ['maple_leaf'], 6, 18
  ],
  '1f342': [
        ['\uD83C\uDF42'], '\uE119', '\uDBB8\uDC42', ['fallen_leaf'], 6, 19
  ],
  '1f343': [
        ['\uD83C\uDF43'], '\uE447', '\uDBB8\uDC43', ['leaves'], 6, 20
  ],
  '1f344': [
        ['\uD83C\uDF44'], '', '\uDBB8\uDC4B', ['mushroom'], 6, 21
  ],
  '1f345': [
        ['\uD83C\uDF45'], '\uE349', '\uDBB8\uDC55', ['tomato'], 6, 22
  ],
  '1f346': [
        ['\uD83C\uDF46'], '\uE34A', '\uDBB8\uDC56', ['eggplant'], 6, 23
  ],
  '1f347': [
        ['\uD83C\uDF47'], '', '\uDBB8\uDC59', ['grapes'], 6, 24
  ],
  '1f348': [
        ['\uD83C\uDF48'], '', '\uDBB8\uDC57', ['melon'], 6, 25
  ],
  '1f349': [
        ['\uD83C\uDF49'], '\uE348', '\uDBB8\uDC54', ['watermelon'], 6, 26
  ],
  '1f34a': [
        ['\uD83C\uDF4A'], '\uE346', '\uDBB8\uDC52', ['tangerine'], 6, 27
  ],
  '1f34b': [
        ['\uD83C\uDF4B'], '', '', ['lemon'], 6, 28
  ],
  '1f34c': [
        ['\uD83C\uDF4C'], '', '\uDBB8\uDC50', ['banana'], 6, 29
  ],
  '1f34d': [
        ['\uD83C\uDF4D'], '', '\uDBB8\uDC58', ['pineapple'], 7, 0
  ],
  '1f34e': [
        ['\uD83C\uDF4E'], '\uE345', '\uDBB8\uDC51', ['apple'], 7, 1
  ],
  '1f34f': [
        ['\uD83C\uDF4F'], '\uE345', '\uDBB8\uDC5B', ['green_apple'], 7, 2
  ],
  '1f350': [
        ['\uD83C\uDF50'], '', '', ['pear'], 7, 3
  ],
  '1f351': [
        ['\uD83C\uDF51'], '', '\uDBB8\uDC5A', ['peach'], 7, 4
  ],
  '1f352': [
        ['\uD83C\uDF52'], '', '\uDBB8\uDC4F', ['cherries'], 7, 5
  ],
  '1f353': [
        ['\uD83C\uDF53'], '\uE347', '\uDBB8\uDC53', ['strawberry'], 7, 6
  ],
  '1f354': [
        ['\uD83C\uDF54'], '\uE120', '\uDBBA\uDD60', ['hamburger'], 7, 7
  ],
  '1f355': [
        ['\uD83C\uDF55'], '', '\uDBBA\uDD75', ['pizza'], 7, 8
  ],
  '1f356': [
        ['\uD83C\uDF56'], '', '\uDBBA\uDD72', ['meat_on_bone'], 7, 9
  ],
  '1f357': [
        ['\uD83C\uDF57'], '', '\uDBBA\uDD76', ['poultry_leg'], 7, 10
  ],
  '1f358': [
        ['\uD83C\uDF58'], '\uE33D', '\uDBBA\uDD69', ['rice_cracker'], 7, 11
  ],
  '1f359': [
        ['\uD83C\uDF59'], '\uE342', '\uDBBA\uDD61', ['rice_ball'], 7, 12
  ],
  '1f35a': [
        ['\uD83C\uDF5A'], '\uE33E', '\uDBBA\uDD6A', ['rice'], 7, 13
  ],
  '1f35b': [
        ['\uD83C\uDF5B'], '\uE341', '\uDBBA\uDD6C', ['curry'], 7, 14
  ],
  '1f35c': [
        ['\uD83C\uDF5C'], '\uE340', '\uDBBA\uDD63', ['ramen'], 7, 15
  ],
  '1f35d': [
        ['\uD83C\uDF5D'], '\uE33F', '\uDBBA\uDD6B', ['spaghetti'], 7, 16
  ],
  '1f35e': [
        ['\uD83C\uDF5E'], '\uE339', '\uDBBA\uDD64', ['bread'], 7, 17
  ],
  '1f35f': [
        ['\uD83C\uDF5F'], '\uE33B', '\uDBBA\uDD67', ['fries'], 7, 18
  ],
  '1f360': [
        ['\uD83C\uDF60'], '', '\uDBBA\uDD74', ['sweet_potato'], 7, 19
  ],
  '1f361': [
        ['\uD83C\uDF61'], '\uE33C', '\uDBBA\uDD68', ['dango'], 7, 20
  ],
  '1f362': [
        ['\uD83C\uDF62'], '\uE343', '\uDBBA\uDD6D', ['oden'], 7, 21
  ],
  '1f363': [
        ['\uD83C\uDF63'], '\uE344', '\uDBBA\uDD6E', ['sushi'], 7, 22
  ],
  '1f364': [
        ['\uD83C\uDF64'], '', '\uDBBA\uDD7F', ['fried_shrimp'], 7, 23
  ],
  '1f365': [
        ['\uD83C\uDF65'], '', '\uDBBA\uDD73', ['fish_cake'], 7, 24
  ],
  '1f366': [
        ['\uD83C\uDF66'], '\uE33A', '\uDBBA\uDD66', ['icecream'], 7, 25
  ],
  '1f367': [
        ['\uD83C\uDF67'], '\uE43F', '\uDBBA\uDD71', ['shaved_ice'], 7, 26
  ],
  '1f368': [
        ['\uD83C\uDF68'], '', '\uDBBA\uDD77', ['ice_cream'], 7, 27
  ],
  '1f369': [
        ['\uD83C\uDF69'], '', '\uDBBA\uDD78', ['doughnut'], 7, 28
  ],
  '1f36a': [
        ['\uD83C\uDF6A'], '', '\uDBBA\uDD79', ['cookie'], 7, 29
  ],
  '1f36b': [
        ['\uD83C\uDF6B'], '', '\uDBBA\uDD7A', ['chocolate_bar'], 8, 0
  ],
  '1f36c': [
        ['\uD83C\uDF6C'], '', '\uDBBA\uDD7B', ['candy'], 8, 1
  ],
  '1f36d': [
        ['\uD83C\uDF6D'], '', '\uDBBA\uDD7C', ['lollipop'], 8, 2
  ],
  '1f36e': [
        ['\uD83C\uDF6E'], '', '\uDBBA\uDD7D', ['custard'], 8, 3
  ],
  '1f36f': [
        ['\uD83C\uDF6F'], '', '\uDBBA\uDD7E', ['honey_pot'], 8, 4
  ],
  '1f370': [
        ['\uD83C\uDF70'], '\uE046', '\uDBBA\uDD62', ['cake'], 8, 5
  ],
  '1f371': [
        ['\uD83C\uDF71'], '\uE34C', '\uDBBA\uDD6F', ['bento'], 8, 6
  ],
  '1f372': [
        ['\uD83C\uDF72'], '\uE34D', '\uDBBA\uDD70', ['stew'], 8, 7
  ],
  '1f373': [
        ['\uD83C\uDF73'], '\uE147', '\uDBBA\uDD65', ['egg'], 8, 8
  ],
  '1f374': [
        ['\uD83C\uDF74'], '\uE043', '\uDBBA\uDD80', ['fork_and_knife'], 8, 9
  ],
  '1f375': [
        ['\uD83C\uDF75'], '\uE338', '\uDBBA\uDD84', ['tea'], 8, 10
  ],
  '1f376': [
        ['\uD83C\uDF76'], '\uE30B', '\uDBBA\uDD85', ['sake'], 8, 11
  ],
  '1f377': [
        ['\uD83C\uDF77'], '\uE044', '\uDBBA\uDD86', ['wine_glass'], 8, 12
  ],
  '1f378': [
        ['\uD83C\uDF78'], '\uE044', '\uDBBA\uDD82', ['cocktail'], 8, 13
  ],
  '1f379': [
        ['\uD83C\uDF79'], '\uE044', '\uDBBA\uDD88', ['tropical_drink'], 8, 14
  ],
  '1f37a': [
        ['\uD83C\uDF7A'], '\uE047', '\uDBBA\uDD83', ['beer'], 8, 15
  ],
  '1f37b': [
        ['\uD83C\uDF7B'], '\uE30C', '\uDBBA\uDD87', ['beers'], 8, 16
  ],
  '1f37c': [
        ['\uD83C\uDF7C'], '', '', ['baby_bottle'], 8, 17
  ],
  '1f380': [
        ['\uD83C\uDF80'], '\uE314', '\uDBB9\uDD0F', ['ribbon'], 8, 18
  ],
  '1f381': [
        ['\uD83C\uDF81'], '\uE112', '\uDBB9\uDD10', ['gift'], 8, 19
  ],
  '1f382': [
        ['\uD83C\uDF82'], '\uE34B', '\uDBB9\uDD11', ['birthday'], 8, 20
  ],
  '1f383': [
        ['\uD83C\uDF83'], '\uE445', '\uDBB9\uDD1F', ['jack_o_lantern'], 8, 21
  ],
  '1f384': [
        ['\uD83C\uDF84'], '\uE033', '\uDBB9\uDD12', ['christmas_tree'], 8, 22
  ],
  '1f385': [
        ['\uD83C\uDF85'], '\uE448', '\uDBB9\uDD13', ['santa'], 8, 23
  ],
  '1f386': [
        ['\uD83C\uDF86'], '\uE117', '\uDBB9\uDD15', ['fireworks'], 8, 24
  ],
  '1f387': [
        ['\uD83C\uDF87'], '\uE440', '\uDBB9\uDD1D', ['sparkler'], 8, 25
  ],
  '1f388': [
        ['\uD83C\uDF88'], '\uE310', '\uDBB9\uDD16', ['balloon'], 8, 26
  ],
  '1f389': [
        ['\uD83C\uDF89'], '\uE312', '\uDBB9\uDD17', ['tada'], 8, 27
  ],
  '1f38a': [
        ['\uD83C\uDF8A'], '', '\uDBB9\uDD20', ['confetti_ball'], 8, 28
  ],
  '1f38b': [
        ['\uD83C\uDF8B'], '', '\uDBB9\uDD21', ['tanabata_tree'], 8, 29
  ],
  '1f38c': [
        ['\uD83C\uDF8C'], '\uE143', '\uDBB9\uDD14', ['crossed_flags'], 9, 0
  ],
  '1f38d': [
        ['\uD83C\uDF8D'], '\uE436', '\uDBB9\uDD18', ['bamboo'], 9, 1
  ],
  '1f38e': [
        ['\uD83C\uDF8E'], '\uE438', '\uDBB9\uDD19', ['dolls'], 9, 2
  ],
  '1f38f': [
        ['\uD83C\uDF8F'], '\uE43B', '\uDBB9\uDD1C', ['flags'], 9, 3
  ],
  '1f390': [
        ['\uD83C\uDF90'], '\uE442', '\uDBB9\uDD1E', ['wind_chime'], 9, 4
  ],
  '1f391': [
        ['\uD83C\uDF91'], '\uE446', '\uDBB8\uDC17', ['rice_scene'], 9, 5
  ],
  '1f392': [
        ['\uD83C\uDF92'], '\uE43A', '\uDBB9\uDD1B', ['school_satchel'], 9, 6
  ],
  '1f393': [
        ['\uD83C\uDF93'], '\uE439', '\uDBB9\uDD1A', ['mortar_board'], 9, 7
  ],
  '1f3a0': [
        ['\uD83C\uDFA0'], '', '\uDBB9\uDFFC', ['carousel_horse'], 9, 8
  ],
  '1f3a1': [
        ['\uD83C\uDFA1'], '\uE124', '\uDBB9\uDFFD', ['ferris_wheel'], 9, 9
  ],
  '1f3a2': [
        ['\uD83C\uDFA2'], '\uE433', '\uDBB9\uDFFE', ['roller_coaster'], 9, 10
  ],
  '1f3a3': [
        ['\uD83C\uDFA3'], '\uE019', '\uDBB9\uDFFF', ['fishing_pole_and_fish'], 9, 11
  ],
  '1f3a4': [
        ['\uD83C\uDFA4'], '\uE03C', '\uDBBA\uDC00', ['microphone'], 9, 12
  ],
  '1f3a5': [
        ['\uD83C\uDFA5'], '\uE03D', '\uDBBA\uDC01', ['movie_camera'], 9, 13
  ],
  '1f3a6': [
        ['\uD83C\uDFA6'], '\uE507', '\uDBBA\uDC02', ['cinema'], 9, 14
  ],
  '1f3a7': [
        ['\uD83C\uDFA7'], '\uE30A', '\uDBBA\uDC03', ['headphones'], 9, 15
  ],
  '1f3a8': [
        ['\uD83C\uDFA8'], '\uE502', '\uDBBA\uDC04', ['art'], 9, 16
  ],
  '1f3a9': [
        ['\uD83C\uDFA9'], '\uE503', '\uDBBA\uDC05', ['tophat'], 9, 17
  ],
  '1f3aa': [
        ['\uD83C\uDFAA'], '', '\uDBBA\uDC06', ['circus_tent'], 9, 18
  ],
  '1f3ab': [
        ['\uD83C\uDFAB'], '\uE125', '\uDBBA\uDC07', ['ticket'], 9, 19
  ],
  '1f3ac': [
        ['\uD83C\uDFAC'], '\uE324', '\uDBBA\uDC08', ['clapper'], 9, 20
  ],
  '1f3ad': [
        ['\uD83C\uDFAD'], '\uE503', '\uDBBA\uDC09', ['performing_arts'], 9, 21
  ],
  '1f3ae': [
        ['\uD83C\uDFAE'], '', '\uDBBA\uDC0A', ['video_game'], 9, 22
  ],
  '1f3af': [
        ['\uD83C\uDFAF'], '\uE130', '\uDBBA\uDC0C', ['dart'], 9, 23
  ],
  '1f3b0': [
        ['\uD83C\uDFB0'], '\uE133', '\uDBBA\uDC0D', ['slot_machine'], 9, 24
  ],
  '1f3b1': [
        ['\uD83C\uDFB1'], '\uE42C', '\uDBBA\uDC0E', ['8ball'], 9, 25
  ],
  '1f3b2': [
        ['\uD83C\uDFB2'], '', '\uDBBA\uDC0F', ['game_die'], 9, 26
  ],
  '1f3b3': [
        ['\uD83C\uDFB3'], '', '\uDBBA\uDC10', ['bowling'], 9, 27
  ],
  '1f3b4': [
        ['\uD83C\uDFB4'], '', '\uDBBA\uDC11', ['flower_playing_cards'], 9, 28
  ],
  '1f3b5': [
        ['\uD83C\uDFB5'], '\uE03E', '\uDBBA\uDC13', ['musical_note'], 9, 29
  ],
  '1f3b6': [
        ['\uD83C\uDFB6'], '\uE326', '\uDBBA\uDC14', ['notes'], 10, 0
  ],
  '1f3b7': [
        ['\uD83C\uDFB7'], '\uE040', '\uDBBA\uDC15', ['saxophone'], 10, 1
  ],
  '1f3b8': [
        ['\uD83C\uDFB8'], '\uE041', '\uDBBA\uDC16', ['guitar'], 10, 2
  ],
  '1f3b9': [
        ['\uD83C\uDFB9'], '', '\uDBBA\uDC17', ['musical_keyboard'], 10, 3
  ],
  '1f3ba': [
        ['\uD83C\uDFBA'], '\uE042', '\uDBBA\uDC18', ['trumpet'], 10, 4
  ],
  '1f3bb': [
        ['\uD83C\uDFBB'], '', '\uDBBA\uDC19', ['violin'], 10, 5
  ],
  '1f3bc': [
        ['\uD83C\uDFBC'], '\uE326', '\uDBBA\uDC1A', ['musical_score'], 10, 6
  ],
  '1f3bd': [
        ['\uD83C\uDFBD'], '', '\uDBB9\uDFD0', ['running_shirt_with_sash'], 10, 7
  ],
  '1f3be': [
        ['\uD83C\uDFBE'], '\uE015', '\uDBB9\uDFD3', ['tennis'], 10, 8
  ],
  '1f3bf': [
        ['\uD83C\uDFBF'], '\uE013', '\uDBB9\uDFD5', ['ski'], 10, 9
  ],
  '1f3c0': [
        ['\uD83C\uDFC0'], '\uE42A', '\uDBB9\uDFD6', ['basketball'], 10, 10
  ],
  '1f3c1': [
        ['\uD83C\uDFC1'], '\uE132', '\uDBB9\uDFD7', ['checkered_flag'], 10, 11
  ],
  '1f3c2': [
        ['\uD83C\uDFC2'], '', '\uDBB9\uDFD8', ['snowboarder'], 10, 12
  ],
  '1f3c3': [
        ['\uD83C\uDFC3'], '\uE115', '\uDBB9\uDFD9', ['runner', 'running'], 10, 13
  ],
  '1f3c4': [
        ['\uD83C\uDFC4'], '\uE017', '\uDBB9\uDFDA', ['surfer'], 10, 14
  ],
  '1f3c6': [
        ['\uD83C\uDFC6'], '\uE131', '\uDBB9\uDFDB', ['trophy'], 10, 15
  ],
  '1f3c7': [
        ['\uD83C\uDFC7'], '', '', ['horse_racing'], 10, 16
  ],
  '1f3c8': [
        ['\uD83C\uDFC8'], '\uE42B', '\uDBB9\uDFDD', ['football'], 10, 17
  ],
  '1f3c9': [
        ['\uD83C\uDFC9'], '', '', ['rugby_football'], 10, 18
  ],
  '1f3ca': [
        ['\uD83C\uDFCA'], '\uE42D', '\uDBB9\uDFDE', ['swimmer'], 10, 19
  ],
  '1f3e0': [
        ['\uD83C\uDFE0'], '\uE036', '\uDBB9\uDCB0', ['house'], 10, 20
  ],
  '1f3e1': [
        ['\uD83C\uDFE1'], '\uE036', '\uDBB9\uDCB1', ['house_with_garden'], 10, 21
  ],
  '1f3e2': [
        ['\uD83C\uDFE2'], '\uE038', '\uDBB9\uDCB2', ['office'], 10, 22
  ],
  '1f3e3': [
        ['\uD83C\uDFE3'], '\uE153', '\uDBB9\uDCB3', ['post_office'], 10, 23
  ],
  '1f3e4': [
        ['\uD83C\uDFE4'], '', '', ['european_post_office'], 10, 24
  ],
  '1f3e5': [
        ['\uD83C\uDFE5'], '\uE155', '\uDBB9\uDCB4', ['hospital'], 10, 25
  ],
  '1f3e6': [
        ['\uD83C\uDFE6'], '\uE14D', '\uDBB9\uDCB5', ['bank'], 10, 26
  ],
  '1f3e7': [
        ['\uD83C\uDFE7'], '\uE154', '\uDBB9\uDCB6', ['atm'], 10, 27
  ],
  '1f3e8': [
        ['\uD83C\uDFE8'], '\uE158', '\uDBB9\uDCB7', ['hotel'], 10, 28
  ],
  '1f3e9': [
        ['\uD83C\uDFE9'], '\uE501', '\uDBB9\uDCB8', ['love_hotel'], 10, 29
  ],
  '1f3ea': [
        ['\uD83C\uDFEA'], '\uE156', '\uDBB9\uDCB9', ['convenience_store'], 11, 0
  ],
  '1f3eb': [
        ['\uD83C\uDFEB'], '\uE157', '\uDBB9\uDCBA', ['school'], 11, 1
  ],
  '1f3ec': [
        ['\uD83C\uDFEC'], '\uE504', '\uDBB9\uDCBD', ['department_store'], 11, 2
  ],
  '1f3ed': [
        ['\uD83C\uDFED'], '\uE508', '\uDBB9\uDCC0', ['factory'], 11, 3
  ],
  '1f3ee': [
        ['\uD83C\uDFEE'], '\uE30B', '\uDBB9\uDCC2', ['izakaya_lantern', 'lantern'], 11, 4
  ],
  '1f3ef': [
        ['\uD83C\uDFEF'], '\uE505', '\uDBB9\uDCBE', ['japanese_castle'], 11, 5
  ],
  '1f3f0': [
        ['\uD83C\uDFF0'], '\uE506', '\uDBB9\uDCBF', ['european_castle'], 11, 6
  ],
  '1f400': [
        ['\uD83D\uDC00'], '', '', ['rat'], 11, 7
  ],
  '1f401': [
        ['\uD83D\uDC01'], '', '', ['mouse2'], 11, 8
  ],
  '1f402': [
        ['\uD83D\uDC02'], '', '', ['ox'], 11, 9
  ],
  '1f403': [
        ['\uD83D\uDC03'], '', '', ['water_buffalo'], 11, 10
  ],
  '1f404': [
        ['\uD83D\uDC04'], '', '', ['cow2'], 11, 11
  ],
  '1f405': [
        ['\uD83D\uDC05'], '', '', ['tiger2'], 11, 12
  ],
  '1f406': [
        ['\uD83D\uDC06'], '', '', ['leopard'], 11, 13
  ],
  '1f407': [
        ['\uD83D\uDC07'], '', '', ['rabbit2'], 11, 14
  ],
  '1f408': [
        ['\uD83D\uDC08'], '', '', ['cat2'], 11, 15
  ],
  '1f409': [
        ['\uD83D\uDC09'], '', '', ['dragon'], 11, 16
  ],
  '1f40a': [
        ['\uD83D\uDC0A'], '', '', ['crocodile'], 11, 17
  ],
  '1f40b': [
        ['\uD83D\uDC0B'], '', '', ['whale2'], 11, 18
  ],
  '1f40c': [
        ['\uD83D\uDC0C'], '', '\uDBB8\uDDB9', ['snail'], 11, 19
  ],
  '1f40d': [
        ['\uD83D\uDC0D'], '\uE52D', '\uDBB8\uDDD3', ['snake'], 11, 20
  ],
  '1f40e': [
        ['\uD83D\uDC0E'], '\uE134', '\uDBB9\uDFDC', ['racehorse'], 11, 21
  ],
  '1f40f': [
        ['\uD83D\uDC0F'], '', '', ['ram'], 11, 22
  ],
  '1f410': [
        ['\uD83D\uDC10'], '', '', ['goat'], 11, 23
  ],
  '1f411': [
        ['\uD83D\uDC11'], '\uE529', '\uDBB8\uDDCF', ['sheep'], 11, 24
  ],
  '1f412': [
        ['\uD83D\uDC12'], '\uE528', '\uDBB8\uDDCE', ['monkey'], 11, 25
  ],
  '1f413': [
        ['\uD83D\uDC13'], '', '', ['rooster'], 11, 26
  ],
  '1f414': [
        ['\uD83D\uDC14'], '\uE52E', '\uDBB8\uDDD4', ['chicken'], 11, 27
  ],
  '1f415': [
        ['\uD83D\uDC15'], '', '', ['dog2'], 11, 28
  ],
  '1f416': [
        ['\uD83D\uDC16'], '', '', ['pig2'], 11, 29
  ],
  '1f417': [
        ['\uD83D\uDC17'], '\uE52F', '\uDBB8\uDDD5', ['boar'], 12, 0
  ],
  '1f418': [
        ['\uD83D\uDC18'], '\uE526', '\uDBB8\uDDCC', ['elephant'], 12, 1
  ],
  '1f419': [
        ['\uD83D\uDC19'], '\uE10A', '\uDBB8\uDDC5', ['octopus'], 12, 2
  ],
  '1f41a': [
        ['\uD83D\uDC1A'], '\uE441', '\uDBB8\uDDC6', ['shell'], 12, 3
  ],
  '1f41b': [
        ['\uD83D\uDC1B'], '\uE525', '\uDBB8\uDDCB', ['bug'], 12, 4
  ],
  '1f41c': [
        ['\uD83D\uDC1C'], '', '\uDBB8\uDDDA', ['ant'], 12, 5
  ],
  '1f41d': [
        ['\uD83D\uDC1D'], '', '\uDBB8\uDDE1', ['bee', 'honeybee'], 12, 6
  ],
  '1f41e': [
        ['\uD83D\uDC1E'], '', '\uDBB8\uDDE2', ['beetle'], 12, 7
  ],
  '1f41f': [
        ['\uD83D\uDC1F'], '\uE019', '\uDBB8\uDDBD', ['fish'], 12, 8
  ],
  '1f420': [
        ['\uD83D\uDC20'], '\uE522', '\uDBB8\uDDC9', ['tropical_fish'], 12, 9
  ],
  '1f421': [
        ['\uD83D\uDC21'], '\uE019', '\uDBB8\uDDD9', ['blowfish'], 12, 10
  ],
  '1f422': [
        ['\uD83D\uDC22'], '', '\uDBB8\uDDDC', ['turtle'], 12, 11
  ],
  '1f423': [
        ['\uD83D\uDC23'], '\uE523', '\uDBB8\uDDDD', ['hatching_chick'], 12, 12
  ],
  '1f424': [
        ['\uD83D\uDC24'], '\uE523', '\uDBB8\uDDBA', ['baby_chick'], 12, 13
  ],
  '1f425': [
        ['\uD83D\uDC25'], '\uE523', '\uDBB8\uDDBB', ['hatched_chick'], 12, 14
  ],
  '1f426': [
        ['\uD83D\uDC26'], '\uE521', '\uDBB8\uDDC8', ['bird'], 12, 15
  ],
  '1f427': [
        ['\uD83D\uDC27'], '\uE055', '\uDBB8\uDDBC', ['penguin'], 12, 16
  ],
  '1f428': [
        ['\uD83D\uDC28'], '\uE527', '\uDBB8\uDDCD', ['koala'], 12, 17
  ],
  '1f429': [
        ['\uD83D\uDC29'], '\uE052', '\uDBB8\uDDD8', ['poodle'], 12, 18
  ],
  '1f42a': [
        ['\uD83D\uDC2A'], '', '', ['dromedary_camel'], 12, 19
  ],
  '1f42b': [
        ['\uD83D\uDC2B'], '\uE530', '\uDBB8\uDDD6', ['camel'], 12, 20
  ],
  '1f42c': [
        ['\uD83D\uDC2C'], '\uE520', '\uDBB8\uDDC7', ['dolphin', 'flipper'], 12, 21
  ],
  '1f42d': [
        ['\uD83D\uDC2D'], '\uE053', '\uDBB8\uDDC2', ['mouse'], 12, 22
  ],
  '1f42e': [
        ['\uD83D\uDC2E'], '\uE52B', '\uDBB8\uDDD1', ['cow'], 12, 23
  ],
  '1f42f': [
        ['\uD83D\uDC2F'], '\uE050', '\uDBB8\uDDC0', ['tiger'], 12, 24
  ],
  '1f430': [
        ['\uD83D\uDC30'], '\uE52C', '\uDBB8\uDDD2', ['rabbit'], 12, 25
  ],
  '1f431': [
        ['\uD83D\uDC31'], '\uE04F', '\uDBB8\uDDB8', ['cat'], 12, 26
  ],
  '1f432': [
        ['\uD83D\uDC32'], '', '\uDBB8\uDDDE', ['dragon_face'], 12, 27
  ],
  '1f433': [
        ['\uD83D\uDC33'], '\uE054', '\uDBB8\uDDC3', ['whale'], 12, 28
  ],
  '1f434': [
        ['\uD83D\uDC34'], '\uE01A', '\uDBB8\uDDBE', ['horse'], 12, 29
  ],
  '1f435': [
        ['\uD83D\uDC35'], '\uE109', '\uDBB8\uDDC4', ['monkey_face'], 13, 0
  ],
  '1f436': [
        ['\uD83D\uDC36'], '\uE052', '\uDBB8\uDDB7', ['dog'], 13, 1
  ],
  '1f437': [
        ['\uD83D\uDC37'], '\uE10B', '\uDBB8\uDDBF', ['pig'], 13, 2
  ],
  '1f438': [
        ['\uD83D\uDC38'], '\uE531', '\uDBB8\uDDD7', ['frog'], 13, 3
  ],
  '1f439': [
        ['\uD83D\uDC39'], '\uE524', '\uDBB8\uDDCA', ['hamster'], 13, 4
  ],
  '1f43a': [
        ['\uD83D\uDC3A'], '\uE52A', '\uDBB8\uDDD0', ['wolf'], 13, 5
  ],
  '1f43b': [
        ['\uD83D\uDC3B'], '\uE051', '\uDBB8\uDDC1', ['bear'], 13, 6
  ],
  '1f43c': [
        ['\uD83D\uDC3C'], '', '\uDBB8\uDDDF', ['panda_face'], 13, 7
  ],
  '1f43d': [
        ['\uD83D\uDC3D'], '\uE10B', '\uDBB8\uDDE0', ['pig_nose'], 13, 8
  ],
  '1f43e': [
        ['\uD83D\uDC3E'], '\uE536', '\uDBB8\uDDDB', ['feet', 'paw_prints'], 13, 9
  ],
  '1f440': [
        ['\uD83D\uDC40'], '\uE419', '\uDBB8\uDD90', ['eyes'], 13, 10
  ],
  '1f442': [
        ['\uD83D\uDC42'], '\uE41B', '\uDBB8\uDD91', ['ear'], 13, 11
  ],
  '1f443': [
        ['\uD83D\uDC43'], '\uE41A', '\uDBB8\uDD92', ['nose'], 13, 12
  ],
  '1f444': [
        ['\uD83D\uDC44'], '\uE41C', '\uDBB8\uDD93', ['lips'], 13, 13
  ],
  '1f445': [
        ['\uD83D\uDC45'], '\uE409', '\uDBB8\uDD94', ['tongue'], 13, 14
  ],
  '1f446': [
        ['\uD83D\uDC46'], '\uE22E', '\uDBBA\uDF99', ['point_up_2'], 13, 15
  ],
  '1f447': [
        ['\uD83D\uDC47'], '\uE22F', '\uDBBA\uDF9A', ['point_down'], 13, 16
  ],
  '1f448': [
        ['\uD83D\uDC48'], '\uE230', '\uDBBA\uDF9B', ['point_left'], 13, 17
  ],
  '1f449': [
        ['\uD83D\uDC49'], '\uE231', '\uDBBA\uDF9C', ['point_right'], 13, 18
  ],
  '1f44a': [
        ['\uD83D\uDC4A'], '\uE00D', '\uDBBA\uDF96', ['facepunch', 'punch'], 13, 19
  ],
  '1f44b': [
        ['\uD83D\uDC4B'], '\uE41E', '\uDBBA\uDF9D', ['wave'], 13, 20
  ],
  '1f44c': [
        ['\uD83D\uDC4C'], '\uE420', '\uDBBA\uDF9F', ['ok_hand'], 13, 21
  ],
  '1f44d': [
        ['\uD83D\uDC4D'], '\uE00E', '\uDBBA\uDF97', ['+1', 'thumbsup'], 13, 22
  ],
  '1f44e': [
        ['\uD83D\uDC4E'], '\uE421', '\uDBBA\uDFA0', ['-1', 'thumbsdown'], 13, 23
  ],
  '1f44f': [
        ['\uD83D\uDC4F'], '\uE41F', '\uDBBA\uDF9E', ['clap'], 13, 24
  ],
  '1f450': [
        ['\uD83D\uDC50'], '\uE422', '\uDBBA\uDFA1', ['open_hands'], 13, 25
  ],
  '1f451': [
        ['\uD83D\uDC51'], '\uE10E', '\uDBB9\uDCD1', ['crown'], 13, 26
  ],
  '1f452': [
        ['\uD83D\uDC52'], '\uE318', '\uDBB9\uDCD4', ['womans_hat'], 13, 27
  ],
  '1f453': [
        ['\uD83D\uDC53'], '', '\uDBB9\uDCCE', ['eyeglasses'], 13, 28
  ],
  '1f454': [
        ['\uD83D\uDC54'], '\uE302', '\uDBB9\uDCD3', ['necktie'], 13, 29
  ],
  '1f455': [
        ['\uD83D\uDC55'], '\uE006', '\uDBB9\uDCCF', ['shirt', 'tshirt'], 14, 0
  ],
  '1f456': [
        ['\uD83D\uDC56'], '', '\uDBB9\uDCD0', ['jeans'], 14, 1
  ],
  '1f457': [
        ['\uD83D\uDC57'], '\uE319', '\uDBB9\uDCD5', ['dress'], 14, 2
  ],
  '1f458': [
        ['\uD83D\uDC58'], '\uE321', '\uDBB9\uDCD9', ['kimono'], 14, 3
  ],
  '1f459': [
        ['\uD83D\uDC59'], '\uE322', '\uDBB9\uDCDA', ['bikini'], 14, 4
  ],
  '1f45a': [
        ['\uD83D\uDC5A'], '\uE006', '\uDBB9\uDCDB', ['womans_clothes'], 14, 5
  ],
  '1f45b': [
        ['\uD83D\uDC5B'], '', '\uDBB9\uDCDC', ['purse'], 14, 6
  ],
  '1f45c': [
        ['\uD83D\uDC5C'], '\uE323', '\uDBB9\uDCF0', ['handbag'], 14, 7
  ],
  '1f45d': [
        ['\uD83D\uDC5D'], '', '\uDBB9\uDCF1', ['pouch'], 14, 8
  ],
  '1f45e': [
        ['\uD83D\uDC5E'], '\uE007', '\uDBB9\uDCCC', ['mans_shoe', 'shoe'], 14, 9
  ],
  '1f45f': [
        ['\uD83D\uDC5F'], '\uE007', '\uDBB9\uDCCD', ['athletic_shoe'], 14, 10
  ],
  '1f460': [
        ['\uD83D\uDC60'], '\uE13E', '\uDBB9\uDCD6', ['high_heel'], 14, 11
  ],
  '1f461': [
        ['\uD83D\uDC61'], '\uE31A', '\uDBB9\uDCD7', ['sandal'], 14, 12
  ],
  '1f462': [
        ['\uD83D\uDC62'], '\uE31B', '\uDBB9\uDCD8', ['boot'], 14, 13
  ],
  '1f463': [
        ['\uD83D\uDC63'], '\uE536', '\uDBB9\uDD53', ['footprints'], 14, 14
  ],
  '1f464': [
        ['\uD83D\uDC64'], '', '\uDBB8\uDD9A', ['bust_in_silhouette'], 14, 15
  ],
  '1f465': [
        ['\uD83D\uDC65'], '', '', ['busts_in_silhouette'], 14, 16
  ],
  '1f466': [
        ['\uD83D\uDC66'], '\uE001', '\uDBB8\uDD9B', ['boy'], 14, 17
  ],
  '1f467': [
        ['\uD83D\uDC67'], '\uE002', '\uDBB8\uDD9C', ['girl'], 14, 18
  ],
  '1f468': [
        ['\uD83D\uDC68'], '\uE004', '\uDBB8\uDD9D', ['man'], 14, 19
  ],
  '1f469': [
        ['\uD83D\uDC69'], '\uE005', '\uDBB8\uDD9E', ['woman'], 14, 20
  ],
  '1f46a': [
        ['\uD83D\uDC6A'], '', '\uDBB8\uDD9F', ['family'], 14, 21
  ],
  '1f46b': [
        ['\uD83D\uDC6B'], '\uE428', '\uDBB8\uDDA0', ['couple'], 14, 22
  ],
  '1f46c': [
        ['\uD83D\uDC6C'], '', '', ['two_men_holding_hands'], 14, 23
  ],
  '1f46d': [
        ['\uD83D\uDC6D'], '', '', ['two_women_holding_hands'], 14, 24
  ],
  '1f46e': [
        ['\uD83D\uDC6E'], '\uE152', '\uDBB8\uDDA1', ['cop'], 14, 25
  ],
  '1f46f': [
        ['\uD83D\uDC6F'], '\uE429', '\uDBB8\uDDA2', ['dancers'], 14, 26
  ],
  '1f470': [
        ['\uD83D\uDC70'], '', '\uDBB8\uDDA3', ['bride_with_veil'], 14, 27
  ],
  '1f471': [
        ['\uD83D\uDC71'], '\uE515', '\uDBB8\uDDA4', ['person_with_blond_hair'], 14, 28
  ],
  '1f472': [
        ['\uD83D\uDC72'], '\uE516', '\uDBB8\uDDA5', ['man_with_gua_pi_mao'], 14, 29
  ],
  '1f473': [
        ['\uD83D\uDC73'], '\uE517', '\uDBB8\uDDA6', ['man_with_turban'], 15, 0
  ],
  '1f474': [
        ['\uD83D\uDC74'], '\uE518', '\uDBB8\uDDA7', ['older_man'], 15, 1
  ],
  '1f475': [
        ['\uD83D\uDC75'], '\uE519', '\uDBB8\uDDA8', ['older_woman'], 15, 2
  ],
  '1f476': [
        ['\uD83D\uDC76'], '\uE51A', '\uDBB8\uDDA9', ['baby'], 15, 3
  ],
  '1f477': [
        ['\uD83D\uDC77'], '\uE51B', '\uDBB8\uDDAA', ['construction_worker'], 15, 4
  ],
  '1f478': [
        ['\uD83D\uDC78'], '\uE51C', '\uDBB8\uDDAB', ['princess'], 15, 5
  ],
  '1f479': [
        ['\uD83D\uDC79'], '', '\uDBB8\uDDAC', ['japanese_ogre'], 15, 6
  ],
  '1f47a': [
        ['\uD83D\uDC7A'], '', '\uDBB8\uDDAD', ['japanese_goblin'], 15, 7
  ],
  '1f47b': [
        ['\uD83D\uDC7B'], '\uE11B', '\uDBB8\uDDAE', ['ghost'], 15, 8
  ],
  '1f47c': [
        ['\uD83D\uDC7C'], '\uE04E', '\uDBB8\uDDAF', ['angel'], 15, 9
  ],
  '1f47d': [
        ['\uD83D\uDC7D'], '\uE10C', '\uDBB8\uDDB0', ['alien'], 15, 10
  ],
  '1f47e': [
        ['\uD83D\uDC7E'], '\uE12B', '\uDBB8\uDDB1', ['space_invader'], 15, 11
  ],
  '1f47f': [
        ['\uD83D\uDC7F'], '\uE11A', '\uDBB8\uDDB2', ['imp'], 15, 12
  ],
  '1f480': [
        ['\uD83D\uDC80'], '\uE11C', '\uDBB8\uDDB3', ['skull'], 15, 13
  ],
  '1f481': [
        ['\uD83D\uDC81'], '\uE253', '\uDBB8\uDDB4', ['information_desk_person'], 15, 14
  ],
  '1f482': [
        ['\uD83D\uDC82'], '\uE51E', '\uDBB8\uDDB5', ['guardsman'], 15, 15
  ],
  '1f483': [
        ['\uD83D\uDC83'], '\uE51F', '\uDBB8\uDDB6', ['dancer'], 15, 16
  ],
  '1f484': [
        ['\uD83D\uDC84'], '\uE31C', '\uDBB8\uDD95', ['lipstick'], 15, 17
  ],
  '1f485': [
        ['\uD83D\uDC85'], '\uE31D', '\uDBB8\uDD96', ['nail_care'], 15, 18
  ],
  '1f486': [
        ['\uD83D\uDC86'], '\uE31E', '\uDBB8\uDD97', ['massage'], 15, 19
  ],
  '1f487': [
        ['\uD83D\uDC87'], '\uE31F', '\uDBB8\uDD98', ['haircut'], 15, 20
  ],
  '1f488': [
        ['\uD83D\uDC88'], '\uE320', '\uDBB8\uDD99', ['barber'], 15, 21
  ],
  '1f489': [
        ['\uD83D\uDC89'], '\uE13B', '\uDBB9\uDD09', ['syringe'], 15, 22
  ],
  '1f48a': [
        ['\uD83D\uDC8A'], '\uE30F', '\uDBB9\uDD0A', ['pill'], 15, 23
  ],
  '1f48b': [
        ['\uD83D\uDC8B'], '\uE003', '\uDBBA\uDC23', ['kiss'], 15, 24
  ],
  '1f48c': [
        ['\uD83D\uDC8C'], '\uE103\uE328', '\uDBBA\uDC24', ['love_letter'], 15, 25
  ],
  '1f48d': [
        ['\uD83D\uDC8D'], '\uE034', '\uDBBA\uDC25', ['ring'], 15, 26
  ],
  '1f48e': [
        ['\uD83D\uDC8E'], '\uE035', '\uDBBA\uDC26', ['gem'], 15, 27
  ],
  '1f48f': [
        ['\uD83D\uDC8F'], '\uE111', '\uDBBA\uDC27', ['couplekiss'], 15, 28
  ],
  '1f490': [
        ['\uD83D\uDC90'], '\uE306', '\uDBBA\uDC28', ['bouquet'], 15, 29
  ],
  '1f491': [
        ['\uD83D\uDC91'], '\uE425', '\uDBBA\uDC29', ['couple_with_heart'], 16, 0
  ],
  '1f492': [
        ['\uD83D\uDC92'], '\uE43D', '\uDBBA\uDC2A', ['wedding'], 16, 1
  ],
  '1f493': [
        ['\uD83D\uDC93'], '\uE327', '\uDBBA\uDF0D', ['heartbeat'], 16, 2
  ],
  '1f494': [
        ['\uD83D\uDC94'], '\uE023', '\uDBBA\uDF0E', ['broken_heart'], 16, 3, '<\/3'
  ],
  '1f495': [
        ['\uD83D\uDC95'], '\uE327', '\uDBBA\uDF0F', ['two_hearts'], 16, 4
  ],
  '1f496': [
        ['\uD83D\uDC96'], '\uE327', '\uDBBA\uDF10', ['sparkling_heart'], 16, 5
  ],
  '1f497': [
        ['\uD83D\uDC97'], '\uE328', '\uDBBA\uDF11', ['heartpulse'], 16, 6
  ],
  '1f498': [
        ['\uD83D\uDC98'], '\uE329', '\uDBBA\uDF12', ['cupid'], 16, 7
  ],
  '1f499': [
        ['\uD83D\uDC99'], '\uE32A', '\uDBBA\uDF13', ['blue_heart'], 16, 8, '<3'
  ],
  '1f49a': [
        ['\uD83D\uDC9A'], '\uE32B', '\uDBBA\uDF14', ['green_heart'], 16, 9, '<3'
  ],
  '1f49b': [
        ['\uD83D\uDC9B'], '\uE32C', '\uDBBA\uDF15', ['yellow_heart'], 16, 10, '<3'
  ],
  '1f49c': [
        ['\uD83D\uDC9C'], '\uE32D', '\uDBBA\uDF16', ['purple_heart'], 16, 11, '<3'
  ],
  '1f49d': [
        ['\uD83D\uDC9D'], '\uE437', '\uDBBA\uDF17', ['gift_heart'], 16, 12
  ],
  '1f49e': [
        ['\uD83D\uDC9E'], '\uE327', '\uDBBA\uDF18', ['revolving_hearts'], 16, 13
  ],
  '1f49f': [
        ['\uD83D\uDC9F'], '\uE204', '\uDBBA\uDF19', ['heart_decoration'], 16, 14
  ],
  '1f4a0': [
        ['\uD83D\uDCA0'], '', '\uDBBA\uDF55', ['diamond_shape_with_a_dot_inside'], 16, 15
  ],
  '1f4a1': [
        ['\uD83D\uDCA1'], '\uE10F', '\uDBBA\uDF56', ['bulb'], 16, 16
  ],
  '1f4a2': [
        ['\uD83D\uDCA2'], '\uE334', '\uDBBA\uDF57', ['anger'], 16, 17
  ],
  '1f4a3': [
        ['\uD83D\uDCA3'], '\uE311', '\uDBBA\uDF58', ['bomb'], 16, 18
  ],
  '1f4a4': [
        ['\uD83D\uDCA4'], '\uE13C', '\uDBBA\uDF59', ['zzz'], 16, 19
  ],
  '1f4a5': [
        ['\uD83D\uDCA5'], '', '\uDBBA\uDF5A', ['boom', 'collision'], 16, 20
  ],
  '1f4a6': [
        ['\uD83D\uDCA6'], '\uE331', '\uDBBA\uDF5B', ['sweat_drops'], 16, 21
  ],
  '1f4a7': [
        ['\uD83D\uDCA7'], '\uE331', '\uDBBA\uDF5C', ['droplet'], 16, 22
  ],
  '1f4a8': [
        ['\uD83D\uDCA8'], '\uE330', '\uDBBA\uDF5D', ['dash'], 16, 23
  ],
  '1f4a9': [
        ['\uD83D\uDCA9'], '\uE05A', '\uDBB9\uDCF4', ['hankey', 'poop', 'shit'], 16, 24
  ],
  '1f4aa': [
        ['\uD83D\uDCAA'], '\uE14C', '\uDBBA\uDF5E', ['muscle'], 16, 25
  ],
  '1f4ab': [
        ['\uD83D\uDCAB'], '\uE407', '\uDBBA\uDF5F', ['dizzy'], 16, 26
  ],
  '1f4ac': [
        ['\uD83D\uDCAC'], '', '\uDBB9\uDD32', ['speech_balloon'], 16, 27
  ],
  '1f4ad': [
        ['\uD83D\uDCAD'], '', '', ['thought_balloon'], 16, 28
  ],
  '1f4ae': [
        ['\uD83D\uDCAE'], '', '\uDBBA\uDF7A', ['white_flower'], 16, 29
  ],
  '1f4af': [
        ['\uD83D\uDCAF'], '', '\uDBBA\uDF7B', ['100'], 17, 0
  ],
  '1f4b0': [
        ['\uD83D\uDCB0'], '\uE12F', '\uDBB9\uDCDD', ['moneybag'], 17, 1
  ],
  '1f4b1': [
        ['\uD83D\uDCB1'], '\uE149', '\uDBB9\uDCDE', ['currency_exchange'], 17, 2
  ],
  '1f4b2': [
        ['\uD83D\uDCB2'], '\uE12F', '\uDBB9\uDCE0', ['heavy_dollar_sign'], 17, 3
  ],
  '1f4b3': [
        ['\uD83D\uDCB3'], '', '\uDBB9\uDCE1', ['credit_card'], 17, 4
  ],
  '1f4b4': [
        ['\uD83D\uDCB4'], '', '\uDBB9\uDCE2', ['yen'], 17, 5
  ],
  '1f4b5': [
        ['\uD83D\uDCB5'], '\uE12F', '\uDBB9\uDCE3', ['dollar'], 17, 6
  ],
  '1f4b6': [
        ['\uD83D\uDCB6'], '', '', ['euro'], 17, 7
  ],
  '1f4b7': [
        ['\uD83D\uDCB7'], '', '', ['pound'], 17, 8
  ],
  '1f4b8': [
        ['\uD83D\uDCB8'], '', '\uDBB9\uDCE4', ['money_with_wings'], 17, 9
  ],
  '1f4b9': [
        ['\uD83D\uDCB9'], '\uE14A', '\uDBB9\uDCDF', ['chart'], 17, 10
  ],
  '1f4ba': [
        ['\uD83D\uDCBA'], '\uE11F', '\uDBB9\uDD37', ['seat'], 17, 11
  ],
  '1f4bb': [
        ['\uD83D\uDCBB'], '\uE00C', '\uDBB9\uDD38', ['computer'], 17, 12
  ],
  '1f4bc': [
        ['\uD83D\uDCBC'], '\uE11E', '\uDBB9\uDD3B', ['briefcase'], 17, 13
  ],
  '1f4bd': [
        ['\uD83D\uDCBD'], '\uE316', '\uDBB9\uDD3C', ['minidisc'], 17, 14
  ],
  '1f4be': [
        ['\uD83D\uDCBE'], '\uE316', '\uDBB9\uDD3D', ['floppy_disk'], 17, 15
  ],
  '1f4bf': [
        ['\uD83D\uDCBF'], '\uE126', '\uDBBA\uDC1D', ['cd'], 17, 16
  ],
  '1f4c0': [
        ['\uD83D\uDCC0'], '\uE127', '\uDBBA\uDC1E', ['dvd'], 17, 17
  ],
  '1f4c1': [
        ['\uD83D\uDCC1'], '', '\uDBB9\uDD43', ['file_folder'], 17, 18
  ],
  '1f4c2': [
        ['\uD83D\uDCC2'], '', '\uDBB9\uDD44', ['open_file_folder'], 17, 19
  ],
  '1f4c3': [
        ['\uD83D\uDCC3'], '\uE301', '\uDBB9\uDD40', ['page_with_curl'], 17, 20
  ],
  '1f4c4': [
        ['\uD83D\uDCC4'], '\uE301', '\uDBB9\uDD41', ['page_facing_up'], 17, 21
  ],
  '1f4c5': [
        ['\uD83D\uDCC5'], '', '\uDBB9\uDD42', ['date'], 17, 22
  ],
  '1f4c6': [
        ['\uD83D\uDCC6'], '', '\uDBB9\uDD49', ['calendar'], 17, 23
  ],
  '1f4c7': [
        ['\uD83D\uDCC7'], '\uE148', '\uDBB9\uDD4D', ['card_index'], 17, 24
  ],
  '1f4c8': [
        ['\uD83D\uDCC8'], '\uE14A', '\uDBB9\uDD4B', ['chart_with_upwards_trend'], 17, 25
  ],
  '1f4c9': [
        ['\uD83D\uDCC9'], '', '\uDBB9\uDD4C', ['chart_with_downwards_trend'], 17, 26
  ],
  '1f4ca': [
        ['\uD83D\uDCCA'], '\uE14A', '\uDBB9\uDD4A', ['bar_chart'], 17, 27
  ],
  '1f4cb': [
        ['\uD83D\uDCCB'], '\uE301', '\uDBB9\uDD48', ['clipboard'], 17, 28
  ],
  '1f4cc': [
        ['\uD83D\uDCCC'], '', '\uDBB9\uDD4E', ['pushpin'], 17, 29
  ],
  '1f4cd': [
        ['\uD83D\uDCCD'], '', '\uDBB9\uDD3F', ['round_pushpin'], 18, 0
  ],
  '1f4ce': [
        ['\uD83D\uDCCE'], '', '\uDBB9\uDD3A', ['paperclip'], 18, 1
  ],
  '1f4cf': [
        ['\uD83D\uDCCF'], '', '\uDBB9\uDD50', ['straight_ruler'], 18, 2
  ],
  '1f4d0': [
        ['\uD83D\uDCD0'], '', '\uDBB9\uDD51', ['triangular_ruler'], 18, 3
  ],
  '1f4d1': [
        ['\uD83D\uDCD1'], '\uE301', '\uDBB9\uDD52', ['bookmark_tabs'], 18, 4
  ],
  '1f4d2': [
        ['\uD83D\uDCD2'], '\uE148', '\uDBB9\uDD4F', ['ledger'], 18, 5
  ],
  '1f4d3': [
        ['\uD83D\uDCD3'], '\uE148', '\uDBB9\uDD45', ['notebook'], 18, 6
  ],
  '1f4d4': [
        ['\uD83D\uDCD4'], '\uE148', '\uDBB9\uDD47', ['notebook_with_decorative_cover'], 18, 7
  ],
  '1f4d5': [
        ['\uD83D\uDCD5'], '\uE148', '\uDBB9\uDD02', ['closed_book'], 18, 8
  ],
  '1f4d6': [
        ['\uD83D\uDCD6'], '\uE148', '\uDBB9\uDD46', ['book', 'open_book'], 18, 9
  ],
  '1f4d7': [
        ['\uD83D\uDCD7'], '\uE148', '\uDBB9\uDCFF', ['green_book'], 18, 10
  ],
  '1f4d8': [
        ['\uD83D\uDCD8'], '\uE148', '\uDBB9\uDD00', ['blue_book'], 18, 11
  ],
  '1f4d9': [
        ['\uD83D\uDCD9'], '\uE148', '\uDBB9\uDD01', ['orange_book'], 18, 12
  ],
  '1f4da': [
        ['\uD83D\uDCDA'], '\uE148', '\uDBB9\uDD03', ['books'], 18, 13
  ],
  '1f4db': [
        ['\uD83D\uDCDB'], '', '\uDBB9\uDD04', ['name_badge'], 18, 14
  ],
  '1f4dc': [
        ['\uD83D\uDCDC'], '', '\uDBB9\uDCFD', ['scroll'], 18, 15
  ],
  '1f4dd': [
        ['\uD83D\uDCDD'], '\uE301', '\uDBB9\uDD27', ['memo', 'pencil'], 18, 16
  ],
  '1f4de': [
        ['\uD83D\uDCDE'], '\uE009', '\uDBB9\uDD24', ['telephone_receiver'], 18, 17
  ],
  '1f4df': [
        ['\uD83D\uDCDF'], '', '\uDBB9\uDD22', ['pager'], 18, 18
  ],
  '1f4e0': [
        ['\uD83D\uDCE0'], '\uE00B', '\uDBB9\uDD28', ['fax'], 18, 19
  ],
  '1f4e1': [
        ['\uD83D\uDCE1'], '\uE14B', '\uDBB9\uDD31', ['satellite'], 18, 20
  ],
  '1f4e2': [
        ['\uD83D\uDCE2'], '\uE142', '\uDBB9\uDD2F', ['loudspeaker'], 18, 21
  ],
  '1f4e3': [
        ['\uD83D\uDCE3'], '\uE317', '\uDBB9\uDD30', ['mega'], 18, 22
  ],
  '1f4e4': [
        ['\uD83D\uDCE4'], '', '\uDBB9\uDD33', ['outbox_tray'], 18, 23
  ],
  '1f4e5': [
        ['\uD83D\uDCE5'], '', '\uDBB9\uDD34', ['inbox_tray'], 18, 24
  ],
  '1f4e6': [
        ['\uD83D\uDCE6'], '\uE112', '\uDBB9\uDD35', ['package'], 18, 25
  ],
  '1f4e7': [
        ['\uD83D\uDCE7'], '\uE103', '\uDBBA\uDF92', ['e-mail'], 18, 26
  ],
  '1f4e8': [
        ['\uD83D\uDCE8'], '\uE103', '\uDBB9\uDD2A', ['incoming_envelope'], 18, 27
  ],
  '1f4e9': [
        ['\uD83D\uDCE9'], '\uE103', '\uDBB9\uDD2B', ['envelope_with_arrow'], 18, 28
  ],
  '1f4ea': [
        ['\uD83D\uDCEA'], '\uE101', '\uDBB9\uDD2C', ['mailbox_closed'], 18, 29
  ],
  '1f4eb': [
        ['\uD83D\uDCEB'], '\uE101', '\uDBB9\uDD2D', ['mailbox'], 19, 0
  ],
  '1f4ec': [
        ['\uD83D\uDCEC'], '', '', ['mailbox_with_mail'], 19, 1
  ],
  '1f4ed': [
        ['\uD83D\uDCED'], '', '', ['mailbox_with_no_mail'], 19, 2
  ],
  '1f4ee': [
        ['\uD83D\uDCEE'], '\uE102', '\uDBB9\uDD2E', ['postbox'], 19, 3
  ],
  '1f4ef': [
        ['\uD83D\uDCEF'], '', '', ['postal_horn'], 19, 4
  ],
  '1f4f0': [
        ['\uD83D\uDCF0'], '', '\uDBBA\uDC22', ['newspaper'], 19, 5
  ],
  '1f4f1': [
        ['\uD83D\uDCF1'], '\uE00A', '\uDBB9\uDD25', ['iphone'], 19, 6
  ],
  '1f4f2': [
        ['\uD83D\uDCF2'], '\uE104', '\uDBB9\uDD26', ['calling'], 19, 7
  ],
  '1f4f3': [
        ['\uD83D\uDCF3'], '\uE250', '\uDBBA\uDC39', ['vibration_mode'], 19, 8
  ],
  '1f4f4': [
        ['\uD83D\uDCF4'], '\uE251', '\uDBBA\uDC3A', ['mobile_phone_off'], 19, 9
  ],
  '1f4f5': [
        ['\uD83D\uDCF5'], '', '', ['no_mobile_phones'], 19, 10
  ],
  '1f4f6': [
        ['\uD83D\uDCF6'], '\uE20B', '\uDBBA\uDC38', ['signal_strength'], 19, 11
  ],
  '1f4f7': [
        ['\uD83D\uDCF7'], '\uE008', '\uDBB9\uDCEF', ['camera'], 19, 12
  ],
  '1f4f9': [
        ['\uD83D\uDCF9'], '\uE03D', '\uDBB9\uDCF9', ['video_camera'], 19, 13
  ],
  '1f4fa': [
        ['\uD83D\uDCFA'], '\uE12A', '\uDBBA\uDC1C', ['tv'], 19, 14
  ],
  '1f4fb': [
        ['\uD83D\uDCFB'], '\uE128', '\uDBBA\uDC1F', ['radio'], 19, 15
  ],
  '1f4fc': [
        ['\uD83D\uDCFC'], '\uE129', '\uDBBA\uDC20', ['vhs'], 19, 16
  ],
  '1f500': [
        ['\uD83D\uDD00'], '', '', ['twisted_rightwards_arrows'], 19, 17
  ],
  '1f501': [
        ['\uD83D\uDD01'], '', '', ['repeat'], 19, 18
  ],
  '1f502': [
        ['\uD83D\uDD02'], '', '', ['repeat_one'], 19, 19
  ],
  '1f503': [
        ['\uD83D\uDD03'], '', '\uDBBA\uDF91', ['arrows_clockwise'], 19, 20
  ],
  '1f504': [
        ['\uD83D\uDD04'], '', '', ['arrows_counterclockwise'], 19, 21
  ],
  '1f505': [
        ['\uD83D\uDD05'], '', '', ['low_brightness'], 19, 22
  ],
  '1f506': [
        ['\uD83D\uDD06'], '', '', ['high_brightness'], 19, 23
  ],
  '1f507': [
        ['\uD83D\uDD07'], '', '', ['mute'], 19, 24
  ],
  '1f508': [
        ['\uD83D\uDD08'], '', '', ['speaker'], 19, 25
  ],
  '1f509': [
        ['\uD83D\uDD09'], '', '', ['sound'], 19, 26
  ],
  '1f50a': [
        ['\uD83D\uDD0A'], '\uE141', '\uDBBA\uDC21', ['loud_sound'], 19, 27
  ],
  '1f50b': [
        ['\uD83D\uDD0B'], '', '\uDBB9\uDCFC', ['battery'], 19, 28
  ],
  '1f50c': [
        ['\uD83D\uDD0C'], '', '\uDBB9\uDCFE', ['electric_plug'], 19, 29
  ],
  '1f50d': [
        ['\uD83D\uDD0D'], '\uE114', '\uDBBA\uDF85', ['mag'], 20, 0
  ],
  '1f50e': [
        ['\uD83D\uDD0E'], '\uE114', '\uDBBA\uDF8D', ['mag_right'], 20, 1
  ],
  '1f50f': [
        ['\uD83D\uDD0F'], '\uE144', '\uDBBA\uDF90', ['lock_with_ink_pen'], 20, 2
  ],
  '1f510': [
        ['\uD83D\uDD10'], '\uE144', '\uDBBA\uDF8A', ['closed_lock_with_key'], 20, 3
  ],
  '1f511': [
        ['\uD83D\uDD11'], '\uE03F', '\uDBBA\uDF82', ['key'], 20, 4
  ],
  '1f512': [
        ['\uD83D\uDD12'], '\uE144', '\uDBBA\uDF86', ['lock'], 20, 5
  ],
  '1f513': [
        ['\uD83D\uDD13'], '\uE145', '\uDBBA\uDF87', ['unlock'], 20, 6
  ],
  '1f514': [
        ['\uD83D\uDD14'], '\uE325', '\uDBB9\uDCF2', ['bell'], 20, 7
  ],
  '1f515': [
        ['\uD83D\uDD15'], '', '', ['no_bell'], 20, 8
  ],
  '1f516': [
        ['\uD83D\uDD16'], '', '\uDBBA\uDF8F', ['bookmark'], 20, 9
  ],
  '1f517': [
        ['\uD83D\uDD17'], '', '\uDBBA\uDF4B', ['link'], 20, 10
  ],
  '1f518': [
        ['\uD83D\uDD18'], '', '\uDBBA\uDF8C', ['radio_button'], 20, 11
  ],
  '1f519': [
        ['\uD83D\uDD19'], '\uE235', '\uDBBA\uDF8E', ['back'], 20, 12
  ],
  '1f51a': [
        ['\uD83D\uDD1A'], '', '\uDBB8\uDC1A', ['end'], 20, 13
  ],
  '1f51b': [
        ['\uD83D\uDD1B'], '', '\uDBB8\uDC19', ['on'], 20, 14
  ],
  '1f51c': [
        ['\uD83D\uDD1C'], '', '\uDBB8\uDC18', ['soon'], 20, 15
  ],
  '1f51d': [
        ['\uD83D\uDD1D'], '\uE24C', '\uDBBA\uDF42', ['top'], 20, 16
  ],
  '1f51e': [
        ['\uD83D\uDD1E'], '\uE207', '\uDBBA\uDF25', ['underage'], 20, 17
  ],
  '1f51f': [
        ['\uD83D\uDD1F'], '', '\uDBBA\uDC3B', ['keycap_ten'], 20, 18
  ],
  '1f520': [
        ['\uD83D\uDD20'], '', '\uDBBA\uDF7C', ['capital_abcd'], 20, 19
  ],
  '1f521': [
        ['\uD83D\uDD21'], '', '\uDBBA\uDF7D', ['abcd'], 20, 20
  ],
  '1f522': [
        ['\uD83D\uDD22'], '', '\uDBBA\uDF7E', ['1234'], 20, 21
  ],
  '1f523': [
        ['\uD83D\uDD23'], '', '\uDBBA\uDF7F', ['symbols'], 20, 22
  ],
  '1f524': [
        ['\uD83D\uDD24'], '', '\uDBBA\uDF80', ['abc'], 20, 23
  ],
  '1f525': [
        ['\uD83D\uDD25'], '\uE11D', '\uDBB9\uDCF6', ['fire'], 20, 24
  ],
  '1f526': [
        ['\uD83D\uDD26'], '', '\uDBB9\uDCFB', ['flashlight'], 20, 25
  ],
  '1f527': [
        ['\uD83D\uDD27'], '', '\uDBB9\uDCC9', ['wrench'], 20, 26
  ],
  '1f528': [
        ['\uD83D\uDD28'], '\uE116', '\uDBB9\uDCCA', ['hammer'], 20, 27
  ],
  '1f529': [
        ['\uD83D\uDD29'], '', '\uDBB9\uDCCB', ['nut_and_bolt'], 20, 28
  ],
  '1f52a': [
        ['\uD83D\uDD2A'], '', '\uDBB9\uDCFA', ['hocho', 'knife'], 20, 29
  ],
  '1f52b': [
        ['\uD83D\uDD2B'], '\uE113', '\uDBB9\uDCF5', ['gun'], 21, 0
  ],
  '1f52c': [
        ['\uD83D\uDD2C'], '', '', ['microscope'], 21, 1
  ],
  '1f52d': [
        ['\uD83D\uDD2D'], '', '', ['telescope'], 21, 2
  ],
  '1f52e': [
        ['\uD83D\uDD2E'], '\uE23E', '\uDBB9\uDCF7', ['crystal_ball'], 21, 3
  ],
  '1f52f': [
        ['\uD83D\uDD2F'], '\uE23E', '\uDBB9\uDCF8', ['six_pointed_star'], 21, 4
  ],
  '1f530': [
        ['\uD83D\uDD30'], '\uE209', '\uDBB8\uDC44', ['beginner'], 21, 5
  ],
  '1f531': [
        ['\uD83D\uDD31'], '\uE031', '\uDBB9\uDCD2', ['trident'], 21, 6
  ],
  '1f532': [
        ['\uD83D\uDD32'], '\uE21A', '\uDBBA\uDF64', ['black_square_button'], 21, 7
  ],
  '1f533': [
        ['\uD83D\uDD33'], '\uE21B', '\uDBBA\uDF67', ['white_square_button'], 21, 8
  ],
  '1f534': [
        ['\uD83D\uDD34'], '\uE219', '\uDBBA\uDF63', ['red_circle'], 21, 9
  ],
  '1f535': [
        ['\uD83D\uDD35'], '\uE21A', '\uDBBA\uDF64', ['large_blue_circle'], 21, 10
  ],
  '1f536': [
        ['\uD83D\uDD36'], '\uE21B', '\uDBBA\uDF73', ['large_orange_diamond'], 21, 11
  ],
  '1f537': [
        ['\uD83D\uDD37'], '\uE21B', '\uDBBA\uDF74', ['large_blue_diamond'], 21, 12
  ],
  '1f538': [
        ['\uD83D\uDD38'], '\uE21B', '\uDBBA\uDF75', ['small_orange_diamond'], 21, 13
  ],
  '1f539': [
        ['\uD83D\uDD39'], '\uE21B', '\uDBBA\uDF76', ['small_blue_diamond'], 21, 14
  ],
  '1f53a': [
        ['\uD83D\uDD3A'], '', '\uDBBA\uDF78', ['small_red_triangle'], 21, 15
  ],
  '1f53b': [
        ['\uD83D\uDD3B'], '', '\uDBBA\uDF79', ['small_red_triangle_down'], 21, 16
  ],
  '1f53c': [
        ['\uD83D\uDD3C'], '', '\uDBBA\uDF01', ['arrow_up_small'], 21, 17
  ],
  '1f53d': [
        ['\uD83D\uDD3D'], '', '\uDBBA\uDF00', ['arrow_down_small'], 21, 18
  ],
  '1f550': [
        ['\uD83D\uDD50'], '\uE024', '\uDBB8\uDC1E', ['clock1'], 21, 19
  ],
  '1f551': [
        ['\uD83D\uDD51'], '\uE025', '\uDBB8\uDC1F', ['clock2'], 21, 20
  ],
  '1f552': [
        ['\uD83D\uDD52'], '\uE026', '\uDBB8\uDC20', ['clock3'], 21, 21
  ],
  '1f553': [
        ['\uD83D\uDD53'], '\uE027', '\uDBB8\uDC21', ['clock4'], 21, 22
  ],
  '1f554': [
        ['\uD83D\uDD54'], '\uE028', '\uDBB8\uDC22', ['clock5'], 21, 23
  ],
  '1f555': [
        ['\uD83D\uDD55'], '\uE029', '\uDBB8\uDC23', ['clock6'], 21, 24
  ],
  '1f556': [
        ['\uD83D\uDD56'], '\uE02A', '\uDBB8\uDC24', ['clock7'], 21, 25
  ],
  '1f557': [
        ['\uD83D\uDD57'], '\uE02B', '\uDBB8\uDC25', ['clock8'], 21, 26
  ],
  '1f558': [
        ['\uD83D\uDD58'], '\uE02C', '\uDBB8\uDC26', ['clock9'], 21, 27
  ],
  '1f559': [
        ['\uD83D\uDD59'], '\uE02D', '\uDBB8\uDC27', ['clock10'], 21, 28
  ],
  '1f55a': [
        ['\uD83D\uDD5A'], '\uE02E', '\uDBB8\uDC28', ['clock11'], 21, 29
  ],
  '1f55b': [
        ['\uD83D\uDD5B'], '\uE02F', '\uDBB8\uDC29', ['clock12'], 22, 0
  ],
  '1f55c': [
        ['\uD83D\uDD5C'], '', '', ['clock130'], 22, 1
  ],
  '1f55d': [
        ['\uD83D\uDD5D'], '', '', ['clock230'], 22, 2
  ],
  '1f55e': [
        ['\uD83D\uDD5E'], '', '', ['clock330'], 22, 3
  ],
  '1f55f': [
        ['\uD83D\uDD5F'], '', '', ['clock430'], 22, 4
  ],
  '1f560': [
        ['\uD83D\uDD60'], '', '', ['clock530'], 22, 5
  ],
  '1f561': [
        ['\uD83D\uDD61'], '', '', ['clock630'], 22, 6
  ],
  '1f562': [
        ['\uD83D\uDD62'], '', '', ['clock730'], 22, 7
  ],
  '1f563': [
        ['\uD83D\uDD63'], '', '', ['clock830'], 22, 8
  ],
  '1f564': [
        ['\uD83D\uDD64'], '', '', ['clock930'], 22, 9
  ],
  '1f565': [
        ['\uD83D\uDD65'], '', '', ['clock1030'], 22, 10
  ],
  '1f566': [
        ['\uD83D\uDD66'], '', '', ['clock1130'], 22, 11
  ],
  '1f567': [
        ['\uD83D\uDD67'], '', '', ['clock1230'], 22, 12
  ],
  '1f5fb': [
        ['\uD83D\uDDFB'], '\uE03B', '\uDBB9\uDCC3', ['mount_fuji'], 22, 13
  ],
  '1f5fc': [
        ['\uD83D\uDDFC'], '\uE509', '\uDBB9\uDCC4', ['tokyo_tower'], 22, 14
  ],
  '1f5fd': [
        ['\uD83D\uDDFD'], '\uE51D', '\uDBB9\uDCC6', ['statue_of_liberty'], 22, 15
  ],
  '1f5fe': [
        ['\uD83D\uDDFE'], '', '\uDBB9\uDCC7', ['japan'], 22, 16
  ],
  '1f5ff': [
        ['\uD83D\uDDFF'], '', '\uDBB9\uDCC8', ['moyai'], 22, 17
  ],
  '1f600': [
        ['\uD83D\uDE00'], '', '', ['grinning'], 22, 18, ':D'
  ],
  '1f601': [
        ['\uD83D\uDE01'], '\uE404', '\uDBB8\uDF33', ['grin'], 22, 19
  ],
  '1f602': [
        ['\uD83D\uDE02'], '\uE412', '\uDBB8\uDF34', ['joy'], 22, 20
  ],
  '1f603': [
        ['\uD83D\uDE03'], '\uE057', '\uDBB8\uDF30', ['smiley'], 22, 21, ':)'
  ],
  '1f604': [
        ['\uD83D\uDE04'], '\uE415', '\uDBB8\uDF38', ['smile'], 22, 22, ':)'
  ],
  '1f605': [
        ['\uD83D\uDE05'], '\uE415\uE331', '\uDBB8\uDF31', ['sweat_smile'], 22, 23
  ],
  '1f606': [
        ['\uD83D\uDE06'], '\uE40A', '\uDBB8\uDF32', ['satisfied'], 22, 24
  ],
  '1f607': [
        ['\uD83D\uDE07'], '', '', ['innocent'], 22, 25
  ],
  '1f608': [
        ['\uD83D\uDE08'], '', '', ['smiling_imp'], 22, 26
  ],
  '1f609': [
        ['\uD83D\uDE09'], '\uE405', '\uDBB8\uDF47', ['wink'], 22, 27, ';)'
  ],
  '1f60a': [
        ['\uD83D\uDE0A'], '\uE056', '\uDBB8\uDF35', ['blush'], 22, 28
  ],
  '1f60b': [
        ['\uD83D\uDE0B'], '\uE056', '\uDBB8\uDF2B', ['yum'], 22, 29
  ],
  '1f60c': [
        ['\uD83D\uDE0C'], '\uE40A', '\uDBB8\uDF3E', ['relieved'], 23, 0
  ],
  '1f60d': [
        ['\uD83D\uDE0D'], '\uE106', '\uDBB8\uDF27', ['heart_eyes'], 23, 1
  ],
  '1f60e': [
        ['\uD83D\uDE0E'], '', '', ['sunglasses'], 23, 2
  ],
  '1f60f': [
        ['\uD83D\uDE0F'], '\uE402', '\uDBB8\uDF43', ['smirk'], 23, 3
  ],
  '1f610': [
        ['\uD83D\uDE10'], '', '', ['neutral_face'], 23, 4
  ],
  '1f611': [
        ['\uD83D\uDE11'], '', '', ['expressionless'], 23, 5
  ],
  '1f612': [
        ['\uD83D\uDE12'], '\uE40E', '\uDBB8\uDF26', ['unamused'], 23, 6
  ],
  '1f613': [
        ['\uD83D\uDE13'], '\uE108', '\uDBB8\uDF44', ['sweat'], 23, 7
  ],
  '1f614': [
        ['\uD83D\uDE14'], '\uE403', '\uDBB8\uDF40', ['pensive'], 23, 8
  ],
  '1f615': [
        ['\uD83D\uDE15'], '', '', ['confused'], 23, 9
  ],
  '1f616': [
        ['\uD83D\uDE16'], '\uE407', '\uDBB8\uDF3F', ['confounded'], 23, 10
  ],
  '1f617': [
        ['\uD83D\uDE17'], '', '', ['kissing'], 23, 11
  ],
  '1f618': [
        ['\uD83D\uDE18'], '\uE418', '\uDBB8\uDF2C', ['kissing_heart'], 23, 12
  ],
  '1f619': [
        ['\uD83D\uDE19'], '', '', ['kissing_smiling_eyes'], 23, 13
  ],
  '1f61a': [
        ['\uD83D\uDE1A'], '\uE417', '\uDBB8\uDF2D', ['kissing_closed_eyes'], 23, 14
  ],
  '1f61b': [
        ['\uD83D\uDE1B'], '', '', ['stuck_out_tongue'], 23, 15, ':p'
  ],
  '1f61c': [
        ['\uD83D\uDE1C'], '\uE105', '\uDBB8\uDF29', ['stuck_out_tongue_winking_eye'], 23, 16, ';p'
  ],
  '1f61d': [
        ['\uD83D\uDE1D'], '\uE409', '\uDBB8\uDF2A', ['stuck_out_tongue_closed_eyes'], 23, 17
  ],
  '1f61e': [
        ['\uD83D\uDE1E'], '\uE058', '\uDBB8\uDF23', ['disappointed'], 23, 18, ':('
  ],
  '1f61f': [
        ['\uD83D\uDE1F'], '', '', ['worried'], 23, 19
  ],
  '1f620': [
        ['\uD83D\uDE20'], '\uE059', '\uDBB8\uDF20', ['angry'], 23, 20
  ],
  '1f621': [
        ['\uD83D\uDE21'], '\uE416', '\uDBB8\uDF3D', ['rage'], 23, 21
  ],
  '1f622': [
        ['\uD83D\uDE22'], '\uE413', '\uDBB8\uDF39', ['cry'], 23, 22, ":'("
  ],
  '1f623': [
        ['\uD83D\uDE23'], '\uE406', '\uDBB8\uDF3C', ['persevere'], 23, 23
  ],
  '1f624': [
        ['\uD83D\uDE24'], '\uE404', '\uDBB8\uDF28', ['triumph'], 23, 24
  ],
  '1f625': [
        ['\uD83D\uDE25'], '\uE401', '\uDBB8\uDF45', ['disappointed_relieved'], 23, 25
  ],
  '1f626': [
        ['\uD83D\uDE26'], '', '', ['frowning'], 23, 26
  ],
  '1f627': [
        ['\uD83D\uDE27'], '', '', ['anguished'], 23, 27
  ],
  '1f628': [
        ['\uD83D\uDE28'], '\uE40B', '\uDBB8\uDF3B', ['fearful'], 23, 28
  ],
  '1f629': [
        ['\uD83D\uDE29'], '\uE403', '\uDBB8\uDF21', ['weary'], 23, 29
  ],
  '1f62a': [
        ['\uD83D\uDE2A'], '\uE408', '\uDBB8\uDF42', ['sleepy'], 24, 0
  ],
  '1f62b': [
        ['\uD83D\uDE2B'], '\uE406', '\uDBB8\uDF46', ['tired_face'], 24, 1
  ],
  '1f62c': [
        ['\uD83D\uDE2C'], '', '', ['grimacing'], 24, 2
  ],
  '1f62d': [
        ['\uD83D\uDE2D'], '\uE411', '\uDBB8\uDF3A', ['sob'], 24, 3, ":'("
  ],
  '1f62e': [
        ['\uD83D\uDE2E'], '', '', ['open_mouth'], 24, 4
  ],
  '1f62f': [
        ['\uD83D\uDE2F'], '', '', ['hushed'], 24, 5
  ],
  '1f630': [
        ['\uD83D\uDE30'], '\uE40F', '\uDBB8\uDF25', ['cold_sweat'], 24, 6
  ],
  '1f631': [
        ['\uD83D\uDE31'], '\uE107', '\uDBB8\uDF41', ['scream'], 24, 7
  ],
  '1f632': [
        ['\uD83D\uDE32'], '\uE410', '\uDBB8\uDF22', ['astonished'], 24, 8
  ],
  '1f633': [
        ['\uD83D\uDE33'], '\uE40D', '\uDBB8\uDF2F', ['flushed'], 24, 9
  ],
  '1f634': [
        ['\uD83D\uDE34'], '', '', ['sleeping'], 24, 10
  ],
  '1f635': [
        ['\uD83D\uDE35'], '\uE406', '\uDBB8\uDF24', ['dizzy_face'], 24, 11
  ],
  '1f636': [
        ['\uD83D\uDE36'], '', '', ['no_mouth'], 24, 12
  ],
  '1f637': [
        ['\uD83D\uDE37'], '\uE40C', '\uDBB8\uDF2E', ['mask'], 24, 13
  ],
  '1f638': [
        ['\uD83D\uDE38'], '\uE404', '\uDBB8\uDF49', ['smile_cat'], 24, 14
  ],
  '1f639': [
        ['\uD83D\uDE39'], '\uE412', '\uDBB8\uDF4A', ['joy_cat'], 24, 15
  ],
  '1f63a': [
        ['\uD83D\uDE3A'], '\uE057', '\uDBB8\uDF48', ['smiley_cat'], 24, 16
  ],
  '1f63b': [
        ['\uD83D\uDE3B'], '\uE106', '\uDBB8\uDF4C', ['heart_eyes_cat'], 24, 17
  ],
  '1f63c': [
        ['\uD83D\uDE3C'], '\uE404', '\uDBB8\uDF4F', ['smirk_cat'], 24, 18
  ],
  '1f63d': [
        ['\uD83D\uDE3D'], '\uE418', '\uDBB8\uDF4B', ['kissing_cat'], 24, 19
  ],
  '1f63e': [
        ['\uD83D\uDE3E'], '\uE416', '\uDBB8\uDF4E', ['pouting_cat'], 24, 20
  ],
  '1f63f': [
        ['\uD83D\uDE3F'], '\uE413', '\uDBB8\uDF4D', ['crying_cat_face'], 24, 21
  ],
  '1f640': [
        ['\uD83D\uDE40'], '\uE403', '\uDBB8\uDF50', ['scream_cat'], 24, 22
  ],
  '1f645': [
        ['\uD83D\uDE45'], '\uE423', '\uDBB8\uDF51', ['no_good'], 24, 23
  ],
  '1f646': [
        ['\uD83D\uDE46'], '\uE424', '\uDBB8\uDF52', ['ok_woman'], 24, 24
  ],
  '1f647': [
        ['\uD83D\uDE47'], '\uE426', '\uDBB8\uDF53', ['bow'], 24, 25
  ],
  '1f648': [
        ['\uD83D\uDE48'], '', '\uDBB8\uDF54', ['see_no_evil'], 24, 26
  ],
  '1f649': [
        ['\uD83D\uDE49'], '', '\uDBB8\uDF56', ['hear_no_evil'], 24, 27
  ],
  '1f64a': [
        ['\uD83D\uDE4A'], '', '\uDBB8\uDF55', ['speak_no_evil'], 24, 28
  ],
  '1f64b': [
        ['\uD83D\uDE4B'], '\uE012', '\uDBB8\uDF57', ['raising_hand'], 24, 29
  ],
  '1f64c': [
        ['\uD83D\uDE4C'], '\uE427', '\uDBB8\uDF58', ['raised_hands'], 25, 0
  ],
  '1f64d': [
        ['\uD83D\uDE4D'], '\uE403', '\uDBB8\uDF59', ['person_frowning'], 25, 1
  ],
  '1f64e': [
        ['\uD83D\uDE4E'], '\uE416', '\uDBB8\uDF5A', ['person_with_pouting_face'], 25, 2
  ],
  '1f64f': [
        ['\uD83D\uDE4F'], '\uE41D', '\uDBB8\uDF5B', ['pray'], 25, 3
  ],
  '1f680': [
        ['\uD83D\uDE80'], '\uE10D', '\uDBB9\uDFED', ['rocket'], 25, 4
  ],
  '1f681': [
        ['\uD83D\uDE81'], '', '', ['helicopter'], 25, 5
  ],
  '1f682': [
        ['\uD83D\uDE82'], '', '', ['steam_locomotive'], 25, 6
  ],
  '1f683': [
        ['\uD83D\uDE83'], '\uE01E', '\uDBB9\uDFDF', ['railway_car'], 25, 7
  ],
  '1f684': [
        ['\uD83D\uDE84'], '\uE435', '\uDBB9\uDFE2', ['bullettrain_side'], 25, 8
  ],
  '1f685': [
        ['\uD83D\uDE85'], '\uE01F', '\uDBB9\uDFE3', ['bullettrain_front'], 25, 9
  ],
  '1f686': [
        ['\uD83D\uDE86'], '', '', ['train2'], 25, 10
  ],
  '1f687': [
        ['\uD83D\uDE87'], '\uE434', '\uDBB9\uDFE0', ['metro'], 25, 11
  ],
  '1f688': [
        ['\uD83D\uDE88'], '', '', ['light_rail'], 25, 12
  ],
  '1f689': [
        ['\uD83D\uDE89'], '\uE039', '\uDBB9\uDFEC', ['station'], 25, 13
  ],
  '1f68a': [
        ['\uD83D\uDE8A'], '', '', ['tram'], 25, 14
  ],
  '1f68b': [
        ['\uD83D\uDE8B'], '', '', ['train'], 25, 15
  ],
  '1f68c': [
        ['\uD83D\uDE8C'], '\uE159', '\uDBB9\uDFE6', ['bus'], 25, 16
  ],
  '1f68d': [
        ['\uD83D\uDE8D'], '', '', ['oncoming_bus'], 25, 17
  ],
  '1f68e': [
        ['\uD83D\uDE8E'], '', '', ['trolleybus'], 25, 18
  ],
  '1f68f': [
        ['\uD83D\uDE8F'], '\uE150', '\uDBB9\uDFE7', ['busstop'], 25, 19
  ],
  '1f690': [
        ['\uD83D\uDE90'], '', '', ['minibus'], 25, 20
  ],
  '1f691': [
        ['\uD83D\uDE91'], '\uE431', '\uDBB9\uDFF3', ['ambulance'], 25, 21
  ],
  '1f692': [
        ['\uD83D\uDE92'], '\uE430', '\uDBB9\uDFF2', ['fire_engine'], 25, 22
  ],
  '1f693': [
        ['\uD83D\uDE93'], '\uE432', '\uDBB9\uDFF4', ['police_car'], 25, 23
  ],
  '1f694': [
        ['\uD83D\uDE94'], '', '', ['oncoming_police_car'], 25, 24
  ],
  '1f695': [
        ['\uD83D\uDE95'], '\uE15A', '\uDBB9\uDFEF', ['taxi'], 25, 25
  ],
  '1f696': [
        ['\uD83D\uDE96'], '', '', ['oncoming_taxi'], 25, 26
  ],
  '1f697': [
        ['\uD83D\uDE97'], '\uE01B', '\uDBB9\uDFE4', ['car', 'red_car'], 25, 27
  ],
  '1f698': [
        ['\uD83D\uDE98'], '', '', ['oncoming_automobile'], 25, 28
  ],
  '1f699': [
        ['\uD83D\uDE99'], '\uE42E', '\uDBB9\uDFE5', ['blue_car'], 25, 29
  ],
  '1f69a': [
        ['\uD83D\uDE9A'], '\uE42F', '\uDBB9\uDFF1', ['truck'], 26, 0
  ],
  '1f69b': [
        ['\uD83D\uDE9B'], '', '', ['articulated_lorry'], 26, 1
  ],
  '1f69c': [
        ['\uD83D\uDE9C'], '', '', ['tractor'], 26, 2
  ],
  '1f69d': [
        ['\uD83D\uDE9D'], '', '', ['monorail'], 26, 3
  ],
  '1f69e': [
        ['\uD83D\uDE9E'], '', '', ['mountain_railway'], 26, 4
  ],
  '1f69f': [
        ['\uD83D\uDE9F'], '', '', ['suspension_railway'], 26, 5
  ],
  '1f6a0': [
        ['\uD83D\uDEA0'], '', '', ['mountain_cableway'], 26, 6
  ],
  '1f6a1': [
        ['\uD83D\uDEA1'], '', '', ['aerial_tramway'], 26, 7
  ],
  '1f6a2': [
        ['\uD83D\uDEA2'], '\uE202', '\uDBB9\uDFE8', ['ship'], 26, 8
  ],
  '1f6a3': [
        ['\uD83D\uDEA3'], '', '', ['rowboat'], 26, 9
  ],
  '1f6a4': [
        ['\uD83D\uDEA4'], '\uE135', '\uDBB9\uDFEE', ['speedboat'], 26, 10
  ],
  '1f6a5': [
        ['\uD83D\uDEA5'], '\uE14E', '\uDBB9\uDFF7', ['traffic_light'], 26, 11
  ],
  '1f6a6': [
        ['\uD83D\uDEA6'], '', '', ['vertical_traffic_light'], 26, 12
  ],
  '1f6a7': [
        ['\uD83D\uDEA7'], '\uE137', '\uDBB9\uDFF8', ['construction'], 26, 13
  ],
  '1f6a8': [
        ['\uD83D\uDEA8'], '\uE432', '\uDBB9\uDFF9', ['rotating_light'], 26, 14
  ],
  '1f6a9': [
        ['\uD83D\uDEA9'], '', '\uDBBA\uDF22', ['triangular_flag_on_post'], 26, 15
  ],
  '1f6aa': [
        ['\uD83D\uDEAA'], '', '\uDBB9\uDCF3', ['door'], 26, 16
  ],
  '1f6ab': [
        ['\uD83D\uDEAB'], '', '\uDBBA\uDF48', ['no_entry_sign'], 26, 17
  ],
  '1f6ac': [
        ['\uD83D\uDEAC'], '\uE30E', '\uDBBA\uDF1E', ['smoking'], 26, 18
  ],
  '1f6ad': [
        ['\uD83D\uDEAD'], '\uE208', '\uDBBA\uDF1F', ['no_smoking'], 26, 19
  ],
  '1f6ae': [
        ['\uD83D\uDEAE'], '', '', ['put_litter_in_its_place'], 26, 20
  ],
  '1f6af': [
        ['\uD83D\uDEAF'], '', '', ['do_not_litter'], 26, 21
  ],
  '1f6b0': [
        ['\uD83D\uDEB0'], '', '', ['potable_water'], 26, 22
  ],
  '1f6b1': [
        ['\uD83D\uDEB1'], '', '', ['non-potable_water'], 26, 23
  ],
  '1f6b2': [
        ['\uD83D\uDEB2'], '\uE136', '\uDBB9\uDFEB', ['bike'], 26, 24
  ],
  '1f6b3': [
        ['\uD83D\uDEB3'], '', '', ['no_bicycles'], 26, 25
  ],
  '1f6b4': [
        ['\uD83D\uDEB4'], '', '', ['bicyclist'], 26, 26
  ],
  '1f6b5': [
        ['\uD83D\uDEB5'], '', '', ['mountain_bicyclist'], 26, 27
  ],
  '1f6b6': [
        ['\uD83D\uDEB6'], '\uE201', '\uDBB9\uDFF0', ['walking'], 26, 28
  ],
  '1f6b7': [
        ['\uD83D\uDEB7'], '', '', ['no_pedestrians'], 26, 29
  ],
  '1f6b8': [
        ['\uD83D\uDEB8'], '', '', ['children_crossing'], 27, 0
  ],
  '1f6b9': [
        ['\uD83D\uDEB9'], '\uE138', '\uDBBA\uDF33', ['mens'], 27, 1
  ],
  '1f6ba': [
        ['\uD83D\uDEBA'], '\uE139', '\uDBBA\uDF34', ['womens'], 27, 2
  ],
  '1f6bb': [
        ['\uD83D\uDEBB'], '\uE151', '\uDBB9\uDD06', ['restroom'], 27, 3
  ],
  '1f6bc': [
        ['\uD83D\uDEBC'], '\uE13A', '\uDBBA\uDF35', ['baby_symbol'], 27, 4
  ],
  '1f6bd': [
        ['\uD83D\uDEBD'], '\uE140', '\uDBB9\uDD07', ['toilet'], 27, 5
  ],
  '1f6be': [
        ['\uD83D\uDEBE'], '\uE309', '\uDBB9\uDD08', ['wc'], 27, 6
  ],
  '1f6bf': [
        ['\uD83D\uDEBF'], '', '', ['shower'], 27, 7
  ],
  '1f6c0': [
        ['\uD83D\uDEC0'], '\uE13F', '\uDBB9\uDD05', ['bath'], 27, 8
  ],
  '1f6c1': [
        ['\uD83D\uDEC1'], '', '', ['bathtub'], 27, 9
  ],
  '1f6c2': [
        ['\uD83D\uDEC2'], '', '', ['passport_control'], 27, 10
  ],
  '1f6c3': [
        ['\uD83D\uDEC3'], '', '', ['customs'], 27, 11
  ],
  '1f6c4': [
        ['\uD83D\uDEC4'], '', '', ['baggage_claim'], 27, 12
  ],
  '1f6c5': [
        ['\uD83D\uDEC5'], '', '', ['left_luggage'], 27, 13
  ],
  '0023-20e3': [
        ['\u0023\uFE0F\u20E3', '\u0023\u20E3'], '\uE210', '\uDBBA\uDC2C', ['hash'], 27, 14
  ],
  '0030-20e3': [
        ['\u0030\uFE0F\u20E3', '\u0030\u20E3'], '\uE225', '\uDBBA\uDC37', ['zero'], 27, 15
  ],
  '0031-20e3': [
        ['\u0031\uFE0F\u20E3', '\u0031\u20E3'], '\uE21C', '\uDBBA\uDC2E', ['one'], 27, 16
  ],
  '0032-20e3': [
        ['\u0032\uFE0F\u20E3', '\u0032\u20E3'], '\uE21D', '\uDBBA\uDC2F', ['two'], 27, 17
  ],
  '0033-20e3': [
        ['\u0033\uFE0F\u20E3', '\u0033\u20E3'], '\uE21E', '\uDBBA\uDC30', ['three'], 27, 18
  ],
  '0034-20e3': [
        ['\u0034\uFE0F\u20E3', '\u0034\u20E3'], '\uE21F', '\uDBBA\uDC31', ['four'], 27, 19
  ],
  '0035-20e3': [
        ['\u0035\uFE0F\u20E3', '\u0035\u20E3'], '\uE220', '\uDBBA\uDC32', ['five'], 27, 20
  ],
  '0036-20e3': [
        ['\u0036\uFE0F\u20E3', '\u0036\u20E3'], '\uE221', '\uDBBA\uDC33', ['six'], 27, 21
  ],
  '0037-20e3': [
        ['\u0037\uFE0F\u20E3', '\u0037\u20E3'], '\uE222', '\uDBBA\uDC34', ['seven'], 27, 22
  ],
  '0038-20e3': [
        ['\u0038\uFE0F\u20E3', '\u0038\u20E3'], '\uE223', '\uDBBA\uDC35', ['eight'], 27, 23
  ],
  '0039-20e3': [
        ['\u0039\uFE0F\u20E3', '\u0039\u20E3'], '\uE224', '\uDBBA\uDC36', ['nine'], 27, 24
  ],
  '1f1e8-1f1f3': [
        ['\uD83C\uDDE8\uD83C\uDDF3'], '\uE513', '\uDBB9\uDCED', ['cn'], 27, 25
  ],
  '1f1e9-1f1ea': [
        ['\uD83C\uDDE9\uD83C\uDDEA'], '\uE50E', '\uDBB9\uDCE8', ['de'], 27, 26
  ],
  '1f1ea-1f1f8': [
        ['\uD83C\uDDEA\uD83C\uDDF8'], '\uE511', '\uDBB9\uDCEB', ['es'], 27, 27
  ],
  '1f1eb-1f1f7': [
        ['\uD83C\uDDEB\uD83C\uDDF7'], '\uE50D', '\uDBB9\uDCE7', ['fr'], 27, 28
  ],
  '1f1ec-1f1e7': [
        ['\uD83C\uDDEC\uD83C\uDDE7'], '\uE510', '\uDBB9\uDCEA', ['gb', 'uk'], 27, 29
  ],
  '1f1ee-1f1f9': [
        ['\uD83C\uDDEE\uD83C\uDDF9'], '\uE50F', '\uDBB9\uDCE9', ['it'], 28, 0
  ],
  '1f1ef-1f1f5': [
        ['\uD83C\uDDEF\uD83C\uDDF5'], '\uE50B', '\uDBB9\uDCE5', ['jp'], 28, 1
  ],
  '1f1f0-1f1f7': [
        ['\uD83C\uDDF0\uD83C\uDDF7'], '\uE514', '\uDBB9\uDCEE', ['kr'], 28, 2
  ],
  '1f1f7-1f1fa': [
        ['\uD83C\uDDF7\uD83C\uDDFA'], '\uE512', '\uDBB9\uDCEC', ['ru'], 28, 3
  ],
  '1f1fa-1f1f8': [
        ['\uD83C\uDDFA\uD83C\uDDF8'], '\uE50C', '\uDBB9\uDCE6', ['us'], 28, 4
  ]
}

Config.smileys = {
  '<3': 'heart',
  '<\/3': 'broken_heart',
  ':)': 'blush',
  '(:': 'blush',
  ':-)': 'blush',
  'C:': 'smile',
  'c:': 'smile',
  ':D': 'smile',
  ':-D': 'smile',
  ';)': 'wink',
  ';-)': 'wink',
  '):': 'disappointed',
  ':(': 'disappointed',
  ':-(': 'disappointed',
  ":'(": 'cry',
  '=)': 'smiley',
  '=-)': 'smiley',
  ':*': 'kiss',
  ':-*': 'kiss',
  ':>': 'laughing',
  ':->': 'laughing',
  '8)': 'sunglasses',
  ':\\\\': 'confused',
  ':-\\\\': 'confused',
  ':\/': 'confused',
  ':-\/': 'confused',
  ':|': 'neutral_face',
  ':-|': 'neutral_face',
  ':o': 'open_mouth',
  ':-o': 'open_mouth',
  '>:(': 'angry',
  '>:-(': 'angry',
  ':p': 'stuck_out_tongue',
  ':-p': 'stuck_out_tongue',
  ':P': 'stuck_out_tongue',
  ':-P': 'stuck_out_tongue',
  ':b': 'stuck_out_tongue',
  ':-b': 'stuck_out_tongue',
  ';p': 'stuck_out_tongue_winking_eye',
  ';-p': 'stuck_out_tongue_winking_eye',
  ';b': 'stuck_out_tongue_winking_eye',
  ';-b': 'stuck_out_tongue_winking_eye',
  ';P': 'stuck_out_tongue_winking_eye',
  ';-P': 'stuck_out_tongue_winking_eye',
  ':o)': 'monkey_face',
  'D:': 'anguished'
}

Config.inits = {}
Config.map = {}

Config.mapcolon = {}
var a = []
Config.reversemap = {}

Config.init_emoticons = function () {
  if (Config.inits.emoticons) { return }
  Config.init_colons() // we require this for the emoticons map
  Config.inits.emoticons = 1

  var a = []
  Config.map.emoticons = {}
  for (var i in Config.emoticons_data) {
        // because we never see some characters in our text except as
        // entities, we must do some replacing
    var emoticon = i.replace(/\&/g, '&amp;').replace(/\</g, '&lt;')
            .replace(/\>/g, '&gt;')

    if (!Config.map.colons[emoji.emoticons_data[i]]) { continue }

    Config.map.emoticons[emoticon] = Config.map.colons[Config.emoticons_data[i]]
    a.push(Config.escape_rx(emoticon))
  }
  Config.rx_emoticons = new RegExp(
        ('(^|\\s)(' + a.join('|') + ')(?=$|[\\s|\\?\\.,!])'), 'g')
}
Config.init_colons = function () {
  if (Config.inits.colons) { return }
  Config.inits.colons = 1
  Config.rx_colons = new RegExp('\:[^\\s:]+\:', 'g')
  Config.map.colons = {}
  for (var i in Config.data) {
    for (var j = 0; j < Config.data[i][3].length; j++) {
      Config.map.colons[emoji.data[i][3][j]] = i
    }
  }
}
Config.init_unified = function () {
  if (Config.inits.unified) { return }
  Config.inits.unified = 1

  buildMap()
}

Config.escape_rx = function (text) {
  return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
}

function buildMap () {
  var colons = [], codes = []
  for (var i in Config.emoji_data) {
    for (var j = 0; j < Config.emoji_data[i][0].length; j++) {
      colons.push(Config.escape_rx(':' + Config.emoji_data[i][3][0]) + ':')
      codes.push(Config.emoji_data[i][0][0])

            // it is a map of {"colon smiley":"unicode char"}
      Config.map[Config.emoji_data[i][3][0]] = Config.emoji_data[i][0][0]
      Config.mapcolon[':' + Config.emoji_data[i][3][0] + ':'] = Config.emoji_data[i][0][0]
            // it is a map of {"unicode char": "colon smiley"}
      Config.reversemap[Config.emoji_data[i][0][0]] = Config.emoji_data[i][3][0]
    }

    Config.rx_colons = new RegExp('(' + colons.join('|') + ')', 'g')
    Config.rx_codes = new RegExp('(' + codes.join('|') + ')', 'g')
  }
}

/* harmony default export */ __webpack_exports__["default"] = (Config);


/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/js/emoji-picker.js":
/*!***********************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/js/emoji-picker.js ***!
  \***********************************************************/
/*! exports provided: EmojiPicker */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EmojiPicker", function() { return EmojiPicker; });
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ "./node_modules/emoji-vue/src/lib/js/config.js");
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _jquery_emojiarea__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./jquery.emojiarea */ "./node_modules/emoji-vue/src/lib/js/jquery.emojiarea.js");



const $ = jquery__WEBPACK_IMPORTED_MODULE_1___default.a

Object(_jquery_emojiarea__WEBPACK_IMPORTED_MODULE_2__["emojiareaPlugin"])(jquery__WEBPACK_IMPORTED_MODULE_1___default.a, window, document)
class EmojiPicker {
  constructor (options) {
    var ref, ref1
    if (options == null) {
      options = {}
    }
    $.emojiarea.iconSize = (ref = options.iconSize) != null ? ref : 25
    $.emojiarea.assetsPath = (ref1 = options.assetsPath) != null ? ref1 : ''
    this.generateEmojiIconSets(options)
    if (!options.emojiable_selector) {
      options.emojiable_selector = '[data-emojiable=true]'
    }
    this.options = options
  }
  clear () {
    console.log('clear')  
    debugger
  }
  discover () {
    var isiOS
    isiOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream
    if (isiOS) {
      return
    }
    return $(this.options.emojiable_selector).emojiarea($.extend({
      emojiPopup: this,
      norealTime: true
    }, this.options))
  };

  generateEmojiIconSets (options) {
    var column, dataItem, i, icons, j, name, reverseIcons, row, totalColumns
    icons = {}
    reverseIcons = {}
    i = void 0
    j = void 0
    name = void 0
    dataItem = void 0
    row = void 0
    column = void 0
    totalColumns = void 0
    j = 0
    while (j < _config__WEBPACK_IMPORTED_MODULE_0__["default"].EmojiCategories.length) {
      totalColumns = _config__WEBPACK_IMPORTED_MODULE_0__["default"].EmojiCategorySpritesheetDimens[j][1]
      i = 0
      while (i < _config__WEBPACK_IMPORTED_MODULE_0__["default"].EmojiCategories[j].length) {
        dataItem = _config__WEBPACK_IMPORTED_MODULE_0__["default"].Emoji[_config__WEBPACK_IMPORTED_MODULE_0__["default"].EmojiCategories[j][i]]
        name = dataItem[1][0]
        row = Math.floor(i / totalColumns)
        column = i % totalColumns
        icons[':' + name + ':'] = [j, row, column, ':' + name + ':']
        reverseIcons[name] = dataItem[0]
        i++
      }
      j++
    }
    $.emojiarea.icons = icons
    $.emojiarea.reverseIcons = reverseIcons
    return $.emojiarea.reverseIcons
  }

  colonToUnicode (input) {
    if (!input) {
      return ''
    }
    if (!_config__WEBPACK_IMPORTED_MODULE_0__["default"].rx_colons) {
      _config__WEBPACK_IMPORTED_MODULE_0__["default"].init_unified()
    }
    return input.replace(_config__WEBPACK_IMPORTED_MODULE_0__["default"].rx_colons, function (m) {
      var val
      val = _config__WEBPACK_IMPORTED_MODULE_0__["default"].mapcolon[m]
      if (val) {
        return val
      } else {
        return ''
      }
    })
  }

  unicodeToImage (input) {
    if (!input) {
      return ''
    }
    if (!_config__WEBPACK_IMPORTED_MODULE_0__["default"].rx_codes) {
      _config__WEBPACK_IMPORTED_MODULE_0__["default"].init_unified()
    }
    return input.replace(_config__WEBPACK_IMPORTED_MODULE_0__["default"].rx_codes, function (m) {
      var $img, val
      val = _config__WEBPACK_IMPORTED_MODULE_0__["default"].reversemap[m]
      if (val) {
        val = ':' + val + ':'
        $img = $.emojiarea.createIcon($.emojiarea.icons[val])
        return $img
      } else {
        return ''
      }
    })
  }

  colonToImage (input) {
    if (!input) {
      return ''
    }
    if (!_config__WEBPACK_IMPORTED_MODULE_0__["default"].rx_colons) {
      _config__WEBPACK_IMPORTED_MODULE_0__["default"].init_unified()
    }
    return input.replace(_config__WEBPACK_IMPORTED_MODULE_0__["default"].rx_colons, function (m) {
      var $img
      if (m) {
        $img = $.emojiarea.createIcon($.emojiarea.icons[m])
        return $img
      } else {
        return ''
      }
    })
  }
  }

// # sourceMappingURL=emoji-picker.js.map


/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/js/jquery.emojiarea.js":
/*!***************************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/js/jquery.emojiarea.js ***!
  \***************************************************************/
/*! exports provided: getGuid, emojiareaPlugin */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getGuid", function() { return getGuid; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "emojiareaPlugin", function() { return emojiareaPlugin; });
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./config */ "./node_modules/emoji-vue/src/lib/js/config.js");
/* harmony import */ var tether__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tether */ "./node_modules/tether/dist/js/tether.js");
/* harmony import */ var tether__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(tether__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _img_blank_gif__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../img/blank.gif */ "./node_modules/emoji-vue/src/lib/img/blank.gif");
/* harmony import */ var _img_blank_gif__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_img_blank_gif__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _img_emoji_spritesheet_0_png__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../img/emoji_spritesheet_0.png */ "./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_0.png");
/* harmony import */ var _img_emoji_spritesheet_0_png__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_img_emoji_spritesheet_0_png__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _img_emoji_spritesheet_1_png__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../img/emoji_spritesheet_1.png */ "./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_1.png");
/* harmony import */ var _img_emoji_spritesheet_1_png__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_img_emoji_spritesheet_1_png__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _img_emoji_spritesheet_2_png__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../img/emoji_spritesheet_2.png */ "./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_2.png");
/* harmony import */ var _img_emoji_spritesheet_2_png__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_img_emoji_spritesheet_2_png__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _img_emoji_spritesheet_3_png__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../img/emoji_spritesheet_3.png */ "./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_3.png");
/* harmony import */ var _img_emoji_spritesheet_3_png__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_img_emoji_spritesheet_3_png__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _img_emoji_spritesheet_4_png__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../img/emoji_spritesheet_4.png */ "./node_modules/emoji-vue/src/lib/img/emoji_spritesheet_4.png");
/* harmony import */ var _img_emoji_spritesheet_4_png__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_img_emoji_spritesheet_4_png__WEBPACK_IMPORTED_MODULE_8__);










const getGuid = () => {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
    var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8)
    return v.toString(16)
  })
}

const emojiareaPlugin = ($, window, document) => {
  var ELEMENT_NODE = 1
  var TEXT_NODE = 3
  var TAGS_BLOCK = [ 'p', 'div', 'pre', 'form' ]
  var KEY_ESC = 27
  var KEY_TAB = 9
  /**  Keys that are not intercepted and canceled when the textbox has reached its max length:
  *	Backspace, Tab, Ctrl, Alt, Left Arrow, Up Arrow, Right Arrow, Down Arrow, Cmd Key, Delete
  */
  var MAX_LENGTH_ALLOWED_KEYS = [8, 9, 17, 18, 37, 38, 39, 40, 91, 46]

	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

	/*
	 * ! MODIFICATION START Options 'spritesheetPath', 'spritesheetDimens',
	 * 'iconSize' added by Andre Staltz.
	 */
  $.emojiarea = {
    assetsPath: '',
    iconSize: 25,
    icons: {}
  }
  var defaultRecentEmojis = ':joy:,:kissing_heart:,:heart:,:heart_eyes:,:blush:,:grin:,:+1:,:relaxed:,:pensive:,:smile:,:sob:,:kiss:,:unamused:,:flushed:,:stuck_out_tongue_winking_eye:,:see_no_evil:,:wink:,:smiley:,:cry:,:stuck_out_tongue_closed_eyes:,:scream:,:rage:,:smirk:,:disappointed:,:sweat_smile:,:kissing_closed_eyes:,:speak_no_evil:,:relieved:,:grinning:,:yum:,:laughing:,:ok_hand:,:neutral_face:,:confused:'
			.split(',')
	/* ! MODIFICATION END */

  $.fn.emojiarea = function (options) {
    options = $.extend({}, options)
    return this
			.each(function () {
  var originalInput = $(this)
  var id = getGuid()

  if ('contentEditable' in document.body &&
					options.wysiwyg !== false) {
    new EmojiArea_WYSIWYG(originalInput, id, $.extend({}, options))
  } else {
    new EmojiArea_Plain(originalInput, id, options)
  }

  originalInput.attr(
    {
      'data-emojiable': 'converted',
      'data-id': id,
      'data-type': 'original-input'
    })
})
  }

	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  var util = {}

  util.restoreSelection = (function () {
    if (window.getSelection) {
      return function (savedSelection) {
        var sel = window.getSelection()
        sel.removeAllRanges()
        for (var i = 0, len = savedSelection.length; i < len; ++i) {
          sel.addRange(savedSelection[i])
        }
      }
    } else if (document.selection && document.selection.createRange) {
      return function (savedSelection) {
        if (savedSelection) {
          savedSelection.select()
        }
      }
    }
  })()

  util.saveSelection = (function () {
    if (window.getSelection) {
      return function () {
        var sel = window.getSelection(), ranges = []
        if (sel.rangeCount) {
          for (var i = 0, len = sel.rangeCount; i < len; ++i) {
            ranges.push(sel.getRangeAt(i))
          }
        }
        return ranges
      }
    } else if (document.selection && document.selection.createRange) {
      return function () {
        var sel = document.selection
        return (sel.type.toLowerCase() !== 'none') ? sel.createRange()
						: null
      }
    }
  })()

  util.replaceSelection = (function () {
    if (window.getSelection) {
      return function (content) {
        var range, sel = window.getSelection()
        var node = typeof content === 'string' ? document
						.createTextNode(content) : content
        if (sel.getRangeAt && sel.rangeCount) {
          range = sel.getRangeAt(0)
          range.deleteContents()
					// range.insertNode(document.createTextNode(''));
          range.insertNode(node)
          range.setStart(node, 0)

          window.setTimeout(function () {
            range = document.createRange()
            range.setStartAfter(node)
            range.collapse(true)
            sel.removeAllRanges()
            sel.addRange(range)
          }, 0)
        }
      }
    } else if (document.selection && document.selection.createRange) {
      return function (content) {
        var range = document.selection.createRange()
        if (typeof content === 'string') {
          range.text = content
        } else {
          range.pasteHTML(content.outerHTML)
        }
      }
    }
  })()

  util.insertAtCursor = function (text, el) {
    text = ' ' + text
    var val = el.value, endIndex, startIndex, range
    if (typeof el.selectionStart !== 'undefined' &&
				typeof el.selectionEnd !== 'undefined') {
      startIndex = el.selectionStart
      endIndex = el.selectionEnd
      el.value = val.substring(0, startIndex) + text +
					val.substring(el.selectionEnd)
      el.selectionStart = el.selectionEnd = startIndex + text.length
    } else if (typeof document.selection !== 'undefined' &&
				typeof document.selection.createRange !== 'undefined') {
      el.focus()
      range = document.selection.createRange()
      range.text = text
      range.select()
    }
  }

  util.extend = function (a, b) {
    if (typeof a === 'undefined' || !a) {
      a = {}
    }
    if (typeof b === 'object') {
      for (var key in b) {
        if (b.hasOwnProperty(key)) {
          a[key] = b[key]
        }
      }
    }
    return a
  }

  util.escapeRegex = function (str) {
    return (str + '').replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1')
  }

  util.htmlEntities = function (str) {
    return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;')
				.replace(/>/g, '&gt;').replace(/"/g, '&quot;')
  }

	/*
	 * ! MODIFICATION START This function was added by Igor Zhukov to save
	 * recent used emojis.
	 */
  util.emojiInserted = function (emojiKey, menu) {
    ConfigStorage.get('emojis_recent', function (curEmojis) {
      curEmojis = curEmojis || defaultRecentEmojis || []

      var pos = curEmojis.indexOf(emojiKey)
      if (!pos) {
        return false
      }
      if (pos != -1) {
        curEmojis.splice(pos, 1)
      }
      curEmojis.unshift(emojiKey)
      if (curEmojis.length > 42) {
        curEmojis = curEmojis.slice(42)
      }

      ConfigStorage.set({
        emojis_recent: curEmojis
      })
    })
  }
	/* ! MODIFICATION END */

	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  var EmojiArea = function () {
  }

  EmojiArea.prototype.setup = function () {
    var self = this

    this.$editor.on('focus', function () {
      self.hasFocus = true
      const val = self.$textarea[0].value
      self.$editor.lastValue = val
      if (self.$editor.lastValue !== val) { self.options.onChangecontent(val) }
    })
    this.$editor.on('blur', function () {
      self.hasFocus = false
      const val = self.$textarea[0].value

      if (self.$editor.lastValue !== val) { self.options.onChangecontent(val) }
    })

    // Assign a unique instance of an emojiMenu to
    self.emojiMenu = new EmojiMenu(self)

    this.setupButton()
  }

  EmojiArea.prototype.setupButton = function () {
    var self = this
    var $button = $('[data-id=' + this.id + '][data-type=picker]')

    $button.on('click', function (e) {
      self.emojiMenu.show(self)
    })

    this.$button = $button
    this.$dontHideOnClick = 'emoji-picker'
  }

	/*
	 * ! MODIFICATION START This function was modified by Andre Staltz so that
	 * the icon is created from a spritesheet.
	 */
  EmojiArea.createIcon = function (emoji, menu) {
    const sprites = [_img_emoji_spritesheet_0_png__WEBPACK_IMPORTED_MODULE_4___default.a, _img_emoji_spritesheet_1_png__WEBPACK_IMPORTED_MODULE_5___default.a, _img_emoji_spritesheet_2_png__WEBPACK_IMPORTED_MODULE_6___default.a, _img_emoji_spritesheet_3_png__WEBPACK_IMPORTED_MODULE_7___default.a, _img_emoji_spritesheet_4_png__WEBPACK_IMPORTED_MODULE_8___default.a]
    var category = emoji[0]
    var row = emoji[1]
    var column = emoji[2]
    var name = emoji[3]
    var iconSize = menu && _config__WEBPACK_IMPORTED_MODULE_1__["default"].Mobile ? 26 : $.emojiarea.iconSize
    var xoffset = -(iconSize * column)
    var yoffset = -(iconSize * row)
    var scaledWidth = (_config__WEBPACK_IMPORTED_MODULE_1__["default"].EmojiCategorySpritesheetDimens[category][1] * iconSize)
    var scaledHeight = (_config__WEBPACK_IMPORTED_MODULE_1__["default"].EmojiCategorySpritesheetDimens[category][0] * iconSize)

    var style = 'display:inline-block;'
    style += 'width:' + iconSize + 'px;'
    style += 'height:' + iconSize + 'px;'

    const smileyCategoryFilename = sprites[category]

    style += `background:url('${smileyCategoryFilename}')
		 ${xoffset}px
		  ${yoffset}px no-repeat;
		   background-size:${scaledWidth}px ${scaledHeight}px;`
    return `<img src="${_img_blank_gif__WEBPACK_IMPORTED_MODULE_3___default.a}" class="img" style="${style}" alt="${util.htmlEntities(name)}">`
  }

  $.emojiarea.createIcon = EmojiArea.createIcon
	/* ! MODIFICATION END */

	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	/**
	 * Editor (plain-text)
	 *
	 * @constructor
	 * @param {object}
	 *            $textarea
	 * @param {object}
	 *            options
	 */

  var EmojiArea_Plain = function ($textarea, id, options) {
    this.options = options
    this.$textarea = $textarea
    this.$editor = $textarea
    this.id = id
    this.setup()
  }

  EmojiArea_Plain.prototype.insert = function (emoji) {
    if (!$.emojiarea.icons.hasOwnProperty(emoji)) { return }
    util.insertAtCursor(emoji, this.$textarea[0])
		/*
		 * MODIFICATION: Following line was added by Igor Zhukov, in order to
		 * save recent emojis
		 */
    util.emojiInserted(emoji, this.menu)
    this.$textarea.trigger('change')
  }

  EmojiArea_Plain.prototype.val = function () {
    if (this.$textarea == '\n') { return '' }
    return this.$textarea.val()
  }

  util.extend(EmojiArea_Plain.prototype, EmojiArea.prototype)

	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

	/**
	 * Editor (rich)
	 *
	 * @constructor
	 * @param {object}
	 *            $textarea
	 * @param {object}
	 *            options
	 */

  var EmojiArea_WYSIWYG = function ($textarea, id, options) {
    var self = this

    this.options = options || {}
    if ($($textarea).attr('data-emoji-input') === 'unicode') { this.options.inputMethod = 'unicode' } else			{ this.options.inputMethod = 'image' }
    this.id = id
    this.$textarea = $textarea
    this.emojiPopup = options.emojiPopup
    this.$editor = $('<div>').addClass('emoji-wysiwyg-editor').addClass($($textarea)[0].className)
    this.$editor.data('self', this)

    this.$editor.lastValue

    if ($textarea.attr('maxlength')) {
      this.$editor.attr('maxlength', $textarea.attr('maxlength'))
    }
    var unicodeToImageText = this.emojiPopup.unicodeToImage($textarea.val())
    this.$editor.html(unicodeToImageText)
    this.$editor.attr({
      'data-id': id,
      'data-type': 'input',
      'placeholder': $textarea.attr('placeholder'),
      'contenteditable': 'true'
    })

		/*
		 * ! MODIFICATION START Following code was modified by Igor Zhukov, in
		 * order to improve rich text paste
		 */
    var changeEvents = 'blur change'
    if (!this.options.norealTime) {
      changeEvents += ' keyup'
    }
    this.$editor.on(changeEvents, function (e) {
      return self.onChange.apply(self, [ e ])
    })
		/* ! MODIFICATION END */

    this.$editor.on('mousedown focus', function () {
      document.execCommand('enableObjectResizing', false, false)
    })
    this.$editor.on('blur', function () {
      document.execCommand('enableObjectResizing', true, true)
    })

    var editorDiv = this.$editor
    this.$editor.on('change keydown keyup resize scroll', function (e) {
      if (MAX_LENGTH_ALLOWED_KEYS.indexOf(e.which) == -1 &&
				!((e.ctrlKey || e.metaKey) && e.which == 65) && // Ctrl + A
				!((e.ctrlKey || e.metaKey) && e.which == 67) && // Ctrl + C
				editorDiv.text().length + editorDiv.find('img').length >= editorDiv.attr('maxlength')) {
        e.preventDefault()
      }
	  self.updateBodyPadding(editorDiv)

	  const val = self.$textarea[0].value
	  if (self.$editor.lastValue !== val)		  { self.options.onChangecontent(val) }
    })

    if (this.options.onPaste) {
      var self = this
      this.$editor.on('paste', function (e) {
        e.preventDefault()

        if ((e.originalEvent || e).clipboardData) {
          var content = (e.originalEvent || e).clipboardData.getData('text/plain')
          var finalText = self.options.onPaste(content)
          document.execCommand('insertText', false, finalText)
        } else if (window.clipboardData) {
          var content = window.clipboardData.getData('Text')
          var finalText = self.options.onPaste(content)
          document.selection.createRange().pasteHTML(finalText)
        }
        editorDiv.scrollTop(editorDiv[0].scrollHeight)
      })
    }

    $textarea.after("<i class='emoji-picker-icon emoji-picker " + this.options.popupButtonClasses + "' data-id='" + id + "' data-type='picker'></i>")

    $textarea.hide().after(this.$editor)
    this.setup()

		/*
		 * MODIFICATION: Following line was modified by Igor Zhukov, in order to
		 * improve emoji insert behaviour
		 */
    $(document.body).on('mousedown', function () {
      if (self.hasFocus) {
        self.selection = util.saveSelection()
      }
    })
  }

  EmojiArea_WYSIWYG.prototype.updateBodyPadding = function (target) {
    var emojiPicker = $('[data-id=' + this.id + '][data-type=picker]')
    if ($(target).hasScrollbar()) {
      if (!(emojiPicker.hasClass('parent-has-scroll'))) { emojiPicker.addClass('parent-has-scroll') }
      if (!($(target).hasClass('parent-has-scroll'))) { $(target).addClass('parent-has-scroll') }
    } else {
      if ((emojiPicker.hasClass('parent-has-scroll'))) { emojiPicker.removeClass('parent-has-scroll') }
      if (($(target).hasClass('parent-has-scroll'))) { $(target).removeClass('parent-has-scroll') }
    }
  }

  EmojiArea_WYSIWYG.prototype.onChange = function (e) {
    this.$textarea.val(this.val()).trigger('change')
  }

  EmojiArea_WYSIWYG.prototype.insert = function (emoji) {
    var content
		/*
		 * MODIFICATION: Following line was modified by Andre Staltz, to use new
		 * implementation of createIcon function.
		 */
    var insertionContent = ''
    if (this.options.inputMethod == 'unicode') {
      insertionContent = this.emojiPopup.colonToUnicode(emoji)
    } else {
      var $img = $(EmojiArea.createIcon($.emojiarea.icons[emoji]))
      if ($img[0].attachEvent) {
        $img[0].attachEvent('onresizestart', function (e) {
          e.returnValue = false
        }, false)
      }
      insertionContent = $img[0]
    }

    this.$editor.trigger('focus')
    if (this.selection) {
      util.restoreSelection(this.selection)
    }
    try {
      util.replaceSelection(insertionContent)
    } catch (e) {
    }

		/*
		 * MODIFICATION: Following line was added by Igor Zhukov, in order to
		 * save recent emojis
		 */
    util.emojiInserted(emoji, this.menu)

    this.onChange()
  }

  EmojiArea_WYSIWYG.prototype.val = function () {
    var lines = []
    var line = []
    var emojiPopup = this.emojiPopup

    var flush = function () {
      lines.push(line.join(''))
      line = []
    }

    var sanitizeNode = function (node) {
      if (node.nodeType === TEXT_NODE) {
        line.push(node.nodeValue)
      } else if (node.nodeType === ELEMENT_NODE) {
        var tagName = node.tagName.toLowerCase()
        var isBlock = TAGS_BLOCK.indexOf(tagName) !== -1

        if (isBlock && line.length) { flush() }

        if (tagName === 'img') {
          var alt = node.getAttribute('alt') || ''
          if (alt) {
            line.push(alt)
          }
          return
        } else if (tagName === 'br') {
          flush()
        }

        var children = node.childNodes
        for (var i = 0; i < children.length; i++) {
					 sanitizeNode(children[i])
        }

        if (isBlock && line.length) { flush() }
      }
    }

    var children = this.$editor[0].childNodes
    for (var i = 0; i < children.length; i++) {
      sanitizeNode(children[i])
    }

    if (line.length) { flush() }

    var returnValue = lines.join('\n')
    return emojiPopup.colonToUnicode(returnValue)
  }

  util.extend(EmojiArea_WYSIWYG.prototype, EmojiArea.prototype)

	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn.hasScrollbar = function () {
    var scrollHeight = this.get(0).scrollHeight

    // safari's scrollHeight includes padding
    // if ($.browser.safari)
//      scrollHeight -= parseInt(this.css('padding-top')) + parseInt(this.css('padding-bottom'));
    if (this.outerHeight() < scrollHeight) { return true } else { return false }
  }

	/**
	 * Emoji Dropdown Menu
	 *
	 * @constructor
	 * @param {object}
	 *            emojiarea
	 */
  var EmojiMenu = function (emojiarea) {
    var self = this
    self.id = emojiarea.id
    var $body = $(document.body)
    var $window = $(window)

    this.visible = false
    this.emojiarea = emojiarea
    EmojiMenu.menuZIndex = 5000
    this.$menu = $('<div>')
    this.$menu.addClass('emoji-menu')
    this.$menu.attr('data-id', self.id)
    this.$menu.attr('data-type', 'menu')
    this.$menu.hide()

		/*
		 * ! MODIFICATION START Following code was modified by Igor Zhukov, in
		 * order to add scrollbars and tail to EmojiMenu Also modified by Andre
		 * Staltz, to include tabs for categories, on the menu header.
		 */
    this.$itemsTailWrap = $('<div class="emoji-items-wrap1"></div>')
				.appendTo(this.$menu)
    this.$categoryTabs = $(
				'<table class="emoji-menu-tabs"><tr>' +
						'<td><a class="emoji-menu-tab icon-recent" ></a></td>' +
						'<td><a class="emoji-menu-tab icon-smile" ></a></td>' +
						'<td><a class="emoji-menu-tab icon-flower"></a></td>' +
						'<td><a class="emoji-menu-tab icon-bell"></a></td>' +
						'<td><a class="emoji-menu-tab icon-car"></a></td>' +
						'<td><a class="emoji-menu-tab icon-grid"></a></td>' +
						'</tr></table>').appendTo(this.$itemsTailWrap)
    this.$itemsWrap = $(
				'<div class="emoji-items-wrap nano mobile_scrollable_wrap"></div>')
				.appendTo(this.$itemsTailWrap)
    this.$items = $('<div class="emoji-items nano-content">').appendTo(
				this.$itemsWrap)
		/* ! MODIFICATION END */

    $body.append(this.$menu)

		/*
		 * ! MODIFICATION: Following 3 lines were added by Igor Zhukov, in order
		 * to add scrollbars to EmojiMenu
		 */

		  if (!_config__WEBPACK_IMPORTED_MODULE_1__["default"].Mobile) {
		  this.$itemsWrap.nanoScroller({preventPageScrolling: true,
    tabIndex:
		  -1})
  }

		// this.$itemsWrap.nanoScroller({preventPageScrolling: true, tabIndex:* -1});

    $body.on('keydown', function (e) {
      if (e.keyCode === KEY_ESC || e.keyCode === KEY_TAB) {
        self.hide()
      }
    })

		/*
		 * ! MODIFICATION: Following 3 lines were added by Igor Zhukov, in order
		 * to hide menu on message submit with keyboard
		 */
    $body.on('message_send', function (e) {
      self.hide()
    })

    $body.on('mouseup', function (e) {
			/*
			 * ! MODIFICATION START Following code was added by Igor Zhukov, in
			 * order to prevent close on click on EmojiMenu scrollbar
			 */
      e = e.originalEvent || e
      var target = e.originalTarget || e.target || window

      if ($(target).hasClass(self.emojiarea.$dontHideOnClick)) {
        return
      }

      while (target && target != window) {
        target = target.parentNode
        if (target == self.$menu[0] || self.emojiarea &&
						target == self.emojiarea.$button[0]) {
          return
        }
      }
			/* ! MODIFICATION END */
      self.hide()
    })

    $window.on('resize', function () {
      if (self.visible) { self.reposition() }
    })

    this.$menu.on('mouseup', 'a', function (e) {
      e.stopPropagation()
      return false
    })

    this.$menu.on('click', 'a', function (e) {
      self.emojiarea.updateBodyPadding(self.emojiarea.$editor)
			/*
			 * ! MODIFICATION START Following code was modified by Andre Staltz,
			 * to capture clicks on category tabs and change the category
			 * selection.
			 */
      if ($(this).hasClass('emoji-menu-tab')) {
        if (self.getTabIndex(this) !== self.currentCategory) {
          self.selectCategory(self.getTabIndex(this))
        }
        return false
      }
			/* ! MODIFICATION END */
      var emoji = $('.label', $(this)).text()
      window.setTimeout(function () {
        self.onItemSelected(emoji)
				/*
				 * ! MODIFICATION START Following code was modified by Igor
				 * Zhukov, in order to close only on ctrl-, alt- emoji select
				 */
        if (e.ctrlKey || e.metaKey) {
          self.hide()
        }
				/* ! MODIFICATION END */
      }, 0)
      e.stopPropagation()
      return false
    })

		/*
		 * MODIFICATION: Following line was modified by Andre Staltz, in order
		 * to select a default category.
		 */
    this.selectCategory(0)
  }

	/*
	 * ! MODIFICATION START Following code was added by Andre Staltz, to
	 * implement category selection.
	 */
  EmojiMenu.prototype.getTabIndex = function (tab) {
    return this.$categoryTabs.find('.emoji-menu-tab').index(tab)
  }

  EmojiMenu.prototype.selectCategory = function (category) {
    var self = this
    this.$categoryTabs.find('.emoji-menu-tab').each(function (index) {
      if (index === category) {
        this.className += '-selected'
      } else {
        this.className = this.className.replace('-selected', '')
      }
    })
    this.currentCategory = category
    this.load(category)

		 if (!_config__WEBPACK_IMPORTED_MODULE_1__["default"].Mobile) {
   this.$itemsWrap.nanoScroller({ scroll: 'top'
		 })
 }
  }
	/* ! MODIFICATION END */

  EmojiMenu.prototype.onItemSelected = function (emoji) {
    if (this.emojiarea.$editor.text().length + this.emojiarea.$editor.find('img').length >= this.emojiarea.$editor.attr('maxlength')) {
      return
    }
    this.emojiarea.insert(emoji)
  }

	/*
	 * MODIFICATION: The following function argument was modified by Andre
	 * Staltz, in order to load only icons from a category. Also function was
	 * modified by Igor Zhukov in order to display recent emojis from
	 * localStorage
	 */
  EmojiMenu.prototype.load = function (category) {
    var html = []
    var options = $.emojiarea.icons
    var path = $.emojiarea.assetsPath
    var self = this
    if (path.length && path.charAt(path.length - 1) !== '/') {
      path += '/'
    }

		/*
		 * ! MODIFICATION: Following function was added by Igor Zhukov, in order
		 * to add scrollbars to EmojiMenu
		 */
    var updateItems = function () {
      self.$items.html(html.join(''))

			  if (!_config__WEBPACK_IMPORTED_MODULE_1__["default"].Mobile) {
    setTimeout(function () {
			  self.$itemsWrap.nanoScroller()
    }, 100)
  }
    }

    if (category > 0) {
      for (var key in options) {
				/*
				 * MODIFICATION: The following 2 lines were modified by Andre
				 * Staltz, in order to load only icons from the specified
				 * category.
				 */
        if (options.hasOwnProperty(key) &&
						options[key][0] === (category - 1)) {
          html.push('<a href="javascript:void(0)" title="' +
							util.htmlEntities(key) + '">' +
							EmojiArea.createIcon(options[key], true) +
							'<span class="label">' + util.htmlEntities(key) +
							'</span></a>')
        }
      }
      updateItems()
    } else {
      ConfigStorage.get('emojis_recent', function (curEmojis) {
        curEmojis = curEmojis || defaultRecentEmojis || []
        var key, i
        for (i = 0; i < curEmojis.length; i++) {
          key = curEmojis[i]
          if (options[key]) {
            html.push('<a href="javascript:void(0)" title="' +
								util.htmlEntities(key) + '">' +
								EmojiArea.createIcon(options[key], true) +
								'<span class="label">' +
								util.htmlEntities(key) + '</span></a>')
          }
        }
        updateItems()
      })
    }0
  }

  EmojiMenu.prototype.reposition = function () {
    if (!this.tether) {
      this.tether = new tether__WEBPACK_IMPORTED_MODULE_2___default.a({
        element: '[data-id="' + this.id + '"][data-type="menu"]',
        target: '[data-id="' + this.id + '"][data-type="picker"]',
        attachment: 'left center',
        targetAttachment: 'bottom left',
        offset: '0 12px',
        constraints: [
          {
            to: 'html',
            pin: true
          }
        ]
      })
    }
  }

  EmojiMenu.prototype.hide = function (callback) {
    this.visible = false
    this.$menu.hide('fast')
  }

  EmojiMenu.prototype.show = function (emojiarea) {
    /*
     * MODIFICATION: Following line was modified by Igor Zhukov, in order to
     * improve EmojiMenu behaviour
     */
    if (this.visible) { return this.hide() }
    this.reposition()
    $(this.$menu).css('z-index', ++EmojiMenu.menuZIndex)
    this.$menu.show('fast')
    /*
     * MODIFICATION: Following 3 lines were added by Igor Zhukov, in order
     * to update EmojiMenu contents
     */
    if (!this.currentCategory) {
      this.load(0)
    }
    this.visible = true
  }
}


/***/ }),

/***/ "./node_modules/emoji-vue/src/lib/js/util.js":
/*!***************************************************!*\
  !*** ./node_modules/emoji-vue/src/lib/js/util.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = (() => {
  var keyPrefix = ''
  var noPrefix = false
  var cache = {}
  var useCs = !!(window.chrome && chrome.storage && chrome.storage.local)
  var useLs = !useCs && !!window.localStorage

  function storageSetPrefix (newPrefix) {
    keyPrefix = newPrefix
  }

  function storageSetNoPrefix () {
    noPrefix = true
  }

  function storageGetPrefix () {
    if (noPrefix) {
      noPrefix = false
      return ''
    }
    return keyPrefix
  }

  function storageGetValue () {
    var keys = Array.prototype.slice.call(arguments),
      callback = keys.pop(),
      result = [],
      single = keys.length == 1,
      value,
      allFound = true,
      prefix = storageGetPrefix(),
      i, key

    for (i = 0; i < keys.length; i++) {
      key = keys[i] = prefix + keys[i]
      if (key.substr(0, 3) != 'xt_' && cache[key] !== undefined) {
        result.push(cache[key])
      } else if (useLs) {
        try {
          value = localStorage.getItem(key)
        } catch (e) {
          useLs = false
        }
        try {
          value = (value === undefined || value === null) ? false : JSON.parse(value)
        } catch (e) {
          value = false
        }
        result.push(cache[key] = value)
      } else if (!useCs) {
        result.push(cache[key] = false)
      } else {
        allFound = false
      }
    }

    if (allFound) {
      return callback(single ? result[0] : result)
    }

    chrome.storage.local.get(keys, function (resultObj) {
      var value
      result = []
      for (i = 0; i < keys.length; i++) {
        key = keys[i]
        value = resultObj[key]
        value = value === undefined || value === null ? false : JSON.parse(value)
        result.push(cache[key] = value)
      }

      callback(single ? result[0] : result)
    })
  };

  function storageSetValue (obj, callback) {
    var keyValues = {},
      prefix = storageGetPrefix(),
      key, value

    for (key in obj) {
      if (obj.hasOwnProperty(key)) {
        value = obj[key]
        key = prefix + key
        cache[key] = value
        value = JSON.stringify(value)
        if (useLs) {
          try {
            localStorage.setItem(key, value)
          } catch (e) {
            useLs = false
          }
        } else {
          keyValues[key] = value
        }
      }
    }

    if (useLs || !useCs) {
      if (callback) {
        callback()
      }
      return
    }

    chrome.storage.local.set(keyValues, callback)
  };

  function storageRemoveValue () {
    var keys = Array.prototype.slice.call(arguments),
      prefix = storageGetPrefix(),
      i, key, callback

    if (typeof keys[keys.length - 1] === 'function') {
      callback = keys.pop()
    }

    for (i = 0; i < keys.length; i++) {
      key = keys[i] = prefix + keys[i]
      delete cache[key]
      if (useLs) {
        try {
          localStorage.removeItem(key)
        } catch (e) {
          useLs = false
        }
      }
    }
    if (useCs) {
      chrome.storage.local.remove(keys, callback)
    } else if (callback) {
      callback()
    }
  };

  window.ConfigStorage = {
    prefix: storageSetPrefix,
    noPrefix: storageSetNoPrefix,
    get: storageGetValue,
    set: storageSetValue,
    remove: storageRemoveValue
  }
});


/***/ }),

/***/ "./node_modules/ieee754/index.js":
/*!***************************************!*\
  !*** ./node_modules/ieee754/index.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

exports.read = function (buffer, offset, isLE, mLen, nBytes) {
  var e, m
  var eLen = (nBytes * 8) - mLen - 1
  var eMax = (1 << eLen) - 1
  var eBias = eMax >> 1
  var nBits = -7
  var i = isLE ? (nBytes - 1) : 0
  var d = isLE ? -1 : 1
  var s = buffer[offset + i]

  i += d

  e = s & ((1 << (-nBits)) - 1)
  s >>= (-nBits)
  nBits += eLen
  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}

  m = e & ((1 << (-nBits)) - 1)
  e >>= (-nBits)
  nBits += mLen
  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}

  if (e === 0) {
    e = 1 - eBias
  } else if (e === eMax) {
    return m ? NaN : ((s ? -1 : 1) * Infinity)
  } else {
    m = m + Math.pow(2, mLen)
    e = e - eBias
  }
  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
}

exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
  var e, m, c
  var eLen = (nBytes * 8) - mLen - 1
  var eMax = (1 << eLen) - 1
  var eBias = eMax >> 1
  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
  var i = isLE ? 0 : (nBytes - 1)
  var d = isLE ? 1 : -1
  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0

  value = Math.abs(value)

  if (isNaN(value) || value === Infinity) {
    m = isNaN(value) ? 1 : 0
    e = eMax
  } else {
    e = Math.floor(Math.log(value) / Math.LN2)
    if (value * (c = Math.pow(2, -e)) < 1) {
      e--
      c *= 2
    }
    if (e + eBias >= 1) {
      value += rt / c
    } else {
      value += rt * Math.pow(2, 1 - eBias)
    }
    if (value * c >= 2) {
      e++
      c /= 2
    }

    if (e + eBias >= eMax) {
      m = 0
      e = eMax
    } else if (e + eBias >= 1) {
      m = ((value * c) - 1) * Math.pow(2, mLen)
      e = e + eBias
    } else {
      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
      e = 0
    }
  }

  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}

  e = (e << mLen) | m
  eLen += mLen
  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}

  buffer[offset + i - d] |= s * 128
}


/***/ }),

/***/ "./node_modules/isarray/index.js":
/*!***************************************!*\
  !*** ./node_modules/isarray/index.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

var toString = {}.toString;

module.exports = Array.isArray || function (arr) {
  return toString.call(arr) == '[object Array]';
};


/***/ }),

/***/ "./node_modules/jquery/dist/jquery.js":
/*!********************************************!*\
  !*** ./node_modules/jquery/dist/jquery.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
 * jQuery JavaScript Library v3.5.1
 * https://jquery.com/
 *
 * Includes Sizzle.js
 * https://sizzlejs.com/
 *
 * Copyright JS Foundation and other contributors
 * Released under the MIT license
 * https://jquery.org/license
 *
 * Date: 2020-05-04T22:49Z
 */
( function( global, factory ) {

	"use strict";

	if (  true && typeof module.exports === "object" ) {

		// For CommonJS and CommonJS-like environments where a proper `window`
		// is present, execute the factory and get jQuery.
		// For environments that do not have a `window` with a `document`
		// (such as Node.js), expose a factory as module.exports.
		// This accentuates the need for the creation of a real `window`.
		// e.g. var jQuery = require("jquery")(window);
		// See ticket #14549 for more info.
		module.exports = global.document ?
			factory( global, true ) :
			function( w ) {
				if ( !w.document ) {
					throw new Error( "jQuery requires a window with a document" );
				}
				return factory( w );
			};
	} else {
		factory( global );
	}

// Pass this if window is not defined yet
} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {

// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
// enough that all such attempts are guarded in a try block.
"use strict";

var arr = [];

var getProto = Object.getPrototypeOf;

var slice = arr.slice;

var flat = arr.flat ? function( array ) {
	return arr.flat.call( array );
} : function( array ) {
	return arr.concat.apply( [], array );
};


var push = arr.push;

var indexOf = arr.indexOf;

var class2type = {};

var toString = class2type.toString;

var hasOwn = class2type.hasOwnProperty;

var fnToString = hasOwn.toString;

var ObjectFunctionString = fnToString.call( Object );

var support = {};

var isFunction = function isFunction( obj ) {

      // Support: Chrome <=57, Firefox <=52
      // In some browsers, typeof returns "function" for HTML <object> elements
      // (i.e., `typeof document.createElement( "object" ) === "function"`).
      // We don't want to classify *any* DOM node as a function.
      return typeof obj === "function" && typeof obj.nodeType !== "number";
  };


var isWindow = function isWindow( obj ) {
		return obj != null && obj === obj.window;
	};


var document = window.document;



	var preservedScriptAttributes = {
		type: true,
		src: true,
		nonce: true,
		noModule: true
	};

	function DOMEval( code, node, doc ) {
		doc = doc || document;

		var i, val,
			script = doc.createElement( "script" );

		script.text = code;
		if ( node ) {
			for ( i in preservedScriptAttributes ) {

				// Support: Firefox 64+, Edge 18+
				// Some browsers don't support the "nonce" property on scripts.
				// On the other hand, just using `getAttribute` is not enough as
				// the `nonce` attribute is reset to an empty string whenever it
				// becomes browsing-context connected.
				// See https://github.com/whatwg/html/issues/2369
				// See https://html.spec.whatwg.org/#nonce-attributes
				// The `node.getAttribute` check was added for the sake of
				// `jQuery.globalEval` so that it can fake a nonce-containing node
				// via an object.
				val = node[ i ] || node.getAttribute && node.getAttribute( i );
				if ( val ) {
					script.setAttribute( i, val );
				}
			}
		}
		doc.head.appendChild( script ).parentNode.removeChild( script );
	}


function toType( obj ) {
	if ( obj == null ) {
		return obj + "";
	}

	// Support: Android <=2.3 only (functionish RegExp)
	return typeof obj === "object" || typeof obj === "function" ?
		class2type[ toString.call( obj ) ] || "object" :
		typeof obj;
}
/* global Symbol */
// Defining this global in .eslintrc.json would create a danger of using the global
// unguarded in another place, it seems safer to define global only for this module



var
	version = "3.5.1",

	// Define a local copy of jQuery
	jQuery = function( selector, context ) {

		// The jQuery object is actually just the init constructor 'enhanced'
		// Need init if jQuery is called (just allow error to be thrown if not included)
		return new jQuery.fn.init( selector, context );
	};

jQuery.fn = jQuery.prototype = {

	// The current version of jQuery being used
	jquery: version,

	constructor: jQuery,

	// The default length of a jQuery object is 0
	length: 0,

	toArray: function() {
		return slice.call( this );
	},

	// Get the Nth element in the matched element set OR
	// Get the whole matched element set as a clean array
	get: function( num ) {

		// Return all the elements in a clean array
		if ( num == null ) {
			return slice.call( this );
		}

		// Return just the one element from the set
		return num < 0 ? this[ num + this.length ] : this[ num ];
	},

	// Take an array of elements and push it onto the stack
	// (returning the new matched element set)
	pushStack: function( elems ) {

		// Build a new jQuery matched element set
		var ret = jQuery.merge( this.constructor(), elems );

		// Add the old object onto the stack (as a reference)
		ret.prevObject = this;

		// Return the newly-formed element set
		return ret;
	},

	// Execute a callback for every element in the matched set.
	each: function( callback ) {
		return jQuery.each( this, callback );
	},

	map: function( callback ) {
		return this.pushStack( jQuery.map( this, function( elem, i ) {
			return callback.call( elem, i, elem );
		} ) );
	},

	slice: function() {
		return this.pushStack( slice.apply( this, arguments ) );
	},

	first: function() {
		return this.eq( 0 );
	},

	last: function() {
		return this.eq( -1 );
	},

	even: function() {
		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
			return ( i + 1 ) % 2;
		} ) );
	},

	odd: function() {
		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
			return i % 2;
		} ) );
	},

	eq: function( i ) {
		var len = this.length,
			j = +i + ( i < 0 ? len : 0 );
		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
	},

	end: function() {
		return this.prevObject || this.constructor();
	},

	// For internal use only.
	// Behaves like an Array's method, not like a jQuery method.
	push: push,
	sort: arr.sort,
	splice: arr.splice
};

jQuery.extend = jQuery.fn.extend = function() {
	var options, name, src, copy, copyIsArray, clone,
		target = arguments[ 0 ] || {},
		i = 1,
		length = arguments.length,
		deep = false;

	// Handle a deep copy situation
	if ( typeof target === "boolean" ) {
		deep = target;

		// Skip the boolean and the target
		target = arguments[ i ] || {};
		i++;
	}

	// Handle case when target is a string or something (possible in deep copy)
	if ( typeof target !== "object" && !isFunction( target ) ) {
		target = {};
	}

	// Extend jQuery itself if only one argument is passed
	if ( i === length ) {
		target = this;
		i--;
	}

	for ( ; i < length; i++ ) {

		// Only deal with non-null/undefined values
		if ( ( options = arguments[ i ] ) != null ) {

			// Extend the base object
			for ( name in options ) {
				copy = options[ name ];

				// Prevent Object.prototype pollution
				// Prevent never-ending loop
				if ( name === "__proto__" || target === copy ) {
					continue;
				}

				// Recurse if we're merging plain objects or arrays
				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
					( copyIsArray = Array.isArray( copy ) ) ) ) {
					src = target[ name ];

					// Ensure proper type for the source value
					if ( copyIsArray && !Array.isArray( src ) ) {
						clone = [];
					} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
						clone = {};
					} else {
						clone = src;
					}
					copyIsArray = false;

					// Never move original objects, clone them
					target[ name ] = jQuery.extend( deep, clone, copy );

				// Don't bring in undefined values
				} else if ( copy !== undefined ) {
					target[ name ] = copy;
				}
			}
		}
	}

	// Return the modified object
	return target;
};

jQuery.extend( {

	// Unique for each copy of jQuery on the page
	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),

	// Assume jQuery is ready without the ready module
	isReady: true,

	error: function( msg ) {
		throw new Error( msg );
	},

	noop: function() {},

	isPlainObject: function( obj ) {
		var proto, Ctor;

		// Detect obvious negatives
		// Use toString instead of jQuery.type to catch host objects
		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
			return false;
		}

		proto = getProto( obj );

		// Objects with no prototype (e.g., `Object.create( null )`) are plain
		if ( !proto ) {
			return true;
		}

		// Objects with prototype are plain iff they were constructed by a global Object function
		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
	},

	isEmptyObject: function( obj ) {
		var name;

		for ( name in obj ) {
			return false;
		}
		return true;
	},

	// Evaluates a script in a provided context; falls back to the global one
	// if not specified.
	globalEval: function( code, options, doc ) {
		DOMEval( code, { nonce: options && options.nonce }, doc );
	},

	each: function( obj, callback ) {
		var length, i = 0;

		if ( isArrayLike( obj ) ) {
			length = obj.length;
			for ( ; i < length; i++ ) {
				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
					break;
				}
			}
		} else {
			for ( i in obj ) {
				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
					break;
				}
			}
		}

		return obj;
	},

	// results is for internal usage only
	makeArray: function( arr, results ) {
		var ret = results || [];

		if ( arr != null ) {
			if ( isArrayLike( Object( arr ) ) ) {
				jQuery.merge( ret,
					typeof arr === "string" ?
					[ arr ] : arr
				);
			} else {
				push.call( ret, arr );
			}
		}

		return ret;
	},

	inArray: function( elem, arr, i ) {
		return arr == null ? -1 : indexOf.call( arr, elem, i );
	},

	// Support: Android <=4.0 only, PhantomJS 1 only
	// push.apply(_, arraylike) throws on ancient WebKit
	merge: function( first, second ) {
		var len = +second.length,
			j = 0,
			i = first.length;

		for ( ; j < len; j++ ) {
			first[ i++ ] = second[ j ];
		}

		first.length = i;

		return first;
	},

	grep: function( elems, callback, invert ) {
		var callbackInverse,
			matches = [],
			i = 0,
			length = elems.length,
			callbackExpect = !invert;

		// Go through the array, only saving the items
		// that pass the validator function
		for ( ; i < length; i++ ) {
			callbackInverse = !callback( elems[ i ], i );
			if ( callbackInverse !== callbackExpect ) {
				matches.push( elems[ i ] );
			}
		}

		return matches;
	},

	// arg is for internal usage only
	map: function( elems, callback, arg ) {
		var length, value,
			i = 0,
			ret = [];

		// Go through the array, translating each of the items to their new values
		if ( isArrayLike( elems ) ) {
			length = elems.length;
			for ( ; i < length; i++ ) {
				value = callback( elems[ i ], i, arg );

				if ( value != null ) {
					ret.push( value );
				}
			}

		// Go through every key on the object,
		} else {
			for ( i in elems ) {
				value = callback( elems[ i ], i, arg );

				if ( value != null ) {
					ret.push( value );
				}
			}
		}

		// Flatten any nested arrays
		return flat( ret );
	},

	// A global GUID counter for objects
	guid: 1,

	// jQuery.support is not used in Core but other projects attach their
	// properties to it so it needs to exist.
	support: support
} );

if ( typeof Symbol === "function" ) {
	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
}

// Populate the class2type map
jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
function( _i, name ) {
	class2type[ "[object " + name + "]" ] = name.toLowerCase();
} );

function isArrayLike( obj ) {

	// Support: real iOS 8.2 only (not reproducible in simulator)
	// `in` check used to prevent JIT error (gh-2145)
	// hasOwn isn't used here due to false negatives
	// regarding Nodelist length in IE
	var length = !!obj && "length" in obj && obj.length,
		type = toType( obj );

	if ( isFunction( obj ) || isWindow( obj ) ) {
		return false;
	}

	return type === "array" || length === 0 ||
		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
}
var Sizzle =
/*!
 * Sizzle CSS Selector Engine v2.3.5
 * https://sizzlejs.com/
 *
 * Copyright JS Foundation and other contributors
 * Released under the MIT license
 * https://js.foundation/
 *
 * Date: 2020-03-14
 */
( function( window ) {
var i,
	support,
	Expr,
	getText,
	isXML,
	tokenize,
	compile,
	select,
	outermostContext,
	sortInput,
	hasDuplicate,

	// Local document vars
	setDocument,
	document,
	docElem,
	documentIsHTML,
	rbuggyQSA,
	rbuggyMatches,
	matches,
	contains,

	// Instance-specific data
	expando = "sizzle" + 1 * new Date(),
	preferredDoc = window.document,
	dirruns = 0,
	done = 0,
	classCache = createCache(),
	tokenCache = createCache(),
	compilerCache = createCache(),
	nonnativeSelectorCache = createCache(),
	sortOrder = function( a, b ) {
		if ( a === b ) {
			hasDuplicate = true;
		}
		return 0;
	},

	// Instance methods
	hasOwn = ( {} ).hasOwnProperty,
	arr = [],
	pop = arr.pop,
	pushNative = arr.push,
	push = arr.push,
	slice = arr.slice,

	// Use a stripped-down indexOf as it's faster than native
	// https://jsperf.com/thor-indexof-vs-for/5
	indexOf = function( list, elem ) {
		var i = 0,
			len = list.length;
		for ( ; i < len; i++ ) {
			if ( list[ i ] === elem ) {
				return i;
			}
		}
		return -1;
	},

	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" +
		"ismap|loop|multiple|open|readonly|required|scoped",

	// Regular expressions

	// http://www.w3.org/TR/css3-selectors/#whitespace
	whitespace = "[\\x20\\t\\r\\n\\f]",

	// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
	identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
		"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",

	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +

		// Operator (capture 2)
		"*([*^$|!~]?=)" + whitespace +

		// "Attribute values must be CSS identifiers [capture 5]
		// or strings [capture 3 or capture 4]"
		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" +
		whitespace + "*\\]",

	pseudos = ":(" + identifier + ")(?:\\((" +

		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
		// 1. quoted (capture 3; capture 4 or capture 5)
		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +

		// 2. simple (capture 6)
		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +

		// 3. anything else (capture 2)
		".*" +
		")\\)|)",

	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
	rwhitespace = new RegExp( whitespace + "+", "g" ),
	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" +
		whitespace + "+$", "g" ),

	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace +
		"*" ),
	rdescend = new RegExp( whitespace + "|>" ),

	rpseudo = new RegExp( pseudos ),
	ridentifier = new RegExp( "^" + identifier + "$" ),

	matchExpr = {
		"ID": new RegExp( "^#(" + identifier + ")" ),
		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
		"ATTR": new RegExp( "^" + attributes ),
		"PSEUDO": new RegExp( "^" + pseudos ),
		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
			whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
			whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),

		// For use in libraries implementing .is()
		// We use this for POS matching in `select`
		"needsContext": new RegExp( "^" + whitespace +
			"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
			"*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
	},

	rhtml = /HTML$/i,
	rinputs = /^(?:input|select|textarea|button)$/i,
	rheader = /^h\d$/i,

	rnative = /^[^{]+\{\s*\[native \w/,

	// Easily-parseable/retrievable ID or TAG or CLASS selectors
	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,

	rsibling = /[+~]/,

	// CSS escapes
	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
	runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ),
	funescape = function( escape, nonHex ) {
		var high = "0x" + escape.slice( 1 ) - 0x10000;

		return nonHex ?

			// Strip the backslash prefix from a non-hex escape sequence
			nonHex :

			// Replace a hexadecimal escape sequence with the encoded Unicode code point
			// Support: IE <=11+
			// For values outside the Basic Multilingual Plane (BMP), manually construct a
			// surrogate pair
			high < 0 ?
				String.fromCharCode( high + 0x10000 ) :
				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
	},

	// CSS string/identifier serialization
	// https://drafts.csswg.org/cssom/#common-serializing-idioms
	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
	fcssescape = function( ch, asCodePoint ) {
		if ( asCodePoint ) {

			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
			if ( ch === "\0" ) {
				return "\uFFFD";
			}

			// Control characters and (dependent upon position) numbers get escaped as code points
			return ch.slice( 0, -1 ) + "\\" +
				ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
		}

		// Other potentially-special ASCII characters get backslash-escaped
		return "\\" + ch;
	},

	// Used for iframes
	// See setDocument()
	// Removing the function wrapper causes a "Permission Denied"
	// error in IE
	unloadHandler = function() {
		setDocument();
	},

	inDisabledFieldset = addCombinator(
		function( elem ) {
			return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
		},
		{ dir: "parentNode", next: "legend" }
	);

// Optimize for push.apply( _, NodeList )
try {
	push.apply(
		( arr = slice.call( preferredDoc.childNodes ) ),
		preferredDoc.childNodes
	);

	// Support: Android<4.0
	// Detect silently failing push.apply
	// eslint-disable-next-line no-unused-expressions
	arr[ preferredDoc.childNodes.length ].nodeType;
} catch ( e ) {
	push = { apply: arr.length ?

		// Leverage slice if possible
		function( target, els ) {
			pushNative.apply( target, slice.call( els ) );
		} :

		// Support: IE<9
		// Otherwise append directly
		function( target, els ) {
			var j = target.length,
				i = 0;

			// Can't trust NodeList.length
			while ( ( target[ j++ ] = els[ i++ ] ) ) {}
			target.length = j - 1;
		}
	};
}

function Sizzle( selector, context, results, seed ) {
	var m, i, elem, nid, match, groups, newSelector,
		newContext = context && context.ownerDocument,

		// nodeType defaults to 9, since context defaults to document
		nodeType = context ? context.nodeType : 9;

	results = results || [];

	// Return early from calls with invalid selector or context
	if ( typeof selector !== "string" || !selector ||
		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {

		return results;
	}

	// Try to shortcut find operations (as opposed to filters) in HTML documents
	if ( !seed ) {
		setDocument( context );
		context = context || document;

		if ( documentIsHTML ) {

			// If the selector is sufficiently simple, try using a "get*By*" DOM method
			// (excepting DocumentFragment context, where the methods don't exist)
			if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {

				// ID selector
				if ( ( m = match[ 1 ] ) ) {

					// Document context
					if ( nodeType === 9 ) {
						if ( ( elem = context.getElementById( m ) ) ) {

							// Support: IE, Opera, Webkit
							// TODO: identify versions
							// getElementById can match elements by name instead of ID
							if ( elem.id === m ) {
								results.push( elem );
								return results;
							}
						} else {
							return results;
						}

					// Element context
					} else {

						// Support: IE, Opera, Webkit
						// TODO: identify versions
						// getElementById can match elements by name instead of ID
						if ( newContext && ( elem = newContext.getElementById( m ) ) &&
							contains( context, elem ) &&
							elem.id === m ) {

							results.push( elem );
							return results;
						}
					}

				// Type selector
				} else if ( match[ 2 ] ) {
					push.apply( results, context.getElementsByTagName( selector ) );
					return results;

				// Class selector
				} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&
					context.getElementsByClassName ) {

					push.apply( results, context.getElementsByClassName( m ) );
					return results;
				}
			}

			// Take advantage of querySelectorAll
			if ( support.qsa &&
				!nonnativeSelectorCache[ selector + " " ] &&
				( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&

				// Support: IE 8 only
				// Exclude object elements
				( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) {

				newSelector = selector;
				newContext = context;

				// qSA considers elements outside a scoping root when evaluating child or
				// descendant combinators, which is not what we want.
				// In such cases, we work around the behavior by prefixing every selector in the
				// list with an ID selector referencing the scope context.
				// The technique has to be used as well when a leading combinator is used
				// as such selectors are not recognized by querySelectorAll.
				// Thanks to Andrew Dupont for this technique.
				if ( nodeType === 1 &&
					( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {

					// Expand context for sibling selectors
					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
						context;

					// We can use :scope instead of the ID hack if the browser
					// supports it & if we're not changing the context.
					if ( newContext !== context || !support.scope ) {

						// Capture the context ID, setting it first if necessary
						if ( ( nid = context.getAttribute( "id" ) ) ) {
							nid = nid.replace( rcssescape, fcssescape );
						} else {
							context.setAttribute( "id", ( nid = expando ) );
						}
					}

					// Prefix every selector in the list
					groups = tokenize( selector );
					i = groups.length;
					while ( i-- ) {
						groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " +
							toSelector( groups[ i ] );
					}
					newSelector = groups.join( "," );
				}

				try {
					push.apply( results,
						newContext.querySelectorAll( newSelector )
					);
					return results;
				} catch ( qsaError ) {
					nonnativeSelectorCache( selector, true );
				} finally {
					if ( nid === expando ) {
						context.removeAttribute( "id" );
					}
				}
			}
		}
	}

	// All others
	return select( selector.replace( rtrim, "$1" ), context, results, seed );
}

/**
 * Create key-value caches of limited size
 * @returns {function(string, object)} Returns the Object data after storing it on itself with
 *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
 *	deleting the oldest entry
 */
function createCache() {
	var keys = [];

	function cache( key, value ) {

		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
		if ( keys.push( key + " " ) > Expr.cacheLength ) {

			// Only keep the most recent entries
			delete cache[ keys.shift() ];
		}
		return ( cache[ key + " " ] = value );
	}
	return cache;
}

/**
 * Mark a function for special use by Sizzle
 * @param {Function} fn The function to mark
 */
function markFunction( fn ) {
	fn[ expando ] = true;
	return fn;
}

/**
 * Support testing using an element
 * @param {Function} fn Passed the created element and returns a boolean result
 */
function assert( fn ) {
	var el = document.createElement( "fieldset" );

	try {
		return !!fn( el );
	} catch ( e ) {
		return false;
	} finally {

		// Remove from its parent by default
		if ( el.parentNode ) {
			el.parentNode.removeChild( el );
		}

		// release memory in IE
		el = null;
	}
}

/**
 * Adds the same handler for all of the specified attrs
 * @param {String} attrs Pipe-separated list of attributes
 * @param {Function} handler The method that will be applied
 */
function addHandle( attrs, handler ) {
	var arr = attrs.split( "|" ),
		i = arr.length;

	while ( i-- ) {
		Expr.attrHandle[ arr[ i ] ] = handler;
	}
}

/**
 * Checks document order of two siblings
 * @param {Element} a
 * @param {Element} b
 * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
 */
function siblingCheck( a, b ) {
	var cur = b && a,
		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
			a.sourceIndex - b.sourceIndex;

	// Use IE sourceIndex if available on both nodes
	if ( diff ) {
		return diff;
	}

	// Check if b follows a
	if ( cur ) {
		while ( ( cur = cur.nextSibling ) ) {
			if ( cur === b ) {
				return -1;
			}
		}
	}

	return a ? 1 : -1;
}

/**
 * Returns a function to use in pseudos for input types
 * @param {String} type
 */
function createInputPseudo( type ) {
	return function( elem ) {
		var name = elem.nodeName.toLowerCase();
		return name === "input" && elem.type === type;
	};
}

/**
 * Returns a function to use in pseudos for buttons
 * @param {String} type
 */
function createButtonPseudo( type ) {
	return function( elem ) {
		var name = elem.nodeName.toLowerCase();
		return ( name === "input" || name === "button" ) && elem.type === type;
	};
}

/**
 * Returns a function to use in pseudos for :enabled/:disabled
 * @param {Boolean} disabled true for :disabled; false for :enabled
 */
function createDisabledPseudo( disabled ) {

	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
	return function( elem ) {

		// Only certain elements can match :enabled or :disabled
		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
		if ( "form" in elem ) {

			// Check for inherited disabledness on relevant non-disabled elements:
			// * listed form-associated elements in a disabled fieldset
			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
			// * option elements in a disabled optgroup
			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
			// All such elements have a "form" property.
			if ( elem.parentNode && elem.disabled === false ) {

				// Option elements defer to a parent optgroup if present
				if ( "label" in elem ) {
					if ( "label" in elem.parentNode ) {
						return elem.parentNode.disabled === disabled;
					} else {
						return elem.disabled === disabled;
					}
				}

				// Support: IE 6 - 11
				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
				return elem.isDisabled === disabled ||

					// Where there is no isDisabled, check manually
					/* jshint -W018 */
					elem.isDisabled !== !disabled &&
					inDisabledFieldset( elem ) === disabled;
			}

			return elem.disabled === disabled;

		// Try to winnow out elements that can't be disabled before trusting the disabled property.
		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
		// even exist on them, let alone have a boolean value.
		} else if ( "label" in elem ) {
			return elem.disabled === disabled;
		}

		// Remaining elements are neither :enabled nor :disabled
		return false;
	};
}

/**
 * Returns a function to use in pseudos for positionals
 * @param {Function} fn
 */
function createPositionalPseudo( fn ) {
	return markFunction( function( argument ) {
		argument = +argument;
		return markFunction( function( seed, matches ) {
			var j,
				matchIndexes = fn( [], seed.length, argument ),
				i = matchIndexes.length;

			// Match elements found at the specified indexes
			while ( i-- ) {
				if ( seed[ ( j = matchIndexes[ i ] ) ] ) {
					seed[ j ] = !( matches[ j ] = seed[ j ] );
				}
			}
		} );
	} );
}

/**
 * Checks a node for validity as a Sizzle context
 * @param {Element|Object=} context
 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
 */
function testContext( context ) {
	return context && typeof context.getElementsByTagName !== "undefined" && context;
}

// Expose support vars for convenience
support = Sizzle.support = {};

/**
 * Detects XML nodes
 * @param {Element|Object} elem An element or a document
 * @returns {Boolean} True iff elem is a non-HTML XML node
 */
isXML = Sizzle.isXML = function( elem ) {
	var namespace = elem.namespaceURI,
		docElem = ( elem.ownerDocument || elem ).documentElement;

	// Support: IE <=8
	// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
	// https://bugs.jquery.com/ticket/4833
	return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
};

/**
 * Sets document-related variables once based on the current document
 * @param {Element|Object} [doc] An element or document object to use to set the document
 * @returns {Object} Returns the current document
 */
setDocument = Sizzle.setDocument = function( node ) {
	var hasCompare, subWindow,
		doc = node ? node.ownerDocument || node : preferredDoc;

	// Return early if doc is invalid or already selected
	// Support: IE 11+, Edge 17 - 18+
	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
	// two documents; shallow comparisons work.
	// eslint-disable-next-line eqeqeq
	if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {
		return document;
	}

	// Update global variables
	document = doc;
	docElem = document.documentElement;
	documentIsHTML = !isXML( document );

	// Support: IE 9 - 11+, Edge 12 - 18+
	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
	// Support: IE 11+, Edge 17 - 18+
	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
	// two documents; shallow comparisons work.
	// eslint-disable-next-line eqeqeq
	if ( preferredDoc != document &&
		( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {

		// Support: IE 11, Edge
		if ( subWindow.addEventListener ) {
			subWindow.addEventListener( "unload", unloadHandler, false );

		// Support: IE 9 - 10 only
		} else if ( subWindow.attachEvent ) {
			subWindow.attachEvent( "onunload", unloadHandler );
		}
	}

	// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,
	// Safari 4 - 5 only, Opera <=11.6 - 12.x only
	// IE/Edge & older browsers don't support the :scope pseudo-class.
	// Support: Safari 6.0 only
	// Safari 6.0 supports :scope but it's an alias of :root there.
	support.scope = assert( function( el ) {
		docElem.appendChild( el ).appendChild( document.createElement( "div" ) );
		return typeof el.querySelectorAll !== "undefined" &&
			!el.querySelectorAll( ":scope fieldset div" ).length;
	} );

	/* Attributes
	---------------------------------------------------------------------- */

	// Support: IE<8
	// Verify that getAttribute really returns attributes and not properties
	// (excepting IE8 booleans)
	support.attributes = assert( function( el ) {
		el.className = "i";
		return !el.getAttribute( "className" );
	} );

	/* getElement(s)By*
	---------------------------------------------------------------------- */

	// Check if getElementsByTagName("*") returns only elements
	support.getElementsByTagName = assert( function( el ) {
		el.appendChild( document.createComment( "" ) );
		return !el.getElementsByTagName( "*" ).length;
	} );

	// Support: IE<9
	support.getElementsByClassName = rnative.test( document.getElementsByClassName );

	// Support: IE<10
	// Check if getElementById returns elements by name
	// The broken getElementById methods don't pick up programmatically-set names,
	// so use a roundabout getElementsByName test
	support.getById = assert( function( el ) {
		docElem.appendChild( el ).id = expando;
		return !document.getElementsByName || !document.getElementsByName( expando ).length;
	} );

	// ID filter and find
	if ( support.getById ) {
		Expr.filter[ "ID" ] = function( id ) {
			var attrId = id.replace( runescape, funescape );
			return function( elem ) {
				return elem.getAttribute( "id" ) === attrId;
			};
		};
		Expr.find[ "ID" ] = function( id, context ) {
			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
				var elem = context.getElementById( id );
				return elem ? [ elem ] : [];
			}
		};
	} else {
		Expr.filter[ "ID" ] =  function( id ) {
			var attrId = id.replace( runescape, funescape );
			return function( elem ) {
				var node = typeof elem.getAttributeNode !== "undefined" &&
					elem.getAttributeNode( "id" );
				return node && node.value === attrId;
			};
		};

		// Support: IE 6 - 7 only
		// getElementById is not reliable as a find shortcut
		Expr.find[ "ID" ] = function( id, context ) {
			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
				var node, i, elems,
					elem = context.getElementById( id );

				if ( elem ) {

					// Verify the id attribute
					node = elem.getAttributeNode( "id" );
					if ( node && node.value === id ) {
						return [ elem ];
					}

					// Fall back on getElementsByName
					elems = context.getElementsByName( id );
					i = 0;
					while ( ( elem = elems[ i++ ] ) ) {
						node = elem.getAttributeNode( "id" );
						if ( node && node.value === id ) {
							return [ elem ];
						}
					}
				}

				return [];
			}
		};
	}

	// Tag
	Expr.find[ "TAG" ] = support.getElementsByTagName ?
		function( tag, context ) {
			if ( typeof context.getElementsByTagName !== "undefined" ) {
				return context.getElementsByTagName( tag );

			// DocumentFragment nodes don't have gEBTN
			} else if ( support.qsa ) {
				return context.querySelectorAll( tag );
			}
		} :

		function( tag, context ) {
			var elem,
				tmp = [],
				i = 0,

				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
				results = context.getElementsByTagName( tag );

			// Filter out possible comments
			if ( tag === "*" ) {
				while ( ( elem = results[ i++ ] ) ) {
					if ( elem.nodeType === 1 ) {
						tmp.push( elem );
					}
				}

				return tmp;
			}
			return results;
		};

	// Class
	Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) {
		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
			return context.getElementsByClassName( className );
		}
	};

	/* QSA/matchesSelector
	---------------------------------------------------------------------- */

	// QSA and matchesSelector support

	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
	rbuggyMatches = [];

	// qSa(:focus) reports false when true (Chrome 21)
	// We allow this because of a bug in IE8/9 that throws an error
	// whenever `document.activeElement` is accessed on an iframe
	// So, we allow :focus to pass through QSA all the time to avoid the IE error
	// See https://bugs.jquery.com/ticket/13378
	rbuggyQSA = [];

	if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {

		// Build QSA regex
		// Regex strategy adopted from Diego Perini
		assert( function( el ) {

			var input;

			// Select is set to empty string on purpose
			// This is to test IE's treatment of not explicitly
			// setting a boolean content attribute,
			// since its presence should be enough
			// https://bugs.jquery.com/ticket/12359
			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
				"<option selected=''></option></select>";

			// Support: IE8, Opera 11-12.16
			// Nothing should be selected when empty strings follow ^= or $= or *=
			// The test attribute must be unknown in Opera but "safe" for WinRT
			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
			if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) {
				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
			}

			// Support: IE8
			// Boolean attributes and "value" are not treated correctly
			if ( !el.querySelectorAll( "[selected]" ).length ) {
				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
			}

			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
				rbuggyQSA.push( "~=" );
			}

			// Support: IE 11+, Edge 15 - 18+
			// IE 11/Edge don't find elements on a `[name='']` query in some cases.
			// Adding a temporary attribute to the document before the selection works
			// around the issue.
			// Interestingly, IE 10 & older don't seem to have the issue.
			input = document.createElement( "input" );
			input.setAttribute( "name", "" );
			el.appendChild( input );
			if ( !el.querySelectorAll( "[name='']" ).length ) {
				rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
					whitespace + "*(?:''|\"\")" );
			}

			// Webkit/Opera - :checked should return selected option elements
			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
			// IE8 throws error here and will not see later tests
			if ( !el.querySelectorAll( ":checked" ).length ) {
				rbuggyQSA.push( ":checked" );
			}

			// Support: Safari 8+, iOS 8+
			// https://bugs.webkit.org/show_bug.cgi?id=136851
			// In-page `selector#id sibling-combinator selector` fails
			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
				rbuggyQSA.push( ".#.+[+~]" );
			}

			// Support: Firefox <=3.6 - 5 only
			// Old Firefox doesn't throw on a badly-escaped identifier.
			el.querySelectorAll( "\\\f" );
			rbuggyQSA.push( "[\\r\\n\\f]" );
		} );

		assert( function( el ) {
			el.innerHTML = "<a href='' disabled='disabled'></a>" +
				"<select disabled='disabled'><option/></select>";

			// Support: Windows 8 Native Apps
			// The type and name attributes are restricted during .innerHTML assignment
			var input = document.createElement( "input" );
			input.setAttribute( "type", "hidden" );
			el.appendChild( input ).setAttribute( "name", "D" );

			// Support: IE8
			// Enforce case-sensitivity of name attribute
			if ( el.querySelectorAll( "[name=d]" ).length ) {
				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
			}

			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
			// IE8 throws error here and will not see later tests
			if ( el.querySelectorAll( ":enabled" ).length !== 2 ) {
				rbuggyQSA.push( ":enabled", ":disabled" );
			}

			// Support: IE9-11+
			// IE's :disabled selector does not pick up the children of disabled fieldsets
			docElem.appendChild( el ).disabled = true;
			if ( el.querySelectorAll( ":disabled" ).length !== 2 ) {
				rbuggyQSA.push( ":enabled", ":disabled" );
			}

			// Support: Opera 10 - 11 only
			// Opera 10-11 does not throw on post-comma invalid pseudos
			el.querySelectorAll( "*,:x" );
			rbuggyQSA.push( ",.*:" );
		} );
	}

	if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||
		docElem.webkitMatchesSelector ||
		docElem.mozMatchesSelector ||
		docElem.oMatchesSelector ||
		docElem.msMatchesSelector ) ) ) ) {

		assert( function( el ) {

			// Check to see if it's possible to do matchesSelector
			// on a disconnected node (IE 9)
			support.disconnectedMatch = matches.call( el, "*" );

			// This should fail with an exception
			// Gecko does not error, returns false instead
			matches.call( el, "[s!='']:x" );
			rbuggyMatches.push( "!=", pseudos );
		} );
	}

	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) );
	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) );

	/* Contains
	---------------------------------------------------------------------- */
	hasCompare = rnative.test( docElem.compareDocumentPosition );

	// Element contains another
	// Purposefully self-exclusive
	// As in, an element does not contain itself
	contains = hasCompare || rnative.test( docElem.contains ) ?
		function( a, b ) {
			var adown = a.nodeType === 9 ? a.documentElement : a,
				bup = b && b.parentNode;
			return a === bup || !!( bup && bup.nodeType === 1 && (
				adown.contains ?
					adown.contains( bup ) :
					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
			) );
		} :
		function( a, b ) {
			if ( b ) {
				while ( ( b = b.parentNode ) ) {
					if ( b === a ) {
						return true;
					}
				}
			}
			return false;
		};

	/* Sorting
	---------------------------------------------------------------------- */

	// Document order sorting
	sortOrder = hasCompare ?
	function( a, b ) {

		// Flag for duplicate removal
		if ( a === b ) {
			hasDuplicate = true;
			return 0;
		}

		// Sort on method existence if only one input has compareDocumentPosition
		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
		if ( compare ) {
			return compare;
		}

		// Calculate position if both inputs belong to the same document
		// Support: IE 11+, Edge 17 - 18+
		// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
		// two documents; shallow comparisons work.
		// eslint-disable-next-line eqeqeq
		compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?
			a.compareDocumentPosition( b ) :

			// Otherwise we know they are disconnected
			1;

		// Disconnected nodes
		if ( compare & 1 ||
			( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {

			// Choose the first element that is related to our preferred document
			// Support: IE 11+, Edge 17 - 18+
			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
			// two documents; shallow comparisons work.
			// eslint-disable-next-line eqeqeq
			if ( a == document || a.ownerDocument == preferredDoc &&
				contains( preferredDoc, a ) ) {
				return -1;
			}

			// Support: IE 11+, Edge 17 - 18+
			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
			// two documents; shallow comparisons work.
			// eslint-disable-next-line eqeqeq
			if ( b == document || b.ownerDocument == preferredDoc &&
				contains( preferredDoc, b ) ) {
				return 1;
			}

			// Maintain original order
			return sortInput ?
				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
				0;
		}

		return compare & 4 ? -1 : 1;
	} :
	function( a, b ) {

		// Exit early if the nodes are identical
		if ( a === b ) {
			hasDuplicate = true;
			return 0;
		}

		var cur,
			i = 0,
			aup = a.parentNode,
			bup = b.parentNode,
			ap = [ a ],
			bp = [ b ];

		// Parentless nodes are either documents or disconnected
		if ( !aup || !bup ) {

			// Support: IE 11+, Edge 17 - 18+
			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
			// two documents; shallow comparisons work.
			/* eslint-disable eqeqeq */
			return a == document ? -1 :
				b == document ? 1 :
				/* eslint-enable eqeqeq */
				aup ? -1 :
				bup ? 1 :
				sortInput ?
				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
				0;

		// If the nodes are siblings, we can do a quick check
		} else if ( aup === bup ) {
			return siblingCheck( a, b );
		}

		// Otherwise we need full lists of their ancestors for comparison
		cur = a;
		while ( ( cur = cur.parentNode ) ) {
			ap.unshift( cur );
		}
		cur = b;
		while ( ( cur = cur.parentNode ) ) {
			bp.unshift( cur );
		}

		// Walk down the tree looking for a discrepancy
		while ( ap[ i ] === bp[ i ] ) {
			i++;
		}

		return i ?

			// Do a sibling check if the nodes have a common ancestor
			siblingCheck( ap[ i ], bp[ i ] ) :

			// Otherwise nodes in our document sort first
			// Support: IE 11+, Edge 17 - 18+
			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
			// two documents; shallow comparisons work.
			/* eslint-disable eqeqeq */
			ap[ i ] == preferredDoc ? -1 :
			bp[ i ] == preferredDoc ? 1 :
			/* eslint-enable eqeqeq */
			0;
	};

	return document;
};

Sizzle.matches = function( expr, elements ) {
	return Sizzle( expr, null, null, elements );
};

Sizzle.matchesSelector = function( elem, expr ) {
	setDocument( elem );

	if ( support.matchesSelector && documentIsHTML &&
		!nonnativeSelectorCache[ expr + " " ] &&
		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {

		try {
			var ret = matches.call( elem, expr );

			// IE 9's matchesSelector returns false on disconnected nodes
			if ( ret || support.disconnectedMatch ||

				// As well, disconnected nodes are said to be in a document
				// fragment in IE 9
				elem.document && elem.document.nodeType !== 11 ) {
				return ret;
			}
		} catch ( e ) {
			nonnativeSelectorCache( expr, true );
		}
	}

	return Sizzle( expr, document, null, [ elem ] ).length > 0;
};

Sizzle.contains = function( context, elem ) {

	// Set document vars if needed
	// Support: IE 11+, Edge 17 - 18+
	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
	// two documents; shallow comparisons work.
	// eslint-disable-next-line eqeqeq
	if ( ( context.ownerDocument || context ) != document ) {
		setDocument( context );
	}
	return contains( context, elem );
};

Sizzle.attr = function( elem, name ) {

	// Set document vars if needed
	// Support: IE 11+, Edge 17 - 18+
	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
	// two documents; shallow comparisons work.
	// eslint-disable-next-line eqeqeq
	if ( ( elem.ownerDocument || elem ) != document ) {
		setDocument( elem );
	}

	var fn = Expr.attrHandle[ name.toLowerCase() ],

		// Don't get fooled by Object.prototype properties (jQuery #13807)
		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
			fn( elem, name, !documentIsHTML ) :
			undefined;

	return val !== undefined ?
		val :
		support.attributes || !documentIsHTML ?
			elem.getAttribute( name ) :
			( val = elem.getAttributeNode( name ) ) && val.specified ?
				val.value :
				null;
};

Sizzle.escape = function( sel ) {
	return ( sel + "" ).replace( rcssescape, fcssescape );
};

Sizzle.error = function( msg ) {
	throw new Error( "Syntax error, unrecognized expression: " + msg );
};

/**
 * Document sorting and removing duplicates
 * @param {ArrayLike} results
 */
Sizzle.uniqueSort = function( results ) {
	var elem,
		duplicates = [],
		j = 0,
		i = 0;

	// Unless we *know* we can detect duplicates, assume their presence
	hasDuplicate = !support.detectDuplicates;
	sortInput = !support.sortStable && results.slice( 0 );
	results.sort( sortOrder );

	if ( hasDuplicate ) {
		while ( ( elem = results[ i++ ] ) ) {
			if ( elem === results[ i ] ) {
				j = duplicates.push( i );
			}
		}
		while ( j-- ) {
			results.splice( duplicates[ j ], 1 );
		}
	}

	// Clear input after sorting to release objects
	// See https://github.com/jquery/sizzle/pull/225
	sortInput = null;

	return results;
};

/**
 * Utility function for retrieving the text value of an array of DOM nodes
 * @param {Array|Element} elem
 */
getText = Sizzle.getText = function( elem ) {
	var node,
		ret = "",
		i = 0,
		nodeType = elem.nodeType;

	if ( !nodeType ) {

		// If no nodeType, this is expected to be an array
		while ( ( node = elem[ i++ ] ) ) {

			// Do not traverse comment nodes
			ret += getText( node );
		}
	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {

		// Use textContent for elements
		// innerText usage removed for consistency of new lines (jQuery #11153)
		if ( typeof elem.textContent === "string" ) {
			return elem.textContent;
		} else {

			// Traverse its children
			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
				ret += getText( elem );
			}
		}
	} else if ( nodeType === 3 || nodeType === 4 ) {
		return elem.nodeValue;
	}

	// Do not include comment or processing instruction nodes

	return ret;
};

Expr = Sizzle.selectors = {

	// Can be adjusted by the user
	cacheLength: 50,

	createPseudo: markFunction,

	match: matchExpr,

	attrHandle: {},

	find: {},

	relative: {
		">": { dir: "parentNode", first: true },
		" ": { dir: "parentNode" },
		"+": { dir: "previousSibling", first: true },
		"~": { dir: "previousSibling" }
	},

	preFilter: {
		"ATTR": function( match ) {
			match[ 1 ] = match[ 1 ].replace( runescape, funescape );

			// Move the given value to match[3] whether quoted or unquoted
			match[ 3 ] = ( match[ 3 ] || match[ 4 ] ||
				match[ 5 ] || "" ).replace( runescape, funescape );

			if ( match[ 2 ] === "~=" ) {
				match[ 3 ] = " " + match[ 3 ] + " ";
			}

			return match.slice( 0, 4 );
		},

		"CHILD": function( match ) {

			/* matches from matchExpr["CHILD"]
				1 type (only|nth|...)
				2 what (child|of-type)
				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
				4 xn-component of xn+y argument ([+-]?\d*n|)
				5 sign of xn-component
				6 x of xn-component
				7 sign of y-component
				8 y of y-component
			*/
			match[ 1 ] = match[ 1 ].toLowerCase();

			if ( match[ 1 ].slice( 0, 3 ) === "nth" ) {

				// nth-* requires argument
				if ( !match[ 3 ] ) {
					Sizzle.error( match[ 0 ] );
				}

				// numeric x and y parameters for Expr.filter.CHILD
				// remember that false/true cast respectively to 0/1
				match[ 4 ] = +( match[ 4 ] ?
					match[ 5 ] + ( match[ 6 ] || 1 ) :
					2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) );
				match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" );

				// other types prohibit arguments
			} else if ( match[ 3 ] ) {
				Sizzle.error( match[ 0 ] );
			}

			return match;
		},

		"PSEUDO": function( match ) {
			var excess,
				unquoted = !match[ 6 ] && match[ 2 ];

			if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) {
				return null;
			}

			// Accept quoted arguments as-is
			if ( match[ 3 ] ) {
				match[ 2 ] = match[ 4 ] || match[ 5 ] || "";

			// Strip excess characters from unquoted arguments
			} else if ( unquoted && rpseudo.test( unquoted ) &&

				// Get excess from tokenize (recursively)
				( excess = tokenize( unquoted, true ) ) &&

				// advance to the next closing parenthesis
				( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) {

				// excess is a negative index
				match[ 0 ] = match[ 0 ].slice( 0, excess );
				match[ 2 ] = unquoted.slice( 0, excess );
			}

			// Return only captures needed by the pseudo filter method (type and argument)
			return match.slice( 0, 3 );
		}
	},

	filter: {

		"TAG": function( nodeNameSelector ) {
			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
			return nodeNameSelector === "*" ?
				function() {
					return true;
				} :
				function( elem ) {
					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
				};
		},

		"CLASS": function( className ) {
			var pattern = classCache[ className + " " ];

			return pattern ||
				( pattern = new RegExp( "(^|" + whitespace +
					")" + className + "(" + whitespace + "|$)" ) ) && classCache(
						className, function( elem ) {
							return pattern.test(
								typeof elem.className === "string" && elem.className ||
								typeof elem.getAttribute !== "undefined" &&
									elem.getAttribute( "class" ) ||
								""
							);
				} );
		},

		"ATTR": function( name, operator, check ) {
			return function( elem ) {
				var result = Sizzle.attr( elem, name );

				if ( result == null ) {
					return operator === "!=";
				}
				if ( !operator ) {
					return true;
				}

				result += "";

				/* eslint-disable max-len */

				return operator === "=" ? result === check :
					operator === "!=" ? result !== check :
					operator === "^=" ? check && result.indexOf( check ) === 0 :
					operator === "*=" ? check && result.indexOf( check ) > -1 :
					operator === "$=" ? check && result.slice( -check.length ) === check :
					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
					false;
				/* eslint-enable max-len */

			};
		},

		"CHILD": function( type, what, _argument, first, last ) {
			var simple = type.slice( 0, 3 ) !== "nth",
				forward = type.slice( -4 ) !== "last",
				ofType = what === "of-type";

			return first === 1 && last === 0 ?

				// Shortcut for :nth-*(n)
				function( elem ) {
					return !!elem.parentNode;
				} :

				function( elem, _context, xml ) {
					var cache, uniqueCache, outerCache, node, nodeIndex, start,
						dir = simple !== forward ? "nextSibling" : "previousSibling",
						parent = elem.parentNode,
						name = ofType && elem.nodeName.toLowerCase(),
						useCache = !xml && !ofType,
						diff = false;

					if ( parent ) {

						// :(first|last|only)-(child|of-type)
						if ( simple ) {
							while ( dir ) {
								node = elem;
								while ( ( node = node[ dir ] ) ) {
									if ( ofType ?
										node.nodeName.toLowerCase() === name :
										node.nodeType === 1 ) {

										return false;
									}
								}

								// Reverse direction for :only-* (if we haven't yet done so)
								start = dir = type === "only" && !start && "nextSibling";
							}
							return true;
						}

						start = [ forward ? parent.firstChild : parent.lastChild ];

						// non-xml :nth-child(...) stores cache data on `parent`
						if ( forward && useCache ) {

							// Seek `elem` from a previously-cached index

							// ...in a gzip-friendly way
							node = parent;
							outerCache = node[ expando ] || ( node[ expando ] = {} );

							// Support: IE <9 only
							// Defend against cloned attroperties (jQuery gh-1709)
							uniqueCache = outerCache[ node.uniqueID ] ||
								( outerCache[ node.uniqueID ] = {} );

							cache = uniqueCache[ type ] || [];
							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
							diff = nodeIndex && cache[ 2 ];
							node = nodeIndex && parent.childNodes[ nodeIndex ];

							while ( ( node = ++nodeIndex && node && node[ dir ] ||

								// Fallback to seeking `elem` from the start
								( diff = nodeIndex = 0 ) || start.pop() ) ) {

								// When found, cache indexes on `parent` and break
								if ( node.nodeType === 1 && ++diff && node === elem ) {
									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
									break;
								}
							}

						} else {

							// Use previously-cached element index if available
							if ( useCache ) {

								// ...in a gzip-friendly way
								node = elem;
								outerCache = node[ expando ] || ( node[ expando ] = {} );

								// Support: IE <9 only
								// Defend against cloned attroperties (jQuery gh-1709)
								uniqueCache = outerCache[ node.uniqueID ] ||
									( outerCache[ node.uniqueID ] = {} );

								cache = uniqueCache[ type ] || [];
								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
								diff = nodeIndex;
							}

							// xml :nth-child(...)
							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
							if ( diff === false ) {

								// Use the same loop as above to seek `elem` from the start
								while ( ( node = ++nodeIndex && node && node[ dir ] ||
									( diff = nodeIndex = 0 ) || start.pop() ) ) {

									if ( ( ofType ?
										node.nodeName.toLowerCase() === name :
										node.nodeType === 1 ) &&
										++diff ) {

										// Cache the index of each encountered element
										if ( useCache ) {
											outerCache = node[ expando ] ||
												( node[ expando ] = {} );

											// Support: IE <9 only
											// Defend against cloned attroperties (jQuery gh-1709)
											uniqueCache = outerCache[ node.uniqueID ] ||
												( outerCache[ node.uniqueID ] = {} );

											uniqueCache[ type ] = [ dirruns, diff ];
										}

										if ( node === elem ) {
											break;
										}
									}
								}
							}
						}

						// Incorporate the offset, then check against cycle size
						diff -= last;
						return diff === first || ( diff % first === 0 && diff / first >= 0 );
					}
				};
		},

		"PSEUDO": function( pseudo, argument ) {

			// pseudo-class names are case-insensitive
			// http://www.w3.org/TR/selectors/#pseudo-classes
			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
			// Remember that setFilters inherits from pseudos
			var args,
				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
					Sizzle.error( "unsupported pseudo: " + pseudo );

			// The user may use createPseudo to indicate that
			// arguments are needed to create the filter function
			// just as Sizzle does
			if ( fn[ expando ] ) {
				return fn( argument );
			}

			// But maintain support for old signatures
			if ( fn.length > 1 ) {
				args = [ pseudo, pseudo, "", argument ];
				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
					markFunction( function( seed, matches ) {
						var idx,
							matched = fn( seed, argument ),
							i = matched.length;
						while ( i-- ) {
							idx = indexOf( seed, matched[ i ] );
							seed[ idx ] = !( matches[ idx ] = matched[ i ] );
						}
					} ) :
					function( elem ) {
						return fn( elem, 0, args );
					};
			}

			return fn;
		}
	},

	pseudos: {

		// Potentially complex pseudos
		"not": markFunction( function( selector ) {

			// Trim the selector passed to compile
			// to avoid treating leading and trailing
			// spaces as combinators
			var input = [],
				results = [],
				matcher = compile( selector.replace( rtrim, "$1" ) );

			return matcher[ expando ] ?
				markFunction( function( seed, matches, _context, xml ) {
					var elem,
						unmatched = matcher( seed, null, xml, [] ),
						i = seed.length;

					// Match elements unmatched by `matcher`
					while ( i-- ) {
						if ( ( elem = unmatched[ i ] ) ) {
							seed[ i ] = !( matches[ i ] = elem );
						}
					}
				} ) :
				function( elem, _context, xml ) {
					input[ 0 ] = elem;
					matcher( input, null, xml, results );

					// Don't keep the element (issue #299)
					input[ 0 ] = null;
					return !results.pop();
				};
		} ),

		"has": markFunction( function( selector ) {
			return function( elem ) {
				return Sizzle( selector, elem ).length > 0;
			};
		} ),

		"contains": markFunction( function( text ) {
			text = text.replace( runescape, funescape );
			return function( elem ) {
				return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
			};
		} ),

		// "Whether an element is represented by a :lang() selector
		// is based solely on the element's language value
		// being equal to the identifier C,
		// or beginning with the identifier C immediately followed by "-".
		// The matching of C against the element's language value is performed case-insensitively.
		// The identifier C does not have to be a valid language name."
		// http://www.w3.org/TR/selectors/#lang-pseudo
		"lang": markFunction( function( lang ) {

			// lang value must be a valid identifier
			if ( !ridentifier.test( lang || "" ) ) {
				Sizzle.error( "unsupported lang: " + lang );
			}
			lang = lang.replace( runescape, funescape ).toLowerCase();
			return function( elem ) {
				var elemLang;
				do {
					if ( ( elemLang = documentIsHTML ?
						elem.lang :
						elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) {

						elemLang = elemLang.toLowerCase();
						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
					}
				} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );
				return false;
			};
		} ),

		// Miscellaneous
		"target": function( elem ) {
			var hash = window.location && window.location.hash;
			return hash && hash.slice( 1 ) === elem.id;
		},

		"root": function( elem ) {
			return elem === docElem;
		},

		"focus": function( elem ) {
			return elem === document.activeElement &&
				( !document.hasFocus || document.hasFocus() ) &&
				!!( elem.type || elem.href || ~elem.tabIndex );
		},

		// Boolean properties
		"enabled": createDisabledPseudo( false ),
		"disabled": createDisabledPseudo( true ),

		"checked": function( elem ) {

			// In CSS3, :checked should return both checked and selected elements
			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
			var nodeName = elem.nodeName.toLowerCase();
			return ( nodeName === "input" && !!elem.checked ) ||
				( nodeName === "option" && !!elem.selected );
		},

		"selected": function( elem ) {

			// Accessing this property makes selected-by-default
			// options in Safari work properly
			if ( elem.parentNode ) {
				// eslint-disable-next-line no-unused-expressions
				elem.parentNode.selectedIndex;
			}

			return elem.selected === true;
		},

		// Contents
		"empty": function( elem ) {

			// http://www.w3.org/TR/selectors/#empty-pseudo
			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
			//   but not by others (comment: 8; processing instruction: 7; etc.)
			// nodeType < 6 works because attributes (2) do not appear as children
			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
				if ( elem.nodeType < 6 ) {
					return false;
				}
			}
			return true;
		},

		"parent": function( elem ) {
			return !Expr.pseudos[ "empty" ]( elem );
		},

		// Element/input types
		"header": function( elem ) {
			return rheader.test( elem.nodeName );
		},

		"input": function( elem ) {
			return rinputs.test( elem.nodeName );
		},

		"button": function( elem ) {
			var name = elem.nodeName.toLowerCase();
			return name === "input" && elem.type === "button" || name === "button";
		},

		"text": function( elem ) {
			var attr;
			return elem.nodeName.toLowerCase() === "input" &&
				elem.type === "text" &&

				// Support: IE<8
				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
				( ( attr = elem.getAttribute( "type" ) ) == null ||
					attr.toLowerCase() === "text" );
		},

		// Position-in-collection
		"first": createPositionalPseudo( function() {
			return [ 0 ];
		} ),

		"last": createPositionalPseudo( function( _matchIndexes, length ) {
			return [ length - 1 ];
		} ),

		"eq": createPositionalPseudo( function( _matchIndexes, length, argument ) {
			return [ argument < 0 ? argument + length : argument ];
		} ),

		"even": createPositionalPseudo( function( matchIndexes, length ) {
			var i = 0;
			for ( ; i < length; i += 2 ) {
				matchIndexes.push( i );
			}
			return matchIndexes;
		} ),

		"odd": createPositionalPseudo( function( matchIndexes, length ) {
			var i = 1;
			for ( ; i < length; i += 2 ) {
				matchIndexes.push( i );
			}
			return matchIndexes;
		} ),

		"lt": createPositionalPseudo( function( matchIndexes, length, argument ) {
			var i = argument < 0 ?
				argument + length :
				argument > length ?
					length :
					argument;
			for ( ; --i >= 0; ) {
				matchIndexes.push( i );
			}
			return matchIndexes;
		} ),

		"gt": createPositionalPseudo( function( matchIndexes, length, argument ) {
			var i = argument < 0 ? argument + length : argument;
			for ( ; ++i < length; ) {
				matchIndexes.push( i );
			}
			return matchIndexes;
		} )
	}
};

Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ];

// Add button/input type pseudos
for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
	Expr.pseudos[ i ] = createInputPseudo( i );
}
for ( i in { submit: true, reset: true } ) {
	Expr.pseudos[ i ] = createButtonPseudo( i );
}

// Easy API for creating new setFilters
function setFilters() {}
setFilters.prototype = Expr.filters = Expr.pseudos;
Expr.setFilters = new setFilters();

tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
	var matched, match, tokens, type,
		soFar, groups, preFilters,
		cached = tokenCache[ selector + " " ];

	if ( cached ) {
		return parseOnly ? 0 : cached.slice( 0 );
	}

	soFar = selector;
	groups = [];
	preFilters = Expr.preFilter;

	while ( soFar ) {

		// Comma and first run
		if ( !matched || ( match = rcomma.exec( soFar ) ) ) {
			if ( match ) {

				// Don't consume trailing commas as valid
				soFar = soFar.slice( match[ 0 ].length ) || soFar;
			}
			groups.push( ( tokens = [] ) );
		}

		matched = false;

		// Combinators
		if ( ( match = rcombinators.exec( soFar ) ) ) {
			matched = match.shift();
			tokens.push( {
				value: matched,

				// Cast descendant combinators to space
				type: match[ 0 ].replace( rtrim, " " )
			} );
			soFar = soFar.slice( matched.length );
		}

		// Filters
		for ( type in Expr.filter ) {
			if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||
				( match = preFilters[ type ]( match ) ) ) ) {
				matched = match.shift();
				tokens.push( {
					value: matched,
					type: type,
					matches: match
				} );
				soFar = soFar.slice( matched.length );
			}
		}

		if ( !matched ) {
			break;
		}
	}

	// Return the length of the invalid excess
	// if we're just parsing
	// Otherwise, throw an error or return tokens
	return parseOnly ?
		soFar.length :
		soFar ?
			Sizzle.error( selector ) :

			// Cache the tokens
			tokenCache( selector, groups ).slice( 0 );
};

function toSelector( tokens ) {
	var i = 0,
		len = tokens.length,
		selector = "";
	for ( ; i < len; i++ ) {
		selector += tokens[ i ].value;
	}
	return selector;
}

function addCombinator( matcher, combinator, base ) {
	var dir = combinator.dir,
		skip = combinator.next,
		key = skip || dir,
		checkNonElements = base && key === "parentNode",
		doneName = done++;

	return combinator.first ?

		// Check against closest ancestor/preceding element
		function( elem, context, xml ) {
			while ( ( elem = elem[ dir ] ) ) {
				if ( elem.nodeType === 1 || checkNonElements ) {
					return matcher( elem, context, xml );
				}
			}
			return false;
		} :

		// Check against all ancestor/preceding elements
		function( elem, context, xml ) {
			var oldCache, uniqueCache, outerCache,
				newCache = [ dirruns, doneName ];

			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
			if ( xml ) {
				while ( ( elem = elem[ dir ] ) ) {
					if ( elem.nodeType === 1 || checkNonElements ) {
						if ( matcher( elem, context, xml ) ) {
							return true;
						}
					}
				}
			} else {
				while ( ( elem = elem[ dir ] ) ) {
					if ( elem.nodeType === 1 || checkNonElements ) {
						outerCache = elem[ expando ] || ( elem[ expando ] = {} );

						// Support: IE <9 only
						// Defend against cloned attroperties (jQuery gh-1709)
						uniqueCache = outerCache[ elem.uniqueID ] ||
							( outerCache[ elem.uniqueID ] = {} );

						if ( skip && skip === elem.nodeName.toLowerCase() ) {
							elem = elem[ dir ] || elem;
						} else if ( ( oldCache = uniqueCache[ key ] ) &&
							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {

							// Assign to newCache so results back-propagate to previous elements
							return ( newCache[ 2 ] = oldCache[ 2 ] );
						} else {

							// Reuse newcache so results back-propagate to previous elements
							uniqueCache[ key ] = newCache;

							// A match means we're done; a fail means we have to keep checking
							if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {
								return true;
							}
						}
					}
				}
			}
			return false;
		};
}

function elementMatcher( matchers ) {
	return matchers.length > 1 ?
		function( elem, context, xml ) {
			var i = matchers.length;
			while ( i-- ) {
				if ( !matchers[ i ]( elem, context, xml ) ) {
					return false;
				}
			}
			return true;
		} :
		matchers[ 0 ];
}

function multipleContexts( selector, contexts, results ) {
	var i = 0,
		len = contexts.length;
	for ( ; i < len; i++ ) {
		Sizzle( selector, contexts[ i ], results );
	}
	return results;
}

function condense( unmatched, map, filter, context, xml ) {
	var elem,
		newUnmatched = [],
		i = 0,
		len = unmatched.length,
		mapped = map != null;

	for ( ; i < len; i++ ) {
		if ( ( elem = unmatched[ i ] ) ) {
			if ( !filter || filter( elem, context, xml ) ) {
				newUnmatched.push( elem );
				if ( mapped ) {
					map.push( i );
				}
			}
		}
	}

	return newUnmatched;
}

function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
	if ( postFilter && !postFilter[ expando ] ) {
		postFilter = setMatcher( postFilter );
	}
	if ( postFinder && !postFinder[ expando ] ) {
		postFinder = setMatcher( postFinder, postSelector );
	}
	return markFunction( function( seed, results, context, xml ) {
		var temp, i, elem,
			preMap = [],
			postMap = [],
			preexisting = results.length,

			// Get initial elements from seed or context
			elems = seed || multipleContexts(
				selector || "*",
				context.nodeType ? [ context ] : context,
				[]
			),

			// Prefilter to get matcher input, preserving a map for seed-results synchronization
			matcherIn = preFilter && ( seed || !selector ) ?
				condense( elems, preMap, preFilter, context, xml ) :
				elems,

			matcherOut = matcher ?

				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?

					// ...intermediate processing is necessary
					[] :

					// ...otherwise use results directly
					results :
				matcherIn;

		// Find primary matches
		if ( matcher ) {
			matcher( matcherIn, matcherOut, context, xml );
		}

		// Apply postFilter
		if ( postFilter ) {
			temp = condense( matcherOut, postMap );
			postFilter( temp, [], context, xml );

			// Un-match failing elements by moving them back to matcherIn
			i = temp.length;
			while ( i-- ) {
				if ( ( elem = temp[ i ] ) ) {
					matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );
				}
			}
		}

		if ( seed ) {
			if ( postFinder || preFilter ) {
				if ( postFinder ) {

					// Get the final matcherOut by condensing this intermediate into postFinder contexts
					temp = [];
					i = matcherOut.length;
					while ( i-- ) {
						if ( ( elem = matcherOut[ i ] ) ) {

							// Restore matcherIn since elem is not yet a final match
							temp.push( ( matcherIn[ i ] = elem ) );
						}
					}
					postFinder( null, ( matcherOut = [] ), temp, xml );
				}

				// Move matched elements from seed to results to keep them synchronized
				i = matcherOut.length;
				while ( i-- ) {
					if ( ( elem = matcherOut[ i ] ) &&
						( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {

						seed[ temp ] = !( results[ temp ] = elem );
					}
				}
			}

		// Add elements to results, through postFinder if defined
		} else {
			matcherOut = condense(
				matcherOut === results ?
					matcherOut.splice( preexisting, matcherOut.length ) :
					matcherOut
			);
			if ( postFinder ) {
				postFinder( null, results, matcherOut, xml );
			} else {
				push.apply( results, matcherOut );
			}
		}
	} );
}

function matcherFromTokens( tokens ) {
	var checkContext, matcher, j,
		len = tokens.length,
		leadingRelative = Expr.relative[ tokens[ 0 ].type ],
		implicitRelative = leadingRelative || Expr.relative[ " " ],
		i = leadingRelative ? 1 : 0,

		// The foundational matcher ensures that elements are reachable from top-level context(s)
		matchContext = addCombinator( function( elem ) {
			return elem === checkContext;
		}, implicitRelative, true ),
		matchAnyContext = addCombinator( function( elem ) {
			return indexOf( checkContext, elem ) > -1;
		}, implicitRelative, true ),
		matchers = [ function( elem, context, xml ) {
			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
				( checkContext = context ).nodeType ?
					matchContext( elem, context, xml ) :
					matchAnyContext( elem, context, xml ) );

			// Avoid hanging onto element (issue #299)
			checkContext = null;
			return ret;
		} ];

	for ( ; i < len; i++ ) {
		if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {
			matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];
		} else {
			matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );

			// Return special upon seeing a positional matcher
			if ( matcher[ expando ] ) {

				// Find the next relative operator (if any) for proper handling
				j = ++i;
				for ( ; j < len; j++ ) {
					if ( Expr.relative[ tokens[ j ].type ] ) {
						break;
					}
				}
				return setMatcher(
					i > 1 && elementMatcher( matchers ),
					i > 1 && toSelector(

					// If the preceding token was a descendant combinator, insert an implicit any-element `*`
					tokens
						.slice( 0, i - 1 )
						.concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } )
					).replace( rtrim, "$1" ),
					matcher,
					i < j && matcherFromTokens( tokens.slice( i, j ) ),
					j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),
					j < len && toSelector( tokens )
				);
			}
			matchers.push( matcher );
		}
	}

	return elementMatcher( matchers );
}

function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
	var bySet = setMatchers.length > 0,
		byElement = elementMatchers.length > 0,
		superMatcher = function( seed, context, xml, results, outermost ) {
			var elem, j, matcher,
				matchedCount = 0,
				i = "0",
				unmatched = seed && [],
				setMatched = [],
				contextBackup = outermostContext,

				// We must always have either seed elements or outermost context
				elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ),

				// Use integer dirruns iff this is the outermost matcher
				dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),
				len = elems.length;

			if ( outermost ) {

				// Support: IE 11+, Edge 17 - 18+
				// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
				// two documents; shallow comparisons work.
				// eslint-disable-next-line eqeqeq
				outermostContext = context == document || context || outermost;
			}

			// Add elements passing elementMatchers directly to results
			// Support: IE<9, Safari
			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
			for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {
				if ( byElement && elem ) {
					j = 0;

					// Support: IE 11+, Edge 17 - 18+
					// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
					// two documents; shallow comparisons work.
					// eslint-disable-next-line eqeqeq
					if ( !context && elem.ownerDocument != document ) {
						setDocument( elem );
						xml = !documentIsHTML;
					}
					while ( ( matcher = elementMatchers[ j++ ] ) ) {
						if ( matcher( elem, context || document, xml ) ) {
							results.push( elem );
							break;
						}
					}
					if ( outermost ) {
						dirruns = dirrunsUnique;
					}
				}

				// Track unmatched elements for set filters
				if ( bySet ) {

					// They will have gone through all possible matchers
					if ( ( elem = !matcher && elem ) ) {
						matchedCount--;
					}

					// Lengthen the array for every element, matched or not
					if ( seed ) {
						unmatched.push( elem );
					}
				}
			}

			// `i` is now the count of elements visited above, and adding it to `matchedCount`
			// makes the latter nonnegative.
			matchedCount += i;

			// Apply set filters to unmatched elements
			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
			// no element matchers and no seed.
			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
			// numerically zero.
			if ( bySet && i !== matchedCount ) {
				j = 0;
				while ( ( matcher = setMatchers[ j++ ] ) ) {
					matcher( unmatched, setMatched, context, xml );
				}

				if ( seed ) {

					// Reintegrate element matches to eliminate the need for sorting
					if ( matchedCount > 0 ) {
						while ( i-- ) {
							if ( !( unmatched[ i ] || setMatched[ i ] ) ) {
								setMatched[ i ] = pop.call( results );
							}
						}
					}

					// Discard index placeholder values to get only actual matches
					setMatched = condense( setMatched );
				}

				// Add matches to results
				push.apply( results, setMatched );

				// Seedless set matches succeeding multiple successful matchers stipulate sorting
				if ( outermost && !seed && setMatched.length > 0 &&
					( matchedCount + setMatchers.length ) > 1 ) {

					Sizzle.uniqueSort( results );
				}
			}

			// Override manipulation of globals by nested matchers
			if ( outermost ) {
				dirruns = dirrunsUnique;
				outermostContext = contextBackup;
			}

			return unmatched;
		};

	return bySet ?
		markFunction( superMatcher ) :
		superMatcher;
}

compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
	var i,
		setMatchers = [],
		elementMatchers = [],
		cached = compilerCache[ selector + " " ];

	if ( !cached ) {

		// Generate a function of recursive functions that can be used to check each element
		if ( !match ) {
			match = tokenize( selector );
		}
		i = match.length;
		while ( i-- ) {
			cached = matcherFromTokens( match[ i ] );
			if ( cached[ expando ] ) {
				setMatchers.push( cached );
			} else {
				elementMatchers.push( cached );
			}
		}

		// Cache the compiled function
		cached = compilerCache(
			selector,
			matcherFromGroupMatchers( elementMatchers, setMatchers )
		);

		// Save selector and tokenization
		cached.selector = selector;
	}
	return cached;
};

/**
 * A low-level selection function that works with Sizzle's compiled
 *  selector functions
 * @param {String|Function} selector A selector or a pre-compiled
 *  selector function built with Sizzle.compile
 * @param {Element} context
 * @param {Array} [results]
 * @param {Array} [seed] A set of elements to match against
 */
select = Sizzle.select = function( selector, context, results, seed ) {
	var i, tokens, token, type, find,
		compiled = typeof selector === "function" && selector,
		match = !seed && tokenize( ( selector = compiled.selector || selector ) );

	results = results || [];

	// Try to minimize operations if there is only one selector in the list and no seed
	// (the latter of which guarantees us context)
	if ( match.length === 1 ) {

		// Reduce context if the leading compound selector is an ID
		tokens = match[ 0 ] = match[ 0 ].slice( 0 );
		if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" &&
			context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {

			context = ( Expr.find[ "ID" ]( token.matches[ 0 ]
				.replace( runescape, funescape ), context ) || [] )[ 0 ];
			if ( !context ) {
				return results;

			// Precompiled matchers will still verify ancestry, so step up a level
			} else if ( compiled ) {
				context = context.parentNode;
			}

			selector = selector.slice( tokens.shift().value.length );
		}

		// Fetch a seed set for right-to-left matching
		i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length;
		while ( i-- ) {
			token = tokens[ i ];

			// Abort if we hit a combinator
			if ( Expr.relative[ ( type = token.type ) ] ) {
				break;
			}
			if ( ( find = Expr.find[ type ] ) ) {

				// Search, expanding context for leading sibling combinators
				if ( ( seed = find(
					token.matches[ 0 ].replace( runescape, funescape ),
					rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||
						context
				) ) ) {

					// If seed is empty or no tokens remain, we can return early
					tokens.splice( i, 1 );
					selector = seed.length && toSelector( tokens );
					if ( !selector ) {
						push.apply( results, seed );
						return results;
					}

					break;
				}
			}
		}
	}

	// Compile and execute a filtering function if one is not provided
	// Provide `match` to avoid retokenization if we modified the selector above
	( compiled || compile( selector, match ) )(
		seed,
		context,
		!documentIsHTML,
		results,
		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
	);
	return results;
};

// One-time assignments

// Sort stability
support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando;

// Support: Chrome 14-35+
// Always assume duplicates if they aren't passed to the comparison function
support.detectDuplicates = !!hasDuplicate;

// Initialize against the default document
setDocument();

// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
// Detached nodes confoundingly follow *each other*
support.sortDetached = assert( function( el ) {

	// Should return 1, but returns 4 (following)
	return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1;
} );

// Support: IE<8
// Prevent attribute/property "interpolation"
// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
if ( !assert( function( el ) {
	el.innerHTML = "<a href='#'></a>";
	return el.firstChild.getAttribute( "href" ) === "#";
} ) ) {
	addHandle( "type|href|height|width", function( elem, name, isXML ) {
		if ( !isXML ) {
			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
		}
	} );
}

// Support: IE<9
// Use defaultValue in place of getAttribute("value")
if ( !support.attributes || !assert( function( el ) {
	el.innerHTML = "<input/>";
	el.firstChild.setAttribute( "value", "" );
	return el.firstChild.getAttribute( "value" ) === "";
} ) ) {
	addHandle( "value", function( elem, _name, isXML ) {
		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
			return elem.defaultValue;
		}
	} );
}

// Support: IE<9
// Use getAttributeNode to fetch booleans when getAttribute lies
if ( !assert( function( el ) {
	return el.getAttribute( "disabled" ) == null;
} ) ) {
	addHandle( booleans, function( elem, name, isXML ) {
		var val;
		if ( !isXML ) {
			return elem[ name ] === true ? name.toLowerCase() :
				( val = elem.getAttributeNode( name ) ) && val.specified ?
					val.value :
					null;
		}
	} );
}

return Sizzle;

} )( window );



jQuery.find = Sizzle;
jQuery.expr = Sizzle.selectors;

// Deprecated
jQuery.expr[ ":" ] = jQuery.expr.pseudos;
jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
jQuery.text = Sizzle.getText;
jQuery.isXMLDoc = Sizzle.isXML;
jQuery.contains = Sizzle.contains;
jQuery.escapeSelector = Sizzle.escape;




var dir = function( elem, dir, until ) {
	var matched = [],
		truncate = until !== undefined;

	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
		if ( elem.nodeType === 1 ) {
			if ( truncate && jQuery( elem ).is( until ) ) {
				break;
			}
			matched.push( elem );
		}
	}
	return matched;
};


var siblings = function( n, elem ) {
	var matched = [];

	for ( ; n; n = n.nextSibling ) {
		if ( n.nodeType === 1 && n !== elem ) {
			matched.push( n );
		}
	}

	return matched;
};


var rneedsContext = jQuery.expr.match.needsContext;



function nodeName( elem, name ) {

  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();

};
var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );



// Implement the identical functionality for filter and not
function winnow( elements, qualifier, not ) {
	if ( isFunction( qualifier ) ) {
		return jQuery.grep( elements, function( elem, i ) {
			return !!qualifier.call( elem, i, elem ) !== not;
		} );
	}

	// Single element
	if ( qualifier.nodeType ) {
		return jQuery.grep( elements, function( elem ) {
			return ( elem === qualifier ) !== not;
		} );
	}

	// Arraylike of elements (jQuery, arguments, Array)
	if ( typeof qualifier !== "string" ) {
		return jQuery.grep( elements, function( elem ) {
			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
		} );
	}

	// Filtered directly for both simple and complex selectors
	return jQuery.filter( qualifier, elements, not );
}

jQuery.filter = function( expr, elems, not ) {
	var elem = elems[ 0 ];

	if ( not ) {
		expr = ":not(" + expr + ")";
	}

	if ( elems.length === 1 && elem.nodeType === 1 ) {
		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
	}

	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
		return elem.nodeType === 1;
	} ) );
};

jQuery.fn.extend( {
	find: function( selector ) {
		var i, ret,
			len = this.length,
			self = this;

		if ( typeof selector !== "string" ) {
			return this.pushStack( jQuery( selector ).filter( function() {
				for ( i = 0; i < len; i++ ) {
					if ( jQuery.contains( self[ i ], this ) ) {
						return true;
					}
				}
			} ) );
		}

		ret = this.pushStack( [] );

		for ( i = 0; i < len; i++ ) {
			jQuery.find( selector, self[ i ], ret );
		}

		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
	},
	filter: function( selector ) {
		return this.pushStack( winnow( this, selector || [], false ) );
	},
	not: function( selector ) {
		return this.pushStack( winnow( this, selector || [], true ) );
	},
	is: function( selector ) {
		return !!winnow(
			this,

			// If this is a positional/relative selector, check membership in the returned set
			// so $("p:first").is("p:last") won't return true for a doc with two "p".
			typeof selector === "string" && rneedsContext.test( selector ) ?
				jQuery( selector ) :
				selector || [],
			false
		).length;
	}
} );


// Initialize a jQuery object


// A central reference to the root jQuery(document)
var rootjQuery,

	// A simple way to check for HTML strings
	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
	// Strict HTML recognition (#11290: must start with <)
	// Shortcut simple #id case for speed
	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,

	init = jQuery.fn.init = function( selector, context, root ) {
		var match, elem;

		// HANDLE: $(""), $(null), $(undefined), $(false)
		if ( !selector ) {
			return this;
		}

		// Method init() accepts an alternate rootjQuery
		// so migrate can support jQuery.sub (gh-2101)
		root = root || rootjQuery;

		// Handle HTML strings
		if ( typeof selector === "string" ) {
			if ( selector[ 0 ] === "<" &&
				selector[ selector.length - 1 ] === ">" &&
				selector.length >= 3 ) {

				// Assume that strings that start and end with <> are HTML and skip the regex check
				match = [ null, selector, null ];

			} else {
				match = rquickExpr.exec( selector );
			}

			// Match html or make sure no context is specified for #id
			if ( match && ( match[ 1 ] || !context ) ) {

				// HANDLE: $(html) -> $(array)
				if ( match[ 1 ] ) {
					context = context instanceof jQuery ? context[ 0 ] : context;

					// Option to run scripts is true for back-compat
					// Intentionally let the error be thrown if parseHTML is not present
					jQuery.merge( this, jQuery.parseHTML(
						match[ 1 ],
						context && context.nodeType ? context.ownerDocument || context : document,
						true
					) );

					// HANDLE: $(html, props)
					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
						for ( match in context ) {

							// Properties of context are called as methods if possible
							if ( isFunction( this[ match ] ) ) {
								this[ match ]( context[ match ] );

							// ...and otherwise set as attributes
							} else {
								this.attr( match, context[ match ] );
							}
						}
					}

					return this;

				// HANDLE: $(#id)
				} else {
					elem = document.getElementById( match[ 2 ] );

					if ( elem ) {

						// Inject the element directly into the jQuery object
						this[ 0 ] = elem;
						this.length = 1;
					}
					return this;
				}

			// HANDLE: $(expr, $(...))
			} else if ( !context || context.jquery ) {
				return ( context || root ).find( selector );

			// HANDLE: $(expr, context)
			// (which is just equivalent to: $(context).find(expr)
			} else {
				return this.constructor( context ).find( selector );
			}

		// HANDLE: $(DOMElement)
		} else if ( selector.nodeType ) {
			this[ 0 ] = selector;
			this.length = 1;
			return this;

		// HANDLE: $(function)
		// Shortcut for document ready
		} else if ( isFunction( selector ) ) {
			return root.ready !== undefined ?
				root.ready( selector ) :

				// Execute immediately if ready is not present
				selector( jQuery );
		}

		return jQuery.makeArray( selector, this );
	};

// Give the init function the jQuery prototype for later instantiation
init.prototype = jQuery.fn;

// Initialize central reference
rootjQuery = jQuery( document );


var rparentsprev = /^(?:parents|prev(?:Until|All))/,

	// Methods guaranteed to produce a unique set when starting from a unique set
	guaranteedUnique = {
		children: true,
		contents: true,
		next: true,
		prev: true
	};

jQuery.fn.extend( {
	has: function( target ) {
		var targets = jQuery( target, this ),
			l = targets.length;

		return this.filter( function() {
			var i = 0;
			for ( ; i < l; i++ ) {
				if ( jQuery.contains( this, targets[ i ] ) ) {
					return true;
				}
			}
		} );
	},

	closest: function( selectors, context ) {
		var cur,
			i = 0,
			l = this.length,
			matched = [],
			targets = typeof selectors !== "string" && jQuery( selectors );

		// Positional selectors never match, since there's no _selection_ context
		if ( !rneedsContext.test( selectors ) ) {
			for ( ; i < l; i++ ) {
				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {

					// Always skip document fragments
					if ( cur.nodeType < 11 && ( targets ?
						targets.index( cur ) > -1 :

						// Don't pass non-elements to Sizzle
						cur.nodeType === 1 &&
							jQuery.find.matchesSelector( cur, selectors ) ) ) {

						matched.push( cur );
						break;
					}
				}
			}
		}

		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
	},

	// Determine the position of an element within the set
	index: function( elem ) {

		// No argument, return index in parent
		if ( !elem ) {
			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
		}

		// Index in selector
		if ( typeof elem === "string" ) {
			return indexOf.call( jQuery( elem ), this[ 0 ] );
		}

		// Locate the position of the desired element
		return indexOf.call( this,

			// If it receives a jQuery object, the first element is used
			elem.jquery ? elem[ 0 ] : elem
		);
	},

	add: function( selector, context ) {
		return this.pushStack(
			jQuery.uniqueSort(
				jQuery.merge( this.get(), jQuery( selector, context ) )
			)
		);
	},

	addBack: function( selector ) {
		return this.add( selector == null ?
			this.prevObject : this.prevObject.filter( selector )
		);
	}
} );

function sibling( cur, dir ) {
	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
	return cur;
}

jQuery.each( {
	parent: function( elem ) {
		var parent = elem.parentNode;
		return parent && parent.nodeType !== 11 ? parent : null;
	},
	parents: function( elem ) {
		return dir( elem, "parentNode" );
	},
	parentsUntil: function( elem, _i, until ) {
		return dir( elem, "parentNode", until );
	},
	next: function( elem ) {
		return sibling( elem, "nextSibling" );
	},
	prev: function( elem ) {
		return sibling( elem, "previousSibling" );
	},
	nextAll: function( elem ) {
		return dir( elem, "nextSibling" );
	},
	prevAll: function( elem ) {
		return dir( elem, "previousSibling" );
	},
	nextUntil: function( elem, _i, until ) {
		return dir( elem, "nextSibling", until );
	},
	prevUntil: function( elem, _i, until ) {
		return dir( elem, "previousSibling", until );
	},
	siblings: function( elem ) {
		return siblings( ( elem.parentNode || {} ).firstChild, elem );
	},
	children: function( elem ) {
		return siblings( elem.firstChild );
	},
	contents: function( elem ) {
		if ( elem.contentDocument != null &&

			// Support: IE 11+
			// <object> elements with no `data` attribute has an object
			// `contentDocument` with a `null` prototype.
			getProto( elem.contentDocument ) ) {

			return elem.contentDocument;
		}

		// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
		// Treat the template element as a regular one in browsers that
		// don't support it.
		if ( nodeName( elem, "template" ) ) {
			elem = elem.content || elem;
		}

		return jQuery.merge( [], elem.childNodes );
	}
}, function( name, fn ) {
	jQuery.fn[ name ] = function( until, selector ) {
		var matched = jQuery.map( this, fn, until );

		if ( name.slice( -5 ) !== "Until" ) {
			selector = until;
		}

		if ( selector && typeof selector === "string" ) {
			matched = jQuery.filter( selector, matched );
		}

		if ( this.length > 1 ) {

			// Remove duplicates
			if ( !guaranteedUnique[ name ] ) {
				jQuery.uniqueSort( matched );
			}

			// Reverse order for parents* and prev-derivatives
			if ( rparentsprev.test( name ) ) {
				matched.reverse();
			}
		}

		return this.pushStack( matched );
	};
} );
var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );



// Convert String-formatted options into Object-formatted ones
function createOptions( options ) {
	var object = {};
	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
		object[ flag ] = true;
	} );
	return object;
}

/*
 * Create a callback list using the following parameters:
 *
 *	options: an optional list of space-separated options that will change how
 *			the callback list behaves or a more traditional option object
 *
 * By default a callback list will act like an event callback list and can be
 * "fired" multiple times.
 *
 * Possible options:
 *
 *	once:			will ensure the callback list can only be fired once (like a Deferred)
 *
 *	memory:			will keep track of previous values and will call any callback added
 *					after the list has been fired right away with the latest "memorized"
 *					values (like a Deferred)
 *
 *	unique:			will ensure a callback can only be added once (no duplicate in the list)
 *
 *	stopOnFalse:	interrupt callings when a callback returns false
 *
 */
jQuery.Callbacks = function( options ) {

	// Convert options from String-formatted to Object-formatted if needed
	// (we check in cache first)
	options = typeof options === "string" ?
		createOptions( options ) :
		jQuery.extend( {}, options );

	var // Flag to know if list is currently firing
		firing,

		// Last fire value for non-forgettable lists
		memory,

		// Flag to know if list was already fired
		fired,

		// Flag to prevent firing
		locked,

		// Actual callback list
		list = [],

		// Queue of execution data for repeatable lists
		queue = [],

		// Index of currently firing callback (modified by add/remove as needed)
		firingIndex = -1,

		// Fire callbacks
		fire = function() {

			// Enforce single-firing
			locked = locked || options.once;

			// Execute callbacks for all pending executions,
			// respecting firingIndex overrides and runtime changes
			fired = firing = true;
			for ( ; queue.length; firingIndex = -1 ) {
				memory = queue.shift();
				while ( ++firingIndex < list.length ) {

					// Run callback and check for early termination
					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
						options.stopOnFalse ) {

						// Jump to end and forget the data so .add doesn't re-fire
						firingIndex = list.length;
						memory = false;
					}
				}
			}

			// Forget the data if we're done with it
			if ( !options.memory ) {
				memory = false;
			}

			firing = false;

			// Clean up if we're done firing for good
			if ( locked ) {

				// Keep an empty list if we have data for future add calls
				if ( memory ) {
					list = [];

				// Otherwise, this object is spent
				} else {
					list = "";
				}
			}
		},

		// Actual Callbacks object
		self = {

			// Add a callback or a collection of callbacks to the list
			add: function() {
				if ( list ) {

					// If we have memory from a past run, we should fire after adding
					if ( memory && !firing ) {
						firingIndex = list.length - 1;
						queue.push( memory );
					}

					( function add( args ) {
						jQuery.each( args, function( _, arg ) {
							if ( isFunction( arg ) ) {
								if ( !options.unique || !self.has( arg ) ) {
									list.push( arg );
								}
							} else if ( arg && arg.length && toType( arg ) !== "string" ) {

								// Inspect recursively
								add( arg );
							}
						} );
					} )( arguments );

					if ( memory && !firing ) {
						fire();
					}
				}
				return this;
			},

			// Remove a callback from the list
			remove: function() {
				jQuery.each( arguments, function( _, arg ) {
					var index;
					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
						list.splice( index, 1 );

						// Handle firing indexes
						if ( index <= firingIndex ) {
							firingIndex--;
						}
					}
				} );
				return this;
			},

			// Check if a given callback is in the list.
			// If no argument is given, return whether or not list has callbacks attached.
			has: function( fn ) {
				return fn ?
					jQuery.inArray( fn, list ) > -1 :
					list.length > 0;
			},

			// Remove all callbacks from the list
			empty: function() {
				if ( list ) {
					list = [];
				}
				return this;
			},

			// Disable .fire and .add
			// Abort any current/pending executions
			// Clear all callbacks and values
			disable: function() {
				locked = queue = [];
				list = memory = "";
				return this;
			},
			disabled: function() {
				return !list;
			},

			// Disable .fire
			// Also disable .add unless we have memory (since it would have no effect)
			// Abort any pending executions
			lock: function() {
				locked = queue = [];
				if ( !memory && !firing ) {
					list = memory = "";
				}
				return this;
			},
			locked: function() {
				return !!locked;
			},

			// Call all callbacks with the given context and arguments
			fireWith: function( context, args ) {
				if ( !locked ) {
					args = args || [];
					args = [ context, args.slice ? args.slice() : args ];
					queue.push( args );
					if ( !firing ) {
						fire();
					}
				}
				return this;
			},

			// Call all the callbacks with the given arguments
			fire: function() {
				self.fireWith( this, arguments );
				return this;
			},

			// To know if the callbacks have already been called at least once
			fired: function() {
				return !!fired;
			}
		};

	return self;
};


function Identity( v ) {
	return v;
}
function Thrower( ex ) {
	throw ex;
}

function adoptValue( value, resolve, reject, noValue ) {
	var method;

	try {

		// Check for promise aspect first to privilege synchronous behavior
		if ( value && isFunction( ( method = value.promise ) ) ) {
			method.call( value ).done( resolve ).fail( reject );

		// Other thenables
		} else if ( value && isFunction( ( method = value.then ) ) ) {
			method.call( value, resolve, reject );

		// Other non-thenables
		} else {

			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
			// * false: [ value ].slice( 0 ) => resolve( value )
			// * true: [ value ].slice( 1 ) => resolve()
			resolve.apply( undefined, [ value ].slice( noValue ) );
		}

	// For Promises/A+, convert exceptions into rejections
	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
	// Deferred#then to conditionally suppress rejection.
	} catch ( value ) {

		// Support: Android 4.0 only
		// Strict mode functions invoked without .call/.apply get global-object context
		reject.apply( undefined, [ value ] );
	}
}

jQuery.extend( {

	Deferred: function( func ) {
		var tuples = [

				// action, add listener, callbacks,
				// ... .then handlers, argument index, [final state]
				[ "notify", "progress", jQuery.Callbacks( "memory" ),
					jQuery.Callbacks( "memory" ), 2 ],
				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
			],
			state = "pending",
			promise = {
				state: function() {
					return state;
				},
				always: function() {
					deferred.done( arguments ).fail( arguments );
					return this;
				},
				"catch": function( fn ) {
					return promise.then( null, fn );
				},

				// Keep pipe for back-compat
				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
					var fns = arguments;

					return jQuery.Deferred( function( newDefer ) {
						jQuery.each( tuples, function( _i, tuple ) {

							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];

							// deferred.progress(function() { bind to newDefer or newDefer.notify })
							// deferred.done(function() { bind to newDefer or newDefer.resolve })
							// deferred.fail(function() { bind to newDefer or newDefer.reject })
							deferred[ tuple[ 1 ] ]( function() {
								var returned = fn && fn.apply( this, arguments );
								if ( returned && isFunction( returned.promise ) ) {
									returned.promise()
										.progress( newDefer.notify )
										.done( newDefer.resolve )
										.fail( newDefer.reject );
								} else {
									newDefer[ tuple[ 0 ] + "With" ](
										this,
										fn ? [ returned ] : arguments
									);
								}
							} );
						} );
						fns = null;
					} ).promise();
				},
				then: function( onFulfilled, onRejected, onProgress ) {
					var maxDepth = 0;
					function resolve( depth, deferred, handler, special ) {
						return function() {
							var that = this,
								args = arguments,
								mightThrow = function() {
									var returned, then;

									// Support: Promises/A+ section 2.3.3.3.3
									// https://promisesaplus.com/#point-59
									// Ignore double-resolution attempts
									if ( depth < maxDepth ) {
										return;
									}

									returned = handler.apply( that, args );

									// Support: Promises/A+ section 2.3.1
									// https://promisesaplus.com/#point-48
									if ( returned === deferred.promise() ) {
										throw new TypeError( "Thenable self-resolution" );
									}

									// Support: Promises/A+ sections 2.3.3.1, 3.5
									// https://promisesaplus.com/#point-54
									// https://promisesaplus.com/#point-75
									// Retrieve `then` only once
									then = returned &&

										// Support: Promises/A+ section 2.3.4
										// https://promisesaplus.com/#point-64
										// Only check objects and functions for thenability
										( typeof returned === "object" ||
											typeof returned === "function" ) &&
										returned.then;

									// Handle a returned thenable
									if ( isFunction( then ) ) {

										// Special processors (notify) just wait for resolution
										if ( special ) {
											then.call(
												returned,
												resolve( maxDepth, deferred, Identity, special ),
												resolve( maxDepth, deferred, Thrower, special )
											);

										// Normal processors (resolve) also hook into progress
										} else {

											// ...and disregard older resolution values
											maxDepth++;

											then.call(
												returned,
												resolve( maxDepth, deferred, Identity, special ),
												resolve( maxDepth, deferred, Thrower, special ),
												resolve( maxDepth, deferred, Identity,
													deferred.notifyWith )
											);
										}

									// Handle all other returned values
									} else {

										// Only substitute handlers pass on context
										// and multiple values (non-spec behavior)
										if ( handler !== Identity ) {
											that = undefined;
											args = [ returned ];
										}

										// Process the value(s)
										// Default process is resolve
										( special || deferred.resolveWith )( that, args );
									}
								},

								// Only normal processors (resolve) catch and reject exceptions
								process = special ?
									mightThrow :
									function() {
										try {
											mightThrow();
										} catch ( e ) {

											if ( jQuery.Deferred.exceptionHook ) {
												jQuery.Deferred.exceptionHook( e,
													process.stackTrace );
											}

											// Support: Promises/A+ section 2.3.3.3.4.1
											// https://promisesaplus.com/#point-61
											// Ignore post-resolution exceptions
											if ( depth + 1 >= maxDepth ) {

												// Only substitute handlers pass on context
												// and multiple values (non-spec behavior)
												if ( handler !== Thrower ) {
													that = undefined;
													args = [ e ];
												}

												deferred.rejectWith( that, args );
											}
										}
									};

							// Support: Promises/A+ section 2.3.3.3.1
							// https://promisesaplus.com/#point-57
							// Re-resolve promises immediately to dodge false rejection from
							// subsequent errors
							if ( depth ) {
								process();
							} else {

								// Call an optional hook to record the stack, in case of exception
								// since it's otherwise lost when execution goes async
								if ( jQuery.Deferred.getStackHook ) {
									process.stackTrace = jQuery.Deferred.getStackHook();
								}
								window.setTimeout( process );
							}
						};
					}

					return jQuery.Deferred( function( newDefer ) {

						// progress_handlers.add( ... )
						tuples[ 0 ][ 3 ].add(
							resolve(
								0,
								newDefer,
								isFunction( onProgress ) ?
									onProgress :
									Identity,
								newDefer.notifyWith
							)
						);

						// fulfilled_handlers.add( ... )
						tuples[ 1 ][ 3 ].add(
							resolve(
								0,
								newDefer,
								isFunction( onFulfilled ) ?
									onFulfilled :
									Identity
							)
						);

						// rejected_handlers.add( ... )
						tuples[ 2 ][ 3 ].add(
							resolve(
								0,
								newDefer,
								isFunction( onRejected ) ?
									onRejected :
									Thrower
							)
						);
					} ).promise();
				},

				// Get a promise for this deferred
				// If obj is provided, the promise aspect is added to the object
				promise: function( obj ) {
					return obj != null ? jQuery.extend( obj, promise ) : promise;
				}
			},
			deferred = {};

		// Add list-specific methods
		jQuery.each( tuples, function( i, tuple ) {
			var list = tuple[ 2 ],
				stateString = tuple[ 5 ];

			// promise.progress = list.add
			// promise.done = list.add
			// promise.fail = list.add
			promise[ tuple[ 1 ] ] = list.add;

			// Handle state
			if ( stateString ) {
				list.add(
					function() {

						// state = "resolved" (i.e., fulfilled)
						// state = "rejected"
						state = stateString;
					},

					// rejected_callbacks.disable
					// fulfilled_callbacks.disable
					tuples[ 3 - i ][ 2 ].disable,

					// rejected_handlers.disable
					// fulfilled_handlers.disable
					tuples[ 3 - i ][ 3 ].disable,

					// progress_callbacks.lock
					tuples[ 0 ][ 2 ].lock,

					// progress_handlers.lock
					tuples[ 0 ][ 3 ].lock
				);
			}

			// progress_handlers.fire
			// fulfilled_handlers.fire
			// rejected_handlers.fire
			list.add( tuple[ 3 ].fire );

			// deferred.notify = function() { deferred.notifyWith(...) }
			// deferred.resolve = function() { deferred.resolveWith(...) }
			// deferred.reject = function() { deferred.rejectWith(...) }
			deferred[ tuple[ 0 ] ] = function() {
				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
				return this;
			};

			// deferred.notifyWith = list.fireWith
			// deferred.resolveWith = list.fireWith
			// deferred.rejectWith = list.fireWith
			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
		} );

		// Make the deferred a promise
		promise.promise( deferred );

		// Call given func if any
		if ( func ) {
			func.call( deferred, deferred );
		}

		// All done!
		return deferred;
	},

	// Deferred helper
	when: function( singleValue ) {
		var

			// count of uncompleted subordinates
			remaining = arguments.length,

			// count of unprocessed arguments
			i = remaining,

			// subordinate fulfillment data
			resolveContexts = Array( i ),
			resolveValues = slice.call( arguments ),

			// the master Deferred
			master = jQuery.Deferred(),

			// subordinate callback factory
			updateFunc = function( i ) {
				return function( value ) {
					resolveContexts[ i ] = this;
					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
					if ( !( --remaining ) ) {
						master.resolveWith( resolveContexts, resolveValues );
					}
				};
			};

		// Single- and empty arguments are adopted like Promise.resolve
		if ( remaining <= 1 ) {
			adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
				!remaining );

			// Use .then() to unwrap secondary thenables (cf. gh-3000)
			if ( master.state() === "pending" ||
				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {

				return master.then();
			}
		}

		// Multiple arguments are aggregated like Promise.all array elements
		while ( i-- ) {
			adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
		}

		return master.promise();
	}
} );


// These usually indicate a programmer mistake during development,
// warn about them ASAP rather than swallowing them by default.
var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;

jQuery.Deferred.exceptionHook = function( error, stack ) {

	// Support: IE 8 - 9 only
	// Console exists when dev tools are open, which can happen at any time
	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
		window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
	}
};




jQuery.readyException = function( error ) {
	window.setTimeout( function() {
		throw error;
	} );
};




// The deferred used on DOM ready
var readyList = jQuery.Deferred();

jQuery.fn.ready = function( fn ) {

	readyList
		.then( fn )

		// Wrap jQuery.readyException in a function so that the lookup
		// happens at the time of error handling instead of callback
		// registration.
		.catch( function( error ) {
			jQuery.readyException( error );
		} );

	return this;
};

jQuery.extend( {

	// Is the DOM ready to be used? Set to true once it occurs.
	isReady: false,

	// A counter to track how many items to wait for before
	// the ready event fires. See #6781
	readyWait: 1,

	// Handle when the DOM is ready
	ready: function( wait ) {

		// Abort if there are pending holds or we're already ready
		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
			return;
		}

		// Remember that the DOM is ready
		jQuery.isReady = true;

		// If a normal DOM Ready event fired, decrement, and wait if need be
		if ( wait !== true && --jQuery.readyWait > 0 ) {
			return;
		}

		// If there are functions bound, to execute
		readyList.resolveWith( document, [ jQuery ] );
	}
} );

jQuery.ready.then = readyList.then;

// The ready event handler and self cleanup method
function completed() {
	document.removeEventListener( "DOMContentLoaded", completed );
	window.removeEventListener( "load", completed );
	jQuery.ready();
}

// Catch cases where $(document).ready() is called
// after the browser event has already occurred.
// Support: IE <=9 - 10 only
// Older IE sometimes signals "interactive" too soon
if ( document.readyState === "complete" ||
	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {

	// Handle it asynchronously to allow scripts the opportunity to delay ready
	window.setTimeout( jQuery.ready );

} else {

	// Use the handy event callback
	document.addEventListener( "DOMContentLoaded", completed );

	// A fallback to window.onload, that will always work
	window.addEventListener( "load", completed );
}




// Multifunctional method to get and set values of a collection
// The value/s can optionally be executed if it's a function
var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
	var i = 0,
		len = elems.length,
		bulk = key == null;

	// Sets many values
	if ( toType( key ) === "object" ) {
		chainable = true;
		for ( i in key ) {
			access( elems, fn, i, key[ i ], true, emptyGet, raw );
		}

	// Sets one value
	} else if ( value !== undefined ) {
		chainable = true;

		if ( !isFunction( value ) ) {
			raw = true;
		}

		if ( bulk ) {

			// Bulk operations run against the entire set
			if ( raw ) {
				fn.call( elems, value );
				fn = null;

			// ...except when executing function values
			} else {
				bulk = fn;
				fn = function( elem, _key, value ) {
					return bulk.call( jQuery( elem ), value );
				};
			}
		}

		if ( fn ) {
			for ( ; i < len; i++ ) {
				fn(
					elems[ i ], key, raw ?
					value :
					value.call( elems[ i ], i, fn( elems[ i ], key ) )
				);
			}
		}
	}

	if ( chainable ) {
		return elems;
	}

	// Gets
	if ( bulk ) {
		return fn.call( elems );
	}

	return len ? fn( elems[ 0 ], key ) : emptyGet;
};


// Matches dashed string for camelizing
var rmsPrefix = /^-ms-/,
	rdashAlpha = /-([a-z])/g;

// Used by camelCase as callback to replace()
function fcamelCase( _all, letter ) {
	return letter.toUpperCase();
}

// Convert dashed to camelCase; used by the css and data modules
// Support: IE <=9 - 11, Edge 12 - 15
// Microsoft forgot to hump their vendor prefix (#9572)
function camelCase( string ) {
	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
}
var acceptData = function( owner ) {

	// Accepts only:
	//  - Node
	//    - Node.ELEMENT_NODE
	//    - Node.DOCUMENT_NODE
	//  - Object
	//    - Any
	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
};




function Data() {
	this.expando = jQuery.expando + Data.uid++;
}

Data.uid = 1;

Data.prototype = {

	cache: function( owner ) {

		// Check if the owner object already has a cache
		var value = owner[ this.expando ];

		// If not, create one
		if ( !value ) {
			value = {};

			// We can accept data for non-element nodes in modern browsers,
			// but we should not, see #8335.
			// Always return an empty object.
			if ( acceptData( owner ) ) {

				// If it is a node unlikely to be stringify-ed or looped over
				// use plain assignment
				if ( owner.nodeType ) {
					owner[ this.expando ] = value;

				// Otherwise secure it in a non-enumerable property
				// configurable must be true to allow the property to be
				// deleted when data is removed
				} else {
					Object.defineProperty( owner, this.expando, {
						value: value,
						configurable: true
					} );
				}
			}
		}

		return value;
	},
	set: function( owner, data, value ) {
		var prop,
			cache = this.cache( owner );

		// Handle: [ owner, key, value ] args
		// Always use camelCase key (gh-2257)
		if ( typeof data === "string" ) {
			cache[ camelCase( data ) ] = value;

		// Handle: [ owner, { properties } ] args
		} else {

			// Copy the properties one-by-one to the cache object
			for ( prop in data ) {
				cache[ camelCase( prop ) ] = data[ prop ];
			}
		}
		return cache;
	},
	get: function( owner, key ) {
		return key === undefined ?
			this.cache( owner ) :

			// Always use camelCase key (gh-2257)
			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
	},
	access: function( owner, key, value ) {

		// In cases where either:
		//
		//   1. No key was specified
		//   2. A string key was specified, but no value provided
		//
		// Take the "read" path and allow the get method to determine
		// which value to return, respectively either:
		//
		//   1. The entire cache object
		//   2. The data stored at the key
		//
		if ( key === undefined ||
				( ( key && typeof key === "string" ) && value === undefined ) ) {

			return this.get( owner, key );
		}

		// When the key is not a string, or both a key and value
		// are specified, set or extend (existing objects) with either:
		//
		//   1. An object of properties
		//   2. A key and value
		//
		this.set( owner, key, value );

		// Since the "set" path can have two possible entry points
		// return the expected data based on which path was taken[*]
		return value !== undefined ? value : key;
	},
	remove: function( owner, key ) {
		var i,
			cache = owner[ this.expando ];

		if ( cache === undefined ) {
			return;
		}

		if ( key !== undefined ) {

			// Support array or space separated string of keys
			if ( Array.isArray( key ) ) {

				// If key is an array of keys...
				// We always set camelCase keys, so remove that.
				key = key.map( camelCase );
			} else {
				key = camelCase( key );

				// If a key with the spaces exists, use it.
				// Otherwise, create an array by matching non-whitespace
				key = key in cache ?
					[ key ] :
					( key.match( rnothtmlwhite ) || [] );
			}

			i = key.length;

			while ( i-- ) {
				delete cache[ key[ i ] ];
			}
		}

		// Remove the expando if there's no more data
		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {

			// Support: Chrome <=35 - 45
			// Webkit & Blink performance suffers when deleting properties
			// from DOM nodes, so set to undefined instead
			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
			if ( owner.nodeType ) {
				owner[ this.expando ] = undefined;
			} else {
				delete owner[ this.expando ];
			}
		}
	},
	hasData: function( owner ) {
		var cache = owner[ this.expando ];
		return cache !== undefined && !jQuery.isEmptyObject( cache );
	}
};
var dataPriv = new Data();

var dataUser = new Data();



//	Implementation Summary
//
//	1. Enforce API surface and semantic compatibility with 1.9.x branch
//	2. Improve the module's maintainability by reducing the storage
//		paths to a single mechanism.
//	3. Use the same single mechanism to support "private" and "user" data.
//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
//	5. Avoid exposing implementation details on user objects (eg. expando properties)
//	6. Provide a clear path for implementation upgrade to WeakMap in 2014

var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
	rmultiDash = /[A-Z]/g;

function getData( data ) {
	if ( data === "true" ) {
		return true;
	}

	if ( data === "false" ) {
		return false;
	}

	if ( data === "null" ) {
		return null;
	}

	// Only convert to a number if it doesn't change the string
	if ( data === +data + "" ) {
		return +data;
	}

	if ( rbrace.test( data ) ) {
		return JSON.parse( data );
	}

	return data;
}

function dataAttr( elem, key, data ) {
	var name;

	// If nothing was found internally, try to fetch any
	// data from the HTML5 data-* attribute
	if ( data === undefined && elem.nodeType === 1 ) {
		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
		data = elem.getAttribute( name );

		if ( typeof data === "string" ) {
			try {
				data = getData( data );
			} catch ( e ) {}

			// Make sure we set the data so it isn't changed later
			dataUser.set( elem, key, data );
		} else {
			data = undefined;
		}
	}
	return data;
}

jQuery.extend( {
	hasData: function( elem ) {
		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
	},

	data: function( elem, name, data ) {
		return dataUser.access( elem, name, data );
	},

	removeData: function( elem, name ) {
		dataUser.remove( elem, name );
	},

	// TODO: Now that all calls to _data and _removeData have been replaced
	// with direct calls to dataPriv methods, these can be deprecated.
	_data: function( elem, name, data ) {
		return dataPriv.access( elem, name, data );
	},

	_removeData: function( elem, name ) {
		dataPriv.remove( elem, name );
	}
} );

jQuery.fn.extend( {
	data: function( key, value ) {
		var i, name, data,
			elem = this[ 0 ],
			attrs = elem && elem.attributes;

		// Gets all values
		if ( key === undefined ) {
			if ( this.length ) {
				data = dataUser.get( elem );

				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
					i = attrs.length;
					while ( i-- ) {

						// Support: IE 11 only
						// The attrs elements can be null (#14894)
						if ( attrs[ i ] ) {
							name = attrs[ i ].name;
							if ( name.indexOf( "data-" ) === 0 ) {
								name = camelCase( name.slice( 5 ) );
								dataAttr( elem, name, data[ name ] );
							}
						}
					}
					dataPriv.set( elem, "hasDataAttrs", true );
				}
			}

			return data;
		}

		// Sets multiple values
		if ( typeof key === "object" ) {
			return this.each( function() {
				dataUser.set( this, key );
			} );
		}

		return access( this, function( value ) {
			var data;

			// The calling jQuery object (element matches) is not empty
			// (and therefore has an element appears at this[ 0 ]) and the
			// `value` parameter was not undefined. An empty jQuery object
			// will result in `undefined` for elem = this[ 0 ] which will
			// throw an exception if an attempt to read a data cache is made.
			if ( elem && value === undefined ) {

				// Attempt to get data from the cache
				// The key will always be camelCased in Data
				data = dataUser.get( elem, key );
				if ( data !== undefined ) {
					return data;
				}

				// Attempt to "discover" the data in
				// HTML5 custom data-* attrs
				data = dataAttr( elem, key );
				if ( data !== undefined ) {
					return data;
				}

				// We tried really hard, but the data doesn't exist.
				return;
			}

			// Set the data...
			this.each( function() {

				// We always store the camelCased key
				dataUser.set( this, key, value );
			} );
		}, null, value, arguments.length > 1, null, true );
	},

	removeData: function( key ) {
		return this.each( function() {
			dataUser.remove( this, key );
		} );
	}
} );


jQuery.extend( {
	queue: function( elem, type, data ) {
		var queue;

		if ( elem ) {
			type = ( type || "fx" ) + "queue";
			queue = dataPriv.get( elem, type );

			// Speed up dequeue by getting out quickly if this is just a lookup
			if ( data ) {
				if ( !queue || Array.isArray( data ) ) {
					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
				} else {
					queue.push( data );
				}
			}
			return queue || [];
		}
	},

	dequeue: function( elem, type ) {
		type = type || "fx";

		var queue = jQuery.queue( elem, type ),
			startLength = queue.length,
			fn = queue.shift(),
			hooks = jQuery._queueHooks( elem, type ),
			next = function() {
				jQuery.dequeue( elem, type );
			};

		// If the fx queue is dequeued, always remove the progress sentinel
		if ( fn === "inprogress" ) {
			fn = queue.shift();
			startLength--;
		}

		if ( fn ) {

			// Add a progress sentinel to prevent the fx queue from being
			// automatically dequeued
			if ( type === "fx" ) {
				queue.unshift( "inprogress" );
			}

			// Clear up the last queue stop function
			delete hooks.stop;
			fn.call( elem, next, hooks );
		}

		if ( !startLength && hooks ) {
			hooks.empty.fire();
		}
	},

	// Not public - generate a queueHooks object, or return the current one
	_queueHooks: function( elem, type ) {
		var key = type + "queueHooks";
		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
			empty: jQuery.Callbacks( "once memory" ).add( function() {
				dataPriv.remove( elem, [ type + "queue", key ] );
			} )
		} );
	}
} );

jQuery.fn.extend( {
	queue: function( type, data ) {
		var setter = 2;

		if ( typeof type !== "string" ) {
			data = type;
			type = "fx";
			setter--;
		}

		if ( arguments.length < setter ) {
			return jQuery.queue( this[ 0 ], type );
		}

		return data === undefined ?
			this :
			this.each( function() {
				var queue = jQuery.queue( this, type, data );

				// Ensure a hooks for this queue
				jQuery._queueHooks( this, type );

				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
					jQuery.dequeue( this, type );
				}
			} );
	},
	dequeue: function( type ) {
		return this.each( function() {
			jQuery.dequeue( this, type );
		} );
	},
	clearQueue: function( type ) {
		return this.queue( type || "fx", [] );
	},

	// Get a promise resolved when queues of a certain type
	// are emptied (fx is the type by default)
	promise: function( type, obj ) {
		var tmp,
			count = 1,
			defer = jQuery.Deferred(),
			elements = this,
			i = this.length,
			resolve = function() {
				if ( !( --count ) ) {
					defer.resolveWith( elements, [ elements ] );
				}
			};

		if ( typeof type !== "string" ) {
			obj = type;
			type = undefined;
		}
		type = type || "fx";

		while ( i-- ) {
			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
			if ( tmp && tmp.empty ) {
				count++;
				tmp.empty.add( resolve );
			}
		}
		resolve();
		return defer.promise( obj );
	}
} );
var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;

var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );


var cssExpand = [ "Top", "Right", "Bottom", "Left" ];

var documentElement = document.documentElement;



	var isAttached = function( elem ) {
			return jQuery.contains( elem.ownerDocument, elem );
		},
		composed = { composed: true };

	// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
	// Check attachment across shadow DOM boundaries when possible (gh-3504)
	// Support: iOS 10.0-10.2 only
	// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
	// leading to errors. We need to check for `getRootNode`.
	if ( documentElement.getRootNode ) {
		isAttached = function( elem ) {
			return jQuery.contains( elem.ownerDocument, elem ) ||
				elem.getRootNode( composed ) === elem.ownerDocument;
		};
	}
var isHiddenWithinTree = function( elem, el ) {

		// isHiddenWithinTree might be called from jQuery#filter function;
		// in that case, element will be second argument
		elem = el || elem;

		// Inline style trumps all
		return elem.style.display === "none" ||
			elem.style.display === "" &&

			// Otherwise, check computed style
			// Support: Firefox <=43 - 45
			// Disconnected elements can have computed display: none, so first confirm that elem is
			// in the document.
			isAttached( elem ) &&

			jQuery.css( elem, "display" ) === "none";
	};



function adjustCSS( elem, prop, valueParts, tween ) {
	var adjusted, scale,
		maxIterations = 20,
		currentValue = tween ?
			function() {
				return tween.cur();
			} :
			function() {
				return jQuery.css( elem, prop, "" );
			},
		initial = currentValue(),
		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),

		// Starting value computation is required for potential unit mismatches
		initialInUnit = elem.nodeType &&
			( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
			rcssNum.exec( jQuery.css( elem, prop ) );

	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {

		// Support: Firefox <=54
		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
		initial = initial / 2;

		// Trust units reported by jQuery.css
		unit = unit || initialInUnit[ 3 ];

		// Iteratively approximate from a nonzero starting point
		initialInUnit = +initial || 1;

		while ( maxIterations-- ) {

			// Evaluate and update our best guess (doubling guesses that zero out).
			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
			jQuery.style( elem, prop, initialInUnit + unit );
			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
				maxIterations = 0;
			}
			initialInUnit = initialInUnit / scale;

		}

		initialInUnit = initialInUnit * 2;
		jQuery.style( elem, prop, initialInUnit + unit );

		// Make sure we update the tween properties later on
		valueParts = valueParts || [];
	}

	if ( valueParts ) {
		initialInUnit = +initialInUnit || +initial || 0;

		// Apply relative offset (+=/-=) if specified
		adjusted = valueParts[ 1 ] ?
			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
			+valueParts[ 2 ];
		if ( tween ) {
			tween.unit = unit;
			tween.start = initialInUnit;
			tween.end = adjusted;
		}
	}
	return adjusted;
}


var defaultDisplayMap = {};

function getDefaultDisplay( elem ) {
	var temp,
		doc = elem.ownerDocument,
		nodeName = elem.nodeName,
		display = defaultDisplayMap[ nodeName ];

	if ( display ) {
		return display;
	}

	temp = doc.body.appendChild( doc.createElement( nodeName ) );
	display = jQuery.css( temp, "display" );

	temp.parentNode.removeChild( temp );

	if ( display === "none" ) {
		display = "block";
	}
	defaultDisplayMap[ nodeName ] = display;

	return display;
}

function showHide( elements, show ) {
	var display, elem,
		values = [],
		index = 0,
		length = elements.length;

	// Determine new display value for elements that need to change
	for ( ; index < length; index++ ) {
		elem = elements[ index ];
		if ( !elem.style ) {
			continue;
		}

		display = elem.style.display;
		if ( show ) {

			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
			// check is required in this first loop unless we have a nonempty display value (either
			// inline or about-to-be-restored)
			if ( display === "none" ) {
				values[ index ] = dataPriv.get( elem, "display" ) || null;
				if ( !values[ index ] ) {
					elem.style.display = "";
				}
			}
			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
				values[ index ] = getDefaultDisplay( elem );
			}
		} else {
			if ( display !== "none" ) {
				values[ index ] = "none";

				// Remember what we're overwriting
				dataPriv.set( elem, "display", display );
			}
		}
	}

	// Set the display of the elements in a second loop to avoid constant reflow
	for ( index = 0; index < length; index++ ) {
		if ( values[ index ] != null ) {
			elements[ index ].style.display = values[ index ];
		}
	}

	return elements;
}

jQuery.fn.extend( {
	show: function() {
		return showHide( this, true );
	},
	hide: function() {
		return showHide( this );
	},
	toggle: function( state ) {
		if ( typeof state === "boolean" ) {
			return state ? this.show() : this.hide();
		}

		return this.each( function() {
			if ( isHiddenWithinTree( this ) ) {
				jQuery( this ).show();
			} else {
				jQuery( this ).hide();
			}
		} );
	}
} );
var rcheckableType = ( /^(?:checkbox|radio)$/i );

var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );

var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );



( function() {
	var fragment = document.createDocumentFragment(),
		div = fragment.appendChild( document.createElement( "div" ) ),
		input = document.createElement( "input" );

	// Support: Android 4.0 - 4.3 only
	// Check state lost if the name is set (#11217)
	// Support: Windows Web Apps (WWA)
	// `name` and `type` must use .setAttribute for WWA (#14901)
	input.setAttribute( "type", "radio" );
	input.setAttribute( "checked", "checked" );
	input.setAttribute( "name", "t" );

	div.appendChild( input );

	// Support: Android <=4.1 only
	// Older WebKit doesn't clone checked state correctly in fragments
	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;

	// Support: IE <=11 only
	// Make sure textarea (and checkbox) defaultValue is properly cloned
	div.innerHTML = "<textarea>x</textarea>";
	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;

	// Support: IE <=9 only
	// IE <=9 replaces <option> tags with their contents when inserted outside of
	// the select element.
	div.innerHTML = "<option></option>";
	support.option = !!div.lastChild;
} )();


// We have to close these tags to support XHTML (#13200)
var wrapMap = {

	// XHTML parsers do not magically insert elements in the
	// same way that tag soup parsers do. So we cannot shorten
	// this by omitting <tbody> or other required elements.
	thead: [ 1, "<table>", "</table>" ],
	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],

	_default: [ 0, "", "" ]
};

wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
wrapMap.th = wrapMap.td;

// Support: IE <=9 only
if ( !support.option ) {
	wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ];
}


function getAll( context, tag ) {

	// Support: IE <=9 - 11 only
	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
	var ret;

	if ( typeof context.getElementsByTagName !== "undefined" ) {
		ret = context.getElementsByTagName( tag || "*" );

	} else if ( typeof context.querySelectorAll !== "undefined" ) {
		ret = context.querySelectorAll( tag || "*" );

	} else {
		ret = [];
	}

	if ( tag === undefined || tag && nodeName( context, tag ) ) {
		return jQuery.merge( [ context ], ret );
	}

	return ret;
}


// Mark scripts as having already been evaluated
function setGlobalEval( elems, refElements ) {
	var i = 0,
		l = elems.length;

	for ( ; i < l; i++ ) {
		dataPriv.set(
			elems[ i ],
			"globalEval",
			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
		);
	}
}


var rhtml = /<|&#?\w+;/;

function buildFragment( elems, context, scripts, selection, ignored ) {
	var elem, tmp, tag, wrap, attached, j,
		fragment = context.createDocumentFragment(),
		nodes = [],
		i = 0,
		l = elems.length;

	for ( ; i < l; i++ ) {
		elem = elems[ i ];

		if ( elem || elem === 0 ) {

			// Add nodes directly
			if ( toType( elem ) === "object" ) {

				// Support: Android <=4.0 only, PhantomJS 1 only
				// push.apply(_, arraylike) throws on ancient WebKit
				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );

			// Convert non-html into a text node
			} else if ( !rhtml.test( elem ) ) {
				nodes.push( context.createTextNode( elem ) );

			// Convert html into DOM nodes
			} else {
				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );

				// Deserialize a standard representation
				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
				wrap = wrapMap[ tag ] || wrapMap._default;
				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];

				// Descend through wrappers to the right content
				j = wrap[ 0 ];
				while ( j-- ) {
					tmp = tmp.lastChild;
				}

				// Support: Android <=4.0 only, PhantomJS 1 only
				// push.apply(_, arraylike) throws on ancient WebKit
				jQuery.merge( nodes, tmp.childNodes );

				// Remember the top-level container
				tmp = fragment.firstChild;

				// Ensure the created nodes are orphaned (#12392)
				tmp.textContent = "";
			}
		}
	}

	// Remove wrapper from fragment
	fragment.textContent = "";

	i = 0;
	while ( ( elem = nodes[ i++ ] ) ) {

		// Skip elements already in the context collection (trac-4087)
		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
			if ( ignored ) {
				ignored.push( elem );
			}
			continue;
		}

		attached = isAttached( elem );

		// Append to fragment
		tmp = getAll( fragment.appendChild( elem ), "script" );

		// Preserve script evaluation history
		if ( attached ) {
			setGlobalEval( tmp );
		}

		// Capture executables
		if ( scripts ) {
			j = 0;
			while ( ( elem = tmp[ j++ ] ) ) {
				if ( rscriptType.test( elem.type || "" ) ) {
					scripts.push( elem );
				}
			}
		}
	}

	return fragment;
}


var
	rkeyEvent = /^key/,
	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;

function returnTrue() {
	return true;
}

function returnFalse() {
	return false;
}

// Support: IE <=9 - 11+
// focus() and blur() are asynchronous, except when they are no-op.
// So expect focus to be synchronous when the element is already active,
// and blur to be synchronous when the element is not already active.
// (focus and blur are always synchronous in other supported browsers,
// this just defines when we can count on it).
function expectSync( elem, type ) {
	return ( elem === safeActiveElement() ) === ( type === "focus" );
}

// Support: IE <=9 only
// Accessing document.activeElement can throw unexpectedly
// https://bugs.jquery.com/ticket/13393
function safeActiveElement() {
	try {
		return document.activeElement;
	} catch ( err ) { }
}

function on( elem, types, selector, data, fn, one ) {
	var origFn, type;

	// Types can be a map of types/handlers
	if ( typeof types === "object" ) {

		// ( types-Object, selector, data )
		if ( typeof selector !== "string" ) {

			// ( types-Object, data )
			data = data || selector;
			selector = undefined;
		}
		for ( type in types ) {
			on( elem, type, selector, data, types[ type ], one );
		}
		return elem;
	}

	if ( data == null && fn == null ) {

		// ( types, fn )
		fn = selector;
		data = selector = undefined;
	} else if ( fn == null ) {
		if ( typeof selector === "string" ) {

			// ( types, selector, fn )
			fn = data;
			data = undefined;
		} else {

			// ( types, data, fn )
			fn = data;
			data = selector;
			selector = undefined;
		}
	}
	if ( fn === false ) {
		fn = returnFalse;
	} else if ( !fn ) {
		return elem;
	}

	if ( one === 1 ) {
		origFn = fn;
		fn = function( event ) {

			// Can use an empty set, since event contains the info
			jQuery().off( event );
			return origFn.apply( this, arguments );
		};

		// Use same guid so caller can remove using origFn
		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
	}
	return elem.each( function() {
		jQuery.event.add( this, types, fn, data, selector );
	} );
}

/*
 * Helper functions for managing events -- not part of the public interface.
 * Props to Dean Edwards' addEvent library for many of the ideas.
 */
jQuery.event = {

	global: {},

	add: function( elem, types, handler, data, selector ) {

		var handleObjIn, eventHandle, tmp,
			events, t, handleObj,
			special, handlers, type, namespaces, origType,
			elemData = dataPriv.get( elem );

		// Only attach events to objects that accept data
		if ( !acceptData( elem ) ) {
			return;
		}

		// Caller can pass in an object of custom data in lieu of the handler
		if ( handler.handler ) {
			handleObjIn = handler;
			handler = handleObjIn.handler;
			selector = handleObjIn.selector;
		}

		// Ensure that invalid selectors throw exceptions at attach time
		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
		if ( selector ) {
			jQuery.find.matchesSelector( documentElement, selector );
		}

		// Make sure that the handler has a unique ID, used to find/remove it later
		if ( !handler.guid ) {
			handler.guid = jQuery.guid++;
		}

		// Init the element's event structure and main handler, if this is the first
		if ( !( events = elemData.events ) ) {
			events = elemData.events = Object.create( null );
		}
		if ( !( eventHandle = elemData.handle ) ) {
			eventHandle = elemData.handle = function( e ) {

				// Discard the second event of a jQuery.event.trigger() and
				// when an event is called after a page has unloaded
				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
			};
		}

		// Handle multiple events separated by a space
		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
		t = types.length;
		while ( t-- ) {
			tmp = rtypenamespace.exec( types[ t ] ) || [];
			type = origType = tmp[ 1 ];
			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();

			// There *must* be a type, no attaching namespace-only handlers
			if ( !type ) {
				continue;
			}

			// If event changes its type, use the special event handlers for the changed type
			special = jQuery.event.special[ type ] || {};

			// If selector defined, determine special event api type, otherwise given type
			type = ( selector ? special.delegateType : special.bindType ) || type;

			// Update special based on newly reset type
			special = jQuery.event.special[ type ] || {};

			// handleObj is passed to all event handlers
			handleObj = jQuery.extend( {
				type: type,
				origType: origType,
				data: data,
				handler: handler,
				guid: handler.guid,
				selector: selector,
				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
				namespace: namespaces.join( "." )
			}, handleObjIn );

			// Init the event handler queue if we're the first
			if ( !( handlers = events[ type ] ) ) {
				handlers = events[ type ] = [];
				handlers.delegateCount = 0;

				// Only use addEventListener if the special events handler returns false
				if ( !special.setup ||
					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {

					if ( elem.addEventListener ) {
						elem.addEventListener( type, eventHandle );
					}
				}
			}

			if ( special.add ) {
				special.add.call( elem, handleObj );

				if ( !handleObj.handler.guid ) {
					handleObj.handler.guid = handler.guid;
				}
			}

			// Add to the element's handler list, delegates in front
			if ( selector ) {
				handlers.splice( handlers.delegateCount++, 0, handleObj );
			} else {
				handlers.push( handleObj );
			}

			// Keep track of which events have ever been used, for event optimization
			jQuery.event.global[ type ] = true;
		}

	},

	// Detach an event or set of events from an element
	remove: function( elem, types, handler, selector, mappedTypes ) {

		var j, origCount, tmp,
			events, t, handleObj,
			special, handlers, type, namespaces, origType,
			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );

		if ( !elemData || !( events = elemData.events ) ) {
			return;
		}

		// Once for each type.namespace in types; type may be omitted
		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
		t = types.length;
		while ( t-- ) {
			tmp = rtypenamespace.exec( types[ t ] ) || [];
			type = origType = tmp[ 1 ];
			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();

			// Unbind all events (on this namespace, if provided) for the element
			if ( !type ) {
				for ( type in events ) {
					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
				}
				continue;
			}

			special = jQuery.event.special[ type ] || {};
			type = ( selector ? special.delegateType : special.bindType ) || type;
			handlers = events[ type ] || [];
			tmp = tmp[ 2 ] &&
				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );

			// Remove matching events
			origCount = j = handlers.length;
			while ( j-- ) {
				handleObj = handlers[ j ];

				if ( ( mappedTypes || origType === handleObj.origType ) &&
					( !handler || handler.guid === handleObj.guid ) &&
					( !tmp || tmp.test( handleObj.namespace ) ) &&
					( !selector || selector === handleObj.selector ||
						selector === "**" && handleObj.selector ) ) {
					handlers.splice( j, 1 );

					if ( handleObj.selector ) {
						handlers.delegateCount--;
					}
					if ( special.remove ) {
						special.remove.call( elem, handleObj );
					}
				}
			}

			// Remove generic event handler if we removed something and no more handlers exist
			// (avoids potential for endless recursion during removal of special event handlers)
			if ( origCount && !handlers.length ) {
				if ( !special.teardown ||
					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {

					jQuery.removeEvent( elem, type, elemData.handle );
				}

				delete events[ type ];
			}
		}

		// Remove data and the expando if it's no longer used
		if ( jQuery.isEmptyObject( events ) ) {
			dataPriv.remove( elem, "handle events" );
		}
	},

	dispatch: function( nativeEvent ) {

		var i, j, ret, matched, handleObj, handlerQueue,
			args = new Array( arguments.length ),

			// Make a writable jQuery.Event from the native event object
			event = jQuery.event.fix( nativeEvent ),

			handlers = (
					dataPriv.get( this, "events" ) || Object.create( null )
				)[ event.type ] || [],
			special = jQuery.event.special[ event.type ] || {};

		// Use the fix-ed jQuery.Event rather than the (read-only) native event
		args[ 0 ] = event;

		for ( i = 1; i < arguments.length; i++ ) {
			args[ i ] = arguments[ i ];
		}

		event.delegateTarget = this;

		// Call the preDispatch hook for the mapped type, and let it bail if desired
		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
			return;
		}

		// Determine handlers
		handlerQueue = jQuery.event.handlers.call( this, event, handlers );

		// Run delegates first; they may want to stop propagation beneath us
		i = 0;
		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
			event.currentTarget = matched.elem;

			j = 0;
			while ( ( handleObj = matched.handlers[ j++ ] ) &&
				!event.isImmediatePropagationStopped() ) {

				// If the event is namespaced, then each handler is only invoked if it is
				// specially universal or its namespaces are a superset of the event's.
				if ( !event.rnamespace || handleObj.namespace === false ||
					event.rnamespace.test( handleObj.namespace ) ) {

					event.handleObj = handleObj;
					event.data = handleObj.data;

					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
						handleObj.handler ).apply( matched.elem, args );

					if ( ret !== undefined ) {
						if ( ( event.result = ret ) === false ) {
							event.preventDefault();
							event.stopPropagation();
						}
					}
				}
			}
		}

		// Call the postDispatch hook for the mapped type
		if ( special.postDispatch ) {
			special.postDispatch.call( this, event );
		}

		return event.result;
	},

	handlers: function( event, handlers ) {
		var i, handleObj, sel, matchedHandlers, matchedSelectors,
			handlerQueue = [],
			delegateCount = handlers.delegateCount,
			cur = event.target;

		// Find delegate handlers
		if ( delegateCount &&

			// Support: IE <=9
			// Black-hole SVG <use> instance trees (trac-13180)
			cur.nodeType &&

			// Support: Firefox <=42
			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
			// Support: IE 11 only
			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
			!( event.type === "click" && event.button >= 1 ) ) {

			for ( ; cur !== this; cur = cur.parentNode || this ) {

				// Don't check non-elements (#13208)
				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
					matchedHandlers = [];
					matchedSelectors = {};
					for ( i = 0; i < delegateCount; i++ ) {
						handleObj = handlers[ i ];

						// Don't conflict with Object.prototype properties (#13203)
						sel = handleObj.selector + " ";

						if ( matchedSelectors[ sel ] === undefined ) {
							matchedSelectors[ sel ] = handleObj.needsContext ?
								jQuery( sel, this ).index( cur ) > -1 :
								jQuery.find( sel, this, null, [ cur ] ).length;
						}
						if ( matchedSelectors[ sel ] ) {
							matchedHandlers.push( handleObj );
						}
					}
					if ( matchedHandlers.length ) {
						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
					}
				}
			}
		}

		// Add the remaining (directly-bound) handlers
		cur = this;
		if ( delegateCount < handlers.length ) {
			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
		}

		return handlerQueue;
	},

	addProp: function( name, hook ) {
		Object.defineProperty( jQuery.Event.prototype, name, {
			enumerable: true,
			configurable: true,

			get: isFunction( hook ) ?
				function() {
					if ( this.originalEvent ) {
							return hook( this.originalEvent );
					}
				} :
				function() {
					if ( this.originalEvent ) {
							return this.originalEvent[ name ];
					}
				},

			set: function( value ) {
				Object.defineProperty( this, name, {
					enumerable: true,
					configurable: true,
					writable: true,
					value: value
				} );
			}
		} );
	},

	fix: function( originalEvent ) {
		return originalEvent[ jQuery.expando ] ?
			originalEvent :
			new jQuery.Event( originalEvent );
	},

	special: {
		load: {

			// Prevent triggered image.load events from bubbling to window.load
			noBubble: true
		},
		click: {

			// Utilize native event to ensure correct state for checkable inputs
			setup: function( data ) {

				// For mutual compressibility with _default, replace `this` access with a local var.
				// `|| data` is dead code meant only to preserve the variable through minification.
				var el = this || data;

				// Claim the first handler
				if ( rcheckableType.test( el.type ) &&
					el.click && nodeName( el, "input" ) ) {

					// dataPriv.set( el, "click", ... )
					leverageNative( el, "click", returnTrue );
				}

				// Return false to allow normal processing in the caller
				return false;
			},
			trigger: function( data ) {

				// For mutual compressibility with _default, replace `this` access with a local var.
				// `|| data` is dead code meant only to preserve the variable through minification.
				var el = this || data;

				// Force setup before triggering a click
				if ( rcheckableType.test( el.type ) &&
					el.click && nodeName( el, "input" ) ) {

					leverageNative( el, "click" );
				}

				// Return non-false to allow normal event-path propagation
				return true;
			},

			// For cross-browser consistency, suppress native .click() on links
			// Also prevent it if we're currently inside a leveraged native-event stack
			_default: function( event ) {
				var target = event.target;
				return rcheckableType.test( target.type ) &&
					target.click && nodeName( target, "input" ) &&
					dataPriv.get( target, "click" ) ||
					nodeName( target, "a" );
			}
		},

		beforeunload: {
			postDispatch: function( event ) {

				// Support: Firefox 20+
				// Firefox doesn't alert if the returnValue field is not set.
				if ( event.result !== undefined && event.originalEvent ) {
					event.originalEvent.returnValue = event.result;
				}
			}
		}
	}
};

// Ensure the presence of an event listener that handles manually-triggered
// synthetic events by interrupting progress until reinvoked in response to
// *native* events that it fires directly, ensuring that state changes have
// already occurred before other listeners are invoked.
function leverageNative( el, type, expectSync ) {

	// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
	if ( !expectSync ) {
		if ( dataPriv.get( el, type ) === undefined ) {
			jQuery.event.add( el, type, returnTrue );
		}
		return;
	}

	// Register the controller as a special universal handler for all event namespaces
	dataPriv.set( el, type, false );
	jQuery.event.add( el, type, {
		namespace: false,
		handler: function( event ) {
			var notAsync, result,
				saved = dataPriv.get( this, type );

			if ( ( event.isTrigger & 1 ) && this[ type ] ) {

				// Interrupt processing of the outer synthetic .trigger()ed event
				// Saved data should be false in such cases, but might be a leftover capture object
				// from an async native handler (gh-4350)
				if ( !saved.length ) {

					// Store arguments for use when handling the inner native event
					// There will always be at least one argument (an event object), so this array
					// will not be confused with a leftover capture object.
					saved = slice.call( arguments );
					dataPriv.set( this, type, saved );

					// Trigger the native event and capture its result
					// Support: IE <=9 - 11+
					// focus() and blur() are asynchronous
					notAsync = expectSync( this, type );
					this[ type ]();
					result = dataPriv.get( this, type );
					if ( saved !== result || notAsync ) {
						dataPriv.set( this, type, false );
					} else {
						result = {};
					}
					if ( saved !== result ) {

						// Cancel the outer synthetic event
						event.stopImmediatePropagation();
						event.preventDefault();
						return result.value;
					}

				// If this is an inner synthetic event for an event with a bubbling surrogate
				// (focus or blur), assume that the surrogate already propagated from triggering the
				// native event and prevent that from happening again here.
				// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
				// bubbling surrogate propagates *after* the non-bubbling base), but that seems
				// less bad than duplication.
				} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
					event.stopPropagation();
				}

			// If this is a native event triggered above, everything is now in order
			// Fire an inner synthetic event with the original arguments
			} else if ( saved.length ) {

				// ...and capture the result
				dataPriv.set( this, type, {
					value: jQuery.event.trigger(

						// Support: IE <=9 - 11+
						// Extend with the prototype to reset the above stopImmediatePropagation()
						jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
						saved.slice( 1 ),
						this
					)
				} );

				// Abort handling of the native event
				event.stopImmediatePropagation();
			}
		}
	} );
}

jQuery.removeEvent = function( elem, type, handle ) {

	// This "if" is needed for plain objects
	if ( elem.removeEventListener ) {
		elem.removeEventListener( type, handle );
	}
};

jQuery.Event = function( src, props ) {

	// Allow instantiation without the 'new' keyword
	if ( !( this instanceof jQuery.Event ) ) {
		return new jQuery.Event( src, props );
	}

	// Event object
	if ( src && src.type ) {
		this.originalEvent = src;
		this.type = src.type;

		// Events bubbling up the document may have been marked as prevented
		// by a handler lower down the tree; reflect the correct value.
		this.isDefaultPrevented = src.defaultPrevented ||
				src.defaultPrevented === undefined &&

				// Support: Android <=2.3 only
				src.returnValue === false ?
			returnTrue :
			returnFalse;

		// Create target properties
		// Support: Safari <=6 - 7 only
		// Target should not be a text node (#504, #13143)
		this.target = ( src.target && src.target.nodeType === 3 ) ?
			src.target.parentNode :
			src.target;

		this.currentTarget = src.currentTarget;
		this.relatedTarget = src.relatedTarget;

	// Event type
	} else {
		this.type = src;
	}

	// Put explicitly provided properties onto the event object
	if ( props ) {
		jQuery.extend( this, props );
	}

	// Create a timestamp if incoming event doesn't have one
	this.timeStamp = src && src.timeStamp || Date.now();

	// Mark it as fixed
	this[ jQuery.expando ] = true;
};

// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
jQuery.Event.prototype = {
	constructor: jQuery.Event,
	isDefaultPrevented: returnFalse,
	isPropagationStopped: returnFalse,
	isImmediatePropagationStopped: returnFalse,
	isSimulated: false,

	preventDefault: function() {
		var e = this.originalEvent;

		this.isDefaultPrevented = returnTrue;

		if ( e && !this.isSimulated ) {
			e.preventDefault();
		}
	},
	stopPropagation: function() {
		var e = this.originalEvent;

		this.isPropagationStopped = returnTrue;

		if ( e && !this.isSimulated ) {
			e.stopPropagation();
		}
	},
	stopImmediatePropagation: function() {
		var e = this.originalEvent;

		this.isImmediatePropagationStopped = returnTrue;

		if ( e && !this.isSimulated ) {
			e.stopImmediatePropagation();
		}

		this.stopPropagation();
	}
};

// Includes all common event props including KeyEvent and MouseEvent specific props
jQuery.each( {
	altKey: true,
	bubbles: true,
	cancelable: true,
	changedTouches: true,
	ctrlKey: true,
	detail: true,
	eventPhase: true,
	metaKey: true,
	pageX: true,
	pageY: true,
	shiftKey: true,
	view: true,
	"char": true,
	code: true,
	charCode: true,
	key: true,
	keyCode: true,
	button: true,
	buttons: true,
	clientX: true,
	clientY: true,
	offsetX: true,
	offsetY: true,
	pointerId: true,
	pointerType: true,
	screenX: true,
	screenY: true,
	targetTouches: true,
	toElement: true,
	touches: true,

	which: function( event ) {
		var button = event.button;

		// Add which for key events
		if ( event.which == null && rkeyEvent.test( event.type ) ) {
			return event.charCode != null ? event.charCode : event.keyCode;
		}

		// Add which for click: 1 === left; 2 === middle; 3 === right
		if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
			if ( button & 1 ) {
				return 1;
			}

			if ( button & 2 ) {
				return 3;
			}

			if ( button & 4 ) {
				return 2;
			}

			return 0;
		}

		return event.which;
	}
}, jQuery.event.addProp );

jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
	jQuery.event.special[ type ] = {

		// Utilize native event if possible so blur/focus sequence is correct
		setup: function() {

			// Claim the first handler
			// dataPriv.set( this, "focus", ... )
			// dataPriv.set( this, "blur", ... )
			leverageNative( this, type, expectSync );

			// Return false to allow normal processing in the caller
			return false;
		},
		trigger: function() {

			// Force setup before trigger
			leverageNative( this, type );

			// Return non-false to allow normal event-path propagation
			return true;
		},

		delegateType: delegateType
	};
} );

// Create mouseenter/leave events using mouseover/out and event-time checks
// so that event delegation works in jQuery.
// Do the same for pointerenter/pointerleave and pointerover/pointerout
//
// Support: Safari 7 only
// Safari sends mouseenter too often; see:
// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
// for the description of the bug (it existed in older Chrome versions as well).
jQuery.each( {
	mouseenter: "mouseover",
	mouseleave: "mouseout",
	pointerenter: "pointerover",
	pointerleave: "pointerout"
}, function( orig, fix ) {
	jQuery.event.special[ orig ] = {
		delegateType: fix,
		bindType: fix,

		handle: function( event ) {
			var ret,
				target = this,
				related = event.relatedTarget,
				handleObj = event.handleObj;

			// For mouseenter/leave call the handler if related is outside the target.
			// NB: No relatedTarget if the mouse left/entered the browser window
			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
				event.type = handleObj.origType;
				ret = handleObj.handler.apply( this, arguments );
				event.type = fix;
			}
			return ret;
		}
	};
} );

jQuery.fn.extend( {

	on: function( types, selector, data, fn ) {
		return on( this, types, selector, data, fn );
	},
	one: function( types, selector, data, fn ) {
		return on( this, types, selector, data, fn, 1 );
	},
	off: function( types, selector, fn ) {
		var handleObj, type;
		if ( types && types.preventDefault && types.handleObj ) {

			// ( event )  dispatched jQuery.Event
			handleObj = types.handleObj;
			jQuery( types.delegateTarget ).off(
				handleObj.namespace ?
					handleObj.origType + "." + handleObj.namespace :
					handleObj.origType,
				handleObj.selector,
				handleObj.handler
			);
			return this;
		}
		if ( typeof types === "object" ) {

			// ( types-object [, selector] )
			for ( type in types ) {
				this.off( type, selector, types[ type ] );
			}
			return this;
		}
		if ( selector === false || typeof selector === "function" ) {

			// ( types [, fn] )
			fn = selector;
			selector = undefined;
		}
		if ( fn === false ) {
			fn = returnFalse;
		}
		return this.each( function() {
			jQuery.event.remove( this, types, fn, selector );
		} );
	}
} );


var

	// Support: IE <=10 - 11, Edge 12 - 13 only
	// In IE/Edge using regex groups here causes severe slowdowns.
	// See https://connect.microsoft.com/IE/feedback/details/1736512/
	rnoInnerhtml = /<script|<style|<link/i,

	// checked="checked" or checked
	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;

// Prefer a tbody over its parent table for containing new rows
function manipulationTarget( elem, content ) {
	if ( nodeName( elem, "table" ) &&
		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {

		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
	}

	return elem;
}

// Replace/restore the type attribute of script elements for safe DOM manipulation
function disableScript( elem ) {
	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
	return elem;
}
function restoreScript( elem ) {
	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
		elem.type = elem.type.slice( 5 );
	} else {
		elem.removeAttribute( "type" );
	}

	return elem;
}

function cloneCopyEvent( src, dest ) {
	var i, l, type, pdataOld, udataOld, udataCur, events;

	if ( dest.nodeType !== 1 ) {
		return;
	}

	// 1. Copy private data: events, handlers, etc.
	if ( dataPriv.hasData( src ) ) {
		pdataOld = dataPriv.get( src );
		events = pdataOld.events;

		if ( events ) {
			dataPriv.remove( dest, "handle events" );

			for ( type in events ) {
				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
					jQuery.event.add( dest, type, events[ type ][ i ] );
				}
			}
		}
	}

	// 2. Copy user data
	if ( dataUser.hasData( src ) ) {
		udataOld = dataUser.access( src );
		udataCur = jQuery.extend( {}, udataOld );

		dataUser.set( dest, udataCur );
	}
}

// Fix IE bugs, see support tests
function fixInput( src, dest ) {
	var nodeName = dest.nodeName.toLowerCase();

	// Fails to persist the checked state of a cloned checkbox or radio button.
	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
		dest.checked = src.checked;

	// Fails to return the selected option to the default selected state when cloning options
	} else if ( nodeName === "input" || nodeName === "textarea" ) {
		dest.defaultValue = src.defaultValue;
	}
}

function domManip( collection, args, callback, ignored ) {

	// Flatten any nested arrays
	args = flat( args );

	var fragment, first, scripts, hasScripts, node, doc,
		i = 0,
		l = collection.length,
		iNoClone = l - 1,
		value = args[ 0 ],
		valueIsFunction = isFunction( value );

	// We can't cloneNode fragments that contain checked, in WebKit
	if ( valueIsFunction ||
			( l > 1 && typeof value === "string" &&
				!support.checkClone && rchecked.test( value ) ) ) {
		return collection.each( function( index ) {
			var self = collection.eq( index );
			if ( valueIsFunction ) {
				args[ 0 ] = value.call( this, index, self.html() );
			}
			domManip( self, args, callback, ignored );
		} );
	}

	if ( l ) {
		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
		first = fragment.firstChild;

		if ( fragment.childNodes.length === 1 ) {
			fragment = first;
		}

		// Require either new content or an interest in ignored elements to invoke the callback
		if ( first || ignored ) {
			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
			hasScripts = scripts.length;

			// Use the original fragment for the last item
			// instead of the first because it can end up
			// being emptied incorrectly in certain situations (#8070).
			for ( ; i < l; i++ ) {
				node = fragment;

				if ( i !== iNoClone ) {
					node = jQuery.clone( node, true, true );

					// Keep references to cloned scripts for later restoration
					if ( hasScripts ) {

						// Support: Android <=4.0 only, PhantomJS 1 only
						// push.apply(_, arraylike) throws on ancient WebKit
						jQuery.merge( scripts, getAll( node, "script" ) );
					}
				}

				callback.call( collection[ i ], node, i );
			}

			if ( hasScripts ) {
				doc = scripts[ scripts.length - 1 ].ownerDocument;

				// Reenable scripts
				jQuery.map( scripts, restoreScript );

				// Evaluate executable scripts on first document insertion
				for ( i = 0; i < hasScripts; i++ ) {
					node = scripts[ i ];
					if ( rscriptType.test( node.type || "" ) &&
						!dataPriv.access( node, "globalEval" ) &&
						jQuery.contains( doc, node ) ) {

						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {

							// Optional AJAX dependency, but won't run scripts if not present
							if ( jQuery._evalUrl && !node.noModule ) {
								jQuery._evalUrl( node.src, {
									nonce: node.nonce || node.getAttribute( "nonce" )
								}, doc );
							}
						} else {
							DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
						}
					}
				}
			}
		}
	}

	return collection;
}

function remove( elem, selector, keepData ) {
	var node,
		nodes = selector ? jQuery.filter( selector, elem ) : elem,
		i = 0;

	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
		if ( !keepData && node.nodeType === 1 ) {
			jQuery.cleanData( getAll( node ) );
		}

		if ( node.parentNode ) {
			if ( keepData && isAttached( node ) ) {
				setGlobalEval( getAll( node, "script" ) );
			}
			node.parentNode.removeChild( node );
		}
	}

	return elem;
}

jQuery.extend( {
	htmlPrefilter: function( html ) {
		return html;
	},

	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
		var i, l, srcElements, destElements,
			clone = elem.cloneNode( true ),
			inPage = isAttached( elem );

		// Fix IE cloning issues
		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
				!jQuery.isXMLDoc( elem ) ) {

			// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
			destElements = getAll( clone );
			srcElements = getAll( elem );

			for ( i = 0, l = srcElements.length; i < l; i++ ) {
				fixInput( srcElements[ i ], destElements[ i ] );
			}
		}

		// Copy the events from the original to the clone
		if ( dataAndEvents ) {
			if ( deepDataAndEvents ) {
				srcElements = srcElements || getAll( elem );
				destElements = destElements || getAll( clone );

				for ( i = 0, l = srcElements.length; i < l; i++ ) {
					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
				}
			} else {
				cloneCopyEvent( elem, clone );
			}
		}

		// Preserve script evaluation history
		destElements = getAll( clone, "script" );
		if ( destElements.length > 0 ) {
			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
		}

		// Return the cloned set
		return clone;
	},

	cleanData: function( elems ) {
		var data, elem, type,
			special = jQuery.event.special,
			i = 0;

		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
			if ( acceptData( elem ) ) {
				if ( ( data = elem[ dataPriv.expando ] ) ) {
					if ( data.events ) {
						for ( type in data.events ) {
							if ( special[ type ] ) {
								jQuery.event.remove( elem, type );

							// This is a shortcut to avoid jQuery.event.remove's overhead
							} else {
								jQuery.removeEvent( elem, type, data.handle );
							}
						}
					}

					// Support: Chrome <=35 - 45+
					// Assign undefined instead of using delete, see Data#remove
					elem[ dataPriv.expando ] = undefined;
				}
				if ( elem[ dataUser.expando ] ) {

					// Support: Chrome <=35 - 45+
					// Assign undefined instead of using delete, see Data#remove
					elem[ dataUser.expando ] = undefined;
				}
			}
		}
	}
} );

jQuery.fn.extend( {
	detach: function( selector ) {
		return remove( this, selector, true );
	},

	remove: function( selector ) {
		return remove( this, selector );
	},

	text: function( value ) {
		return access( this, function( value ) {
			return value === undefined ?
				jQuery.text( this ) :
				this.empty().each( function() {
					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
						this.textContent = value;
					}
				} );
		}, null, value, arguments.length );
	},

	append: function() {
		return domManip( this, arguments, function( elem ) {
			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
				var target = manipulationTarget( this, elem );
				target.appendChild( elem );
			}
		} );
	},

	prepend: function() {
		return domManip( this, arguments, function( elem ) {
			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
				var target = manipulationTarget( this, elem );
				target.insertBefore( elem, target.firstChild );
			}
		} );
	},

	before: function() {
		return domManip( this, arguments, function( elem ) {
			if ( this.parentNode ) {
				this.parentNode.insertBefore( elem, this );
			}
		} );
	},

	after: function() {
		return domManip( this, arguments, function( elem ) {
			if ( this.parentNode ) {
				this.parentNode.insertBefore( elem, this.nextSibling );
			}
		} );
	},

	empty: function() {
		var elem,
			i = 0;

		for ( ; ( elem = this[ i ] ) != null; i++ ) {
			if ( elem.nodeType === 1 ) {

				// Prevent memory leaks
				jQuery.cleanData( getAll( elem, false ) );

				// Remove any remaining nodes
				elem.textContent = "";
			}
		}

		return this;
	},

	clone: function( dataAndEvents, deepDataAndEvents ) {
		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;

		return this.map( function() {
			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
		} );
	},

	html: function( value ) {
		return access( this, function( value ) {
			var elem = this[ 0 ] || {},
				i = 0,
				l = this.length;

			if ( value === undefined && elem.nodeType === 1 ) {
				return elem.innerHTML;
			}

			// See if we can take a shortcut and just use innerHTML
			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {

				value = jQuery.htmlPrefilter( value );

				try {
					for ( ; i < l; i++ ) {
						elem = this[ i ] || {};

						// Remove element nodes and prevent memory leaks
						if ( elem.nodeType === 1 ) {
							jQuery.cleanData( getAll( elem, false ) );
							elem.innerHTML = value;
						}
					}

					elem = 0;

				// If using innerHTML throws an exception, use the fallback method
				} catch ( e ) {}
			}

			if ( elem ) {
				this.empty().append( value );
			}
		}, null, value, arguments.length );
	},

	replaceWith: function() {
		var ignored = [];

		// Make the changes, replacing each non-ignored context element with the new content
		return domManip( this, arguments, function( elem ) {
			var parent = this.parentNode;

			if ( jQuery.inArray( this, ignored ) < 0 ) {
				jQuery.cleanData( getAll( this ) );
				if ( parent ) {
					parent.replaceChild( elem, this );
				}
			}

		// Force callback invocation
		}, ignored );
	}
} );

jQuery.each( {
	appendTo: "append",
	prependTo: "prepend",
	insertBefore: "before",
	insertAfter: "after",
	replaceAll: "replaceWith"
}, function( name, original ) {
	jQuery.fn[ name ] = function( selector ) {
		var elems,
			ret = [],
			insert = jQuery( selector ),
			last = insert.length - 1,
			i = 0;

		for ( ; i <= last; i++ ) {
			elems = i === last ? this : this.clone( true );
			jQuery( insert[ i ] )[ original ]( elems );

			// Support: Android <=4.0 only, PhantomJS 1 only
			// .get() because push.apply(_, arraylike) throws on ancient WebKit
			push.apply( ret, elems.get() );
		}

		return this.pushStack( ret );
	};
} );
var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );

var getStyles = function( elem ) {

		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
		// IE throws on elements created in popups
		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
		var view = elem.ownerDocument.defaultView;

		if ( !view || !view.opener ) {
			view = window;
		}

		return view.getComputedStyle( elem );
	};

var swap = function( elem, options, callback ) {
	var ret, name,
		old = {};

	// Remember the old values, and insert the new ones
	for ( name in options ) {
		old[ name ] = elem.style[ name ];
		elem.style[ name ] = options[ name ];
	}

	ret = callback.call( elem );

	// Revert the old values
	for ( name in options ) {
		elem.style[ name ] = old[ name ];
	}

	return ret;
};


var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );



( function() {

	// Executing both pixelPosition & boxSizingReliable tests require only one layout
	// so they're executed at the same time to save the second computation.
	function computeStyleTests() {

		// This is a singleton, we need to execute it only once
		if ( !div ) {
			return;
		}

		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
			"margin-top:1px;padding:0;border:0";
		div.style.cssText =
			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
			"margin:auto;border:1px;padding:1px;" +
			"width:60%;top:1%";
		documentElement.appendChild( container ).appendChild( div );

		var divStyle = window.getComputedStyle( div );
		pixelPositionVal = divStyle.top !== "1%";

		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;

		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
		// Some styles come back with percentage values, even though they shouldn't
		div.style.right = "60%";
		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;

		// Support: IE 9 - 11 only
		// Detect misreporting of content dimensions for box-sizing:border-box elements
		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;

		// Support: IE 9 only
		// Detect overflow:scroll screwiness (gh-3699)
		// Support: Chrome <=64
		// Don't get tricked when zoom affects offsetWidth (gh-4029)
		div.style.position = "absolute";
		scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;

		documentElement.removeChild( container );

		// Nullify the div so it wouldn't be stored in the memory and
		// it will also be a sign that checks already performed
		div = null;
	}

	function roundPixelMeasures( measure ) {
		return Math.round( parseFloat( measure ) );
	}

	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
		reliableTrDimensionsVal, reliableMarginLeftVal,
		container = document.createElement( "div" ),
		div = document.createElement( "div" );

	// Finish early in limited (non-browser) environments
	if ( !div.style ) {
		return;
	}

	// Support: IE <=9 - 11 only
	// Style of cloned element affects source element cloned (#8908)
	div.style.backgroundClip = "content-box";
	div.cloneNode( true ).style.backgroundClip = "";
	support.clearCloneStyle = div.style.backgroundClip === "content-box";

	jQuery.extend( support, {
		boxSizingReliable: function() {
			computeStyleTests();
			return boxSizingReliableVal;
		},
		pixelBoxStyles: function() {
			computeStyleTests();
			return pixelBoxStylesVal;
		},
		pixelPosition: function() {
			computeStyleTests();
			return pixelPositionVal;
		},
		reliableMarginLeft: function() {
			computeStyleTests();
			return reliableMarginLeftVal;
		},
		scrollboxSize: function() {
			computeStyleTests();
			return scrollboxSizeVal;
		},

		// Support: IE 9 - 11+, Edge 15 - 18+
		// IE/Edge misreport `getComputedStyle` of table rows with width/height
		// set in CSS while `offset*` properties report correct values.
		// Behavior in IE 9 is more subtle than in newer versions & it passes
		// some versions of this test; make sure not to make it pass there!
		reliableTrDimensions: function() {
			var table, tr, trChild, trStyle;
			if ( reliableTrDimensionsVal == null ) {
				table = document.createElement( "table" );
				tr = document.createElement( "tr" );
				trChild = document.createElement( "div" );

				table.style.cssText = "position:absolute;left:-11111px";
				tr.style.height = "1px";
				trChild.style.height = "9px";

				documentElement
					.appendChild( table )
					.appendChild( tr )
					.appendChild( trChild );

				trStyle = window.getComputedStyle( tr );
				reliableTrDimensionsVal = parseInt( trStyle.height ) > 3;

				documentElement.removeChild( table );
			}
			return reliableTrDimensionsVal;
		}
	} );
} )();


function curCSS( elem, name, computed ) {
	var width, minWidth, maxWidth, ret,

		// Support: Firefox 51+
		// Retrieving style before computed somehow
		// fixes an issue with getting wrong values
		// on detached elements
		style = elem.style;

	computed = computed || getStyles( elem );

	// getPropertyValue is needed for:
	//   .css('filter') (IE 9 only, #12537)
	//   .css('--customProperty) (#3144)
	if ( computed ) {
		ret = computed.getPropertyValue( name ) || computed[ name ];

		if ( ret === "" && !isAttached( elem ) ) {
			ret = jQuery.style( elem, name );
		}

		// A tribute to the "awesome hack by Dean Edwards"
		// Android Browser returns percentage for some values,
		// but width seems to be reliably pixels.
		// This is against the CSSOM draft spec:
		// https://drafts.csswg.org/cssom/#resolved-values
		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {

			// Remember the original values
			width = style.width;
			minWidth = style.minWidth;
			maxWidth = style.maxWidth;

			// Put in the new values to get a computed value out
			style.minWidth = style.maxWidth = style.width = ret;
			ret = computed.width;

			// Revert the changed values
			style.width = width;
			style.minWidth = minWidth;
			style.maxWidth = maxWidth;
		}
	}

	return ret !== undefined ?

		// Support: IE <=9 - 11 only
		// IE returns zIndex value as an integer.
		ret + "" :
		ret;
}


function addGetHookIf( conditionFn, hookFn ) {

	// Define the hook, we'll check on the first run if it's really needed.
	return {
		get: function() {
			if ( conditionFn() ) {

				// Hook not needed (or it's not possible to use it due
				// to missing dependency), remove it.
				delete this.get;
				return;
			}

			// Hook needed; redefine it so that the support test is not executed again.
			return ( this.get = hookFn ).apply( this, arguments );
		}
	};
}


var cssPrefixes = [ "Webkit", "Moz", "ms" ],
	emptyStyle = document.createElement( "div" ).style,
	vendorProps = {};

// Return a vendor-prefixed property or undefined
function vendorPropName( name ) {

	// Check for vendor prefixed names
	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
		i = cssPrefixes.length;

	while ( i-- ) {
		name = cssPrefixes[ i ] + capName;
		if ( name in emptyStyle ) {
			return name;
		}
	}
}

// Return a potentially-mapped jQuery.cssProps or vendor prefixed property
function finalPropName( name ) {
	var final = jQuery.cssProps[ name ] || vendorProps[ name ];

	if ( final ) {
		return final;
	}
	if ( name in emptyStyle ) {
		return name;
	}
	return vendorProps[ name ] = vendorPropName( name ) || name;
}


var

	// Swappable if display is none or starts with table
	// except "table", "table-cell", or "table-caption"
	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
	rcustomProp = /^--/,
	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
	cssNormalTransform = {
		letterSpacing: "0",
		fontWeight: "400"
	};

function setPositiveNumber( _elem, value, subtract ) {

	// Any relative (+/-) values have already been
	// normalized at this point
	var matches = rcssNum.exec( value );
	return matches ?

		// Guard against undefined "subtract", e.g., when used as in cssHooks
		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
		value;
}

function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
	var i = dimension === "width" ? 1 : 0,
		extra = 0,
		delta = 0;

	// Adjustment may not be necessary
	if ( box === ( isBorderBox ? "border" : "content" ) ) {
		return 0;
	}

	for ( ; i < 4; i += 2 ) {

		// Both box models exclude margin
		if ( box === "margin" ) {
			delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
		}

		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
		if ( !isBorderBox ) {

			// Add padding
			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );

			// For "border" or "margin", add border
			if ( box !== "padding" ) {
				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );

			// But still keep track of it otherwise
			} else {
				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
			}

		// If we get here with a border-box (content + padding + border), we're seeking "content" or
		// "padding" or "margin"
		} else {

			// For "content", subtract padding
			if ( box === "content" ) {
				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
			}

			// For "content" or "padding", subtract border
			if ( box !== "margin" ) {
				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
			}
		}
	}

	// Account for positive content-box scroll gutter when requested by providing computedVal
	if ( !isBorderBox && computedVal >= 0 ) {

		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
		// Assuming integer scroll gutter, subtract the rest and round down
		delta += Math.max( 0, Math.ceil(
			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
			computedVal -
			delta -
			extra -
			0.5

		// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
		// Use an explicit zero to avoid NaN (gh-3964)
		) ) || 0;
	}

	return delta;
}

function getWidthOrHeight( elem, dimension, extra ) {

	// Start with computed style
	var styles = getStyles( elem ),

		// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
		// Fake content-box until we know it's needed to know the true value.
		boxSizingNeeded = !support.boxSizingReliable() || extra,
		isBorderBox = boxSizingNeeded &&
			jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
		valueIsBorderBox = isBorderBox,

		val = curCSS( elem, dimension, styles ),
		offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );

	// Support: Firefox <=54
	// Return a confounding non-pixel value or feign ignorance, as appropriate.
	if ( rnumnonpx.test( val ) ) {
		if ( !extra ) {
			return val;
		}
		val = "auto";
	}


	// Support: IE 9 - 11 only
	// Use offsetWidth/offsetHeight for when box sizing is unreliable.
	// In those cases, the computed value can be trusted to be border-box.
	if ( ( !support.boxSizingReliable() && isBorderBox ||

		// Support: IE 10 - 11+, Edge 15 - 18+
		// IE/Edge misreport `getComputedStyle` of table rows with width/height
		// set in CSS while `offset*` properties report correct values.
		// Interestingly, in some cases IE 9 doesn't suffer from this issue.
		!support.reliableTrDimensions() && nodeName( elem, "tr" ) ||

		// Fall back to offsetWidth/offsetHeight when value is "auto"
		// This happens for inline elements with no explicit setting (gh-3571)
		val === "auto" ||

		// Support: Android <=4.1 - 4.3 only
		// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&

		// Make sure the element is visible & connected
		elem.getClientRects().length ) {

		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";

		// Where available, offsetWidth/offsetHeight approximate border box dimensions.
		// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
		// retrieved value as a content box dimension.
		valueIsBorderBox = offsetProp in elem;
		if ( valueIsBorderBox ) {
			val = elem[ offsetProp ];
		}
	}

	// Normalize "" and auto
	val = parseFloat( val ) || 0;

	// Adjust for the element's box model
	return ( val +
		boxModelAdjustment(
			elem,
			dimension,
			extra || ( isBorderBox ? "border" : "content" ),
			valueIsBorderBox,
			styles,

			// Provide the current computed size to request scroll gutter calculation (gh-3589)
			val
		)
	) + "px";
}

jQuery.extend( {

	// Add in style property hooks for overriding the default
	// behavior of getting and setting a style property
	cssHooks: {
		opacity: {
			get: function( elem, computed ) {
				if ( computed ) {

					// We should always get a number back from opacity
					var ret = curCSS( elem, "opacity" );
					return ret === "" ? "1" : ret;
				}
			}
		}
	},

	// Don't automatically add "px" to these possibly-unitless properties
	cssNumber: {
		"animationIterationCount": true,
		"columnCount": true,
		"fillOpacity": true,
		"flexGrow": true,
		"flexShrink": true,
		"fontWeight": true,
		"gridArea": true,
		"gridColumn": true,
		"gridColumnEnd": true,
		"gridColumnStart": true,
		"gridRow": true,
		"gridRowEnd": true,
		"gridRowStart": true,
		"lineHeight": true,
		"opacity": true,
		"order": true,
		"orphans": true,
		"widows": true,
		"zIndex": true,
		"zoom": true
	},

	// Add in properties whose names you wish to fix before
	// setting or getting the value
	cssProps: {},

	// Get and set the style property on a DOM Node
	style: function( elem, name, value, extra ) {

		// Don't set styles on text and comment nodes
		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
			return;
		}

		// Make sure that we're working with the right name
		var ret, type, hooks,
			origName = camelCase( name ),
			isCustomProp = rcustomProp.test( name ),
			style = elem.style;

		// Make sure that we're working with the right name. We don't
		// want to query the value if it is a CSS custom property
		// since they are user-defined.
		if ( !isCustomProp ) {
			name = finalPropName( origName );
		}

		// Gets hook for the prefixed version, then unprefixed version
		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];

		// Check if we're setting a value
		if ( value !== undefined ) {
			type = typeof value;

			// Convert "+=" or "-=" to relative numbers (#7345)
			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
				value = adjustCSS( elem, name, ret );

				// Fixes bug #9237
				type = "number";
			}

			// Make sure that null and NaN values aren't set (#7116)
			if ( value == null || value !== value ) {
				return;
			}

			// If a number was passed in, add the unit (except for certain CSS properties)
			// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
			// "px" to a few hardcoded values.
			if ( type === "number" && !isCustomProp ) {
				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
			}

			// background-* props affect original clone's values
			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
				style[ name ] = "inherit";
			}

			// If a hook was provided, use that value, otherwise just set the specified value
			if ( !hooks || !( "set" in hooks ) ||
				( value = hooks.set( elem, value, extra ) ) !== undefined ) {

				if ( isCustomProp ) {
					style.setProperty( name, value );
				} else {
					style[ name ] = value;
				}
			}

		} else {

			// If a hook was provided get the non-computed value from there
			if ( hooks && "get" in hooks &&
				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {

				return ret;
			}

			// Otherwise just get the value from the style object
			return style[ name ];
		}
	},

	css: function( elem, name, extra, styles ) {
		var val, num, hooks,
			origName = camelCase( name ),
			isCustomProp = rcustomProp.test( name );

		// Make sure that we're working with the right name. We don't
		// want to modify the value if it is a CSS custom property
		// since they are user-defined.
		if ( !isCustomProp ) {
			name = finalPropName( origName );
		}

		// Try prefixed name followed by the unprefixed name
		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];

		// If a hook was provided get the computed value from there
		if ( hooks && "get" in hooks ) {
			val = hooks.get( elem, true, extra );
		}

		// Otherwise, if a way to get the computed value exists, use that
		if ( val === undefined ) {
			val = curCSS( elem, name, styles );
		}

		// Convert "normal" to computed value
		if ( val === "normal" && name in cssNormalTransform ) {
			val = cssNormalTransform[ name ];
		}

		// Make numeric if forced or a qualifier was provided and val looks numeric
		if ( extra === "" || extra ) {
			num = parseFloat( val );
			return extra === true || isFinite( num ) ? num || 0 : val;
		}

		return val;
	}
} );

jQuery.each( [ "height", "width" ], function( _i, dimension ) {
	jQuery.cssHooks[ dimension ] = {
		get: function( elem, computed, extra ) {
			if ( computed ) {

				// Certain elements can have dimension info if we invisibly show them
				// but it must have a current display style that would benefit
				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&

					// Support: Safari 8+
					// Table columns in Safari have non-zero offsetWidth & zero
					// getBoundingClientRect().width unless display is changed.
					// Support: IE <=11 only
					// Running getBoundingClientRect on a disconnected node
					// in IE throws an error.
					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
						swap( elem, cssShow, function() {
							return getWidthOrHeight( elem, dimension, extra );
						} ) :
						getWidthOrHeight( elem, dimension, extra );
			}
		},

		set: function( elem, value, extra ) {
			var matches,
				styles = getStyles( elem ),

				// Only read styles.position if the test has a chance to fail
				// to avoid forcing a reflow.
				scrollboxSizeBuggy = !support.scrollboxSize() &&
					styles.position === "absolute",

				// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
				boxSizingNeeded = scrollboxSizeBuggy || extra,
				isBorderBox = boxSizingNeeded &&
					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
				subtract = extra ?
					boxModelAdjustment(
						elem,
						dimension,
						extra,
						isBorderBox,
						styles
					) :
					0;

			// Account for unreliable border-box dimensions by comparing offset* to computed and
			// faking a content-box to get border and padding (gh-3699)
			if ( isBorderBox && scrollboxSizeBuggy ) {
				subtract -= Math.ceil(
					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
					parseFloat( styles[ dimension ] ) -
					boxModelAdjustment( elem, dimension, "border", false, styles ) -
					0.5
				);
			}

			// Convert to pixels if value adjustment is needed
			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
				( matches[ 3 ] || "px" ) !== "px" ) {

				elem.style[ dimension ] = value;
				value = jQuery.css( elem, dimension );
			}

			return setPositiveNumber( elem, value, subtract );
		}
	};
} );

jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
	function( elem, computed ) {
		if ( computed ) {
			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
				elem.getBoundingClientRect().left -
					swap( elem, { marginLeft: 0 }, function() {
						return elem.getBoundingClientRect().left;
					} )
				) + "px";
		}
	}
);

// These hooks are used by animate to expand properties
jQuery.each( {
	margin: "",
	padding: "",
	border: "Width"
}, function( prefix, suffix ) {
	jQuery.cssHooks[ prefix + suffix ] = {
		expand: function( value ) {
			var i = 0,
				expanded = {},

				// Assumes a single number if not a string
				parts = typeof value === "string" ? value.split( " " ) : [ value ];

			for ( ; i < 4; i++ ) {
				expanded[ prefix + cssExpand[ i ] + suffix ] =
					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
			}

			return expanded;
		}
	};

	if ( prefix !== "margin" ) {
		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
	}
} );

jQuery.fn.extend( {
	css: function( name, value ) {
		return access( this, function( elem, name, value ) {
			var styles, len,
				map = {},
				i = 0;

			if ( Array.isArray( name ) ) {
				styles = getStyles( elem );
				len = name.length;

				for ( ; i < len; i++ ) {
					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
				}

				return map;
			}

			return value !== undefined ?
				jQuery.style( elem, name, value ) :
				jQuery.css( elem, name );
		}, name, value, arguments.length > 1 );
	}
} );


function Tween( elem, options, prop, end, easing ) {
	return new Tween.prototype.init( elem, options, prop, end, easing );
}
jQuery.Tween = Tween;

Tween.prototype = {
	constructor: Tween,
	init: function( elem, options, prop, end, easing, unit ) {
		this.elem = elem;
		this.prop = prop;
		this.easing = easing || jQuery.easing._default;
		this.options = options;
		this.start = this.now = this.cur();
		this.end = end;
		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
	},
	cur: function() {
		var hooks = Tween.propHooks[ this.prop ];

		return hooks && hooks.get ?
			hooks.get( this ) :
			Tween.propHooks._default.get( this );
	},
	run: function( percent ) {
		var eased,
			hooks = Tween.propHooks[ this.prop ];

		if ( this.options.duration ) {
			this.pos = eased = jQuery.easing[ this.easing ](
				percent, this.options.duration * percent, 0, 1, this.options.duration
			);
		} else {
			this.pos = eased = percent;
		}
		this.now = ( this.end - this.start ) * eased + this.start;

		if ( this.options.step ) {
			this.options.step.call( this.elem, this.now, this );
		}

		if ( hooks && hooks.set ) {
			hooks.set( this );
		} else {
			Tween.propHooks._default.set( this );
		}
		return this;
	}
};

Tween.prototype.init.prototype = Tween.prototype;

Tween.propHooks = {
	_default: {
		get: function( tween ) {
			var result;

			// Use a property on the element directly when it is not a DOM element,
			// or when there is no matching style property that exists.
			if ( tween.elem.nodeType !== 1 ||
				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
				return tween.elem[ tween.prop ];
			}

			// Passing an empty string as a 3rd parameter to .css will automatically
			// attempt a parseFloat and fallback to a string if the parse fails.
			// Simple values such as "10px" are parsed to Float;
			// complex values such as "rotate(1rad)" are returned as-is.
			result = jQuery.css( tween.elem, tween.prop, "" );

			// Empty strings, null, undefined and "auto" are converted to 0.
			return !result || result === "auto" ? 0 : result;
		},
		set: function( tween ) {

			// Use step hook for back compat.
			// Use cssHook if its there.
			// Use .style if available and use plain properties where available.
			if ( jQuery.fx.step[ tween.prop ] ) {
				jQuery.fx.step[ tween.prop ]( tween );
			} else if ( tween.elem.nodeType === 1 && (
					jQuery.cssHooks[ tween.prop ] ||
					tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
			} else {
				tween.elem[ tween.prop ] = tween.now;
			}
		}
	}
};

// Support: IE <=9 only
// Panic based approach to setting things on disconnected nodes
Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
	set: function( tween ) {
		if ( tween.elem.nodeType && tween.elem.parentNode ) {
			tween.elem[ tween.prop ] = tween.now;
		}
	}
};

jQuery.easing = {
	linear: function( p ) {
		return p;
	},
	swing: function( p ) {
		return 0.5 - Math.cos( p * Math.PI ) / 2;
	},
	_default: "swing"
};

jQuery.fx = Tween.prototype.init;

// Back compat <1.8 extension point
jQuery.fx.step = {};




var
	fxNow, inProgress,
	rfxtypes = /^(?:toggle|show|hide)$/,
	rrun = /queueHooks$/;

function schedule() {
	if ( inProgress ) {
		if ( document.hidden === false && window.requestAnimationFrame ) {
			window.requestAnimationFrame( schedule );
		} else {
			window.setTimeout( schedule, jQuery.fx.interval );
		}

		jQuery.fx.tick();
	}
}

// Animations created synchronously will run synchronously
function createFxNow() {
	window.setTimeout( function() {
		fxNow = undefined;
	} );
	return ( fxNow = Date.now() );
}

// Generate parameters to create a standard animation
function genFx( type, includeWidth ) {
	var which,
		i = 0,
		attrs = { height: type };

	// If we include width, step value is 1 to do all cssExpand values,
	// otherwise step value is 2 to skip over Left and Right
	includeWidth = includeWidth ? 1 : 0;
	for ( ; i < 4; i += 2 - includeWidth ) {
		which = cssExpand[ i ];
		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
	}

	if ( includeWidth ) {
		attrs.opacity = attrs.width = type;
	}

	return attrs;
}

function createTween( value, prop, animation ) {
	var tween,
		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
		index = 0,
		length = collection.length;
	for ( ; index < length; index++ ) {
		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {

			// We're done with this property
			return tween;
		}
	}
}

function defaultPrefilter( elem, props, opts ) {
	var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
		isBox = "width" in props || "height" in props,
		anim = this,
		orig = {},
		style = elem.style,
		hidden = elem.nodeType && isHiddenWithinTree( elem ),
		dataShow = dataPriv.get( elem, "fxshow" );

	// Queue-skipping animations hijack the fx hooks
	if ( !opts.queue ) {
		hooks = jQuery._queueHooks( elem, "fx" );
		if ( hooks.unqueued == null ) {
			hooks.unqueued = 0;
			oldfire = hooks.empty.fire;
			hooks.empty.fire = function() {
				if ( !hooks.unqueued ) {
					oldfire();
				}
			};
		}
		hooks.unqueued++;

		anim.always( function() {

			// Ensure the complete handler is called before this completes
			anim.always( function() {
				hooks.unqueued--;
				if ( !jQuery.queue( elem, "fx" ).length ) {
					hooks.empty.fire();
				}
			} );
		} );
	}

	// Detect show/hide animations
	for ( prop in props ) {
		value = props[ prop ];
		if ( rfxtypes.test( value ) ) {
			delete props[ prop ];
			toggle = toggle || value === "toggle";
			if ( value === ( hidden ? "hide" : "show" ) ) {

				// Pretend to be hidden if this is a "show" and
				// there is still data from a stopped show/hide
				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
					hidden = true;

				// Ignore all other no-op show/hide data
				} else {
					continue;
				}
			}
			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
		}
	}

	// Bail out if this is a no-op like .hide().hide()
	propTween = !jQuery.isEmptyObject( props );
	if ( !propTween && jQuery.isEmptyObject( orig ) ) {
		return;
	}

	// Restrict "overflow" and "display" styles during box animations
	if ( isBox && elem.nodeType === 1 ) {

		// Support: IE <=9 - 11, Edge 12 - 15
		// Record all 3 overflow attributes because IE does not infer the shorthand
		// from identically-valued overflowX and overflowY and Edge just mirrors
		// the overflowX value there.
		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];

		// Identify a display type, preferring old show/hide data over the CSS cascade
		restoreDisplay = dataShow && dataShow.display;
		if ( restoreDisplay == null ) {
			restoreDisplay = dataPriv.get( elem, "display" );
		}
		display = jQuery.css( elem, "display" );
		if ( display === "none" ) {
			if ( restoreDisplay ) {
				display = restoreDisplay;
			} else {

				// Get nonempty value(s) by temporarily forcing visibility
				showHide( [ elem ], true );
				restoreDisplay = elem.style.display || restoreDisplay;
				display = jQuery.css( elem, "display" );
				showHide( [ elem ] );
			}
		}

		// Animate inline elements as inline-block
		if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
			if ( jQuery.css( elem, "float" ) === "none" ) {

				// Restore the original display value at the end of pure show/hide animations
				if ( !propTween ) {
					anim.done( function() {
						style.display = restoreDisplay;
					} );
					if ( restoreDisplay == null ) {
						display = style.display;
						restoreDisplay = display === "none" ? "" : display;
					}
				}
				style.display = "inline-block";
			}
		}
	}

	if ( opts.overflow ) {
		style.overflow = "hidden";
		anim.always( function() {
			style.overflow = opts.overflow[ 0 ];
			style.overflowX = opts.overflow[ 1 ];
			style.overflowY = opts.overflow[ 2 ];
		} );
	}

	// Implement show/hide animations
	propTween = false;
	for ( prop in orig ) {

		// General show/hide setup for this element animation
		if ( !propTween ) {
			if ( dataShow ) {
				if ( "hidden" in dataShow ) {
					hidden = dataShow.hidden;
				}
			} else {
				dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
			}

			// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
			if ( toggle ) {
				dataShow.hidden = !hidden;
			}

			// Show elements before animating them
			if ( hidden ) {
				showHide( [ elem ], true );
			}

			/* eslint-disable no-loop-func */

			anim.done( function() {

			/* eslint-enable no-loop-func */

				// The final step of a "hide" animation is actually hiding the element
				if ( !hidden ) {
					showHide( [ elem ] );
				}
				dataPriv.remove( elem, "fxshow" );
				for ( prop in orig ) {
					jQuery.style( elem, prop, orig[ prop ] );
				}
			} );
		}

		// Per-property setup
		propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
		if ( !( prop in dataShow ) ) {
			dataShow[ prop ] = propTween.start;
			if ( hidden ) {
				propTween.end = propTween.start;
				propTween.start = 0;
			}
		}
	}
}

function propFilter( props, specialEasing ) {
	var index, name, easing, value, hooks;

	// camelCase, specialEasing and expand cssHook pass
	for ( index in props ) {
		name = camelCase( index );
		easing = specialEasing[ name ];
		value = props[ index ];
		if ( Array.isArray( value ) ) {
			easing = value[ 1 ];
			value = props[ index ] = value[ 0 ];
		}

		if ( index !== name ) {
			props[ name ] = value;
			delete props[ index ];
		}

		hooks = jQuery.cssHooks[ name ];
		if ( hooks && "expand" in hooks ) {
			value = hooks.expand( value );
			delete props[ name ];

			// Not quite $.extend, this won't overwrite existing keys.
			// Reusing 'index' because we have the correct "name"
			for ( index in value ) {
				if ( !( index in props ) ) {
					props[ index ] = value[ index ];
					specialEasing[ index ] = easing;
				}
			}
		} else {
			specialEasing[ name ] = easing;
		}
	}
}

function Animation( elem, properties, options ) {
	var result,
		stopped,
		index = 0,
		length = Animation.prefilters.length,
		deferred = jQuery.Deferred().always( function() {

			// Don't match elem in the :animated selector
			delete tick.elem;
		} ),
		tick = function() {
			if ( stopped ) {
				return false;
			}
			var currentTime = fxNow || createFxNow(),
				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),

				// Support: Android 2.3 only
				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
				temp = remaining / animation.duration || 0,
				percent = 1 - temp,
				index = 0,
				length = animation.tweens.length;

			for ( ; index < length; index++ ) {
				animation.tweens[ index ].run( percent );
			}

			deferred.notifyWith( elem, [ animation, percent, remaining ] );

			// If there's more to do, yield
			if ( percent < 1 && length ) {
				return remaining;
			}

			// If this was an empty animation, synthesize a final progress notification
			if ( !length ) {
				deferred.notifyWith( elem, [ animation, 1, 0 ] );
			}

			// Resolve the animation and report its conclusion
			deferred.resolveWith( elem, [ animation ] );
			return false;
		},
		animation = deferred.promise( {
			elem: elem,
			props: jQuery.extend( {}, properties ),
			opts: jQuery.extend( true, {
				specialEasing: {},
				easing: jQuery.easing._default
			}, options ),
			originalProperties: properties,
			originalOptions: options,
			startTime: fxNow || createFxNow(),
			duration: options.duration,
			tweens: [],
			createTween: function( prop, end ) {
				var tween = jQuery.Tween( elem, animation.opts, prop, end,
						animation.opts.specialEasing[ prop ] || animation.opts.easing );
				animation.tweens.push( tween );
				return tween;
			},
			stop: function( gotoEnd ) {
				var index = 0,

					// If we are going to the end, we want to run all the tweens
					// otherwise we skip this part
					length = gotoEnd ? animation.tweens.length : 0;
				if ( stopped ) {
					return this;
				}
				stopped = true;
				for ( ; index < length; index++ ) {
					animation.tweens[ index ].run( 1 );
				}

				// Resolve when we played the last frame; otherwise, reject
				if ( gotoEnd ) {
					deferred.notifyWith( elem, [ animation, 1, 0 ] );
					deferred.resolveWith( elem, [ animation, gotoEnd ] );
				} else {
					deferred.rejectWith( elem, [ animation, gotoEnd ] );
				}
				return this;
			}
		} ),
		props = animation.props;

	propFilter( props, animation.opts.specialEasing );

	for ( ; index < length; index++ ) {
		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
		if ( result ) {
			if ( isFunction( result.stop ) ) {
				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
					result.stop.bind( result );
			}
			return result;
		}
	}

	jQuery.map( props, createTween, animation );

	if ( isFunction( animation.opts.start ) ) {
		animation.opts.start.call( elem, animation );
	}

	// Attach callbacks from options
	animation
		.progress( animation.opts.progress )
		.done( animation.opts.done, animation.opts.complete )
		.fail( animation.opts.fail )
		.always( animation.opts.always );

	jQuery.fx.timer(
		jQuery.extend( tick, {
			elem: elem,
			anim: animation,
			queue: animation.opts.queue
		} )
	);

	return animation;
}

jQuery.Animation = jQuery.extend( Animation, {

	tweeners: {
		"*": [ function( prop, value ) {
			var tween = this.createTween( prop, value );
			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
			return tween;
		} ]
	},

	tweener: function( props, callback ) {
		if ( isFunction( props ) ) {
			callback = props;
			props = [ "*" ];
		} else {
			props = props.match( rnothtmlwhite );
		}

		var prop,
			index = 0,
			length = props.length;

		for ( ; index < length; index++ ) {
			prop = props[ index ];
			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
			Animation.tweeners[ prop ].unshift( callback );
		}
	},

	prefilters: [ defaultPrefilter ],

	prefilter: function( callback, prepend ) {
		if ( prepend ) {
			Animation.prefilters.unshift( callback );
		} else {
			Animation.prefilters.push( callback );
		}
	}
} );

jQuery.speed = function( speed, easing, fn ) {
	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
		complete: fn || !fn && easing ||
			isFunction( speed ) && speed,
		duration: speed,
		easing: fn && easing || easing && !isFunction( easing ) && easing
	};

	// Go to the end state if fx are off
	if ( jQuery.fx.off ) {
		opt.duration = 0;

	} else {
		if ( typeof opt.duration !== "number" ) {
			if ( opt.duration in jQuery.fx.speeds ) {
				opt.duration = jQuery.fx.speeds[ opt.duration ];

			} else {
				opt.duration = jQuery.fx.speeds._default;
			}
		}
	}

	// Normalize opt.queue - true/undefined/null -> "fx"
	if ( opt.queue == null || opt.queue === true ) {
		opt.queue = "fx";
	}

	// Queueing
	opt.old = opt.complete;

	opt.complete = function() {
		if ( isFunction( opt.old ) ) {
			opt.old.call( this );
		}

		if ( opt.queue ) {
			jQuery.dequeue( this, opt.queue );
		}
	};

	return opt;
};

jQuery.fn.extend( {
	fadeTo: function( speed, to, easing, callback ) {

		// Show any hidden elements after setting opacity to 0
		return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()

			// Animate to the value specified
			.end().animate( { opacity: to }, speed, easing, callback );
	},
	animate: function( prop, speed, easing, callback ) {
		var empty = jQuery.isEmptyObject( prop ),
			optall = jQuery.speed( speed, easing, callback ),
			doAnimation = function() {

				// Operate on a copy of prop so per-property easing won't be lost
				var anim = Animation( this, jQuery.extend( {}, prop ), optall );

				// Empty animations, or finishing resolves immediately
				if ( empty || dataPriv.get( this, "finish" ) ) {
					anim.stop( true );
				}
			};
			doAnimation.finish = doAnimation;

		return empty || optall.queue === false ?
			this.each( doAnimation ) :
			this.queue( optall.queue, doAnimation );
	},
	stop: function( type, clearQueue, gotoEnd ) {
		var stopQueue = function( hooks ) {
			var stop = hooks.stop;
			delete hooks.stop;
			stop( gotoEnd );
		};

		if ( typeof type !== "string" ) {
			gotoEnd = clearQueue;
			clearQueue = type;
			type = undefined;
		}
		if ( clearQueue ) {
			this.queue( type || "fx", [] );
		}

		return this.each( function() {
			var dequeue = true,
				index = type != null && type + "queueHooks",
				timers = jQuery.timers,
				data = dataPriv.get( this );

			if ( index ) {
				if ( data[ index ] && data[ index ].stop ) {
					stopQueue( data[ index ] );
				}
			} else {
				for ( index in data ) {
					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
						stopQueue( data[ index ] );
					}
				}
			}

			for ( index = timers.length; index--; ) {
				if ( timers[ index ].elem === this &&
					( type == null || timers[ index ].queue === type ) ) {

					timers[ index ].anim.stop( gotoEnd );
					dequeue = false;
					timers.splice( index, 1 );
				}
			}

			// Start the next in the queue if the last step wasn't forced.
			// Timers currently will call their complete callbacks, which
			// will dequeue but only if they were gotoEnd.
			if ( dequeue || !gotoEnd ) {
				jQuery.dequeue( this, type );
			}
		} );
	},
	finish: function( type ) {
		if ( type !== false ) {
			type = type || "fx";
		}
		return this.each( function() {
			var index,
				data = dataPriv.get( this ),
				queue = data[ type + "queue" ],
				hooks = data[ type + "queueHooks" ],
				timers = jQuery.timers,
				length = queue ? queue.length : 0;

			// Enable finishing flag on private data
			data.finish = true;

			// Empty the queue first
			jQuery.queue( this, type, [] );

			if ( hooks && hooks.stop ) {
				hooks.stop.call( this, true );
			}

			// Look for any active animations, and finish them
			for ( index = timers.length; index--; ) {
				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
					timers[ index ].anim.stop( true );
					timers.splice( index, 1 );
				}
			}

			// Look for any animations in the old queue and finish them
			for ( index = 0; index < length; index++ ) {
				if ( queue[ index ] && queue[ index ].finish ) {
					queue[ index ].finish.call( this );
				}
			}

			// Turn off finishing flag
			delete data.finish;
		} );
	}
} );

jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) {
	var cssFn = jQuery.fn[ name ];
	jQuery.fn[ name ] = function( speed, easing, callback ) {
		return speed == null || typeof speed === "boolean" ?
			cssFn.apply( this, arguments ) :
			this.animate( genFx( name, true ), speed, easing, callback );
	};
} );

// Generate shortcuts for custom animations
jQuery.each( {
	slideDown: genFx( "show" ),
	slideUp: genFx( "hide" ),
	slideToggle: genFx( "toggle" ),
	fadeIn: { opacity: "show" },
	fadeOut: { opacity: "hide" },
	fadeToggle: { opacity: "toggle" }
}, function( name, props ) {
	jQuery.fn[ name ] = function( speed, easing, callback ) {
		return this.animate( props, speed, easing, callback );
	};
} );

jQuery.timers = [];
jQuery.fx.tick = function() {
	var timer,
		i = 0,
		timers = jQuery.timers;

	fxNow = Date.now();

	for ( ; i < timers.length; i++ ) {
		timer = timers[ i ];

		// Run the timer and safely remove it when done (allowing for external removal)
		if ( !timer() && timers[ i ] === timer ) {
			timers.splice( i--, 1 );
		}
	}

	if ( !timers.length ) {
		jQuery.fx.stop();
	}
	fxNow = undefined;
};

jQuery.fx.timer = function( timer ) {
	jQuery.timers.push( timer );
	jQuery.fx.start();
};

jQuery.fx.interval = 13;
jQuery.fx.start = function() {
	if ( inProgress ) {
		return;
	}

	inProgress = true;
	schedule();
};

jQuery.fx.stop = function() {
	inProgress = null;
};

jQuery.fx.speeds = {
	slow: 600,
	fast: 200,

	// Default speed
	_default: 400
};


// Based off of the plugin by Clint Helfers, with permission.
// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
jQuery.fn.delay = function( time, type ) {
	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
	type = type || "fx";

	return this.queue( type, function( next, hooks ) {
		var timeout = window.setTimeout( next, time );
		hooks.stop = function() {
			window.clearTimeout( timeout );
		};
	} );
};


( function() {
	var input = document.createElement( "input" ),
		select = document.createElement( "select" ),
		opt = select.appendChild( document.createElement( "option" ) );

	input.type = "checkbox";

	// Support: Android <=4.3 only
	// Default value for a checkbox should be "on"
	support.checkOn = input.value !== "";

	// Support: IE <=11 only
	// Must access selectedIndex to make default options select
	support.optSelected = opt.selected;

	// Support: IE <=11 only
	// An input loses its value after becoming a radio
	input = document.createElement( "input" );
	input.value = "t";
	input.type = "radio";
	support.radioValue = input.value === "t";
} )();


var boolHook,
	attrHandle = jQuery.expr.attrHandle;

jQuery.fn.extend( {
	attr: function( name, value ) {
		return access( this, jQuery.attr, name, value, arguments.length > 1 );
	},

	removeAttr: function( name ) {
		return this.each( function() {
			jQuery.removeAttr( this, name );
		} );
	}
} );

jQuery.extend( {
	attr: function( elem, name, value ) {
		var ret, hooks,
			nType = elem.nodeType;

		// Don't get/set attributes on text, comment and attribute nodes
		if ( nType === 3 || nType === 8 || nType === 2 ) {
			return;
		}

		// Fallback to prop when attributes are not supported
		if ( typeof elem.getAttribute === "undefined" ) {
			return jQuery.prop( elem, name, value );
		}

		// Attribute hooks are determined by the lowercase version
		// Grab necessary hook if one is defined
		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
		}

		if ( value !== undefined ) {
			if ( value === null ) {
				jQuery.removeAttr( elem, name );
				return;
			}

			if ( hooks && "set" in hooks &&
				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
				return ret;
			}

			elem.setAttribute( name, value + "" );
			return value;
		}

		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
			return ret;
		}

		ret = jQuery.find.attr( elem, name );

		// Non-existent attributes return null, we normalize to undefined
		return ret == null ? undefined : ret;
	},

	attrHooks: {
		type: {
			set: function( elem, value ) {
				if ( !support.radioValue && value === "radio" &&
					nodeName( elem, "input" ) ) {
					var val = elem.value;
					elem.setAttribute( "type", value );
					if ( val ) {
						elem.value = val;
					}
					return value;
				}
			}
		}
	},

	removeAttr: function( elem, value ) {
		var name,
			i = 0,

			// Attribute names can contain non-HTML whitespace characters
			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
			attrNames = value && value.match( rnothtmlwhite );

		if ( attrNames && elem.nodeType === 1 ) {
			while ( ( name = attrNames[ i++ ] ) ) {
				elem.removeAttribute( name );
			}
		}
	}
} );

// Hooks for boolean attributes
boolHook = {
	set: function( elem, value, name ) {
		if ( value === false ) {

			// Remove boolean attributes when set to false
			jQuery.removeAttr( elem, name );
		} else {
			elem.setAttribute( name, name );
		}
		return name;
	}
};

jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) {
	var getter = attrHandle[ name ] || jQuery.find.attr;

	attrHandle[ name ] = function( elem, name, isXML ) {
		var ret, handle,
			lowercaseName = name.toLowerCase();

		if ( !isXML ) {

			// Avoid an infinite loop by temporarily removing this function from the getter
			handle = attrHandle[ lowercaseName ];
			attrHandle[ lowercaseName ] = ret;
			ret = getter( elem, name, isXML ) != null ?
				lowercaseName :
				null;
			attrHandle[ lowercaseName ] = handle;
		}
		return ret;
	};
} );




var rfocusable = /^(?:input|select|textarea|button)$/i,
	rclickable = /^(?:a|area)$/i;

jQuery.fn.extend( {
	prop: function( name, value ) {
		return access( this, jQuery.prop, name, value, arguments.length > 1 );
	},

	removeProp: function( name ) {
		return this.each( function() {
			delete this[ jQuery.propFix[ name ] || name ];
		} );
	}
} );

jQuery.extend( {
	prop: function( elem, name, value ) {
		var ret, hooks,
			nType = elem.nodeType;

		// Don't get/set properties on text, comment and attribute nodes
		if ( nType === 3 || nType === 8 || nType === 2 ) {
			return;
		}

		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {

			// Fix name and attach hooks
			name = jQuery.propFix[ name ] || name;
			hooks = jQuery.propHooks[ name ];
		}

		if ( value !== undefined ) {
			if ( hooks && "set" in hooks &&
				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
				return ret;
			}

			return ( elem[ name ] = value );
		}

		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
			return ret;
		}

		return elem[ name ];
	},

	propHooks: {
		tabIndex: {
			get: function( elem ) {

				// Support: IE <=9 - 11 only
				// elem.tabIndex doesn't always return the
				// correct value when it hasn't been explicitly set
				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
				// Use proper attribute retrieval(#12072)
				var tabindex = jQuery.find.attr( elem, "tabindex" );

				if ( tabindex ) {
					return parseInt( tabindex, 10 );
				}

				if (
					rfocusable.test( elem.nodeName ) ||
					rclickable.test( elem.nodeName ) &&
					elem.href
				) {
					return 0;
				}

				return -1;
			}
		}
	},

	propFix: {
		"for": "htmlFor",
		"class": "className"
	}
} );

// Support: IE <=11 only
// Accessing the selectedIndex property
// forces the browser to respect setting selected
// on the option
// The getter ensures a default option is selected
// when in an optgroup
// eslint rule "no-unused-expressions" is disabled for this code
// since it considers such accessions noop
if ( !support.optSelected ) {
	jQuery.propHooks.selected = {
		get: function( elem ) {

			/* eslint no-unused-expressions: "off" */

			var parent = elem.parentNode;
			if ( parent && parent.parentNode ) {
				parent.parentNode.selectedIndex;
			}
			return null;
		},
		set: function( elem ) {

			/* eslint no-unused-expressions: "off" */

			var parent = elem.parentNode;
			if ( parent ) {
				parent.selectedIndex;

				if ( parent.parentNode ) {
					parent.parentNode.selectedIndex;
				}
			}
		}
	};
}

jQuery.each( [
	"tabIndex",
	"readOnly",
	"maxLength",
	"cellSpacing",
	"cellPadding",
	"rowSpan",
	"colSpan",
	"useMap",
	"frameBorder",
	"contentEditable"
], function() {
	jQuery.propFix[ this.toLowerCase() ] = this;
} );




	// Strip and collapse whitespace according to HTML spec
	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
	function stripAndCollapse( value ) {
		var tokens = value.match( rnothtmlwhite ) || [];
		return tokens.join( " " );
	}


function getClass( elem ) {
	return elem.getAttribute && elem.getAttribute( "class" ) || "";
}

function classesToArray( value ) {
	if ( Array.isArray( value ) ) {
		return value;
	}
	if ( typeof value === "string" ) {
		return value.match( rnothtmlwhite ) || [];
	}
	return [];
}

jQuery.fn.extend( {
	addClass: function( value ) {
		var classes, elem, cur, curValue, clazz, j, finalValue,
			i = 0;

		if ( isFunction( value ) ) {
			return this.each( function( j ) {
				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
			} );
		}

		classes = classesToArray( value );

		if ( classes.length ) {
			while ( ( elem = this[ i++ ] ) ) {
				curValue = getClass( elem );
				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );

				if ( cur ) {
					j = 0;
					while ( ( clazz = classes[ j++ ] ) ) {
						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
							cur += clazz + " ";
						}
					}

					// Only assign if different to avoid unneeded rendering.
					finalValue = stripAndCollapse( cur );
					if ( curValue !== finalValue ) {
						elem.setAttribute( "class", finalValue );
					}
				}
			}
		}

		return this;
	},

	removeClass: function( value ) {
		var classes, elem, cur, curValue, clazz, j, finalValue,
			i = 0;

		if ( isFunction( value ) ) {
			return this.each( function( j ) {
				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
			} );
		}

		if ( !arguments.length ) {
			return this.attr( "class", "" );
		}

		classes = classesToArray( value );

		if ( classes.length ) {
			while ( ( elem = this[ i++ ] ) ) {
				curValue = getClass( elem );

				// This expression is here for better compressibility (see addClass)
				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );

				if ( cur ) {
					j = 0;
					while ( ( clazz = classes[ j++ ] ) ) {

						// Remove *all* instances
						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
							cur = cur.replace( " " + clazz + " ", " " );
						}
					}

					// Only assign if different to avoid unneeded rendering.
					finalValue = stripAndCollapse( cur );
					if ( curValue !== finalValue ) {
						elem.setAttribute( "class", finalValue );
					}
				}
			}
		}

		return this;
	},

	toggleClass: function( value, stateVal ) {
		var type = typeof value,
			isValidValue = type === "string" || Array.isArray( value );

		if ( typeof stateVal === "boolean" && isValidValue ) {
			return stateVal ? this.addClass( value ) : this.removeClass( value );
		}

		if ( isFunction( value ) ) {
			return this.each( function( i ) {
				jQuery( this ).toggleClass(
					value.call( this, i, getClass( this ), stateVal ),
					stateVal
				);
			} );
		}

		return this.each( function() {
			var className, i, self, classNames;

			if ( isValidValue ) {

				// Toggle individual class names
				i = 0;
				self = jQuery( this );
				classNames = classesToArray( value );

				while ( ( className = classNames[ i++ ] ) ) {

					// Check each className given, space separated list
					if ( self.hasClass( className ) ) {
						self.removeClass( className );
					} else {
						self.addClass( className );
					}
				}

			// Toggle whole class name
			} else if ( value === undefined || type === "boolean" ) {
				className = getClass( this );
				if ( className ) {

					// Store className if set
					dataPriv.set( this, "__className__", className );
				}

				// If the element has a class name or if we're passed `false`,
				// then remove the whole classname (if there was one, the above saved it).
				// Otherwise bring back whatever was previously saved (if anything),
				// falling back to the empty string if nothing was stored.
				if ( this.setAttribute ) {
					this.setAttribute( "class",
						className || value === false ?
						"" :
						dataPriv.get( this, "__className__" ) || ""
					);
				}
			}
		} );
	},

	hasClass: function( selector ) {
		var className, elem,
			i = 0;

		className = " " + selector + " ";
		while ( ( elem = this[ i++ ] ) ) {
			if ( elem.nodeType === 1 &&
				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
					return true;
			}
		}

		return false;
	}
} );




var rreturn = /\r/g;

jQuery.fn.extend( {
	val: function( value ) {
		var hooks, ret, valueIsFunction,
			elem = this[ 0 ];

		if ( !arguments.length ) {
			if ( elem ) {
				hooks = jQuery.valHooks[ elem.type ] ||
					jQuery.valHooks[ elem.nodeName.toLowerCase() ];

				if ( hooks &&
					"get" in hooks &&
					( ret = hooks.get( elem, "value" ) ) !== undefined
				) {
					return ret;
				}

				ret = elem.value;

				// Handle most common string cases
				if ( typeof ret === "string" ) {
					return ret.replace( rreturn, "" );
				}

				// Handle cases where value is null/undef or number
				return ret == null ? "" : ret;
			}

			return;
		}

		valueIsFunction = isFunction( value );

		return this.each( function( i ) {
			var val;

			if ( this.nodeType !== 1 ) {
				return;
			}

			if ( valueIsFunction ) {
				val = value.call( this, i, jQuery( this ).val() );
			} else {
				val = value;
			}

			// Treat null/undefined as ""; convert numbers to string
			if ( val == null ) {
				val = "";

			} else if ( typeof val === "number" ) {
				val += "";

			} else if ( Array.isArray( val ) ) {
				val = jQuery.map( val, function( value ) {
					return value == null ? "" : value + "";
				} );
			}

			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];

			// If set returns undefined, fall back to normal setting
			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
				this.value = val;
			}
		} );
	}
} );

jQuery.extend( {
	valHooks: {
		option: {
			get: function( elem ) {

				var val = jQuery.find.attr( elem, "value" );
				return val != null ?
					val :

					// Support: IE <=10 - 11 only
					// option.text throws exceptions (#14686, #14858)
					// Strip and collapse whitespace
					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
					stripAndCollapse( jQuery.text( elem ) );
			}
		},
		select: {
			get: function( elem ) {
				var value, option, i,
					options = elem.options,
					index = elem.selectedIndex,
					one = elem.type === "select-one",
					values = one ? null : [],
					max = one ? index + 1 : options.length;

				if ( index < 0 ) {
					i = max;

				} else {
					i = one ? index : 0;
				}

				// Loop through all the selected options
				for ( ; i < max; i++ ) {
					option = options[ i ];

					// Support: IE <=9 only
					// IE8-9 doesn't update selected after form reset (#2551)
					if ( ( option.selected || i === index ) &&

							// Don't return options that are disabled or in a disabled optgroup
							!option.disabled &&
							( !option.parentNode.disabled ||
								!nodeName( option.parentNode, "optgroup" ) ) ) {

						// Get the specific value for the option
						value = jQuery( option ).val();

						// We don't need an array for one selects
						if ( one ) {
							return value;
						}

						// Multi-Selects return an array
						values.push( value );
					}
				}

				return values;
			},

			set: function( elem, value ) {
				var optionSet, option,
					options = elem.options,
					values = jQuery.makeArray( value ),
					i = options.length;

				while ( i-- ) {
					option = options[ i ];

					/* eslint-disable no-cond-assign */

					if ( option.selected =
						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
					) {
						optionSet = true;
					}

					/* eslint-enable no-cond-assign */
				}

				// Force browsers to behave consistently when non-matching value is set
				if ( !optionSet ) {
					elem.selectedIndex = -1;
				}
				return values;
			}
		}
	}
} );

// Radios and checkboxes getter/setter
jQuery.each( [ "radio", "checkbox" ], function() {
	jQuery.valHooks[ this ] = {
		set: function( elem, value ) {
			if ( Array.isArray( value ) ) {
				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
			}
		}
	};
	if ( !support.checkOn ) {
		jQuery.valHooks[ this ].get = function( elem ) {
			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
		};
	}
} );




// Return jQuery for attributes-only inclusion


support.focusin = "onfocusin" in window;


var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
	stopPropagationCallback = function( e ) {
		e.stopPropagation();
	};

jQuery.extend( jQuery.event, {

	trigger: function( event, data, elem, onlyHandlers ) {

		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
			eventPath = [ elem || document ],
			type = hasOwn.call( event, "type" ) ? event.type : event,
			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];

		cur = lastElement = tmp = elem = elem || document;

		// Don't do events on text and comment nodes
		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
			return;
		}

		// focus/blur morphs to focusin/out; ensure we're not firing them right now
		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
			return;
		}

		if ( type.indexOf( "." ) > -1 ) {

			// Namespaced trigger; create a regexp to match event type in handle()
			namespaces = type.split( "." );
			type = namespaces.shift();
			namespaces.sort();
		}
		ontype = type.indexOf( ":" ) < 0 && "on" + type;

		// Caller can pass in a jQuery.Event object, Object, or just an event type string
		event = event[ jQuery.expando ] ?
			event :
			new jQuery.Event( type, typeof event === "object" && event );

		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
		event.isTrigger = onlyHandlers ? 2 : 3;
		event.namespace = namespaces.join( "." );
		event.rnamespace = event.namespace ?
			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
			null;

		// Clean up the event in case it is being reused
		event.result = undefined;
		if ( !event.target ) {
			event.target = elem;
		}

		// Clone any incoming data and prepend the event, creating the handler arg list
		data = data == null ?
			[ event ] :
			jQuery.makeArray( data, [ event ] );

		// Allow special events to draw outside the lines
		special = jQuery.event.special[ type ] || {};
		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
			return;
		}

		// Determine event propagation path in advance, per W3C events spec (#9951)
		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {

			bubbleType = special.delegateType || type;
			if ( !rfocusMorph.test( bubbleType + type ) ) {
				cur = cur.parentNode;
			}
			for ( ; cur; cur = cur.parentNode ) {
				eventPath.push( cur );
				tmp = cur;
			}

			// Only add window if we got to document (e.g., not plain obj or detached DOM)
			if ( tmp === ( elem.ownerDocument || document ) ) {
				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
			}
		}

		// Fire handlers on the event path
		i = 0;
		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
			lastElement = cur;
			event.type = i > 1 ?
				bubbleType :
				special.bindType || type;

			// jQuery handler
			handle = (
					dataPriv.get( cur, "events" ) || Object.create( null )
				)[ event.type ] &&
				dataPriv.get( cur, "handle" );
			if ( handle ) {
				handle.apply( cur, data );
			}

			// Native handler
			handle = ontype && cur[ ontype ];
			if ( handle && handle.apply && acceptData( cur ) ) {
				event.result = handle.apply( cur, data );
				if ( event.result === false ) {
					event.preventDefault();
				}
			}
		}
		event.type = type;

		// If nobody prevented the default action, do it now
		if ( !onlyHandlers && !event.isDefaultPrevented() ) {

			if ( ( !special._default ||
				special._default.apply( eventPath.pop(), data ) === false ) &&
				acceptData( elem ) ) {

				// Call a native DOM method on the target with the same name as the event.
				// Don't do default actions on window, that's where global variables be (#6170)
				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {

					// Don't re-trigger an onFOO event when we call its FOO() method
					tmp = elem[ ontype ];

					if ( tmp ) {
						elem[ ontype ] = null;
					}

					// Prevent re-triggering of the same event, since we already bubbled it above
					jQuery.event.triggered = type;

					if ( event.isPropagationStopped() ) {
						lastElement.addEventListener( type, stopPropagationCallback );
					}

					elem[ type ]();

					if ( event.isPropagationStopped() ) {
						lastElement.removeEventListener( type, stopPropagationCallback );
					}

					jQuery.event.triggered = undefined;

					if ( tmp ) {
						elem[ ontype ] = tmp;
					}
				}
			}
		}

		return event.result;
	},

	// Piggyback on a donor event to simulate a different one
	// Used only for `focus(in | out)` events
	simulate: function( type, elem, event ) {
		var e = jQuery.extend(
			new jQuery.Event(),
			event,
			{
				type: type,
				isSimulated: true
			}
		);

		jQuery.event.trigger( e, null, elem );
	}

} );

jQuery.fn.extend( {

	trigger: function( type, data ) {
		return this.each( function() {
			jQuery.event.trigger( type, data, this );
		} );
	},
	triggerHandler: function( type, data ) {
		var elem = this[ 0 ];
		if ( elem ) {
			return jQuery.event.trigger( type, data, elem, true );
		}
	}
} );


// Support: Firefox <=44
// Firefox doesn't have focus(in | out) events
// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
//
// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
// focus(in | out) events fire after focus & blur events,
// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
if ( !support.focusin ) {
	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {

		// Attach a single capturing handler on the document while someone wants focusin/focusout
		var handler = function( event ) {
			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
		};

		jQuery.event.special[ fix ] = {
			setup: function() {

				// Handle: regular nodes (via `this.ownerDocument`), window
				// (via `this.document`) & document (via `this`).
				var doc = this.ownerDocument || this.document || this,
					attaches = dataPriv.access( doc, fix );

				if ( !attaches ) {
					doc.addEventListener( orig, handler, true );
				}
				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
			},
			teardown: function() {
				var doc = this.ownerDocument || this.document || this,
					attaches = dataPriv.access( doc, fix ) - 1;

				if ( !attaches ) {
					doc.removeEventListener( orig, handler, true );
					dataPriv.remove( doc, fix );

				} else {
					dataPriv.access( doc, fix, attaches );
				}
			}
		};
	} );
}
var location = window.location;

var nonce = { guid: Date.now() };

var rquery = ( /\?/ );



// Cross-browser xml parsing
jQuery.parseXML = function( data ) {
	var xml;
	if ( !data || typeof data !== "string" ) {
		return null;
	}

	// Support: IE 9 - 11 only
	// IE throws on parseFromString with invalid input.
	try {
		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
	} catch ( e ) {
		xml = undefined;
	}

	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
		jQuery.error( "Invalid XML: " + data );
	}
	return xml;
};


var
	rbracket = /\[\]$/,
	rCRLF = /\r?\n/g,
	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
	rsubmittable = /^(?:input|select|textarea|keygen)/i;

function buildParams( prefix, obj, traditional, add ) {
	var name;

	if ( Array.isArray( obj ) ) {

		// Serialize array item.
		jQuery.each( obj, function( i, v ) {
			if ( traditional || rbracket.test( prefix ) ) {

				// Treat each array item as a scalar.
				add( prefix, v );

			} else {

				// Item is non-scalar (array or object), encode its numeric index.
				buildParams(
					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
					v,
					traditional,
					add
				);
			}
		} );

	} else if ( !traditional && toType( obj ) === "object" ) {

		// Serialize object item.
		for ( name in obj ) {
			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
		}

	} else {

		// Serialize scalar item.
		add( prefix, obj );
	}
}

// Serialize an array of form elements or a set of
// key/values into a query string
jQuery.param = function( a, traditional ) {
	var prefix,
		s = [],
		add = function( key, valueOrFunction ) {

			// If value is a function, invoke it and use its return value
			var value = isFunction( valueOrFunction ) ?
				valueOrFunction() :
				valueOrFunction;

			s[ s.length ] = encodeURIComponent( key ) + "=" +
				encodeURIComponent( value == null ? "" : value );
		};

	if ( a == null ) {
		return "";
	}

	// If an array was passed in, assume that it is an array of form elements.
	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {

		// Serialize the form elements
		jQuery.each( a, function() {
			add( this.name, this.value );
		} );

	} else {

		// If traditional, encode the "old" way (the way 1.3.2 or older
		// did it), otherwise encode params recursively.
		for ( prefix in a ) {
			buildParams( prefix, a[ prefix ], traditional, add );
		}
	}

	// Return the resulting serialization
	return s.join( "&" );
};

jQuery.fn.extend( {
	serialize: function() {
		return jQuery.param( this.serializeArray() );
	},
	serializeArray: function() {
		return this.map( function() {

			// Can add propHook for "elements" to filter or add form elements
			var elements = jQuery.prop( this, "elements" );
			return elements ? jQuery.makeArray( elements ) : this;
		} )
		.filter( function() {
			var type = this.type;

			// Use .is( ":disabled" ) so that fieldset[disabled] works
			return this.name && !jQuery( this ).is( ":disabled" ) &&
				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
				( this.checked || !rcheckableType.test( type ) );
		} )
		.map( function( _i, elem ) {
			var val = jQuery( this ).val();

			if ( val == null ) {
				return null;
			}

			if ( Array.isArray( val ) ) {
				return jQuery.map( val, function( val ) {
					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
				} );
			}

			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
		} ).get();
	}
} );


var
	r20 = /%20/g,
	rhash = /#.*$/,
	rantiCache = /([?&])_=[^&]*/,
	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,

	// #7653, #8125, #8152: local protocol detection
	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
	rnoContent = /^(?:GET|HEAD)$/,
	rprotocol = /^\/\//,

	/* Prefilters
	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
	 * 2) These are called:
	 *    - BEFORE asking for a transport
	 *    - AFTER param serialization (s.data is a string if s.processData is true)
	 * 3) key is the dataType
	 * 4) the catchall symbol "*" can be used
	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
	 */
	prefilters = {},

	/* Transports bindings
	 * 1) key is the dataType
	 * 2) the catchall symbol "*" can be used
	 * 3) selection will start with transport dataType and THEN go to "*" if needed
	 */
	transports = {},

	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
	allTypes = "*/".concat( "*" ),

	// Anchor tag for parsing the document origin
	originAnchor = document.createElement( "a" );
	originAnchor.href = location.href;

// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
function addToPrefiltersOrTransports( structure ) {

	// dataTypeExpression is optional and defaults to "*"
	return function( dataTypeExpression, func ) {

		if ( typeof dataTypeExpression !== "string" ) {
			func = dataTypeExpression;
			dataTypeExpression = "*";
		}

		var dataType,
			i = 0,
			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];

		if ( isFunction( func ) ) {

			// For each dataType in the dataTypeExpression
			while ( ( dataType = dataTypes[ i++ ] ) ) {

				// Prepend if requested
				if ( dataType[ 0 ] === "+" ) {
					dataType = dataType.slice( 1 ) || "*";
					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );

				// Otherwise append
				} else {
					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
				}
			}
		}
	};
}

// Base inspection function for prefilters and transports
function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {

	var inspected = {},
		seekingTransport = ( structure === transports );

	function inspect( dataType ) {
		var selected;
		inspected[ dataType ] = true;
		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
			if ( typeof dataTypeOrTransport === "string" &&
				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {

				options.dataTypes.unshift( dataTypeOrTransport );
				inspect( dataTypeOrTransport );
				return false;
			} else if ( seekingTransport ) {
				return !( selected = dataTypeOrTransport );
			}
		} );
		return selected;
	}

	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
}

// A special extend for ajax options
// that takes "flat" options (not to be deep extended)
// Fixes #9887
function ajaxExtend( target, src ) {
	var key, deep,
		flatOptions = jQuery.ajaxSettings.flatOptions || {};

	for ( key in src ) {
		if ( src[ key ] !== undefined ) {
			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
		}
	}
	if ( deep ) {
		jQuery.extend( true, target, deep );
	}

	return target;
}

/* Handles responses to an ajax request:
 * - finds the right dataType (mediates between content-type and expected dataType)
 * - returns the corresponding response
 */
function ajaxHandleResponses( s, jqXHR, responses ) {

	var ct, type, finalDataType, firstDataType,
		contents = s.contents,
		dataTypes = s.dataTypes;

	// Remove auto dataType and get content-type in the process
	while ( dataTypes[ 0 ] === "*" ) {
		dataTypes.shift();
		if ( ct === undefined ) {
			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
		}
	}

	// Check if we're dealing with a known content-type
	if ( ct ) {
		for ( type in contents ) {
			if ( contents[ type ] && contents[ type ].test( ct ) ) {
				dataTypes.unshift( type );
				break;
			}
		}
	}

	// Check to see if we have a response for the expected dataType
	if ( dataTypes[ 0 ] in responses ) {
		finalDataType = dataTypes[ 0 ];
	} else {

		// Try convertible dataTypes
		for ( type in responses ) {
			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
				finalDataType = type;
				break;
			}
			if ( !firstDataType ) {
				firstDataType = type;
			}
		}

		// Or just use first one
		finalDataType = finalDataType || firstDataType;
	}

	// If we found a dataType
	// We add the dataType to the list if needed
	// and return the corresponding response
	if ( finalDataType ) {
		if ( finalDataType !== dataTypes[ 0 ] ) {
			dataTypes.unshift( finalDataType );
		}
		return responses[ finalDataType ];
	}
}

/* Chain conversions given the request and the original response
 * Also sets the responseXXX fields on the jqXHR instance
 */
function ajaxConvert( s, response, jqXHR, isSuccess ) {
	var conv2, current, conv, tmp, prev,
		converters = {},

		// Work with a copy of dataTypes in case we need to modify it for conversion
		dataTypes = s.dataTypes.slice();

	// Create converters map with lowercased keys
	if ( dataTypes[ 1 ] ) {
		for ( conv in s.converters ) {
			converters[ conv.toLowerCase() ] = s.converters[ conv ];
		}
	}

	current = dataTypes.shift();

	// Convert to each sequential dataType
	while ( current ) {

		if ( s.responseFields[ current ] ) {
			jqXHR[ s.responseFields[ current ] ] = response;
		}

		// Apply the dataFilter if provided
		if ( !prev && isSuccess && s.dataFilter ) {
			response = s.dataFilter( response, s.dataType );
		}

		prev = current;
		current = dataTypes.shift();

		if ( current ) {

			// There's only work to do if current dataType is non-auto
			if ( current === "*" ) {

				current = prev;

			// Convert response if prev dataType is non-auto and differs from current
			} else if ( prev !== "*" && prev !== current ) {

				// Seek a direct converter
				conv = converters[ prev + " " + current ] || converters[ "* " + current ];

				// If none found, seek a pair
				if ( !conv ) {
					for ( conv2 in converters ) {

						// If conv2 outputs current
						tmp = conv2.split( " " );
						if ( tmp[ 1 ] === current ) {

							// If prev can be converted to accepted input
							conv = converters[ prev + " " + tmp[ 0 ] ] ||
								converters[ "* " + tmp[ 0 ] ];
							if ( conv ) {

								// Condense equivalence converters
								if ( conv === true ) {
									conv = converters[ conv2 ];

								// Otherwise, insert the intermediate dataType
								} else if ( converters[ conv2 ] !== true ) {
									current = tmp[ 0 ];
									dataTypes.unshift( tmp[ 1 ] );
								}
								break;
							}
						}
					}
				}

				// Apply converter (if not an equivalence)
				if ( conv !== true ) {

					// Unless errors are allowed to bubble, catch and return them
					if ( conv && s.throws ) {
						response = conv( response );
					} else {
						try {
							response = conv( response );
						} catch ( e ) {
							return {
								state: "parsererror",
								error: conv ? e : "No conversion from " + prev + " to " + current
							};
						}
					}
				}
			}
		}
	}

	return { state: "success", data: response };
}

jQuery.extend( {

	// Counter for holding the number of active queries
	active: 0,

	// Last-Modified header cache for next request
	lastModified: {},
	etag: {},

	ajaxSettings: {
		url: location.href,
		type: "GET",
		isLocal: rlocalProtocol.test( location.protocol ),
		global: true,
		processData: true,
		async: true,
		contentType: "application/x-www-form-urlencoded; charset=UTF-8",

		/*
		timeout: 0,
		data: null,
		dataType: null,
		username: null,
		password: null,
		cache: null,
		throws: false,
		traditional: false,
		headers: {},
		*/

		accepts: {
			"*": allTypes,
			text: "text/plain",
			html: "text/html",
			xml: "application/xml, text/xml",
			json: "application/json, text/javascript"
		},

		contents: {
			xml: /\bxml\b/,
			html: /\bhtml/,
			json: /\bjson\b/
		},

		responseFields: {
			xml: "responseXML",
			text: "responseText",
			json: "responseJSON"
		},

		// Data converters
		// Keys separate source (or catchall "*") and destination types with a single space
		converters: {

			// Convert anything to text
			"* text": String,

			// Text to html (true = no transformation)
			"text html": true,

			// Evaluate text as a json expression
			"text json": JSON.parse,

			// Parse text as xml
			"text xml": jQuery.parseXML
		},

		// For options that shouldn't be deep extended:
		// you can add your own custom options here if
		// and when you create one that shouldn't be
		// deep extended (see ajaxExtend)
		flatOptions: {
			url: true,
			context: true
		}
	},

	// Creates a full fledged settings object into target
	// with both ajaxSettings and settings fields.
	// If target is omitted, writes into ajaxSettings.
	ajaxSetup: function( target, settings ) {
		return settings ?

			// Building a settings object
			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :

			// Extending ajaxSettings
			ajaxExtend( jQuery.ajaxSettings, target );
	},

	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
	ajaxTransport: addToPrefiltersOrTransports( transports ),

	// Main method
	ajax: function( url, options ) {

		// If url is an object, simulate pre-1.5 signature
		if ( typeof url === "object" ) {
			options = url;
			url = undefined;
		}

		// Force options to be an object
		options = options || {};

		var transport,

			// URL without anti-cache param
			cacheURL,

			// Response headers
			responseHeadersString,
			responseHeaders,

			// timeout handle
			timeoutTimer,

			// Url cleanup var
			urlAnchor,

			// Request state (becomes false upon send and true upon completion)
			completed,

			// To know if global events are to be dispatched
			fireGlobals,

			// Loop variable
			i,

			// uncached part of the url
			uncached,

			// Create the final options object
			s = jQuery.ajaxSetup( {}, options ),

			// Callbacks context
			callbackContext = s.context || s,

			// Context for global events is callbackContext if it is a DOM node or jQuery collection
			globalEventContext = s.context &&
				( callbackContext.nodeType || callbackContext.jquery ) ?
					jQuery( callbackContext ) :
					jQuery.event,

			// Deferreds
			deferred = jQuery.Deferred(),
			completeDeferred = jQuery.Callbacks( "once memory" ),

			// Status-dependent callbacks
			statusCode = s.statusCode || {},

			// Headers (they are sent all at once)
			requestHeaders = {},
			requestHeadersNames = {},

			// Default abort message
			strAbort = "canceled",

			// Fake xhr
			jqXHR = {
				readyState: 0,

				// Builds headers hashtable if needed
				getResponseHeader: function( key ) {
					var match;
					if ( completed ) {
						if ( !responseHeaders ) {
							responseHeaders = {};
							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
								responseHeaders[ match[ 1 ].toLowerCase() + " " ] =
									( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] )
										.concat( match[ 2 ] );
							}
						}
						match = responseHeaders[ key.toLowerCase() + " " ];
					}
					return match == null ? null : match.join( ", " );
				},

				// Raw string
				getAllResponseHeaders: function() {
					return completed ? responseHeadersString : null;
				},

				// Caches the header
				setRequestHeader: function( name, value ) {
					if ( completed == null ) {
						name = requestHeadersNames[ name.toLowerCase() ] =
							requestHeadersNames[ name.toLowerCase() ] || name;
						requestHeaders[ name ] = value;
					}
					return this;
				},

				// Overrides response content-type header
				overrideMimeType: function( type ) {
					if ( completed == null ) {
						s.mimeType = type;
					}
					return this;
				},

				// Status-dependent callbacks
				statusCode: function( map ) {
					var code;
					if ( map ) {
						if ( completed ) {

							// Execute the appropriate callbacks
							jqXHR.always( map[ jqXHR.status ] );
						} else {

							// Lazy-add the new callbacks in a way that preserves old ones
							for ( code in map ) {
								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
							}
						}
					}
					return this;
				},

				// Cancel the request
				abort: function( statusText ) {
					var finalText = statusText || strAbort;
					if ( transport ) {
						transport.abort( finalText );
					}
					done( 0, finalText );
					return this;
				}
			};

		// Attach deferreds
		deferred.promise( jqXHR );

		// Add protocol if not provided (prefilters might expect it)
		// Handle falsy url in the settings object (#10093: consistency with old signature)
		// We also use the url parameter if available
		s.url = ( ( url || s.url || location.href ) + "" )
			.replace( rprotocol, location.protocol + "//" );

		// Alias method option to type as per ticket #12004
		s.type = options.method || options.type || s.method || s.type;

		// Extract dataTypes list
		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];

		// A cross-domain request is in order when the origin doesn't match the current origin.
		if ( s.crossDomain == null ) {
			urlAnchor = document.createElement( "a" );

			// Support: IE <=8 - 11, Edge 12 - 15
			// IE throws exception on accessing the href property if url is malformed,
			// e.g. http://example.com:80x/
			try {
				urlAnchor.href = s.url;

				// Support: IE <=8 - 11 only
				// Anchor's host property isn't correctly set when s.url is relative
				urlAnchor.href = urlAnchor.href;
				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
					urlAnchor.protocol + "//" + urlAnchor.host;
			} catch ( e ) {

				// If there is an error parsing the URL, assume it is crossDomain,
				// it can be rejected by the transport if it is invalid
				s.crossDomain = true;
			}
		}

		// Convert data if not already a string
		if ( s.data && s.processData && typeof s.data !== "string" ) {
			s.data = jQuery.param( s.data, s.traditional );
		}

		// Apply prefilters
		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );

		// If request was aborted inside a prefilter, stop there
		if ( completed ) {
			return jqXHR;
		}

		// We can fire global events as of now if asked to
		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
		fireGlobals = jQuery.event && s.global;

		// Watch for a new set of requests
		if ( fireGlobals && jQuery.active++ === 0 ) {
			jQuery.event.trigger( "ajaxStart" );
		}

		// Uppercase the type
		s.type = s.type.toUpperCase();

		// Determine if request has content
		s.hasContent = !rnoContent.test( s.type );

		// Save the URL in case we're toying with the If-Modified-Since
		// and/or If-None-Match header later on
		// Remove hash to simplify url manipulation
		cacheURL = s.url.replace( rhash, "" );

		// More options handling for requests with no content
		if ( !s.hasContent ) {

			// Remember the hash so we can put it back
			uncached = s.url.slice( cacheURL.length );

			// If data is available and should be processed, append data to url
			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;

				// #9682: remove data so that it's not used in an eventual retry
				delete s.data;
			}

			// Add or update anti-cache param if needed
			if ( s.cache === false ) {
				cacheURL = cacheURL.replace( rantiCache, "$1" );
				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) +
					uncached;
			}

			// Put hash and anti-cache on the URL that will be requested (gh-1732)
			s.url = cacheURL + uncached;

		// Change '%20' to '+' if this is encoded form body content (gh-2658)
		} else if ( s.data && s.processData &&
			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
			s.data = s.data.replace( r20, "+" );
		}

		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
		if ( s.ifModified ) {
			if ( jQuery.lastModified[ cacheURL ] ) {
				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
			}
			if ( jQuery.etag[ cacheURL ] ) {
				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
			}
		}

		// Set the correct header, if data is being sent
		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
			jqXHR.setRequestHeader( "Content-Type", s.contentType );
		}

		// Set the Accepts header for the server, depending on the dataType
		jqXHR.setRequestHeader(
			"Accept",
			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
				s.accepts[ s.dataTypes[ 0 ] ] +
					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
				s.accepts[ "*" ]
		);

		// Check for headers option
		for ( i in s.headers ) {
			jqXHR.setRequestHeader( i, s.headers[ i ] );
		}

		// Allow custom headers/mimetypes and early abort
		if ( s.beforeSend &&
			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {

			// Abort if not done already and return
			return jqXHR.abort();
		}

		// Aborting is no longer a cancellation
		strAbort = "abort";

		// Install callbacks on deferreds
		completeDeferred.add( s.complete );
		jqXHR.done( s.success );
		jqXHR.fail( s.error );

		// Get transport
		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );

		// If no transport, we auto-abort
		if ( !transport ) {
			done( -1, "No Transport" );
		} else {
			jqXHR.readyState = 1;

			// Send global event
			if ( fireGlobals ) {
				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
			}

			// If request was aborted inside ajaxSend, stop there
			if ( completed ) {
				return jqXHR;
			}

			// Timeout
			if ( s.async && s.timeout > 0 ) {
				timeoutTimer = window.setTimeout( function() {
					jqXHR.abort( "timeout" );
				}, s.timeout );
			}

			try {
				completed = false;
				transport.send( requestHeaders, done );
			} catch ( e ) {

				// Rethrow post-completion exceptions
				if ( completed ) {
					throw e;
				}

				// Propagate others as results
				done( -1, e );
			}
		}

		// Callback for when everything is done
		function done( status, nativeStatusText, responses, headers ) {
			var isSuccess, success, error, response, modified,
				statusText = nativeStatusText;

			// Ignore repeat invocations
			if ( completed ) {
				return;
			}

			completed = true;

			// Clear timeout if it exists
			if ( timeoutTimer ) {
				window.clearTimeout( timeoutTimer );
			}

			// Dereference transport for early garbage collection
			// (no matter how long the jqXHR object will be used)
			transport = undefined;

			// Cache response headers
			responseHeadersString = headers || "";

			// Set readyState
			jqXHR.readyState = status > 0 ? 4 : 0;

			// Determine if successful
			isSuccess = status >= 200 && status < 300 || status === 304;

			// Get response data
			if ( responses ) {
				response = ajaxHandleResponses( s, jqXHR, responses );
			}

			// Use a noop converter for missing script
			if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) {
				s.converters[ "text script" ] = function() {};
			}

			// Convert no matter what (that way responseXXX fields are always set)
			response = ajaxConvert( s, response, jqXHR, isSuccess );

			// If successful, handle type chaining
			if ( isSuccess ) {

				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
				if ( s.ifModified ) {
					modified = jqXHR.getResponseHeader( "Last-Modified" );
					if ( modified ) {
						jQuery.lastModified[ cacheURL ] = modified;
					}
					modified = jqXHR.getResponseHeader( "etag" );
					if ( modified ) {
						jQuery.etag[ cacheURL ] = modified;
					}
				}

				// if no content
				if ( status === 204 || s.type === "HEAD" ) {
					statusText = "nocontent";

				// if not modified
				} else if ( status === 304 ) {
					statusText = "notmodified";

				// If we have data, let's convert it
				} else {
					statusText = response.state;
					success = response.data;
					error = response.error;
					isSuccess = !error;
				}
			} else {

				// Extract error from statusText and normalize for non-aborts
				error = statusText;
				if ( status || !statusText ) {
					statusText = "error";
					if ( status < 0 ) {
						status = 0;
					}
				}
			}

			// Set data for the fake xhr object
			jqXHR.status = status;
			jqXHR.statusText = ( nativeStatusText || statusText ) + "";

			// Success/Error
			if ( isSuccess ) {
				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
			} else {
				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
			}

			// Status-dependent callbacks
			jqXHR.statusCode( statusCode );
			statusCode = undefined;

			if ( fireGlobals ) {
				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
					[ jqXHR, s, isSuccess ? success : error ] );
			}

			// Complete
			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );

			if ( fireGlobals ) {
				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );

				// Handle the global AJAX counter
				if ( !( --jQuery.active ) ) {
					jQuery.event.trigger( "ajaxStop" );
				}
			}
		}

		return jqXHR;
	},

	getJSON: function( url, data, callback ) {
		return jQuery.get( url, data, callback, "json" );
	},

	getScript: function( url, callback ) {
		return jQuery.get( url, undefined, callback, "script" );
	}
} );

jQuery.each( [ "get", "post" ], function( _i, method ) {
	jQuery[ method ] = function( url, data, callback, type ) {

		// Shift arguments if data argument was omitted
		if ( isFunction( data ) ) {
			type = type || callback;
			callback = data;
			data = undefined;
		}

		// The url can be an options object (which then must have .url)
		return jQuery.ajax( jQuery.extend( {
			url: url,
			type: method,
			dataType: type,
			data: data,
			success: callback
		}, jQuery.isPlainObject( url ) && url ) );
	};
} );

jQuery.ajaxPrefilter( function( s ) {
	var i;
	for ( i in s.headers ) {
		if ( i.toLowerCase() === "content-type" ) {
			s.contentType = s.headers[ i ] || "";
		}
	}
} );


jQuery._evalUrl = function( url, options, doc ) {
	return jQuery.ajax( {
		url: url,

		// Make this explicit, since user can override this through ajaxSetup (#11264)
		type: "GET",
		dataType: "script",
		cache: true,
		async: false,
		global: false,

		// Only evaluate the response if it is successful (gh-4126)
		// dataFilter is not invoked for failure responses, so using it instead
		// of the default converter is kludgy but it works.
		converters: {
			"text script": function() {}
		},
		dataFilter: function( response ) {
			jQuery.globalEval( response, options, doc );
		}
	} );
};


jQuery.fn.extend( {
	wrapAll: function( html ) {
		var wrap;

		if ( this[ 0 ] ) {
			if ( isFunction( html ) ) {
				html = html.call( this[ 0 ] );
			}

			// The elements to wrap the target around
			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );

			if ( this[ 0 ].parentNode ) {
				wrap.insertBefore( this[ 0 ] );
			}

			wrap.map( function() {
				var elem = this;

				while ( elem.firstElementChild ) {
					elem = elem.firstElementChild;
				}

				return elem;
			} ).append( this );
		}

		return this;
	},

	wrapInner: function( html ) {
		if ( isFunction( html ) ) {
			return this.each( function( i ) {
				jQuery( this ).wrapInner( html.call( this, i ) );
			} );
		}

		return this.each( function() {
			var self = jQuery( this ),
				contents = self.contents();

			if ( contents.length ) {
				contents.wrapAll( html );

			} else {
				self.append( html );
			}
		} );
	},

	wrap: function( html ) {
		var htmlIsFunction = isFunction( html );

		return this.each( function( i ) {
			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
		} );
	},

	unwrap: function( selector ) {
		this.parent( selector ).not( "body" ).each( function() {
			jQuery( this ).replaceWith( this.childNodes );
		} );
		return this;
	}
} );


jQuery.expr.pseudos.hidden = function( elem ) {
	return !jQuery.expr.pseudos.visible( elem );
};
jQuery.expr.pseudos.visible = function( elem ) {
	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
};




jQuery.ajaxSettings.xhr = function() {
	try {
		return new window.XMLHttpRequest();
	} catch ( e ) {}
};

var xhrSuccessStatus = {

		// File protocol always yields status code 0, assume 200
		0: 200,

		// Support: IE <=9 only
		// #1450: sometimes IE returns 1223 when it should be 204
		1223: 204
	},
	xhrSupported = jQuery.ajaxSettings.xhr();

support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
support.ajax = xhrSupported = !!xhrSupported;

jQuery.ajaxTransport( function( options ) {
	var callback, errorCallback;

	// Cross domain only allowed if supported through XMLHttpRequest
	if ( support.cors || xhrSupported && !options.crossDomain ) {
		return {
			send: function( headers, complete ) {
				var i,
					xhr = options.xhr();

				xhr.open(
					options.type,
					options.url,
					options.async,
					options.username,
					options.password
				);

				// Apply custom fields if provided
				if ( options.xhrFields ) {
					for ( i in options.xhrFields ) {
						xhr[ i ] = options.xhrFields[ i ];
					}
				}

				// Override mime type if needed
				if ( options.mimeType && xhr.overrideMimeType ) {
					xhr.overrideMimeType( options.mimeType );
				}

				// X-Requested-With header
				// For cross-domain requests, seeing as conditions for a preflight are
				// akin to a jigsaw puzzle, we simply never set it to be sure.
				// (it can always be set on a per-request basis or even using ajaxSetup)
				// For same-domain requests, won't change header if already provided.
				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
					headers[ "X-Requested-With" ] = "XMLHttpRequest";
				}

				// Set headers
				for ( i in headers ) {
					xhr.setRequestHeader( i, headers[ i ] );
				}

				// Callback
				callback = function( type ) {
					return function() {
						if ( callback ) {
							callback = errorCallback = xhr.onload =
								xhr.onerror = xhr.onabort = xhr.ontimeout =
									xhr.onreadystatechange = null;

							if ( type === "abort" ) {
								xhr.abort();
							} else if ( type === "error" ) {

								// Support: IE <=9 only
								// On a manual native abort, IE9 throws
								// errors on any property access that is not readyState
								if ( typeof xhr.status !== "number" ) {
									complete( 0, "error" );
								} else {
									complete(

										// File: protocol always yields status 0; see #8605, #14207
										xhr.status,
										xhr.statusText
									);
								}
							} else {
								complete(
									xhrSuccessStatus[ xhr.status ] || xhr.status,
									xhr.statusText,

									// Support: IE <=9 only
									// IE9 has no XHR2 but throws on binary (trac-11426)
									// For XHR2 non-text, let the caller handle it (gh-2498)
									( xhr.responseType || "text" ) !== "text"  ||
									typeof xhr.responseText !== "string" ?
										{ binary: xhr.response } :
										{ text: xhr.responseText },
									xhr.getAllResponseHeaders()
								);
							}
						}
					};
				};

				// Listen to events
				xhr.onload = callback();
				errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" );

				// Support: IE 9 only
				// Use onreadystatechange to replace onabort
				// to handle uncaught aborts
				if ( xhr.onabort !== undefined ) {
					xhr.onabort = errorCallback;
				} else {
					xhr.onreadystatechange = function() {

						// Check readyState before timeout as it changes
						if ( xhr.readyState === 4 ) {

							// Allow onerror to be called first,
							// but that will not handle a native abort
							// Also, save errorCallback to a variable
							// as xhr.onerror cannot be accessed
							window.setTimeout( function() {
								if ( callback ) {
									errorCallback();
								}
							} );
						}
					};
				}

				// Create the abort callback
				callback = callback( "abort" );

				try {

					// Do send the request (this may raise an exception)
					xhr.send( options.hasContent && options.data || null );
				} catch ( e ) {

					// #14683: Only rethrow if this hasn't been notified as an error yet
					if ( callback ) {
						throw e;
					}
				}
			},

			abort: function() {
				if ( callback ) {
					callback();
				}
			}
		};
	}
} );




// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
jQuery.ajaxPrefilter( function( s ) {
	if ( s.crossDomain ) {
		s.contents.script = false;
	}
} );

// Install script dataType
jQuery.ajaxSetup( {
	accepts: {
		script: "text/javascript, application/javascript, " +
			"application/ecmascript, application/x-ecmascript"
	},
	contents: {
		script: /\b(?:java|ecma)script\b/
	},
	converters: {
		"text script": function( text ) {
			jQuery.globalEval( text );
			return text;
		}
	}
} );

// Handle cache's special case and crossDomain
jQuery.ajaxPrefilter( "script", function( s ) {
	if ( s.cache === undefined ) {
		s.cache = false;
	}
	if ( s.crossDomain ) {
		s.type = "GET";
	}
} );

// Bind script tag hack transport
jQuery.ajaxTransport( "script", function( s ) {

	// This transport only deals with cross domain or forced-by-attrs requests
	if ( s.crossDomain || s.scriptAttrs ) {
		var script, callback;
		return {
			send: function( _, complete ) {
				script = jQuery( "<script>" )
					.attr( s.scriptAttrs || {} )
					.prop( { charset: s.scriptCharset, src: s.url } )
					.on( "load error", callback = function( evt ) {
						script.remove();
						callback = null;
						if ( evt ) {
							complete( evt.type === "error" ? 404 : 200, evt.type );
						}
					} );

				// Use native DOM manipulation to avoid our domManip AJAX trickery
				document.head.appendChild( script[ 0 ] );
			},
			abort: function() {
				if ( callback ) {
					callback();
				}
			}
		};
	}
} );




var oldCallbacks = [],
	rjsonp = /(=)\?(?=&|$)|\?\?/;

// Default jsonp settings
jQuery.ajaxSetup( {
	jsonp: "callback",
	jsonpCallback: function() {
		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) );
		this[ callback ] = true;
		return callback;
	}
} );

// Detect, normalize options and install callbacks for jsonp requests
jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {

	var callbackName, overwritten, responseContainer,
		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
			"url" :
			typeof s.data === "string" &&
				( s.contentType || "" )
					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
				rjsonp.test( s.data ) && "data"
		);

	// Handle iff the expected data type is "jsonp" or we have a parameter to set
	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {

		// Get callback name, remembering preexisting value associated with it
		callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?
			s.jsonpCallback() :
			s.jsonpCallback;

		// Insert callback into url or form data
		if ( jsonProp ) {
			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
		} else if ( s.jsonp !== false ) {
			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
		}

		// Use data converter to retrieve json after script execution
		s.converters[ "script json" ] = function() {
			if ( !responseContainer ) {
				jQuery.error( callbackName + " was not called" );
			}
			return responseContainer[ 0 ];
		};

		// Force json dataType
		s.dataTypes[ 0 ] = "json";

		// Install callback
		overwritten = window[ callbackName ];
		window[ callbackName ] = function() {
			responseContainer = arguments;
		};

		// Clean-up function (fires after converters)
		jqXHR.always( function() {

			// If previous value didn't exist - remove it
			if ( overwritten === undefined ) {
				jQuery( window ).removeProp( callbackName );

			// Otherwise restore preexisting value
			} else {
				window[ callbackName ] = overwritten;
			}

			// Save back as free
			if ( s[ callbackName ] ) {

				// Make sure that re-using the options doesn't screw things around
				s.jsonpCallback = originalSettings.jsonpCallback;

				// Save the callback name for future use
				oldCallbacks.push( callbackName );
			}

			// Call if it was a function and we have a response
			if ( responseContainer && isFunction( overwritten ) ) {
				overwritten( responseContainer[ 0 ] );
			}

			responseContainer = overwritten = undefined;
		} );

		// Delegate to script
		return "script";
	}
} );




// Support: Safari 8 only
// In Safari 8 documents created via document.implementation.createHTMLDocument
// collapse sibling forms: the second one becomes a child of the first one.
// Because of that, this security measure has to be disabled in Safari 8.
// https://bugs.webkit.org/show_bug.cgi?id=137337
support.createHTMLDocument = ( function() {
	var body = document.implementation.createHTMLDocument( "" ).body;
	body.innerHTML = "<form></form><form></form>";
	return body.childNodes.length === 2;
} )();


// Argument "data" should be string of html
// context (optional): If specified, the fragment will be created in this context,
// defaults to document
// keepScripts (optional): If true, will include scripts passed in the html string
jQuery.parseHTML = function( data, context, keepScripts ) {
	if ( typeof data !== "string" ) {
		return [];
	}
	if ( typeof context === "boolean" ) {
		keepScripts = context;
		context = false;
	}

	var base, parsed, scripts;

	if ( !context ) {

		// Stop scripts or inline event handlers from being executed immediately
		// by using document.implementation
		if ( support.createHTMLDocument ) {
			context = document.implementation.createHTMLDocument( "" );

			// Set the base href for the created document
			// so any parsed elements with URLs
			// are based on the document's URL (gh-2965)
			base = context.createElement( "base" );
			base.href = document.location.href;
			context.head.appendChild( base );
		} else {
			context = document;
		}
	}

	parsed = rsingleTag.exec( data );
	scripts = !keepScripts && [];

	// Single tag
	if ( parsed ) {
		return [ context.createElement( parsed[ 1 ] ) ];
	}

	parsed = buildFragment( [ data ], context, scripts );

	if ( scripts && scripts.length ) {
		jQuery( scripts ).remove();
	}

	return jQuery.merge( [], parsed.childNodes );
};


/**
 * Load a url into a page
 */
jQuery.fn.load = function( url, params, callback ) {
	var selector, type, response,
		self = this,
		off = url.indexOf( " " );

	if ( off > -1 ) {
		selector = stripAndCollapse( url.slice( off ) );
		url = url.slice( 0, off );
	}

	// If it's a function
	if ( isFunction( params ) ) {

		// We assume that it's the callback
		callback = params;
		params = undefined;

	// Otherwise, build a param string
	} else if ( params && typeof params === "object" ) {
		type = "POST";
	}

	// If we have elements to modify, make the request
	if ( self.length > 0 ) {
		jQuery.ajax( {
			url: url,

			// If "type" variable is undefined, then "GET" method will be used.
			// Make value of this field explicit since
			// user can override it through ajaxSetup method
			type: type || "GET",
			dataType: "html",
			data: params
		} ).done( function( responseText ) {

			// Save response for use in complete callback
			response = arguments;

			self.html( selector ?

				// If a selector was specified, locate the right elements in a dummy div
				// Exclude scripts to avoid IE 'Permission Denied' errors
				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :

				// Otherwise use the full result
				responseText );

		// If the request succeeds, this function gets "data", "status", "jqXHR"
		// but they are ignored because response was set above.
		// If it fails, this function gets "jqXHR", "status", "error"
		} ).always( callback && function( jqXHR, status ) {
			self.each( function() {
				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
			} );
		} );
	}

	return this;
};




jQuery.expr.pseudos.animated = function( elem ) {
	return jQuery.grep( jQuery.timers, function( fn ) {
		return elem === fn.elem;
	} ).length;
};




jQuery.offset = {
	setOffset: function( elem, options, i ) {
		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
			position = jQuery.css( elem, "position" ),
			curElem = jQuery( elem ),
			props = {};

		// Set position first, in-case top/left are set even on static elem
		if ( position === "static" ) {
			elem.style.position = "relative";
		}

		curOffset = curElem.offset();
		curCSSTop = jQuery.css( elem, "top" );
		curCSSLeft = jQuery.css( elem, "left" );
		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;

		// Need to be able to calculate position if either
		// top or left is auto and position is either absolute or fixed
		if ( calculatePosition ) {
			curPosition = curElem.position();
			curTop = curPosition.top;
			curLeft = curPosition.left;

		} else {
			curTop = parseFloat( curCSSTop ) || 0;
			curLeft = parseFloat( curCSSLeft ) || 0;
		}

		if ( isFunction( options ) ) {

			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
		}

		if ( options.top != null ) {
			props.top = ( options.top - curOffset.top ) + curTop;
		}
		if ( options.left != null ) {
			props.left = ( options.left - curOffset.left ) + curLeft;
		}

		if ( "using" in options ) {
			options.using.call( elem, props );

		} else {
			if ( typeof props.top === "number" ) {
				props.top += "px";
			}
			if ( typeof props.left === "number" ) {
				props.left += "px";
			}
			curElem.css( props );
		}
	}
};

jQuery.fn.extend( {

	// offset() relates an element's border box to the document origin
	offset: function( options ) {

		// Preserve chaining for setter
		if ( arguments.length ) {
			return options === undefined ?
				this :
				this.each( function( i ) {
					jQuery.offset.setOffset( this, options, i );
				} );
		}

		var rect, win,
			elem = this[ 0 ];

		if ( !elem ) {
			return;
		}

		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
		// Support: IE <=11 only
		// Running getBoundingClientRect on a
		// disconnected node in IE throws an error
		if ( !elem.getClientRects().length ) {
			return { top: 0, left: 0 };
		}

		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
		rect = elem.getBoundingClientRect();
		win = elem.ownerDocument.defaultView;
		return {
			top: rect.top + win.pageYOffset,
			left: rect.left + win.pageXOffset
		};
	},

	// position() relates an element's margin box to its offset parent's padding box
	// This corresponds to the behavior of CSS absolute positioning
	position: function() {
		if ( !this[ 0 ] ) {
			return;
		}

		var offsetParent, offset, doc,
			elem = this[ 0 ],
			parentOffset = { top: 0, left: 0 };

		// position:fixed elements are offset from the viewport, which itself always has zero offset
		if ( jQuery.css( elem, "position" ) === "fixed" ) {

			// Assume position:fixed implies availability of getBoundingClientRect
			offset = elem.getBoundingClientRect();

		} else {
			offset = this.offset();

			// Account for the *real* offset parent, which can be the document or its root element
			// when a statically positioned element is identified
			doc = elem.ownerDocument;
			offsetParent = elem.offsetParent || doc.documentElement;
			while ( offsetParent &&
				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
				jQuery.css( offsetParent, "position" ) === "static" ) {

				offsetParent = offsetParent.parentNode;
			}
			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {

				// Incorporate borders into its offset, since they are outside its content origin
				parentOffset = jQuery( offsetParent ).offset();
				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
			}
		}

		// Subtract parent offsets and element margins
		return {
			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
		};
	},

	// This method will return documentElement in the following cases:
	// 1) For the element inside the iframe without offsetParent, this method will return
	//    documentElement of the parent window
	// 2) For the hidden or detached element
	// 3) For body or html element, i.e. in case of the html node - it will return itself
	//
	// but those exceptions were never presented as a real life use-cases
	// and might be considered as more preferable results.
	//
	// This logic, however, is not guaranteed and can change at any point in the future
	offsetParent: function() {
		return this.map( function() {
			var offsetParent = this.offsetParent;

			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
				offsetParent = offsetParent.offsetParent;
			}

			return offsetParent || documentElement;
		} );
	}
} );

// Create scrollLeft and scrollTop methods
jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
	var top = "pageYOffset" === prop;

	jQuery.fn[ method ] = function( val ) {
		return access( this, function( elem, method, val ) {

			// Coalesce documents and windows
			var win;
			if ( isWindow( elem ) ) {
				win = elem;
			} else if ( elem.nodeType === 9 ) {
				win = elem.defaultView;
			}

			if ( val === undefined ) {
				return win ? win[ prop ] : elem[ method ];
			}

			if ( win ) {
				win.scrollTo(
					!top ? val : win.pageXOffset,
					top ? val : win.pageYOffset
				);

			} else {
				elem[ method ] = val;
			}
		}, method, val, arguments.length );
	};
} );

// Support: Safari <=7 - 9.1, Chrome <=37 - 49
// Add the top/left cssHooks using jQuery.fn.position
// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
// getComputedStyle returns percent when specified for top/left/bottom/right;
// rather than make the css module depend on the offset module, just check for it here
jQuery.each( [ "top", "left" ], function( _i, prop ) {
	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
		function( elem, computed ) {
			if ( computed ) {
				computed = curCSS( elem, prop );

				// If curCSS returns percentage, fallback to offset
				return rnumnonpx.test( computed ) ?
					jQuery( elem ).position()[ prop ] + "px" :
					computed;
			}
		}
	);
} );


// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
		function( defaultExtra, funcName ) {

		// Margin is only for outerHeight, outerWidth
		jQuery.fn[ funcName ] = function( margin, value ) {
			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );

			return access( this, function( elem, type, value ) {
				var doc;

				if ( isWindow( elem ) ) {

					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
					return funcName.indexOf( "outer" ) === 0 ?
						elem[ "inner" + name ] :
						elem.document.documentElement[ "client" + name ];
				}

				// Get document width or height
				if ( elem.nodeType === 9 ) {
					doc = elem.documentElement;

					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
					// whichever is greatest
					return Math.max(
						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
						elem.body[ "offset" + name ], doc[ "offset" + name ],
						doc[ "client" + name ]
					);
				}

				return value === undefined ?

					// Get width or height on the element, requesting but not forcing parseFloat
					jQuery.css( elem, type, extra ) :

					// Set width or height on the element
					jQuery.style( elem, type, value, extra );
			}, type, chainable ? margin : undefined, chainable );
		};
	} );
} );


jQuery.each( [
	"ajaxStart",
	"ajaxStop",
	"ajaxComplete",
	"ajaxError",
	"ajaxSuccess",
	"ajaxSend"
], function( _i, type ) {
	jQuery.fn[ type ] = function( fn ) {
		return this.on( type, fn );
	};
} );




jQuery.fn.extend( {

	bind: function( types, data, fn ) {
		return this.on( types, null, data, fn );
	},
	unbind: function( types, fn ) {
		return this.off( types, null, fn );
	},

	delegate: function( selector, types, data, fn ) {
		return this.on( types, selector, data, fn );
	},
	undelegate: function( selector, types, fn ) {

		// ( namespace ) or ( selector, types [, fn] )
		return arguments.length === 1 ?
			this.off( selector, "**" ) :
			this.off( types, selector || "**", fn );
	},

	hover: function( fnOver, fnOut ) {
		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
	}
} );

jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
	function( _i, name ) {

		// Handle event binding
		jQuery.fn[ name ] = function( data, fn ) {
			return arguments.length > 0 ?
				this.on( name, null, data, fn ) :
				this.trigger( name );
		};
	} );




// Support: Android <=4.0 only
// Make sure we trim BOM and NBSP
var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;

// Bind a function to a context, optionally partially applying any
// arguments.
// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
// However, it is not slated for removal any time soon
jQuery.proxy = function( fn, context ) {
	var tmp, args, proxy;

	if ( typeof context === "string" ) {
		tmp = fn[ context ];
		context = fn;
		fn = tmp;
	}

	// Quick check to determine if target is callable, in the spec
	// this throws a TypeError, but we will just return undefined.
	if ( !isFunction( fn ) ) {
		return undefined;
	}

	// Simulated bind
	args = slice.call( arguments, 2 );
	proxy = function() {
		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
	};

	// Set the guid of unique handler to the same of original handler, so it can be removed
	proxy.guid = fn.guid = fn.guid || jQuery.guid++;

	return proxy;
};

jQuery.holdReady = function( hold ) {
	if ( hold ) {
		jQuery.readyWait++;
	} else {
		jQuery.ready( true );
	}
};
jQuery.isArray = Array.isArray;
jQuery.parseJSON = JSON.parse;
jQuery.nodeName = nodeName;
jQuery.isFunction = isFunction;
jQuery.isWindow = isWindow;
jQuery.camelCase = camelCase;
jQuery.type = toType;

jQuery.now = Date.now;

jQuery.isNumeric = function( obj ) {

	// As of jQuery 3.0, isNumeric is limited to
	// strings and numbers (primitives or objects)
	// that can be coerced to finite numbers (gh-2662)
	var type = jQuery.type( obj );
	return ( type === "number" || type === "string" ) &&

		// parseFloat NaNs numeric-cast false positives ("")
		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
		// subtraction forces infinities to NaN
		!isNaN( obj - parseFloat( obj ) );
};

jQuery.trim = function( text ) {
	return text == null ?
		"" :
		( text + "" ).replace( rtrim, "" );
};



// Register as a named AMD module, since jQuery can be concatenated with other
// files that may use define, but not via a proper concatenation script that
// understands anonymous AMD modules. A named AMD is safest and most robust
// way to register. Lowercase jquery is used because AMD module names are
// derived from file names, and jQuery is normally delivered in a lowercase
// file name. Do this after creating the global so that if an AMD module wants
// to call noConflict to hide this version of jQuery, it will work.

// Note that for maximum portability, libraries that are not jQuery should
// declare themselves as anonymous modules, and avoid setting a global if an
// AMD loader is present. jQuery is a special case. For more information, see
// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon

if ( true ) {
	!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {
		return jQuery;
	}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
}




var

	// Map over jQuery in case of overwrite
	_jQuery = window.jQuery,

	// Map over the $ in case of overwrite
	_$ = window.$;

jQuery.noConflict = function( deep ) {
	if ( window.$ === jQuery ) {
		window.$ = _$;
	}

	if ( deep && window.jQuery === jQuery ) {
		window.jQuery = _jQuery;
	}

	return jQuery;
};

// Expose jQuery and $ identifiers, even in AMD
// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
// and CommonJS for browser emulators (#13566)
if ( typeof noGlobal === "undefined" ) {
	window.jQuery = window.$ = jQuery;
}




return jQuery;
} );


/***/ }),

/***/ "./node_modules/lamejs/src/js/ATH.js":
/*!*******************************************!*\
  !*** ./node_modules/lamejs/src/js/ATH.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");

/**
 * ATH related stuff, if something new ATH related has to be added, please plug
 * it here into the ATH.
 */
function ATH() {
    /**
     * Method for the auto adjustment.
     */
    this.useAdjust = 0;
    /**
     * factor for tuning the (sample power) point below which adaptive threshold
     * of hearing adjustment occurs
     */
    this.aaSensitivityP = 0.;
    /**
     * Lowering based on peak volume, 1 = no lowering.
     */
    this.adjust = 0.;
    /**
     * Limit for dynamic ATH adjust.
     */
    this.adjustLimit = 0.;
    /**
     * Determined to lower x dB each second.
     */
    this.decay = 0.;
    /**
     * Lowest ATH value.
     */
    this.floor = 0.;
    /**
     * ATH for sfbs in long blocks.
     */
    this.l = new_float(Encoder.SBMAX_l);
    /**
     * ATH for sfbs in short blocks.
     */
    this.s = new_float(Encoder.SBMAX_s);
    /**
     * ATH for partitioned sfb21 in long blocks.
     */
    this.psfb21 = new_float(Encoder.PSFB21);
    /**
     * ATH for partitioned sfb12 in short blocks.
     */
    this.psfb12 = new_float(Encoder.PSFB12);
    /**
     * ATH for long block convolution bands.
     */
    this.cb_l = new_float(Encoder.CBANDS);
    /**
     * ATH for short block convolution bands.
     */
    this.cb_s = new_float(Encoder.CBANDS);
    /**
     * Equal loudness weights (based on ATH).
     */
    this.eql_w = new_float(Encoder.BLKSIZE / 2);
}

module.exports = ATH;


/***/ }),

/***/ "./node_modules/lamejs/src/js/BitStream.js":
/*!*************************************************!*\
  !*** ./node_modules/lamejs/src/js/BitStream.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var Takehiro = __webpack_require__(/*! ./Takehiro.js */ "./node_modules/lamejs/src/js/Takehiro.js");
var Tables = __webpack_require__(/*! ./Tables.js */ "./node_modules/lamejs/src/js/Tables.js");
var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");
var LameInternalFlags = __webpack_require__(/*! ./LameInternalFlags.js */ "./node_modules/lamejs/src/js/LameInternalFlags.js");

BitStream.EQ = function (a, b) {
    return (Math.abs(a) > Math.abs(b)) ? (Math.abs((a) - (b)) <= (Math
        .abs(a) * 1e-6))
        : (Math.abs((a) - (b)) <= (Math.abs(b) * 1e-6));
};

BitStream.NEQ = function (a, b) {
    return !BitStream.EQ(a, b);
};

function BitStream() {
    var self = this;
    var CRC16_POLYNOMIAL = 0x8005;

    /*
     * we work with ints, so when doing bit manipulation, we limit ourselves to
     * MAX_LENGTH-2 just to be on the safe side
     */
    var MAX_LENGTH = 32;

    //GainAnalysis ga;
    //MPGLib mpg;
    //Version ver;
    //VBRTag vbr;
    var ga = null;
    var mpg = null;
    var ver = null;
    var vbr = null;

    //public final void setModules(GainAnalysis ga, MPGLib mpg, Version ver,
    //	VBRTag vbr) {

    this.setModules = function (_ga, _mpg, _ver, _vbr) {
        ga = _ga;
        mpg = _mpg;
        ver = _ver;
        vbr = _vbr;
    };

    /**
     * Bit stream buffer.
     */
    //private byte[] buf;
    var buf = null;
    /**
     * Bit counter of bit stream.
     */
    var totbit = 0;
    /**
     * Pointer to top byte in buffer.
     */
    var bufByteIdx = 0;
    /**
     * Pointer to top bit of top byte in buffer.
     */
    var bufBitIdx = 0;

    /**
     * compute bitsperframe and mean_bits for a layer III frame
     */
    this.getframebits = function (gfp) {
        var gfc = gfp.internal_flags;
        var bit_rate;

        /* get bitrate in kbps [?] */
        if (gfc.bitrate_index != 0)
            bit_rate = Tables.bitrate_table[gfp.version][gfc.bitrate_index];
        else
            bit_rate = gfp.brate;
        assert(8 <= bit_rate && bit_rate <= 640);

        /* main encoding routine toggles padding on and off */
        /* one Layer3 Slot consists of 8 bits */
        var bytes = 0 | (gfp.version + 1) * 72000 * bit_rate / gfp.out_samplerate + gfc.padding;
        return 8 * bytes;
    };

    function putheader_bits(gfc) {
        System.arraycopy(gfc.header[gfc.w_ptr].buf, 0, buf, bufByteIdx, gfc.sideinfo_len);
        bufByteIdx += gfc.sideinfo_len;
        totbit += gfc.sideinfo_len * 8;
        gfc.w_ptr = (gfc.w_ptr + 1) & (LameInternalFlags.MAX_HEADER_BUF - 1);
    }

    /**
     * write j bits into the bit stream
     */
    function putbits2(gfc, val, j) {
        assert(j < MAX_LENGTH - 2);

        while (j > 0) {
            var k;
            if (bufBitIdx == 0) {
                bufBitIdx = 8;
                bufByteIdx++;
                assert(bufByteIdx < Lame.LAME_MAXMP3BUFFER);
                assert(gfc.header[gfc.w_ptr].write_timing >= totbit);
                if (gfc.header[gfc.w_ptr].write_timing == totbit) {
                    putheader_bits(gfc);
                }
                buf[bufByteIdx] = 0;
            }

            k = Math.min(j, bufBitIdx);
            j -= k;

            bufBitIdx -= k;

            assert(j < MAX_LENGTH);
            /* 32 too large on 32 bit machines */
            assert(bufBitIdx < MAX_LENGTH);

            buf[bufByteIdx] |= ((val >> j) << bufBitIdx);
            totbit += k;
        }
    }

    /**
     * write j bits into the bit stream, ignoring frame headers
     */
    function putbits_noheaders(gfc, val, j) {
        assert(j < MAX_LENGTH - 2);

        while (j > 0) {
            var k;
            if (bufBitIdx == 0) {
                bufBitIdx = 8;
                bufByteIdx++;
                assert(bufByteIdx < Lame.LAME_MAXMP3BUFFER);
                buf[bufByteIdx] = 0;
            }

            k = Math.min(j, bufBitIdx);
            j -= k;

            bufBitIdx -= k;

            assert(j < MAX_LENGTH);
            /* 32 too large on 32 bit machines */
            assert(bufBitIdx < MAX_LENGTH);

            buf[bufByteIdx] |= ((val >> j) << bufBitIdx);
            totbit += k;
        }
    }

    /**
     * Some combinations of bitrate, Fs, and stereo make it impossible to stuff
     * out a frame using just main_data, due to the limited number of bits to
     * indicate main_data_length. In these situations, we put stuffing bits into
     * the ancillary data...
     */
    function drain_into_ancillary(gfp, remainingBits) {
        var gfc = gfp.internal_flags;
        var i;
        assert(remainingBits >= 0);

        if (remainingBits >= 8) {
            putbits2(gfc, 0x4c, 8);
            remainingBits -= 8;
        }
        if (remainingBits >= 8) {
            putbits2(gfc, 0x41, 8);
            remainingBits -= 8;
        }
        if (remainingBits >= 8) {
            putbits2(gfc, 0x4d, 8);
            remainingBits -= 8;
        }
        if (remainingBits >= 8) {
            putbits2(gfc, 0x45, 8);
            remainingBits -= 8;
        }

        if (remainingBits >= 32) {
            var version = ver.getLameShortVersion();
            if (remainingBits >= 32)
                for (i = 0; i < version.length && remainingBits >= 8; ++i) {
                    remainingBits -= 8;
                    putbits2(gfc, version.charAt(i), 8);
                }
        }

        for (; remainingBits >= 1; remainingBits -= 1) {
            putbits2(gfc, gfc.ancillary_flag, 1);
            gfc.ancillary_flag ^= (!gfp.disable_reservoir ? 1 : 0);
        }

        assert(remainingBits == 0);

    }

    /**
     * write N bits into the header
     */
    function writeheader(gfc, val, j) {
        var ptr = gfc.header[gfc.h_ptr].ptr;

        while (j > 0) {
            var k = Math.min(j, 8 - (ptr & 7));
            j -= k;
            assert(j < MAX_LENGTH);
            /* >> 32 too large for 32 bit machines */

            gfc.header[gfc.h_ptr].buf[ptr >> 3] |= ((val >> j)) << (8 - (ptr & 7) - k);
            ptr += k;
        }
        gfc.header[gfc.h_ptr].ptr = ptr;
    }

    function CRC_update(value, crc) {
        value <<= 8;
        for (var i = 0; i < 8; i++) {
            value <<= 1;
            crc <<= 1;

            if ((((crc ^ value) & 0x10000) != 0))
                crc ^= CRC16_POLYNOMIAL;
        }
        return crc;
    }

    this.CRC_writeheader = function (gfc, header) {
        var crc = 0xffff;
        /* (jo) init crc16 for error_protection */

        crc = CRC_update(header[2] & 0xff, crc);
        crc = CRC_update(header[3] & 0xff, crc);
        for (var i = 6; i < gfc.sideinfo_len; i++) {
            crc = CRC_update(header[i] & 0xff, crc);
        }

        header[4] = (byte)(crc >> 8);
        header[5] = (byte)(crc & 255);
    };

    function encodeSideInfo2(gfp, bitsPerFrame) {
        var gfc = gfp.internal_flags;
        var l3_side;
        var gr, ch;

        l3_side = gfc.l3_side;
        gfc.header[gfc.h_ptr].ptr = 0;
        Arrays.fill(gfc.header[gfc.h_ptr].buf, 0, gfc.sideinfo_len, 0);
        if (gfp.out_samplerate < 16000)
            writeheader(gfc, 0xffe, 12);
        else
            writeheader(gfc, 0xfff, 12);
        writeheader(gfc, (gfp.version), 1);
        writeheader(gfc, 4 - 3, 2);
        writeheader(gfc, (!gfp.error_protection ? 1 : 0), 1);
        writeheader(gfc, (gfc.bitrate_index), 4);
        writeheader(gfc, (gfc.samplerate_index), 2);
        writeheader(gfc, (gfc.padding), 1);
        writeheader(gfc, (gfp.extension), 1);
        writeheader(gfc, (gfp.mode.ordinal()), 2);
        writeheader(gfc, (gfc.mode_ext), 2);
        writeheader(gfc, (gfp.copyright), 1);
        writeheader(gfc, (gfp.original), 1);
        writeheader(gfc, (gfp.emphasis), 2);
        if (gfp.error_protection) {
            writeheader(gfc, 0, 16);
            /* dummy */
        }

        if (gfp.version == 1) {
            /* MPEG1 */
            assert(l3_side.main_data_begin >= 0);
            writeheader(gfc, (l3_side.main_data_begin), 9);

            if (gfc.channels_out == 2)
                writeheader(gfc, l3_side.private_bits, 3);
            else
                writeheader(gfc, l3_side.private_bits, 5);

            for (ch = 0; ch < gfc.channels_out; ch++) {
                var band;
                for (band = 0; band < 4; band++) {
                    writeheader(gfc, l3_side.scfsi[ch][band], 1);
                }
            }

            for (gr = 0; gr < 2; gr++) {
                for (ch = 0; ch < gfc.channels_out; ch++) {
                    var gi = l3_side.tt[gr][ch];
                    writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);
                    writeheader(gfc, gi.big_values / 2, 9);
                    writeheader(gfc, gi.global_gain, 8);
                    writeheader(gfc, gi.scalefac_compress, 4);

                    if (gi.block_type != Encoder.NORM_TYPE) {
                        writeheader(gfc, 1, 1);
                        /* window_switching_flag */
                        writeheader(gfc, gi.block_type, 2);
                        writeheader(gfc, gi.mixed_block_flag, 1);

                        if (gi.table_select[0] == 14)
                            gi.table_select[0] = 16;
                        writeheader(gfc, gi.table_select[0], 5);
                        if (gi.table_select[1] == 14)
                            gi.table_select[1] = 16;
                        writeheader(gfc, gi.table_select[1], 5);

                        writeheader(gfc, gi.subblock_gain[0], 3);
                        writeheader(gfc, gi.subblock_gain[1], 3);
                        writeheader(gfc, gi.subblock_gain[2], 3);
                    } else {
                        writeheader(gfc, 0, 1);
                        /* window_switching_flag */
                        if (gi.table_select[0] == 14)
                            gi.table_select[0] = 16;
                        writeheader(gfc, gi.table_select[0], 5);
                        if (gi.table_select[1] == 14)
                            gi.table_select[1] = 16;
                        writeheader(gfc, gi.table_select[1], 5);
                        if (gi.table_select[2] == 14)
                            gi.table_select[2] = 16;
                        writeheader(gfc, gi.table_select[2], 5);

                        assert(0 <= gi.region0_count && gi.region0_count < 16);
                        assert(0 <= gi.region1_count && gi.region1_count < 8);
                        writeheader(gfc, gi.region0_count, 4);
                        writeheader(gfc, gi.region1_count, 3);
                    }
                    writeheader(gfc, gi.preflag, 1);
                    writeheader(gfc, gi.scalefac_scale, 1);
                    writeheader(gfc, gi.count1table_select, 1);
                }
            }
        } else {
            /* MPEG2 */
            assert(l3_side.main_data_begin >= 0);
            writeheader(gfc, (l3_side.main_data_begin), 8);
            writeheader(gfc, l3_side.private_bits, gfc.channels_out);

            gr = 0;
            for (ch = 0; ch < gfc.channels_out; ch++) {
                var gi = l3_side.tt[gr][ch];
                writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);
                writeheader(gfc, gi.big_values / 2, 9);
                writeheader(gfc, gi.global_gain, 8);
                writeheader(gfc, gi.scalefac_compress, 9);

                if (gi.block_type != Encoder.NORM_TYPE) {
                    writeheader(gfc, 1, 1);
                    /* window_switching_flag */
                    writeheader(gfc, gi.block_type, 2);
                    writeheader(gfc, gi.mixed_block_flag, 1);

                    if (gi.table_select[0] == 14)
                        gi.table_select[0] = 16;
                    writeheader(gfc, gi.table_select[0], 5);
                    if (gi.table_select[1] == 14)
                        gi.table_select[1] = 16;
                    writeheader(gfc, gi.table_select[1], 5);

                    writeheader(gfc, gi.subblock_gain[0], 3);
                    writeheader(gfc, gi.subblock_gain[1], 3);
                    writeheader(gfc, gi.subblock_gain[2], 3);
                } else {
                    writeheader(gfc, 0, 1);
                    /* window_switching_flag */
                    if (gi.table_select[0] == 14)
                        gi.table_select[0] = 16;
                    writeheader(gfc, gi.table_select[0], 5);
                    if (gi.table_select[1] == 14)
                        gi.table_select[1] = 16;
                    writeheader(gfc, gi.table_select[1], 5);
                    if (gi.table_select[2] == 14)
                        gi.table_select[2] = 16;
                    writeheader(gfc, gi.table_select[2], 5);

                    assert(0 <= gi.region0_count && gi.region0_count < 16);
                    assert(0 <= gi.region1_count && gi.region1_count < 8);
                    writeheader(gfc, gi.region0_count, 4);
                    writeheader(gfc, gi.region1_count, 3);
                }

                writeheader(gfc, gi.scalefac_scale, 1);
                writeheader(gfc, gi.count1table_select, 1);
            }
        }

        if (gfp.error_protection) {
            /* (jo) error_protection: add crc16 information to header */
            CRC_writeheader(gfc, gfc.header[gfc.h_ptr].buf);
        }

        {
            var old = gfc.h_ptr;
            assert(gfc.header[old].ptr == gfc.sideinfo_len * 8);

            gfc.h_ptr = (old + 1) & (LameInternalFlags.MAX_HEADER_BUF - 1);
            gfc.header[gfc.h_ptr].write_timing = gfc.header[old].write_timing
                + bitsPerFrame;

            if (gfc.h_ptr == gfc.w_ptr) {
                /* yikes! we are out of header buffer space */
                System.err
                    .println("Error: MAX_HEADER_BUF too small in bitstream.c \n");
            }

        }
    }

    function huffman_coder_count1(gfc, gi) {
        /* Write count1 area */
        var h = Tables.ht[gi.count1table_select + 32];
        var i, bits = 0;

        var ix = gi.big_values;
        var xr = gi.big_values;
        assert(gi.count1table_select < 2);

        for (i = (gi.count1 - gi.big_values) / 4; i > 0; --i) {
            var huffbits = 0;
            var p = 0, v;

            v = gi.l3_enc[ix + 0];
            if (v != 0) {
                p += 8;
                if (gi.xr[xr + 0] < 0)
                    huffbits++;
                assert(v <= 1);
            }

            v = gi.l3_enc[ix + 1];
            if (v != 0) {
                p += 4;
                huffbits *= 2;
                if (gi.xr[xr + 1] < 0)
                    huffbits++;
                assert(v <= 1);
            }

            v = gi.l3_enc[ix + 2];
            if (v != 0) {
                p += 2;
                huffbits *= 2;
                if (gi.xr[xr + 2] < 0)
                    huffbits++;
                assert(v <= 1);
            }

            v = gi.l3_enc[ix + 3];
            if (v != 0) {
                p++;
                huffbits *= 2;
                if (gi.xr[xr + 3] < 0)
                    huffbits++;
                assert(v <= 1);
            }

            ix += 4;
            xr += 4;
            putbits2(gfc, huffbits + h.table[p], h.hlen[p]);
            bits += h.hlen[p];
        }
        return bits;
    }

    /**
     * Implements the pseudocode of page 98 of the IS
     */
    function Huffmancode(gfc, tableindex, start, end, gi) {
        var h = Tables.ht[tableindex];
        var bits = 0;

        assert(tableindex < 32);
        if (0 == tableindex)
            return bits;

        for (var i = start; i < end; i += 2) {
            var cbits = 0;
            var xbits = 0;
            var linbits = h.xlen;
            var xlen = h.xlen;
            var ext = 0;
            var x1 = gi.l3_enc[i];
            var x2 = gi.l3_enc[i + 1];

            if (x1 != 0) {
                if (gi.xr[i] < 0)
                    ext++;
                cbits--;
            }

            if (tableindex > 15) {
                /* use ESC-words */
                if (x1 > 14) {
                    var linbits_x1 = x1 - 15;
                    assert(linbits_x1 <= h.linmax);
                    ext |= linbits_x1 << 1;
                    xbits = linbits;
                    x1 = 15;
                }

                if (x2 > 14) {
                    var linbits_x2 = x2 - 15;
                    assert(linbits_x2 <= h.linmax);
                    ext <<= linbits;
                    ext |= linbits_x2;
                    xbits += linbits;
                    x2 = 15;
                }
                xlen = 16;
            }

            if (x2 != 0) {
                ext <<= 1;
                if (gi.xr[i + 1] < 0)
                    ext++;
                cbits--;
            }

            assert((x1 | x2) < 16);

            x1 = x1 * xlen + x2;
            xbits -= cbits;
            cbits += h.hlen[x1];

            assert(cbits <= MAX_LENGTH);
            assert(xbits <= MAX_LENGTH);

            putbits2(gfc, h.table[x1], cbits);
            putbits2(gfc, ext, xbits);
            bits += cbits + xbits;
        }
        return bits;
    }

    /**
     * Note the discussion of huffmancodebits() on pages 28 and 29 of the IS, as
     * well as the definitions of the side information on pages 26 and 27.
     */
    function ShortHuffmancodebits(gfc, gi) {
        var region1Start = 3 * gfc.scalefac_band.s[3];
        if (region1Start > gi.big_values)
            region1Start = gi.big_values;

        /* short blocks do not have a region2 */
        var bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);
        bits += Huffmancode(gfc, gi.table_select[1], region1Start,
            gi.big_values, gi);
        return bits;
    }

    function LongHuffmancodebits(gfc, gi) {
        var bigvalues, bits;
        var region1Start, region2Start;

        bigvalues = gi.big_values;
        assert(0 <= bigvalues && bigvalues <= 576);

        var i = gi.region0_count + 1;
        assert(0 <= i);
        assert(i < gfc.scalefac_band.l.length);
        region1Start = gfc.scalefac_band.l[i];
        i += gi.region1_count + 1;
        assert(0 <= i);
        assert(i < gfc.scalefac_band.l.length);
        region2Start = gfc.scalefac_band.l[i];

        if (region1Start > bigvalues)
            region1Start = bigvalues;

        if (region2Start > bigvalues)
            region2Start = bigvalues;

        bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);
        bits += Huffmancode(gfc, gi.table_select[1], region1Start,
            region2Start, gi);
        bits += Huffmancode(gfc, gi.table_select[2], region2Start, bigvalues,
            gi);
        return bits;
    }

    function writeMainData(gfp) {
        var gr, ch, sfb, data_bits, tot_bits = 0;
        var gfc = gfp.internal_flags;
        var l3_side = gfc.l3_side;

        if (gfp.version == 1) {
            /* MPEG 1 */
            for (gr = 0; gr < 2; gr++) {
                for (ch = 0; ch < gfc.channels_out; ch++) {
                    var gi = l3_side.tt[gr][ch];
                    var slen1 = Takehiro.slen1_tab[gi.scalefac_compress];
                    var slen2 = Takehiro.slen2_tab[gi.scalefac_compress];
                    data_bits = 0;
                    for (sfb = 0; sfb < gi.sfbdivide; sfb++) {
                        if (gi.scalefac[sfb] == -1)
                            continue;
                        /* scfsi is used */
                        putbits2(gfc, gi.scalefac[sfb], slen1);
                        data_bits += slen1;
                    }
                    for (; sfb < gi.sfbmax; sfb++) {
                        if (gi.scalefac[sfb] == -1)
                            continue;
                        /* scfsi is used */
                        putbits2(gfc, gi.scalefac[sfb], slen2);
                        data_bits += slen2;
                    }
                    assert(data_bits == gi.part2_length);

                    if (gi.block_type == Encoder.SHORT_TYPE) {
                        data_bits += ShortHuffmancodebits(gfc, gi);
                    } else {
                        data_bits += LongHuffmancodebits(gfc, gi);
                    }
                    data_bits += huffman_coder_count1(gfc, gi);
                    /* does bitcount in quantize.c agree with actual bit count? */
                    assert(data_bits == gi.part2_3_length + gi.part2_length);
                    tot_bits += data_bits;
                }
                /* for ch */
            }
            /* for gr */
        } else {
            /* MPEG 2 */
            gr = 0;
            for (ch = 0; ch < gfc.channels_out; ch++) {
                var gi = l3_side.tt[gr][ch];
                var i, sfb_partition, scale_bits = 0;
                assert(gi.sfb_partition_table != null);
                data_bits = 0;
                sfb = 0;
                sfb_partition = 0;

                if (gi.block_type == Encoder.SHORT_TYPE) {
                    for (; sfb_partition < 4; sfb_partition++) {
                        var sfbs = gi.sfb_partition_table[sfb_partition] / 3;
                        var slen = gi.slen[sfb_partition];
                        for (i = 0; i < sfbs; i++, sfb++) {
                            putbits2(gfc,
                                Math.max(gi.scalefac[sfb * 3 + 0], 0), slen);
                            putbits2(gfc,
                                Math.max(gi.scalefac[sfb * 3 + 1], 0), slen);
                            putbits2(gfc,
                                Math.max(gi.scalefac[sfb * 3 + 2], 0), slen);
                            scale_bits += 3 * slen;
                        }
                    }
                    data_bits += ShortHuffmancodebits(gfc, gi);
                } else {
                    for (; sfb_partition < 4; sfb_partition++) {
                        var sfbs = gi.sfb_partition_table[sfb_partition];
                        var slen = gi.slen[sfb_partition];
                        for (i = 0; i < sfbs; i++, sfb++) {
                            putbits2(gfc, Math.max(gi.scalefac[sfb], 0), slen);
                            scale_bits += slen;
                        }
                    }
                    data_bits += LongHuffmancodebits(gfc, gi);
                }
                data_bits += huffman_coder_count1(gfc, gi);
                /* does bitcount in quantize.c agree with actual bit count? */
                assert(data_bits == gi.part2_3_length);
                assert(scale_bits == gi.part2_length);
                tot_bits += scale_bits + data_bits;
            }
            /* for ch */
        }
        /* for gf */
        return tot_bits;
    }

    /* main_data */

    function TotalBytes() {
        this.total = 0;
    }

    /*
     * compute the number of bits required to flush all mp3 frames currently in
     * the buffer. This should be the same as the reservoir size. Only call this
     * routine between frames - i.e. only after all headers and data have been
     * added to the buffer by format_bitstream().
     *
     * Also compute total_bits_output = size of mp3 buffer (including frame
     * headers which may not have yet been send to the mp3 buffer) + number of
     * bits needed to flush all mp3 frames.
     *
     * total_bytes_output is the size of the mp3 output buffer if
     * lame_encode_flush_nogap() was called right now.
     */
    function compute_flushbits(gfp, total_bytes_output) {
        var gfc = gfp.internal_flags;
        var flushbits, remaining_headers;
        var bitsPerFrame;
        var last_ptr, first_ptr;
        first_ptr = gfc.w_ptr;
        /* first header to add to bitstream */
        last_ptr = gfc.h_ptr - 1;
        /* last header to add to bitstream */
        if (last_ptr == -1)
            last_ptr = LameInternalFlags.MAX_HEADER_BUF - 1;

        /* add this many bits to bitstream so we can flush all headers */
        flushbits = gfc.header[last_ptr].write_timing - totbit;
        total_bytes_output.total = flushbits;

        if (flushbits >= 0) {
            /* if flushbits >= 0, some headers have not yet been written */
            /* reduce flushbits by the size of the headers */
            remaining_headers = 1 + last_ptr - first_ptr;
            if (last_ptr < first_ptr)
                remaining_headers = 1 + last_ptr - first_ptr
                    + LameInternalFlags.MAX_HEADER_BUF;
            flushbits -= remaining_headers * 8 * gfc.sideinfo_len;
        }

        /*
         * finally, add some bits so that the last frame is complete these bits
         * are not necessary to decode the last frame, but some decoders will
         * ignore last frame if these bits are missing
         */
        bitsPerFrame = self.getframebits(gfp);
        flushbits += bitsPerFrame;
        total_bytes_output.total += bitsPerFrame;
        /* round up: */
        if ((total_bytes_output.total % 8) != 0)
            total_bytes_output.total = 1 + (total_bytes_output.total / 8);
        else
            total_bytes_output.total = (total_bytes_output.total / 8);
        total_bytes_output.total += bufByteIdx + 1;

        if (flushbits < 0) {
            System.err.println("strange error flushing buffer ... \n");
        }
        return flushbits;
    }

    this.flush_bitstream = function (gfp) {
        var gfc = gfp.internal_flags;
        var l3_side;
        var flushbits;
        var last_ptr = gfc.h_ptr - 1;
        /* last header to add to bitstream */
        if (last_ptr == -1)
            last_ptr = LameInternalFlags.MAX_HEADER_BUF - 1;
        l3_side = gfc.l3_side;

        if ((flushbits = compute_flushbits(gfp, new TotalBytes())) < 0)
            return;
        drain_into_ancillary(gfp, flushbits);

        /* check that the 100% of the last frame has been written to bitstream */
        assert(gfc.header[last_ptr].write_timing + this.getframebits(gfp) == totbit);

        /*
         * we have padded out all frames with ancillary data, which is the same
         * as filling the bitreservoir with ancillary data, so :
         */
        gfc.ResvSize = 0;
        l3_side.main_data_begin = 0;

        /* save the ReplayGain value */
        if (gfc.findReplayGain) {
            var RadioGain = ga.GetTitleGain(gfc.rgdata);
            assert(NEQ(RadioGain, GainAnalysis.GAIN_NOT_ENOUGH_SAMPLES));
            gfc.RadioGain = Math.floor(RadioGain * 10.0 + 0.5) | 0;
            /* round to nearest */
        }

        /* find the gain and scale change required for no clipping */
        if (gfc.findPeakSample) {
            gfc.noclipGainChange = Math.ceil(Math
                        .log10(gfc.PeakSample / 32767.0) * 20.0 * 10.0) | 0;
            /* round up */

            if (gfc.noclipGainChange > 0) {
                /* clipping occurs */
                if (EQ(gfp.scale, 1.0) || EQ(gfp.scale, 0.0))
                    gfc.noclipScale = (Math
                        .floor((32767.0 / gfc.PeakSample) * 100.0) / 100.0);
                /* round down */
                else {
                    /*
                     * the user specified his own scaling factor. We could
                     * suggest the scaling factor of
                     * (32767.0/gfp.PeakSample)*(gfp.scale) but it's usually
                     * very inaccurate. So we'd rather not advice him on the
                     * scaling factor.
                     */
                    gfc.noclipScale = -1;
                }
            } else
            /* no clipping */
                gfc.noclipScale = -1;
        }
    };

    this.add_dummy_byte = function (gfp, val, n) {
        var gfc = gfp.internal_flags;
        var i;

        while (n-- > 0) {
            putbits_noheaders(gfc, val, 8);

            for (i = 0; i < LameInternalFlags.MAX_HEADER_BUF; ++i)
                gfc.header[i].write_timing += 8;
        }
    };

    /**
     * This is called after a frame of audio has been quantized and coded. It
     * will write the encoded audio to the bitstream. Note that from a layer3
     * encoder's perspective the bit stream is primarily a series of main_data()
     * blocks, with header and side information inserted at the proper locations
     * to maintain framing. (See Figure A.7 in the IS).
     */
    this.format_bitstream = function (gfp) {
        var gfc = gfp.internal_flags;
        var l3_side;
        l3_side = gfc.l3_side;

        var bitsPerFrame = this.getframebits(gfp);
        drain_into_ancillary(gfp, l3_side.resvDrain_pre);

        encodeSideInfo2(gfp, bitsPerFrame);
        var bits = 8 * gfc.sideinfo_len;
        bits += writeMainData(gfp);
        drain_into_ancillary(gfp, l3_side.resvDrain_post);
        bits += l3_side.resvDrain_post;

        l3_side.main_data_begin += (bitsPerFrame - bits) / 8;

        /*
         * compare number of bits needed to clear all buffered mp3 frames with
         * what we think the resvsize is:
         */
        if (compute_flushbits(gfp, new TotalBytes()) != gfc.ResvSize) {
            System.err.println("Internal buffer inconsistency. flushbits <> ResvSize");
        }

        /*
         * compare main_data_begin for the next frame with what we think the
         * resvsize is:
         */
        if ((l3_side.main_data_begin * 8) != gfc.ResvSize) {
            System.err.printf("bit reservoir error: \n"
                + "l3_side.main_data_begin: %d \n"
                + "Resvoir size:             %d \n"
                + "resv drain (post)         %d \n"
                + "resv drain (pre)          %d \n"
                + "header and sideinfo:      %d \n"
                + "data bits:                %d \n"
                + "total bits:               %d (remainder: %d) \n"
                + "bitsperframe:             %d \n",
                8 * l3_side.main_data_begin, gfc.ResvSize,
                l3_side.resvDrain_post, l3_side.resvDrain_pre,
                8 * gfc.sideinfo_len, bits - l3_side.resvDrain_post - 8
                * gfc.sideinfo_len, bits, bits % 8, bitsPerFrame);

            System.err.println("This is a fatal error.  It has several possible causes:");
            System.err.println("90%%  LAME compiled with buggy version of gcc using advanced optimizations");
            System.err.println(" 9%%  Your system is overclocked");
            System.err.println(" 1%%  bug in LAME encoding library");

            gfc.ResvSize = l3_side.main_data_begin * 8;
        }
        //;
        assert(totbit % 8 == 0);

        if (totbit > 1000000000) {
            /*
             * to avoid totbit overflow, (at 8h encoding at 128kbs) lets reset
             * bit counter
             */
            var i;
            for (i = 0; i < LameInternalFlags.MAX_HEADER_BUF; ++i)
                gfc.header[i].write_timing -= totbit;
            totbit = 0;
        }

        return 0;
    };

    /**
     * <PRE>
     * copy data out of the internal MP3 bit buffer into a user supplied
     *       unsigned char buffer.
     *
     *       mp3data=0      indicates data in buffer is an id3tags and VBR tags
     *       mp3data=1      data is real mp3 frame data.
     * </PRE>
     */
    this.copy_buffer = function (gfc, buffer, bufferPos, size, mp3data) {
        var minimum = bufByteIdx + 1;
        if (minimum <= 0)
            return 0;
        if (size != 0 && minimum > size) {
            /* buffer is too small */
            return -1;
        }
        System.arraycopy(buf, 0, buffer, bufferPos, minimum);
        bufByteIdx = -1;
        bufBitIdx = 0;

        if (mp3data != 0) {
            var crc = new_int(1);
            crc[0] = gfc.nMusicCRC;
            vbr.updateMusicCRC(crc, buffer, bufferPos, minimum);
            gfc.nMusicCRC = crc[0];

            /**
             * sum number of bytes belonging to the mp3 stream this info will be
             * written into the Xing/LAME header for seeking
             */
            if (minimum > 0) {
                gfc.VBR_seek_table.nBytesWritten += minimum;
            }

            if (gfc.decode_on_the_fly) { /* decode the frame */
                var pcm_buf = new_float_n([2, 1152]);
                var mp3_in = minimum;
                var samples_out = -1;
                var i;

                /* re-synthesis to pcm. Repeat until we get a samples_out=0 */
                while (samples_out != 0) {

                    samples_out = mpg.hip_decode1_unclipped(gfc.hip, buffer,
                        bufferPos, mp3_in, pcm_buf[0], pcm_buf[1]);
                    /*
                     * samples_out = 0: need more data to decode samples_out =
                     * -1: error. Lets assume 0 pcm output samples_out = number
                     * of samples output
                     */

                    /*
                     * set the lenght of the mp3 input buffer to zero, so that
                     * in the next iteration of the loop we will be querying
                     * mpglib about buffered data
                     */
                    mp3_in = 0;

                    if (samples_out == -1) {
                        /*
                         * error decoding. Not fatal, but might screw up the
                         * ReplayGain tag. What should we do? Ignore for now
                         */
                        samples_out = 0;
                    }
                    if (samples_out > 0) {
                        /* process the PCM data */

                        /*
                         * this should not be possible, and indicates we have
                         * overflown the pcm_buf buffer
                         */
                        assert(samples_out <= 1152);

                        if (gfc.findPeakSample) {
                            for (i = 0; i < samples_out; i++) {
                                if (pcm_buf[0][i] > gfc.PeakSample)
                                    gfc.PeakSample = pcm_buf[0][i];
                                else if (-pcm_buf[0][i] > gfc.PeakSample)
                                    gfc.PeakSample = -pcm_buf[0][i];
                            }
                            if (gfc.channels_out > 1)
                                for (i = 0; i < samples_out; i++) {
                                    if (pcm_buf[1][i] > gfc.PeakSample)
                                        gfc.PeakSample = pcm_buf[1][i];
                                    else if (-pcm_buf[1][i] > gfc.PeakSample)
                                        gfc.PeakSample = -pcm_buf[1][i];
                                }
                        }

                        if (gfc.findReplayGain)
                            if (ga.AnalyzeSamples(gfc.rgdata, pcm_buf[0], 0,
                                    pcm_buf[1], 0, samples_out,
                                    gfc.channels_out) == GainAnalysis.GAIN_ANALYSIS_ERROR)
                                return -6;

                    }
                    /* if (samples_out>0) */
                }
                /* while (samples_out!=0) */
            }
            /* if (gfc.decode_on_the_fly) */

        }
        /* if (mp3data) */
        return minimum;
    };

    this.init_bit_stream_w = function (gfc) {
        buf = new_byte(Lame.LAME_MAXMP3BUFFER);

        gfc.h_ptr = gfc.w_ptr = 0;
        gfc.header[gfc.h_ptr].write_timing = 0;
        bufByteIdx = -1;
        bufBitIdx = 0;
        totbit = 0;
    };

    // From machine.h


}

module.exports = BitStream;


/***/ }),

/***/ "./node_modules/lamejs/src/js/CBRNewIterationLoop.js":
/*!***********************************************************!*\
  !*** ./node_modules/lamejs/src/js/CBRNewIterationLoop.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var MeanBits = __webpack_require__(/*! ./MeanBits.js */ "./node_modules/lamejs/src/js/MeanBits.js");
var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");
var L3Side = __webpack_require__(/*! ./L3Side.js */ "./node_modules/lamejs/src/js/L3Side.js");
var LameInternalFlags = __webpack_require__(/*! ./LameInternalFlags.js */ "./node_modules/lamejs/src/js/LameInternalFlags.js");

function CBRNewIterationLoop(_quantize)  {
    var quantize = _quantize;
    this.quantize = quantize;
	this.iteration_loop = function(gfp, pe, ms_ener_ratio, ratio) {
		var gfc = gfp.internal_flags;
        var l3_xmin = new_float(L3Side.SFBMAX);
		var xrpow = new_float(576);
		var targ_bits = new_int(2);
		var mean_bits = 0, max_bits;
		var l3_side = gfc.l3_side;

		var mb = new MeanBits(mean_bits);
		this.quantize.rv.ResvFrameBegin(gfp, mb);
		mean_bits = mb.bits;

		/* quantize! */
		for (var gr = 0; gr < gfc.mode_gr; gr++) {

			/*
			 * calculate needed bits
			 */
			max_bits = this.quantize.qupvt.on_pe(gfp, pe, targ_bits, mean_bits,
					gr, gr);

			if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {
				this.quantize.ms_convert(gfc.l3_side, gr);
				this.quantize.qupvt.reduce_side(targ_bits, ms_ener_ratio[gr],
						mean_bits, max_bits);
			}

			for (var ch = 0; ch < gfc.channels_out; ch++) {
				var adjust, masking_lower_db;
				var cod_info = l3_side.tt[gr][ch];

				if (cod_info.block_type != Encoder.SHORT_TYPE) {
					// NORM, START or STOP type
					adjust = 0;
					masking_lower_db = gfc.PSY.mask_adjust - adjust;
				} else {
					adjust = 0;
					masking_lower_db = gfc.PSY.mask_adjust_short - adjust;
				}
				gfc.masking_lower =  Math.pow(10.0,
						masking_lower_db * 0.1);

				/*
				 * init_outer_loop sets up cod_info, scalefac and xrpow
				 */
				this.quantize.init_outer_loop(gfc, cod_info);
				if (this.quantize.init_xrpow(gfc, cod_info, xrpow)) {
					/*
					 * xr contains energy we will have to encode calculate the
					 * masking abilities find some good quantization in
					 * outer_loop
					 */
					this.quantize.qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info,
							l3_xmin);
					this.quantize.outer_loop(gfp, cod_info, l3_xmin, xrpow, ch,
							targ_bits[ch]);
				}

				this.quantize.iteration_finish_one(gfc, gr, ch);
				assert (cod_info.part2_3_length <= LameInternalFlags.MAX_BITS_PER_CHANNEL);
				assert (cod_info.part2_3_length <= targ_bits[ch]);
			} /* for ch */
		} /* for gr */

		this.quantize.rv.ResvFrameEnd(gfc, mean_bits);
	}
}
module.exports = CBRNewIterationLoop;


/***/ }),

/***/ "./node_modules/lamejs/src/js/CalcNoiseData.js":
/*!*****************************************************!*\
  !*** ./node_modules/lamejs/src/js/CalcNoiseData.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var new_float = common.new_float;
var new_int = common.new_int;
var assert = common.assert;

function CalcNoiseData() {
    this.global_gain = 0;
    this.sfb_count1 = 0;
    this.step = new_int(39);
    this.noise = new_float(39);
    this.noise_log = new_float(39);
}

module.exports = CalcNoiseData;


/***/ }),

/***/ "./node_modules/lamejs/src/js/CalcNoiseResult.js":
/*!*******************************************************!*\
  !*** ./node_modules/lamejs/src/js/CalcNoiseResult.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

//package mp3;

function CalcNoiseResult() {
    /**
     * sum of quantization noise > masking
     */
    this.over_noise = 0.;
    /**
     * sum of all quantization noise
     */
    this.tot_noise = 0.;
    /**
     * max quantization noise
     */
    this.max_noise = 0.;
    /**
     * number of quantization noise > masking
     */
    this.over_count = 0;
    /**
     * SSD-like cost of distorted bands
     */
    this.over_SSD = 0;
    this.bits = 0;
}

module.exports = CalcNoiseResult;


/***/ }),

/***/ "./node_modules/lamejs/src/js/Encoder.js":
/*!***********************************************!*\
  !*** ./node_modules/lamejs/src/js/Encoder.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

/**
 * ENCDELAY The encoder delay.
 *
 * Minimum allowed is MDCTDELAY (see below)
 *
 * The first 96 samples will be attenuated, so using a value less than 96
 * will result in corrupt data for the first 96-ENCDELAY samples.
 *
 * suggested: 576 set to 1160 to sync with FhG.
 */
Encoder.ENCDELAY = 576;
/**
 * make sure there is at least one complete frame after the last frame
 * containing real data
 *
 * Using a value of 288 would be sufficient for a a very sophisticated
 * decoder that can decode granule-by-granule instead of frame by frame. But
 * lets not assume this, and assume the decoder will not decode frame N
 * unless it also has data for frame N+1
 */
Encoder.POSTDELAY = 1152;

/**
 * delay of the MDCT used in mdct.c original ISO routines had a delay of
 * 528! Takehiro's routines:
 */
Encoder.MDCTDELAY = 48;
Encoder.FFTOFFSET = (224 + Encoder.MDCTDELAY);

/**
 * Most decoders, including the one we use, have a delay of 528 samples.
 */
Encoder.DECDELAY = 528;

/**
 * number of subbands
 */
Encoder.SBLIMIT = 32;

/**
 * parition bands bands
 */
Encoder.CBANDS = 64;

/**
 * number of critical bands/scale factor bands where masking is computed
 */
Encoder.SBPSY_l = 21;
Encoder.SBPSY_s = 12;

/**
 * total number of scalefactor bands encoded
 */
Encoder.SBMAX_l = 22;
Encoder.SBMAX_s = 13;
Encoder.PSFB21 = 6;
Encoder.PSFB12 = 6;

/**
 * FFT sizes
 */
Encoder.BLKSIZE = 1024;
Encoder.HBLKSIZE = (Encoder.BLKSIZE / 2 + 1);
Encoder.BLKSIZE_s = 256;
Encoder.HBLKSIZE_s = (Encoder.BLKSIZE_s / 2 + 1);

Encoder.NORM_TYPE = 0;
Encoder.START_TYPE = 1;
Encoder.SHORT_TYPE = 2;
Encoder.STOP_TYPE = 3;

/**
 * <PRE>
 * Mode Extention:
 * When we are in stereo mode, there are 4 possible methods to store these
 * two channels. The stereo modes -m? are using a subset of them.
 *
 *  -ms: MPG_MD_LR_LR
 *  -mj: MPG_MD_LR_LR and MPG_MD_MS_LR
 *  -mf: MPG_MD_MS_LR
 *  -mi: all
 * </PRE>
 */
Encoder.MPG_MD_LR_LR = 0;
Encoder.MPG_MD_LR_I = 1;
Encoder.MPG_MD_MS_LR = 2;
Encoder.MPG_MD_MS_I = 3;

Encoder.fircoef = [-0.0207887 * 5, -0.0378413 * 5,
    -0.0432472 * 5, -0.031183 * 5, 7.79609e-18 * 5, 0.0467745 * 5,
    0.10091 * 5, 0.151365 * 5, 0.187098 * 5];

function Encoder() {
    var NewMDCT = __webpack_require__(/*! ./NewMDCT.js */ "./node_modules/lamejs/src/js/NewMDCT.js");
    var III_psy_ratio = __webpack_require__(/*! ./III_psy_ratio.js */ "./node_modules/lamejs/src/js/III_psy_ratio.js");

    var FFTOFFSET = Encoder.FFTOFFSET;
    var MPG_MD_MS_LR = Encoder.MPG_MD_MS_LR;
    //BitStream bs;
    //PsyModel psy;
    //VBRTag vbr;
    //QuantizePVT qupvt;
    var bs = null;
    this.psy = null;
    var psy = null;
    var vbr = null;
    var qupvt = null;

    //public final void setModules(BitStream bs, PsyModel psy, QuantizePVT qupvt,
    //    VBRTag vbr) {
    this.setModules = function (_bs, _psy, _qupvt, _vbr) {
        bs = _bs;
        this.psy = _psy;
        psy = _psy;
        vbr = _vbr;
        qupvt = _qupvt;
    };

    var newMDCT = new NewMDCT();

    /***********************************************************************
     *
     * encoder and decoder delays
     *
     ***********************************************************************/

    /**
     * <PRE>
     * layer III enc->dec delay:  1056 (1057?)   (observed)
     * layer  II enc->dec delay:   480  (481?)   (observed)
     *
     * polyphase 256-16             (dec or enc)        = 240
     * mdct      256+32  (9*32)     (dec or enc)        = 288
     * total:    512+16
     *
     * My guess is that delay of polyphase filterbank is actualy 240.5
     * (there are technical reasons for this, see postings in mp3encoder).
     * So total Encode+Decode delay = ENCDELAY + 528 + 1
     * </PRE>
     */


    /**
     * auto-adjust of ATH, useful for low volume Gabriel Bouvigne 3 feb 2001
     *
     * modifies some values in gfp.internal_flags.ATH (gfc.ATH)
     */
//private void adjust_ATH(final LameInternalFlags gfc) {
    function adjust_ATH(gfc) {
        var gr2_max, max_pow;

        if (gfc.ATH.useAdjust == 0) {
            gfc.ATH.adjust = 1.0;
            /* no adjustment */
            return;
        }

        /* jd - 2001 mar 12, 27, jun 30 */
        /* loudness based on equal loudness curve; */
        /* use granule with maximum combined loudness */
        max_pow = gfc.loudness_sq[0][0];
        gr2_max = gfc.loudness_sq[1][0];
        if (gfc.channels_out == 2) {
            max_pow += gfc.loudness_sq[0][1];
            gr2_max += gfc.loudness_sq[1][1];
        } else {
            max_pow += max_pow;
            gr2_max += gr2_max;
        }
        if (gfc.mode_gr == 2) {
            max_pow = Math.max(max_pow, gr2_max);
        }
        max_pow *= 0.5;
        /* max_pow approaches 1.0 for full band noise */

        /* jd - 2001 mar 31, jun 30 */
        /* user tuning of ATH adjustment region */
        max_pow *= gfc.ATH.aaSensitivityP;

        /*
         * adjust ATH depending on range of maximum value
         */

        /* jd - 2001 feb27, mar12,20, jun30, jul22 */
        /* continuous curves based on approximation */
        /* to GB's original values. */
        /* For an increase in approximate loudness, */
        /* set ATH adjust to adjust_limit immediately */
        /* after a delay of one frame. */
        /* For a loudness decrease, reduce ATH adjust */
        /* towards adjust_limit gradually. */
        /* max_pow is a loudness squared or a power. */
        if (max_pow > 0.03125) { /* ((1 - 0.000625)/ 31.98) from curve below */
            if (gfc.ATH.adjust >= 1.0) {
                gfc.ATH.adjust = 1.0;
            } else {
                /* preceding frame has lower ATH adjust; */
                /* ascend only to the preceding adjust_limit */
                /* in case there is leading low volume */
                if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {
                    gfc.ATH.adjust = gfc.ATH.adjustLimit;
                }
            }
            gfc.ATH.adjustLimit = 1.0;
        } else { /* adjustment curve */
            /* about 32 dB maximum adjust (0.000625) */
            var adj_lim_new = 31.98 * max_pow + 0.000625;
            if (gfc.ATH.adjust >= adj_lim_new) { /* descend gradually */
                gfc.ATH.adjust *= adj_lim_new * 0.075 + 0.925;
                if (gfc.ATH.adjust < adj_lim_new) { /* stop descent */
                    gfc.ATH.adjust = adj_lim_new;
                }
            } else { /* ascend */
                if (gfc.ATH.adjustLimit >= adj_lim_new) {
                    gfc.ATH.adjust = adj_lim_new;
                } else {
                    /* preceding frame has lower ATH adjust; */
                    /* ascend only to the preceding adjust_limit */
                    if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {
                        gfc.ATH.adjust = gfc.ATH.adjustLimit;
                    }
                }
            }
            gfc.ATH.adjustLimit = adj_lim_new;
        }
    }

    /**
     * <PRE>
     *  some simple statistics
     *
     *  bitrate index 0: free bitrate . not allowed in VBR mode
     *  : bitrates, kbps depending on MPEG version
     *  bitrate index 15: forbidden
     *
     *  mode_ext:
     *  0:  LR
     *  1:  LR-i
     *  2:  MS
     *  3:  MS-i
     * </PRE>
     */
    function updateStats(gfc) {
        var gr, ch;
        assert(0 <= gfc.bitrate_index && gfc.bitrate_index < 16);
        assert(0 <= gfc.mode_ext && gfc.mode_ext < 4);

        /* count bitrate indices */
        gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][4]++;
        gfc.bitrate_stereoMode_Hist[15][4]++;

        /* count 'em for every mode extension in case of 2 channel encoding */
        if (gfc.channels_out == 2) {
            gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][gfc.mode_ext]++;
            gfc.bitrate_stereoMode_Hist[15][gfc.mode_ext]++;
        }
        for (gr = 0; gr < gfc.mode_gr; ++gr) {
            for (ch = 0; ch < gfc.channels_out; ++ch) {
                var bt = gfc.l3_side.tt[gr][ch].block_type | 0;
                if (gfc.l3_side.tt[gr][ch].mixed_block_flag != 0)
                    bt = 4;
                gfc.bitrate_blockType_Hist[gfc.bitrate_index][bt]++;
                gfc.bitrate_blockType_Hist[gfc.bitrate_index][5]++;
                gfc.bitrate_blockType_Hist[15][bt]++;
                gfc.bitrate_blockType_Hist[15][5]++;
            }
        }
    }

    function lame_encode_frame_init(gfp, inbuf) {
        var gfc = gfp.internal_flags;

        var ch, gr;

        if (gfc.lame_encode_frame_init == 0) {
            /* prime the MDCT/polyphase filterbank with a short block */
            var i, j;
            var primebuff0 = new_float(286 + 1152 + 576);
            var primebuff1 = new_float(286 + 1152 + 576);
            gfc.lame_encode_frame_init = 1;
            for (i = 0, j = 0; i < 286 + 576 * (1 + gfc.mode_gr); ++i) {
                if (i < 576 * gfc.mode_gr) {
                    primebuff0[i] = 0;
                    if (gfc.channels_out == 2)
                        primebuff1[i] = 0;
                } else {
                    primebuff0[i] = inbuf[0][j];
                    if (gfc.channels_out == 2)
                        primebuff1[i] = inbuf[1][j];
                    ++j;
                }
            }
            /* polyphase filtering / mdct */
            for (gr = 0; gr < gfc.mode_gr; gr++) {
                for (ch = 0; ch < gfc.channels_out; ch++) {
                    gfc.l3_side.tt[gr][ch].block_type = Encoder.SHORT_TYPE;
                }
            }
            newMDCT.mdct_sub48(gfc, primebuff0, primebuff1);

            /* check FFT will not use a negative starting offset */
            assert(576 >= Encoder.FFTOFFSET);
            /* check if we have enough data for FFT */
            assert(gfc.mf_size >= (Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET));
            /* check if we have enough data for polyphase filterbank */
            assert(gfc.mf_size >= (512 + gfp.framesize - 32));
        }

    }

    /**
     * <PRE>
     * encodeframe()           Layer 3
     *
     * encode a single frame
     *
     *
     *    lame_encode_frame()
     *
     *
     *                           gr 0            gr 1
     *    inbuf:           |--------------|--------------|--------------|
     *
     *
     *    Polyphase (18 windows, each shifted 32)
     *    gr 0:
     *    window1          <----512---.
     *    window18                 <----512---.
     *
     *    gr 1:
     *    window1                         <----512---.
     *    window18                                <----512---.
     *
     *
     *
     *    MDCT output:  |--------------|--------------|--------------|
     *
     *    FFT's                    <---------1024---------.
     *                                             <---------1024-------.
     *
     *
     *
     *        inbuf = buffer of PCM data size=MP3 framesize
     *        encoder acts on inbuf[ch][0], but output is delayed by MDCTDELAY
     *        so the MDCT coefficints are from inbuf[ch][-MDCTDELAY]
     *
     *        psy-model FFT has a 1 granule delay, so we feed it data for the
     *        next granule.
     *        FFT is centered over granule:  224+576+224
     *        So FFT starts at:   576-224-MDCTDELAY
     *
     *        MPEG2:  FFT ends at:  BLKSIZE+576-224-MDCTDELAY      (1328)
     *        MPEG1:  FFT ends at:  BLKSIZE+2*576-224-MDCTDELAY    (1904)
     *
     *        MPEG2:  polyphase first window:  [0..511]
     *                          18th window:   [544..1055]          (1056)
     *        MPEG1:            36th window:   [1120..1631]         (1632)
     *                data needed:  512+framesize-32
     *
     *        A close look newmdct.c shows that the polyphase filterbank
     *        only uses data from [0..510] for each window.  Perhaps because the window
     *        used by the filterbank is zero for the last point, so Takehiro's
     *        code doesn't bother to compute with it.
     *
     *        FFT starts at 576-224-MDCTDELAY (304)  = 576-FFTOFFSET
     *
     * </PRE>
     */


    this.lame_encode_mp3_frame = function (gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {
        var mp3count;
        var masking_LR = new_array_n([2, 2]);
        /*
         * LR masking &
         * energy
         */
        masking_LR[0][0] = new III_psy_ratio();
        masking_LR[0][1] = new III_psy_ratio();
        masking_LR[1][0] = new III_psy_ratio();
        masking_LR[1][1] = new III_psy_ratio();
        var masking_MS = new_array_n([2, 2]);
        /* MS masking & energy */
        masking_MS[0][0] = new III_psy_ratio();
        masking_MS[0][1] = new III_psy_ratio();
        masking_MS[1][0] = new III_psy_ratio();
        masking_MS[1][1] = new III_psy_ratio();
        //III_psy_ratio masking[][];
        var masking;
        /* pointer to selected maskings */
        var inbuf = [null, null];
        var gfc = gfp.internal_flags;

        var tot_ener = new_float_n([2, 4]);
        var ms_ener_ratio = [.5, .5];
        var pe = [[0., 0.], [0., 0.]];
        var pe_MS = [[0., 0.], [0., 0.]];

//float[][] pe_use;
        var pe_use;

        var ch, gr;

        inbuf[0] = inbuf_l;
        inbuf[1] = inbuf_r;

        if (gfc.lame_encode_frame_init == 0) {
            /* first run? */
            lame_encode_frame_init(gfp, inbuf);

        }

        /********************** padding *****************************/
        /**
         * <PRE>
         * padding method as described in
         * "MPEG-Layer3 / Bitstream Syntax and Decoding"
         * by Martin Sieler, Ralph Sperschneider
         *
         * note: there is no padding for the very first frame
         *
         * Robert Hegemann 2000-06-22
         * </PRE>
         */
        gfc.padding = 0;
        if ((gfc.slot_lag -= gfc.frac_SpF) < 0) {
            gfc.slot_lag += gfp.out_samplerate;
            gfc.padding = 1;
        }

        /****************************************
         * Stage 1: psychoacoustic model *
         ****************************************/

        if (gfc.psymodel != 0) {
            /*
             * psychoacoustic model psy model has a 1 granule (576) delay that
             * we must compensate for (mt 6/99).
             */
            var ret;
            var bufp = [null, null];
            /* address of beginning of left & right granule */
            var bufpPos = 0;
            /* address of beginning of left & right granule */
            var blocktype = new_int(2);

            for (gr = 0; gr < gfc.mode_gr; gr++) {

                for (ch = 0; ch < gfc.channels_out; ch++) {
                    bufp[ch] = inbuf[ch];
                    bufpPos = 576 + gr * 576 - Encoder.FFTOFFSET;
                }
                if (gfp.VBR == VbrMode.vbr_mtrh || gfp.VBR == VbrMode.vbr_mt) {
                    ret = psy.L3psycho_anal_vbr(gfp, bufp, bufpPos, gr,
                        masking_LR, masking_MS, pe[gr], pe_MS[gr],
                        tot_ener[gr], blocktype);
                } else {
                    ret = psy.L3psycho_anal_ns(gfp, bufp, bufpPos, gr,
                        masking_LR, masking_MS, pe[gr], pe_MS[gr],
                        tot_ener[gr], blocktype);
                }
                if (ret != 0)
                    return -4;

                if (gfp.mode == MPEGMode.JOINT_STEREO) {
                    ms_ener_ratio[gr] = tot_ener[gr][2] + tot_ener[gr][3];
                    if (ms_ener_ratio[gr] > 0)
                        ms_ener_ratio[gr] = tot_ener[gr][3] / ms_ener_ratio[gr];
                }

                /* block type flags */
                for (ch = 0; ch < gfc.channels_out; ch++) {
                    var cod_info = gfc.l3_side.tt[gr][ch];
                    cod_info.block_type = blocktype[ch];
                    cod_info.mixed_block_flag = 0;
                }
            }
        } else {
            /* no psy model */
            for (gr = 0; gr < gfc.mode_gr; gr++)
                for (ch = 0; ch < gfc.channels_out; ch++) {
                    gfc.l3_side.tt[gr][ch].block_type = Encoder.NORM_TYPE;
                    gfc.l3_side.tt[gr][ch].mixed_block_flag = 0;
                    pe_MS[gr][ch] = pe[gr][ch] = 700;
                }
        }

        /* auto-adjust of ATH, useful for low volume */
        adjust_ATH(gfc);

        /****************************************
         * Stage 2: MDCT *
         ****************************************/

        /* polyphase filtering / mdct */
        newMDCT.mdct_sub48(gfc, inbuf[0], inbuf[1]);

        /****************************************
         * Stage 3: MS/LR decision *
         ****************************************/

        /* Here will be selected MS or LR coding of the 2 stereo channels */
        gfc.mode_ext = Encoder.MPG_MD_LR_LR;

        if (gfp.force_ms) {
            gfc.mode_ext = Encoder.MPG_MD_MS_LR;
        } else if (gfp.mode == MPEGMode.JOINT_STEREO) {
            /*
             * ms_ratio = is scaled, for historical reasons, to look like a
             * ratio of side_channel / total. 0 = signal is 100% mono .5 = L & R
             * uncorrelated
             */

            /**
             * <PRE>
             * [0] and [1] are the results for the two granules in MPEG-1,
             * in MPEG-2 it's only a faked averaging of the same value
             * _prev is the value of the last granule of the previous frame
             * _next is the value of the first granule of the next frame
             * </PRE>
             */

            var sum_pe_MS = 0.;
            var sum_pe_LR = 0.;
            for (gr = 0; gr < gfc.mode_gr; gr++) {
                for (ch = 0; ch < gfc.channels_out; ch++) {
                    sum_pe_MS += pe_MS[gr][ch];
                    sum_pe_LR += pe[gr][ch];
                }
            }

            /* based on PE: M/S coding would not use much more bits than L/R */
            if (sum_pe_MS <= 1.00 * sum_pe_LR) {

                var gi0 = gfc.l3_side.tt[0];
                var gi1 = gfc.l3_side.tt[gfc.mode_gr - 1];

                if (gi0[0].block_type == gi0[1].block_type
                    && gi1[0].block_type == gi1[1].block_type) {

                    gfc.mode_ext = Encoder.MPG_MD_MS_LR;
                }
            }
        }

        /* bit and noise allocation */
        if (gfc.mode_ext == MPG_MD_MS_LR) {
            masking = masking_MS;
            /* use MS masking */
            pe_use = pe_MS;
        } else {
            masking = masking_LR;
            /* use LR masking */
            pe_use = pe;
        }

        /* copy data for MP3 frame analyzer */
        if (gfp.analysis && gfc.pinfo != null) {
            for (gr = 0; gr < gfc.mode_gr; gr++) {
                for (ch = 0; ch < gfc.channels_out; ch++) {
                    gfc.pinfo.ms_ratio[gr] = gfc.ms_ratio[gr];
                    gfc.pinfo.ms_ener_ratio[gr] = ms_ener_ratio[gr];
                    gfc.pinfo.blocktype[gr][ch] = gfc.l3_side.tt[gr][ch].block_type;
                    gfc.pinfo.pe[gr][ch] = pe_use[gr][ch];
                    System.arraycopy(gfc.l3_side.tt[gr][ch].xr, 0,
                        gfc.pinfo.xr[gr][ch], 0, 576);
                    /*
                     * in psymodel, LR and MS data was stored in pinfo. switch
                     * to MS data:
                     */
                    if (gfc.mode_ext == MPG_MD_MS_LR) {
                        gfc.pinfo.ers[gr][ch] = gfc.pinfo.ers[gr][ch + 2];
                        System.arraycopy(gfc.pinfo.energy[gr][ch + 2], 0,
                            gfc.pinfo.energy[gr][ch], 0,
                            gfc.pinfo.energy[gr][ch].length);
                    }
                }
            }
        }

        /****************************************
         * Stage 4: quantization loop *
         ****************************************/

        if (gfp.VBR == VbrMode.vbr_off || gfp.VBR == VbrMode.vbr_abr) {

            var i;
            var f;

            for (i = 0; i < 18; i++)
                gfc.nsPsy.pefirbuf[i] = gfc.nsPsy.pefirbuf[i + 1];

            f = 0.0;
            for (gr = 0; gr < gfc.mode_gr; gr++)
                for (ch = 0; ch < gfc.channels_out; ch++)
                    f += pe_use[gr][ch];
            gfc.nsPsy.pefirbuf[18] = f;

            f = gfc.nsPsy.pefirbuf[9];
            for (i = 0; i < 9; i++)
                f += (gfc.nsPsy.pefirbuf[i] + gfc.nsPsy.pefirbuf[18 - i])
                    * Encoder.fircoef[i];

            f = (670 * 5 * gfc.mode_gr * gfc.channels_out) / f;
            for (gr = 0; gr < gfc.mode_gr; gr++) {
                for (ch = 0; ch < gfc.channels_out; ch++) {
                    pe_use[gr][ch] *= f;
                }
            }
        }
        gfc.iteration_loop.iteration_loop(gfp, pe_use, ms_ener_ratio, masking);

        /****************************************
         * Stage 5: bitstream formatting *
         ****************************************/

        /* write the frame to the bitstream */
        bs.format_bitstream(gfp);

        /* copy mp3 bit buffer into array */
        mp3count = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 1);

        if (gfp.bWriteVbrTag)
            vbr.addVbrFrame(gfp);

        if (gfp.analysis && gfc.pinfo != null) {
            for (ch = 0; ch < gfc.channels_out; ch++) {
                var j;
                for (j = 0; j < FFTOFFSET; j++)
                    gfc.pinfo.pcmdata[ch][j] = gfc.pinfo.pcmdata[ch][j
                    + gfp.framesize];
                for (j = FFTOFFSET; j < 1600; j++) {
                    gfc.pinfo.pcmdata[ch][j] = inbuf[ch][j - FFTOFFSET];
                }
            }
            qupvt.set_frame_pinfo(gfp, masking);
        }

        updateStats(gfc);

        return mp3count;
    }
}


module.exports = Encoder;


/***/ }),

/***/ "./node_modules/lamejs/src/js/FFT.js":
/*!*******************************************!*\
  !*** ./node_modules/lamejs/src/js/FFT.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");

function FFT() {

    var window = new_float(Encoder.BLKSIZE);
    var window_s = new_float(Encoder.BLKSIZE_s / 2);

    var costab = [
        9.238795325112867e-01, 3.826834323650898e-01,
        9.951847266721969e-01, 9.801714032956060e-02,
        9.996988186962042e-01, 2.454122852291229e-02,
        9.999811752826011e-01, 6.135884649154475e-03
    ];

    function fht(fz, fzPos, n) {
        var tri = 0;
        var k4;
        var fi;
        var gi;

        n <<= 1;
        /* to get BLKSIZE, because of 3DNow! ASM routine */
        var fn = fzPos + n;
        k4 = 4;
        do {
            var s1, c1;
            var i, k1, k2, k3, kx;
            kx = k4 >> 1;
            k1 = k4;
            k2 = k4 << 1;
            k3 = k2 + k1;
            k4 = k2 << 1;
            fi = fzPos;
            gi = fi + kx;
            do {
                var f0, f1, f2, f3;
                f1 = fz[fi + 0] - fz[fi + k1];
                f0 = fz[fi + 0] + fz[fi + k1];
                f3 = fz[fi + k2] - fz[fi + k3];
                f2 = fz[fi + k2] + fz[fi + k3];
                fz[fi + k2] = f0 - f2;
                fz[fi + 0] = f0 + f2;
                fz[fi + k3] = f1 - f3;
                fz[fi + k1] = f1 + f3;
                f1 = fz[gi + 0] - fz[gi + k1];
                f0 = fz[gi + 0] + fz[gi + k1];
                f3 = (Util.SQRT2 * fz[gi + k3]);
                f2 = (Util.SQRT2 * fz[gi + k2]);
                fz[gi + k2] = f0 - f2;
                fz[gi + 0] = f0 + f2;
                fz[gi + k3] = f1 - f3;
                fz[gi + k1] = f1 + f3;
                gi += k4;
                fi += k4;
            } while (fi < fn);
            c1 = costab[tri + 0];
            s1 = costab[tri + 1];
            for (i = 1; i < kx; i++) {
                var c2, s2;
                c2 = 1 - (2 * s1) * s1;
                s2 = (2 * s1) * c1;
                fi = fzPos + i;
                gi = fzPos + k1 - i;
                do {
                    var a, b, g0, f0, f1, g1, f2, g2, f3, g3;
                    b = s2 * fz[fi + k1] - c2 * fz[gi + k1];
                    a = c2 * fz[fi + k1] + s2 * fz[gi + k1];
                    f1 = fz[fi + 0] - a;
                    f0 = fz[fi + 0] + a;
                    g1 = fz[gi + 0] - b;
                    g0 = fz[gi + 0] + b;
                    b = s2 * fz[fi + k3] - c2 * fz[gi + k3];
                    a = c2 * fz[fi + k3] + s2 * fz[gi + k3];
                    f3 = fz[fi + k2] - a;
                    f2 = fz[fi + k2] + a;
                    g3 = fz[gi + k2] - b;
                    g2 = fz[gi + k2] + b;
                    b = s1 * f2 - c1 * g3;
                    a = c1 * f2 + s1 * g3;
                    fz[fi + k2] = f0 - a;
                    fz[fi + 0] = f0 + a;
                    fz[gi + k3] = g1 - b;
                    fz[gi + k1] = g1 + b;
                    b = c1 * g2 - s1 * f3;
                    a = s1 * g2 + c1 * f3;
                    fz[gi + k2] = g0 - a;
                    fz[gi + 0] = g0 + a;
                    fz[fi + k3] = f1 - b;
                    fz[fi + k1] = f1 + b;
                    gi += k4;
                    fi += k4;
                } while (fi < fn);
                c2 = c1;
                c1 = c2 * costab[tri + 0] - s1 * costab[tri + 1];
                s1 = c2 * costab[tri + 1] + s1 * costab[tri + 0];
            }
            tri += 2;
        } while (k4 < n);
    }

    var rv_tbl = [0x00, 0x80, 0x40,
        0xc0, 0x20, 0xa0, 0x60, 0xe0, 0x10,
        0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70,
        0xf0, 0x08, 0x88, 0x48, 0xc8, 0x28,
        0xa8, 0x68, 0xe8, 0x18, 0x98, 0x58,
        0xd8, 0x38, 0xb8, 0x78, 0xf8, 0x04,
        0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64,
        0xe4, 0x14, 0x94, 0x54, 0xd4, 0x34,
        0xb4, 0x74, 0xf4, 0x0c, 0x8c, 0x4c,
        0xcc, 0x2c, 0xac, 0x6c, 0xec, 0x1c,
        0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c,
        0xfc, 0x02, 0x82, 0x42, 0xc2, 0x22,
        0xa2, 0x62, 0xe2, 0x12, 0x92, 0x52,
        0xd2, 0x32, 0xb2, 0x72, 0xf2, 0x0a,
        0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a,
        0xea, 0x1a, 0x9a, 0x5a, 0xda, 0x3a,
        0xba, 0x7a, 0xfa, 0x06, 0x86, 0x46,
        0xc6, 0x26, 0xa6, 0x66, 0xe6, 0x16,
        0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76,
        0xf6, 0x0e, 0x8e, 0x4e, 0xce, 0x2e,
        0xae, 0x6e, 0xee, 0x1e, 0x9e, 0x5e,
        0xde, 0x3e, 0xbe, 0x7e, 0xfe];

    this.fft_short = function (gfc, x_real, chn, buffer, bufPos) {
        for (var b = 0; b < 3; b++) {
            var x = Encoder.BLKSIZE_s / 2;
            var k = 0xffff & ((576 / 3) * (b + 1));
            var j = Encoder.BLKSIZE_s / 8 - 1;
            do {
                var f0, f1, f2, f3, w;
                var i = rv_tbl[j << 2] & 0xff;

                f0 = window_s[i] * buffer[chn][bufPos + i + k];
                w = window_s[0x7f - i] * buffer[chn][bufPos + i + k + 0x80];
                f1 = f0 - w;
                f0 = f0 + w;
                f2 = window_s[i + 0x40] * buffer[chn][bufPos + i + k + 0x40];
                w = window_s[0x3f - i] * buffer[chn][bufPos + i + k + 0xc0];
                f3 = f2 - w;
                f2 = f2 + w;

                x -= 4;
                x_real[b][x + 0] = f0 + f2;
                x_real[b][x + 2] = f0 - f2;
                x_real[b][x + 1] = f1 + f3;
                x_real[b][x + 3] = f1 - f3;

                f0 = window_s[i + 0x01] * buffer[chn][bufPos + i + k + 0x01];
                w = window_s[0x7e - i] * buffer[chn][bufPos + i + k + 0x81];
                f1 = f0 - w;
                f0 = f0 + w;
                f2 = window_s[i + 0x41] * buffer[chn][bufPos + i + k + 0x41];
                w = window_s[0x3e - i] * buffer[chn][bufPos + i + k + 0xc1];
                f3 = f2 - w;
                f2 = f2 + w;

                x_real[b][x + Encoder.BLKSIZE_s / 2 + 0] = f0 + f2;
                x_real[b][x + Encoder.BLKSIZE_s / 2 + 2] = f0 - f2;
                x_real[b][x + Encoder.BLKSIZE_s / 2 + 1] = f1 + f3;
                x_real[b][x + Encoder.BLKSIZE_s / 2 + 3] = f1 - f3;
            } while (--j >= 0);

            fht(x_real[b], x, Encoder.BLKSIZE_s / 2);
            /* BLKSIZE_s/2 because of 3DNow! ASM routine */
            /* BLKSIZE/2 because of 3DNow! ASM routine */
        }
    }

    this.fft_long = function (gfc, y, chn, buffer, bufPos) {
        var jj = Encoder.BLKSIZE / 8 - 1;
        var x = Encoder.BLKSIZE / 2;

        do {
            var f0, f1, f2, f3, w;
            var i = rv_tbl[jj] & 0xff;
            f0 = window[i] * buffer[chn][bufPos + i];
            w = window[i + 0x200] * buffer[chn][bufPos + i + 0x200];
            f1 = f0 - w;
            f0 = f0 + w;
            f2 = window[i + 0x100] * buffer[chn][bufPos + i + 0x100];
            w = window[i + 0x300] * buffer[chn][bufPos + i + 0x300];
            f3 = f2 - w;
            f2 = f2 + w;

            x -= 4;
            y[x + 0] = f0 + f2;
            y[x + 2] = f0 - f2;
            y[x + 1] = f1 + f3;
            y[x + 3] = f1 - f3;

            f0 = window[i + 0x001] * buffer[chn][bufPos + i + 0x001];
            w = window[i + 0x201] * buffer[chn][bufPos + i + 0x201];
            f1 = f0 - w;
            f0 = f0 + w;
            f2 = window[i + 0x101] * buffer[chn][bufPos + i + 0x101];
            w = window[i + 0x301] * buffer[chn][bufPos + i + 0x301];
            f3 = f2 - w;
            f2 = f2 + w;

            y[x + Encoder.BLKSIZE / 2 + 0] = f0 + f2;
            y[x + Encoder.BLKSIZE / 2 + 2] = f0 - f2;
            y[x + Encoder.BLKSIZE / 2 + 1] = f1 + f3;
            y[x + Encoder.BLKSIZE / 2 + 3] = f1 - f3;
        } while (--jj >= 0);

        fht(y, x, Encoder.BLKSIZE / 2);
        /* BLKSIZE/2 because of 3DNow! ASM routine */
    }

    this.init_fft = function (gfc) {
        /* The type of window used here will make no real difference, but */
        /*
         * in the interest of merging nspsytune stuff - switch to blackman
         * window
         */
        for (var i = 0; i < Encoder.BLKSIZE; i++)
            /* blackman window */
            window[i] = (0.42 - 0.5 * Math.cos(2 * Math.PI * (i + .5)
                / Encoder.BLKSIZE) + 0.08 * Math.cos(4 * Math.PI * (i + .5)
                / Encoder.BLKSIZE));

        for (var i = 0; i < Encoder.BLKSIZE_s / 2; i++)
            window_s[i] = (0.5 * (1.0 - Math.cos(2.0 * Math.PI
                * (i + 0.5) / Encoder.BLKSIZE_s)));

    }

}

module.exports = FFT;


/***/ }),

/***/ "./node_modules/lamejs/src/js/GainAnalysis.js":
/*!****************************************************!*\
  !*** ./node_modules/lamejs/src/js/GainAnalysis.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/*
 *  ReplayGainAnalysis - analyzes input samples and give the recommended dB change
 *  Copyright (C) 2001 David Robinson and Glen Sawyer
 *  Improvements and optimizations added by Frank Klemm, and by Marcel Muller 
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License as published by the Free Software Foundation; either
 *  version 2.1 of the License, or (at your option) any later version.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 *  concept and filter values by David Robinson (David@Robinson.org)
 *    -- blame him if you think the idea is flawed
 *  original coding by Glen Sawyer (mp3gain@hotmail.com)
 *    -- blame him if you think this runs too slowly, or the coding is otherwise flawed
 *
 *  lots of code improvements by Frank Klemm ( http://www.uni-jena.de/~pfk/mpp/ )
 *    -- credit him for all the _good_ programming ;)
 *
 *
 *  For an explanation of the concepts and the basic algorithms involved, go to:
 *    http://www.replaygain.org/
 */

/*
 *  Here's the deal. Call
 *
 *    InitGainAnalysis ( long samplefreq );
 *
 *  to initialize everything. Call
 *
 *    AnalyzeSamples ( var Float_t*  left_samples,
 *                     var Float_t*  right_samples,
 *                     size_t          num_samples,
 *                     int             num_channels );
 *
 *  as many times as you want, with as many or as few samples as you want.
 *  If mono, pass the sample buffer in through left_samples, leave
 *  right_samples NULL, and make sure num_channels = 1.
 *
 *    GetTitleGain()
 *
 *  will return the recommended dB level change for all samples analyzed
 *  SINCE THE LAST TIME you called GetTitleGain() OR InitGainAnalysis().
 *
 *    GetAlbumGain()
 *
 *  will return the recommended dB level change for all samples analyzed
 *  since InitGainAnalysis() was called and finalized with GetTitleGain().
 *
 *  Pseudo-code to process an album:
 *
 *    Float_t       l_samples [4096];
 *    Float_t       r_samples [4096];
 *    size_t        num_samples;
 *    unsigned int  num_songs;
 *    unsigned int  i;
 *
 *    InitGainAnalysis ( 44100 );
 *    for ( i = 1; i <= num_songs; i++ ) {
 *        while ( ( num_samples = getSongSamples ( song[i], left_samples, right_samples ) ) > 0 )
 *            AnalyzeSamples ( left_samples, right_samples, num_samples, 2 );
 *        fprintf ("Recommended dB change for song %2d: %+6.2 dB\n", i, GetTitleGain() );
 *    }
 *    fprintf ("Recommended dB change for whole album: %+6.2 dB\n", GetAlbumGain() );
 */

/*
 *  So here's the main source of potential code confusion:
 *
 *  The filters applied to the incoming samples are IIR filters,
 *  meaning they rely on up to <filter order> number of previous samples
 *  AND up to <filter order> number of previous filtered samples.
 *
 *  I set up the AnalyzeSamples routine to minimize memory usage and interface
 *  complexity. The speed isn't compromised too much (I don't think), but the
 *  internal complexity is higher than it should be for such a relatively
 *  simple routine.
 *
 *  Optimization/clarity suggestions are welcome.
 */
var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

/**
 * Table entries per dB
 */
GainAnalysis.STEPS_per_dB = 100.;
/**
 * Table entries for 0...MAX_dB (normal max. values are 70...80 dB)
 */
GainAnalysis.MAX_dB = 120.;
GainAnalysis.GAIN_NOT_ENOUGH_SAMPLES = -24601;
GainAnalysis.GAIN_ANALYSIS_ERROR = 0;
GainAnalysis.GAIN_ANALYSIS_OK = 1;
GainAnalysis.INIT_GAIN_ANALYSIS_ERROR = 0;
GainAnalysis.INIT_GAIN_ANALYSIS_OK = 1;

GainAnalysis.YULE_ORDER = 10;
GainAnalysis.MAX_ORDER = GainAnalysis.YULE_ORDER;

GainAnalysis.MAX_SAMP_FREQ = 48000;
GainAnalysis.RMS_WINDOW_TIME_NUMERATOR = 1;
GainAnalysis.RMS_WINDOW_TIME_DENOMINATOR = 20;
GainAnalysis.MAX_SAMPLES_PER_WINDOW = ((GainAnalysis.MAX_SAMP_FREQ * GainAnalysis.RMS_WINDOW_TIME_NUMERATOR) / GainAnalysis.RMS_WINDOW_TIME_DENOMINATOR + 1);

function GainAnalysis() {
    /**
     * calibration value for 89dB
     */
    var PINK_REF = 64.82;

    var YULE_ORDER = GainAnalysis.YULE_ORDER;
    /**
     * percentile which is louder than the proposed level
     */
    var RMS_PERCENTILE = 0.95;
    /**
     * maximum allowed sample frequency [Hz]
     */
    var MAX_SAMP_FREQ = GainAnalysis.MAX_SAMP_FREQ;
    var RMS_WINDOW_TIME_NUMERATOR = GainAnalysis.RMS_WINDOW_TIME_NUMERATOR;
    /**
     * numerator / denominator = time slice size [s]
     */
    var RMS_WINDOW_TIME_DENOMINATOR = GainAnalysis.RMS_WINDOW_TIME_DENOMINATOR;
    /**
     * max. Samples per Time slice
     */
    var MAX_SAMPLES_PER_WINDOW = GainAnalysis.MAX_SAMPLES_PER_WINDOW;


    var ABYule = [
        [0.03857599435200, -3.84664617118067, -0.02160367184185,
            7.81501653005538, -0.00123395316851, -11.34170355132042,
            -0.00009291677959, 13.05504219327545, -0.01655260341619,
            -12.28759895145294, 0.02161526843274, 9.48293806319790,
            -0.02074045215285, -5.87257861775999, 0.00594298065125,
            2.75465861874613, 0.00306428023191, -0.86984376593551,
            0.00012025322027, 0.13919314567432, 0.00288463683916],
        [0.05418656406430, -3.47845948550071, -0.02911007808948,
            6.36317777566148, -0.00848709379851, -8.54751527471874,
            -0.00851165645469, 9.47693607801280, -0.00834990904936,
            -8.81498681370155, 0.02245293253339, 6.85401540936998,
            -0.02596338512915, -4.39470996079559, 0.01624864962975,
            2.19611684890774, -0.00240879051584, -0.75104302451432,
            0.00674613682247, 0.13149317958808, -0.00187763777362],
        [0.15457299681924, -2.37898834973084, -0.09331049056315,
            2.84868151156327, -0.06247880153653, -2.64577170229825,
            0.02163541888798, 2.23697657451713, -0.05588393329856,
            -1.67148153367602, 0.04781476674921, 1.00595954808547,
            0.00222312597743, -0.45953458054983, 0.03174092540049,
            0.16378164858596, -0.01390589421898, -0.05032077717131,
            0.00651420667831, 0.02347897407020, -0.00881362733839],
        [0.30296907319327, -1.61273165137247, -0.22613988682123,
            1.07977492259970, -0.08587323730772, -0.25656257754070,
            0.03282930172664, -0.16276719120440, -0.00915702933434,
            -0.22638893773906, -0.02364141202522, 0.39120800788284,
            -0.00584456039913, -0.22138138954925, 0.06276101321749,
            0.04500235387352, -0.00000828086748, 0.02005851806501,
            0.00205861885564, 0.00302439095741, -0.02950134983287],
        [0.33642304856132, -1.49858979367799, -0.25572241425570,
            0.87350271418188, -0.11828570177555, 0.12205022308084,
            0.11921148675203, -0.80774944671438, -0.07834489609479,
            0.47854794562326, -0.00469977914380, -0.12453458140019,
            -0.00589500224440, -0.04067510197014, 0.05724228140351,
            0.08333755284107, 0.00832043980773, -0.04237348025746,
            -0.01635381384540, 0.02977207319925, -0.01760176568150],
        [0.44915256608450, -0.62820619233671, -0.14351757464547,
            0.29661783706366, -0.22784394429749, -0.37256372942400,
            -0.01419140100551, 0.00213767857124, 0.04078262797139,
            -0.42029820170918, -0.12398163381748, 0.22199650564824,
            0.04097565135648, 0.00613424350682, 0.10478503600251,
            0.06747620744683, -0.01863887810927, 0.05784820375801,
            -0.03193428438915, 0.03222754072173, 0.00541907748707],
        [0.56619470757641, -1.04800335126349, -0.75464456939302,
            0.29156311971249, 0.16242137742230, -0.26806001042947,
            0.16744243493672, 0.00819999645858, -0.18901604199609,
            0.45054734505008, 0.30931782841830, -0.33032403314006,
            -0.27562961986224, 0.06739368333110, 0.00647310677246,
            -0.04784254229033, 0.08647503780351, 0.01639907836189,
            -0.03788984554840, 0.01807364323573, -0.00588215443421],
        [0.58100494960553, -0.51035327095184, -0.53174909058578,
            -0.31863563325245, -0.14289799034253, -0.20256413484477,
            0.17520704835522, 0.14728154134330, 0.02377945217615,
            0.38952639978999, 0.15558449135573, -0.23313271880868,
            -0.25344790059353, -0.05246019024463, 0.01628462406333,
            -0.02505961724053, 0.06920467763959, 0.02442357316099,
            -0.03721611395801, 0.01818801111503, -0.00749618797172],
        [0.53648789255105, -0.25049871956020, -0.42163034350696,
            -0.43193942311114, -0.00275953611929, -0.03424681017675,
            0.04267842219415, -0.04678328784242, -0.10214864179676,
            0.26408300200955, 0.14590772289388, 0.15113130533216,
            -0.02459864859345, -0.17556493366449, -0.11202315195388,
            -0.18823009262115, -0.04060034127000, 0.05477720428674,
            0.04788665548180, 0.04704409688120, -0.02217936801134]];

    var ABButter = [
        [0.98621192462708, -1.97223372919527, -1.97242384925416,
            0.97261396931306, 0.98621192462708],
        [0.98500175787242, -1.96977855582618, -1.97000351574484,
            0.97022847566350, 0.98500175787242],
        [0.97938932735214, -1.95835380975398, -1.95877865470428,
            0.95920349965459, 0.97938932735214],
        [0.97531843204928, -1.95002759149878, -1.95063686409857,
            0.95124613669835, 0.97531843204928],
        [0.97316523498161, -1.94561023566527, -1.94633046996323,
            0.94705070426118, 0.97316523498161],
        [0.96454515552826, -1.92783286977036, -1.92909031105652,
            0.93034775234268, 0.96454515552826],
        [0.96009142950541, -1.91858953033784, -1.92018285901082,
            0.92177618768381, 0.96009142950541],
        [0.95856916599601, -1.91542108074780, -1.91713833199203,
            0.91885558323625, 0.95856916599601],
        [0.94597685600279, -1.88903307939452, -1.89195371200558,
            0.89487434461664, 0.94597685600279]];


    /**
     * When calling this procedure, make sure that ip[-order] and op[-order]
     * point to real data
     */
    //private void filterYule(final float[] input, int inputPos, float[] output,
    //int outputPos, int nSamples, final float[] kernel) {
    function filterYule(input, inputPos, output, outputPos, nSamples, kernel) {

        while ((nSamples--) != 0) {
            /* 1e-10 is a hack to avoid slowdown because of denormals */
            output[outputPos] = 1e-10 + input[inputPos + 0] * kernel[0]
                - output[outputPos - 1] * kernel[1] + input[inputPos - 1]
                * kernel[2] - output[outputPos - 2] * kernel[3]
                + input[inputPos - 2] * kernel[4] - output[outputPos - 3]
                * kernel[5] + input[inputPos - 3] * kernel[6]
                - output[outputPos - 4] * kernel[7] + input[inputPos - 4]
                * kernel[8] - output[outputPos - 5] * kernel[9]
                + input[inputPos - 5] * kernel[10] - output[outputPos - 6]
                * kernel[11] + input[inputPos - 6] * kernel[12]
                - output[outputPos - 7] * kernel[13] + input[inputPos - 7]
                * kernel[14] - output[outputPos - 8] * kernel[15]
                + input[inputPos - 8] * kernel[16] - output[outputPos - 9]
                * kernel[17] + input[inputPos - 9] * kernel[18]
                - output[outputPos - 10] * kernel[19]
                + input[inputPos - 10] * kernel[20];
            ++outputPos;
            ++inputPos;
        }
    }

//private void filterButter(final float[] input, int inputPos,
//    float[] output, int outputPos, int nSamples, final float[] kernel) {
    function filterButter(input, inputPos, output, outputPos, nSamples, kernel) {

        while ((nSamples--) != 0) {
            output[outputPos] = input[inputPos + 0] * kernel[0]
                - output[outputPos - 1] * kernel[1] + input[inputPos - 1]
                * kernel[2] - output[outputPos - 2] * kernel[3]
                + input[inputPos - 2] * kernel[4];
            ++outputPos;
            ++inputPos;
        }
    }

    /**
     * @return INIT_GAIN_ANALYSIS_OK if successful, INIT_GAIN_ANALYSIS_ERROR if
     *         not
     */
    function ResetSampleFrequency(rgData, samplefreq) {
        /* zero out initial values */
        for (var i = 0; i < MAX_ORDER; i++)
            rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0.;

        switch (0 | (samplefreq)) {
            case 48000:
                rgData.reqindex = 0;
                break;
            case 44100:
                rgData.reqindex = 1;
                break;
            case 32000:
                rgData.reqindex = 2;
                break;
            case 24000:
                rgData.reqindex = 3;
                break;
            case 22050:
                rgData.reqindex = 4;
                break;
            case 16000:
                rgData.reqindex = 5;
                break;
            case 12000:
                rgData.reqindex = 6;
                break;
            case 11025:
                rgData.reqindex = 7;
                break;
            case 8000:
                rgData.reqindex = 8;
                break;
            default:
                return INIT_GAIN_ANALYSIS_ERROR;
        }

        rgData.sampleWindow = 0 | ((samplefreq * RMS_WINDOW_TIME_NUMERATOR
            + RMS_WINDOW_TIME_DENOMINATOR - 1) / RMS_WINDOW_TIME_DENOMINATOR);

        rgData.lsum = 0.;
        rgData.rsum = 0.;
        rgData.totsamp = 0;

        Arrays.ill(rgData.A, 0);

        return INIT_GAIN_ANALYSIS_OK;
    }

    this.InitGainAnalysis = function (rgData, samplefreq) {
        if (ResetSampleFrequency(rgData, samplefreq) != INIT_GAIN_ANALYSIS_OK) {
            return INIT_GAIN_ANALYSIS_ERROR;
        }

        rgData.linpre = MAX_ORDER;
        rgData.rinpre = MAX_ORDER;
        rgData.lstep = MAX_ORDER;
        rgData.rstep = MAX_ORDER;
        rgData.lout = MAX_ORDER;
        rgData.rout = MAX_ORDER;

        Arrays.fill(rgData.B, 0);

        return INIT_GAIN_ANALYSIS_OK;
    };

    /**
     * square
     */
    function fsqr(d) {
        return d * d;
    }

    this.AnalyzeSamples = function (rgData, left_samples, left_samplesPos, right_samples, right_samplesPos, num_samples,
                                    num_channels) {
        var curleft;
        var curleftBase;
        var curright;
        var currightBase;
        var batchsamples;
        var cursamples;
        var cursamplepos;

        if (num_samples == 0)
            return GAIN_ANALYSIS_OK;

        cursamplepos = 0;
        batchsamples = num_samples;

        switch (num_channels) {
            case 1:
                right_samples = left_samples;
                right_samplesPos = left_samplesPos;
                break;
            case 2:
                break;
            default:
                return GAIN_ANALYSIS_ERROR;
        }

        if (num_samples < MAX_ORDER) {
            System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf,
                MAX_ORDER, num_samples);
            System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf,
                MAX_ORDER, num_samples);
        } else {
            System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf,
                MAX_ORDER, MAX_ORDER);
            System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf,
                MAX_ORDER, MAX_ORDER);
        }

        while (batchsamples > 0) {
            cursamples = batchsamples > rgData.sampleWindow - rgData.totsamp ? rgData.sampleWindow
            - rgData.totsamp
                : batchsamples;
            if (cursamplepos < MAX_ORDER) {
                curleft = rgData.linpre + cursamplepos;
                curleftBase = rgData.linprebuf;
                curright = rgData.rinpre + cursamplepos;
                currightBase = rgData.rinprebuf;
                if (cursamples > MAX_ORDER - cursamplepos)
                    cursamples = MAX_ORDER - cursamplepos;
            } else {
                curleft = left_samplesPos + cursamplepos;
                curleftBase = left_samples;
                curright = right_samplesPos + cursamplepos;
                currightBase = right_samples;
            }

            filterYule(curleftBase, curleft, rgData.lstepbuf, rgData.lstep
                + rgData.totsamp, cursamples, ABYule[rgData.reqindex]);
            filterYule(currightBase, curright, rgData.rstepbuf, rgData.rstep
                + rgData.totsamp, cursamples, ABYule[rgData.reqindex]);

            filterButter(rgData.lstepbuf, rgData.lstep + rgData.totsamp,
                rgData.loutbuf, rgData.lout + rgData.totsamp, cursamples,
                ABButter[rgData.reqindex]);
            filterButter(rgData.rstepbuf, rgData.rstep + rgData.totsamp,
                rgData.routbuf, rgData.rout + rgData.totsamp, cursamples,
                ABButter[rgData.reqindex]);

            curleft = rgData.lout + rgData.totsamp;
            /* Get the squared values */
            curleftBase = rgData.loutbuf;
            curright = rgData.rout + rgData.totsamp;
            currightBase = rgData.routbuf;

            var i = cursamples % 8;
            while ((i--) != 0) {
                rgData.lsum += fsqr(curleftBase[curleft++]);
                rgData.rsum += fsqr(currightBase[curright++]);
            }
            i = cursamples / 8;
            while ((i--) != 0) {
                rgData.lsum += fsqr(curleftBase[curleft + 0])
                    + fsqr(curleftBase[curleft + 1])
                    + fsqr(curleftBase[curleft + 2])
                    + fsqr(curleftBase[curleft + 3])
                    + fsqr(curleftBase[curleft + 4])
                    + fsqr(curleftBase[curleft + 5])
                    + fsqr(curleftBase[curleft + 6])
                    + fsqr(curleftBase[curleft + 7]);
                curleft += 8;
                rgData.rsum += fsqr(currightBase[curright + 0])
                    + fsqr(currightBase[curright + 1])
                    + fsqr(currightBase[curright + 2])
                    + fsqr(currightBase[curright + 3])
                    + fsqr(currightBase[curright + 4])
                    + fsqr(currightBase[curright + 5])
                    + fsqr(currightBase[curright + 6])
                    + fsqr(currightBase[curright + 7]);
                curright += 8;
            }

            batchsamples -= cursamples;
            cursamplepos += cursamples;
            rgData.totsamp += cursamples;
            if (rgData.totsamp == rgData.sampleWindow) {
                /* Get the Root Mean Square (RMS) for this set of samples */
                var val = GainAnalysis.STEPS_per_dB
                    * 10.
                    * Math.log10((rgData.lsum + rgData.rsum)
                        / rgData.totsamp * 0.5 + 1.e-37);
                var ival = (val <= 0) ? 0 : 0 | val;
                if (ival >= rgData.A.length)
                    ival = rgData.A.length - 1;
                rgData.A[ival]++;
                rgData.lsum = rgData.rsum = 0.;

                System.arraycopy(rgData.loutbuf, rgData.totsamp,
                    rgData.loutbuf, 0, MAX_ORDER);
                System.arraycopy(rgData.routbuf, rgData.totsamp,
                    rgData.routbuf, 0, MAX_ORDER);
                System.arraycopy(rgData.lstepbuf, rgData.totsamp,
                    rgData.lstepbuf, 0, MAX_ORDER);
                System.arraycopy(rgData.rstepbuf, rgData.totsamp,
                    rgData.rstepbuf, 0, MAX_ORDER);
                rgData.totsamp = 0;
            }
            if (rgData.totsamp > rgData.sampleWindow) {
                /*
                 * somehow I really screwed up: Error in programming! Contact
                 * author about totsamp > sampleWindow
                 */
                return GAIN_ANALYSIS_ERROR;
            }
        }
        if (num_samples < MAX_ORDER) {
            System.arraycopy(rgData.linprebuf, num_samples, rgData.linprebuf,
                0, MAX_ORDER - num_samples);
            System.arraycopy(rgData.rinprebuf, num_samples, rgData.rinprebuf,
                0, MAX_ORDER - num_samples);
            System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf,
                MAX_ORDER - num_samples, num_samples);
            System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf,
                MAX_ORDER - num_samples, num_samples);
        } else {
            System.arraycopy(left_samples, left_samplesPos + num_samples
                - MAX_ORDER, rgData.linprebuf, 0, MAX_ORDER);
            System.arraycopy(right_samples, right_samplesPos + num_samples
                - MAX_ORDER, rgData.rinprebuf, 0, MAX_ORDER);
        }

        return GAIN_ANALYSIS_OK;
    };

    function analyzeResult(Array, len) {
        var i;

        var elems = 0;
        for (i = 0; i < len; i++)
            elems += Array[i];
        if (elems == 0)
            return GAIN_NOT_ENOUGH_SAMPLES;

        var upper = 0 | Math.ceil(elems * (1. - RMS_PERCENTILE));
        for (i = len; i-- > 0;) {
            if ((upper -= Array[i]) <= 0)
                break;
        }

        //return (float) ((float) PINK_REF - (float) i / (float) STEPS_per_dB);
        return (PINK_REF - i / GainAnalysis.STEPS_per_dB);
    }

    this.GetTitleGain = function (rgData) {
        var retval = analyzeResult(rgData.A, rgData.A.length);

        for (var i = 0; i < rgData.A.length; i++) {
            rgData.B[i] += rgData.A[i];
            rgData.A[i] = 0;
        }

        for (var i = 0; i < MAX_ORDER; i++)
            rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0.;

        rgData.totsamp = 0;
        rgData.lsum = rgData.rsum = 0.;
        return retval;
    }

}

module.exports = GainAnalysis;


/***/ }),

/***/ "./node_modules/lamejs/src/js/GrInfo.js":
/*!**********************************************!*\
  !*** ./node_modules/lamejs/src/js/GrInfo.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

//package mp3;
var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var L3Side = __webpack_require__(/*! ./L3Side.js */ "./node_modules/lamejs/src/js/L3Side.js");

function GrInfo() {
    //float xr[] = new float[576];
    this.xr = new_float(576);
    //int l3_enc[] = new int[576];
    this.l3_enc = new_int(576);
    //int scalefac[] = new int[L3Side.SFBMAX];
    this.scalefac = new_int(L3Side.SFBMAX);
    this.xrpow_max = 0.;

    this.part2_3_length = 0;
    this.big_values = 0;
    this.count1 = 0;
    this.global_gain = 0;
    this.scalefac_compress = 0;
    this.block_type = 0;
    this.mixed_block_flag = 0;
    this.table_select = new_int(3);
    this.subblock_gain = new_int(3 + 1);
    this.region0_count = 0;
    this.region1_count = 0;
    this.preflag = 0;
    this.scalefac_scale = 0;
    this.count1table_select = 0;

    this.part2_length = 0;
    this.sfb_lmax = 0;
    this.sfb_smin = 0;
    this.psy_lmax = 0;
    this.sfbmax = 0;
    this.psymax = 0;
    this.sfbdivide = 0;
    this.width = new_int(L3Side.SFBMAX);
    this.window = new_int(L3Side.SFBMAX);
    this.count1bits = 0;
    /**
     * added for LSF
     */
    this.sfb_partition_table = null;
    this.slen = new_int(4);

    this.max_nonzero_coeff = 0;

    var self = this;
    function clone_int(array) {
        return new Int32Array(array);
    }
    function clone_float(array) {
        return new Float32Array(array);
    }
    this.assign = function (other) {
        self.xr = clone_float(other.xr); //.slice(0); //clone();
        self.l3_enc = clone_int(other.l3_enc); //.slice(0); //clone();
        self.scalefac = clone_int(other.scalefac);//.slice(0); //clone();
        self.xrpow_max = other.xrpow_max;

        self.part2_3_length = other.part2_3_length;
        self.big_values = other.big_values;
        self.count1 = other.count1;
        self.global_gain = other.global_gain;
        self.scalefac_compress = other.scalefac_compress;
        self.block_type = other.block_type;
        self.mixed_block_flag = other.mixed_block_flag;
        self.table_select = clone_int(other.table_select);//.slice(0); //clone();
        self.subblock_gain = clone_int(other.subblock_gain); //.slice(0); //.clone();
        self.region0_count = other.region0_count;
        self.region1_count = other.region1_count;
        self.preflag = other.preflag;
        self.scalefac_scale = other.scalefac_scale;
        self.count1table_select = other.count1table_select;

        self.part2_length = other.part2_length;
        self.sfb_lmax = other.sfb_lmax;
        self.sfb_smin = other.sfb_smin;
        self.psy_lmax = other.psy_lmax;
        self.sfbmax = other.sfbmax;
        self.psymax = other.psymax;
        self.sfbdivide = other.sfbdivide;
        self.width = clone_int(other.width); //.slice(0); //.clone();
        self.window = clone_int(other.window); //.slice(0); //.clone();
        self.count1bits = other.count1bits;

        self.sfb_partition_table = other.sfb_partition_table.slice(0); //.clone();
        self.slen = clone_int(other.slen); //.slice(0); //.clone();
        self.max_nonzero_coeff = other.max_nonzero_coeff;
    }
}

module.exports = GrInfo;


/***/ }),

/***/ "./node_modules/lamejs/src/js/IIISideInfo.js":
/*!***************************************************!*\
  !*** ./node_modules/lamejs/src/js/IIISideInfo.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var GrInfo = __webpack_require__(/*! ./GrInfo.js */ "./node_modules/lamejs/src/js/GrInfo.js");

function IIISideInfo() {
    this.tt = [[null, null], [null, null]];
    this.main_data_begin = 0;
    this.private_bits = 0;
    this.resvDrain_pre = 0;
    this.resvDrain_post = 0;
    this.scfsi = [new_int(4), new_int(4)];

    for (var gr = 0; gr < 2; gr++) {
        for (var ch = 0; ch < 2; ch++) {
            this.tt[gr][ch] = new GrInfo();
        }
    }
}

module.exports = IIISideInfo;


/***/ }),

/***/ "./node_modules/lamejs/src/js/III_psy_ratio.js":
/*!*****************************************************!*\
  !*** ./node_modules/lamejs/src/js/III_psy_ratio.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

//package mp3;

var III_psy_xmin = __webpack_require__(/*! ./III_psy_xmin.js */ "./node_modules/lamejs/src/js/III_psy_xmin.js");

function III_psy_ratio() {
	this.thm = new III_psy_xmin();
	this.en = new III_psy_xmin();
}

module.exports = III_psy_ratio;


/***/ }),

/***/ "./node_modules/lamejs/src/js/III_psy_xmin.js":
/*!****************************************************!*\
  !*** ./node_modules/lamejs/src/js/III_psy_xmin.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");
var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

function III_psy_xmin() {
    this.l = new_float(Encoder.SBMAX_l);
    this.s = new_float_n([Encoder.SBMAX_s, 3]);

    var self = this;
    this.assign = function (iii_psy_xmin) {
        System.arraycopy(iii_psy_xmin.l, 0, self.l, 0, Encoder.SBMAX_l);
        for (var i = 0; i < Encoder.SBMAX_s; i++) {
            for (var j = 0; j < 3; j++) {
                self.s[i][j] = iii_psy_xmin.s[i][j];
            }
        }
    }
}

module.exports = III_psy_xmin;


/***/ }),

/***/ "./node_modules/lamejs/src/js/L3Side.js":
/*!**********************************************!*\
  !*** ./node_modules/lamejs/src/js/L3Side.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");

var L3Side = {};


	/**
	 * max scalefactor band, max(SBMAX_l, SBMAX_s*3, (SBMAX_s-3)*3+8)
	 */
L3Side.SFBMAX = (Encoder.SBMAX_s * 3);

module.exports = L3Side;


/***/ }),

/***/ "./node_modules/lamejs/src/js/Lame.js":
/*!********************************************!*\
  !*** ./node_modules/lamejs/src/js/Lame.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var new_short_n = common.new_short_n;
var assert = common.assert;

var PsyModel = __webpack_require__(/*! ./PsyModel.js */ "./node_modules/lamejs/src/js/PsyModel.js");
var LameGlobalFlags = __webpack_require__(/*! ./LameGlobalFlags.js */ "./node_modules/lamejs/src/js/LameGlobalFlags.js");
var LameInternalFlags = __webpack_require__(/*! ./LameInternalFlags.js */ "./node_modules/lamejs/src/js/LameInternalFlags.js");
var ATH = __webpack_require__(/*! ./ATH.js */ "./node_modules/lamejs/src/js/ATH.js");
var ReplayGain = __webpack_require__(/*! ./ReplayGain.js */ "./node_modules/lamejs/src/js/ReplayGain.js");
var CBRNewIterationLoop = __webpack_require__(/*! ./CBRNewIterationLoop.js */ "./node_modules/lamejs/src/js/CBRNewIterationLoop.js");
var BitStream = __webpack_require__(/*! ./BitStream.js */ "./node_modules/lamejs/src/js/BitStream.js");
var Tables = __webpack_require__(/*! ./Tables.js */ "./node_modules/lamejs/src/js/Tables.js");
var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");

function Lame() {
    var self = this;
    var LAME_MAXALBUMART = (128 * 1024);

    Lame.V9 = 410;
    Lame.V8 = 420;
    Lame.V7 = 430;
    Lame.V6 = 440;
    Lame.V5 = 450;
    Lame.V4 = 460;
    Lame.V3 = 470;
    Lame.V2 = 480;
    Lame.V1 = 490;
    Lame.V0 = 500;

    /* still there for compatibility */

    Lame.R3MIX = 1000;
    Lame.STANDARD = 1001;
    Lame.EXTREME = 1002;
    Lame.INSANE = 1003;
    Lame.STANDARD_FAST = 1004;
    Lame.EXTREME_FAST = 1005;
    Lame.MEDIUM = 1006;
    Lame.MEDIUM_FAST = 1007;

    /**
     * maximum size of mp3buffer needed if you encode at most 1152 samples for
     * each call to lame_encode_buffer. see lame_encode_buffer() below
     * (LAME_MAXMP3BUFFER is now obsolete)
     */
    var LAME_MAXMP3BUFFER = (16384 + LAME_MAXALBUMART);
    Lame.LAME_MAXMP3BUFFER = LAME_MAXMP3BUFFER;

    var ga;
    var bs;
    var p;
    var qupvt;
    var qu;
    var psy = new PsyModel();
    var vbr;
    var ver;
    var id3;
    var mpglib;
    this.enc = new Encoder();

    this.setModules = function (_ga, _bs, _p, _qupvt, _qu, _vbr, _ver, _id3, _mpglib) {
        ga = _ga;
        bs = _bs;
        p = _p;
        qupvt = _qupvt;
        qu = _qu;
        vbr = _vbr;
        ver = _ver;
        id3 = _id3;
        mpglib = _mpglib;
        this.enc.setModules(bs, psy, qupvt, vbr);
    }

    /**
     * PSY Model related stuff
     */
    function PSY() {
        /**
         * The dbQ stuff.
         */
        this.mask_adjust = 0.;
        /**
         * The dbQ stuff.
         */
        this.mask_adjust_short = 0.;
        /* at transition from one scalefactor band to next */
        /**
         * Band weight long scalefactor bands.
         */
        this.bo_l_weight = new_float(Encoder.SBMAX_l);
        /**
         * Band weight short scalefactor bands.
         */
        this.bo_s_weight = new_float(Encoder.SBMAX_s);
    }

    function LowPassHighPass() {
        this.lowerlimit = 0.;
    }

    function BandPass(bitrate, lPass) {
        this.lowpass = lPass;
    }

    var LAME_ID = 0xFFF88E3B;

    function lame_init_old(gfp) {
        var gfc;

        gfp.class_id = LAME_ID;

        gfc = gfp.internal_flags = new LameInternalFlags();

        /* Global flags. set defaults here for non-zero values */
        /* see lame.h for description */
        /*
         * set integer values to -1 to mean that LAME will compute the best
         * value, UNLESS the calling program as set it (and the value is no
         * longer -1)
         */

        gfp.mode = MPEGMode.NOT_SET;
        gfp.original = 1;
        gfp.in_samplerate = 44100;
        gfp.num_channels = 2;
        gfp.num_samples = -1;

        gfp.bWriteVbrTag = true;
        gfp.quality = -1;
        gfp.short_blocks = null;
        gfc.subblock_gain = -1;

        gfp.lowpassfreq = 0;
        gfp.highpassfreq = 0;
        gfp.lowpasswidth = -1;
        gfp.highpasswidth = -1;

        gfp.VBR = VbrMode.vbr_off;
        gfp.VBR_q = 4;
        gfp.ATHcurve = -1;
        gfp.VBR_mean_bitrate_kbps = 128;
        gfp.VBR_min_bitrate_kbps = 0;
        gfp.VBR_max_bitrate_kbps = 0;
        gfp.VBR_hard_min = 0;
        gfc.VBR_min_bitrate = 1;
        /* not 0 ????? */
        gfc.VBR_max_bitrate = 13;
        /* not 14 ????? */

        gfp.quant_comp = -1;
        gfp.quant_comp_short = -1;

        gfp.msfix = -1;

        gfc.resample_ratio = 1;

        gfc.OldValue[0] = 180;
        gfc.OldValue[1] = 180;
        gfc.CurrentStep[0] = 4;
        gfc.CurrentStep[1] = 4;
        gfc.masking_lower = 1;
        gfc.nsPsy.attackthre = -1;
        gfc.nsPsy.attackthre_s = -1;

        gfp.scale = -1;

        gfp.athaa_type = -1;
        gfp.ATHtype = -1;
        /* default = -1 = set in lame_init_params */
        gfp.athaa_loudapprox = -1;
        /* 1 = flat loudness approx. (total energy) */
        /* 2 = equal loudness curve */
        gfp.athaa_sensitivity = 0.0;
        /* no offset */
        gfp.useTemporal = null;
        gfp.interChRatio = -1;

        /*
         * The reason for int mf_samples_to_encode = ENCDELAY + POSTDELAY;
         * ENCDELAY = internal encoder delay. And then we have to add
         * POSTDELAY=288 because of the 50% MDCT overlap. A 576 MDCT granule
         * decodes to 1152 samples. To synthesize the 576 samples centered under
         * this granule we need the previous granule for the first 288 samples
         * (no problem), and the next granule for the next 288 samples (not
         * possible if this is last granule). So we need to pad with 288 samples
         * to make sure we can encode the 576 samples we are interested in.
         */
        gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;
        gfp.encoder_padding = 0;
        gfc.mf_size = Encoder.ENCDELAY - Encoder.MDCTDELAY;
        /*
         * we pad input with this many 0's
         */

        gfp.findReplayGain = false;
        gfp.decode_on_the_fly = false;

        gfc.decode_on_the_fly = false;
        gfc.findReplayGain = false;
        gfc.findPeakSample = false;

        gfc.RadioGain = 0;
        gfc.AudiophileGain = 0;
        gfc.noclipGainChange = 0;
        gfc.noclipScale = -1.0;

        gfp.preset = 0;

        gfp.write_id3tag_automatic = true;
        return 0;
    }

    this.lame_init = function () {
        var gfp = new LameGlobalFlags();

        var ret = lame_init_old(gfp);
        if (ret != 0) {
            return null;
        }

        gfp.lame_allocated_gfp = 1;
        return gfp;
    }

    function filter_coef(x) {
        if (x > 1.0)
            return 0.0;
        if (x <= 0.0)
            return 1.0;

        return Math.cos(Math.PI / 2 * x);
    }

    this.nearestBitrateFullIndex = function (bitrate) {
        /* borrowed from DM abr presets */

        var full_bitrate_table = [8, 16, 24, 32, 40, 48, 56, 64, 80,
            96, 112, 128, 160, 192, 224, 256, 320];

        var lower_range = 0, lower_range_kbps = 0, upper_range = 0, upper_range_kbps = 0;

        /* We assume specified bitrate will be 320kbps */
        upper_range_kbps = full_bitrate_table[16];
        upper_range = 16;
        lower_range_kbps = full_bitrate_table[16];
        lower_range = 16;

        /*
         * Determine which significant bitrates the value specified falls
         * between, if loop ends without breaking then we were correct above
         * that the value was 320
         */
        for (var b = 0; b < 16; b++) {
            if ((Math.max(bitrate, full_bitrate_table[b + 1])) != bitrate) {
                upper_range_kbps = full_bitrate_table[b + 1];
                upper_range = b + 1;
                lower_range_kbps = full_bitrate_table[b];
                lower_range = (b);
                break;
                /* We found upper range */
            }
        }

        /* Determine which range the value specified is closer to */
        if ((upper_range_kbps - bitrate) > (bitrate - lower_range_kbps)) {
            return lower_range;
        }
        return upper_range;
    }

    function optimum_samplefreq(lowpassfreq, input_samplefreq) {
        /*
         * Rules:
         *
         * - if possible, sfb21 should NOT be used
         */
        var suggested_samplefreq = 44100;

        if (input_samplefreq >= 48000)
            suggested_samplefreq = 48000;
        else if (input_samplefreq >= 44100)
            suggested_samplefreq = 44100;
        else if (input_samplefreq >= 32000)
            suggested_samplefreq = 32000;
        else if (input_samplefreq >= 24000)
            suggested_samplefreq = 24000;
        else if (input_samplefreq >= 22050)
            suggested_samplefreq = 22050;
        else if (input_samplefreq >= 16000)
            suggested_samplefreq = 16000;
        else if (input_samplefreq >= 12000)
            suggested_samplefreq = 12000;
        else if (input_samplefreq >= 11025)
            suggested_samplefreq = 11025;
        else if (input_samplefreq >= 8000)
            suggested_samplefreq = 8000;

        if (lowpassfreq == -1)
            return suggested_samplefreq;

        if (lowpassfreq <= 15960)
            suggested_samplefreq = 44100;
        if (lowpassfreq <= 15250)
            suggested_samplefreq = 32000;
        if (lowpassfreq <= 11220)
            suggested_samplefreq = 24000;
        if (lowpassfreq <= 9970)
            suggested_samplefreq = 22050;
        if (lowpassfreq <= 7230)
            suggested_samplefreq = 16000;
        if (lowpassfreq <= 5420)
            suggested_samplefreq = 12000;
        if (lowpassfreq <= 4510)
            suggested_samplefreq = 11025;
        if (lowpassfreq <= 3970)
            suggested_samplefreq = 8000;

        if (input_samplefreq < suggested_samplefreq) {
            /*
             * choose a valid MPEG sample frequency above the input sample
             * frequency to avoid SFB21/12 bitrate bloat rh 061115
             */
            if (input_samplefreq > 44100) {
                return 48000;
            }
            if (input_samplefreq > 32000) {
                return 44100;
            }
            if (input_samplefreq > 24000) {
                return 32000;
            }
            if (input_samplefreq > 22050) {
                return 24000;
            }
            if (input_samplefreq > 16000) {
                return 22050;
            }
            if (input_samplefreq > 12000) {
                return 16000;
            }
            if (input_samplefreq > 11025) {
                return 12000;
            }
            if (input_samplefreq > 8000) {
                return 11025;
            }
            return 8000;
        }
        return suggested_samplefreq;
    }

    /**
     * convert samp freq in Hz to index
     */
    function SmpFrqIndex(sample_freq, gpf) {
        switch (sample_freq) {
            case 44100:
                gpf.version = 1;
                return 0;
            case 48000:
                gpf.version = 1;
                return 1;
            case 32000:
                gpf.version = 1;
                return 2;
            case 22050:
                gpf.version = 0;
                return 0;
            case 24000:
                gpf.version = 0;
                return 1;
            case 16000:
                gpf.version = 0;
                return 2;
            case 11025:
                gpf.version = 0;
                return 0;
            case 12000:
                gpf.version = 0;
                return 1;
            case 8000:
                gpf.version = 0;
                return 2;
            default:
                gpf.version = 0;
                return -1;
        }
    }

    /**
     * @param bRate
     *            legal rates from 8 to 320
     */
    function FindNearestBitrate(bRate, version, samplerate) {
        /* MPEG-1 or MPEG-2 LSF */
        if (samplerate < 16000)
            version = 2;

        var bitrate = Tables.bitrate_table[version][1];

        for (var i = 2; i <= 14; i++) {
            if (Tables.bitrate_table[version][i] > 0) {
                if (Math.abs(Tables.bitrate_table[version][i] - bRate) < Math
                        .abs(bitrate - bRate))
                    bitrate = Tables.bitrate_table[version][i];
            }
        }
        return bitrate;
    }

    /**
     * @param bRate
     *            legal rates from 32 to 448 kbps
     * @param version
     *            MPEG-1 or MPEG-2/2.5 LSF
     */
    function BitrateIndex(bRate, version, samplerate) {
        /* convert bitrate in kbps to index */
        if (samplerate < 16000)
            version = 2;
        for (var i = 0; i <= 14; i++) {
            if (Tables.bitrate_table[version][i] > 0) {
                if (Tables.bitrate_table[version][i] == bRate) {
                    return i;
                }
            }
        }
        return -1;
    }

    function optimum_bandwidth(lh, bitrate) {
        /**
         * <PRE>
         *  Input:
         *      bitrate     total bitrate in kbps
         *
         *   Output:
         *      lowerlimit: best lowpass frequency limit for input filter in Hz
         *      upperlimit: best highpass frequency limit for input filter in Hz
         * </PRE>
         */
        var freq_map = [new BandPass(8, 2000),
            new BandPass(16, 3700), new BandPass(24, 3900),
            new BandPass(32, 5500), new BandPass(40, 7000),
            new BandPass(48, 7500), new BandPass(56, 10000),
            new BandPass(64, 11000), new BandPass(80, 13500),
            new BandPass(96, 15100), new BandPass(112, 15600),
            new BandPass(128, 17000), new BandPass(160, 17500),
            new BandPass(192, 18600), new BandPass(224, 19400),
            new BandPass(256, 19700), new BandPass(320, 20500)];

        var table_index = self.nearestBitrateFullIndex(bitrate);
        lh.lowerlimit = freq_map[table_index].lowpass;
    }

    function lame_init_params_ppflt(gfp) {
        var gfc = gfp.internal_flags;
        /***************************************************************/
        /* compute info needed for polyphase filter (filter type==0, default) */
        /***************************************************************/

        var lowpass_band = 32;
        var highpass_band = -1;

        if (gfc.lowpass1 > 0) {
            var minband = 999;
            for (var band = 0; band <= 31; band++) {
                var freq = (band / 31.0);
                /* this band and above will be zeroed: */
                if (freq >= gfc.lowpass2) {
                    lowpass_band = Math.min(lowpass_band, band);
                }
                if (gfc.lowpass1 < freq && freq < gfc.lowpass2) {
                    minband = Math.min(minband, band);
                }
            }

            /*
             * compute the *actual* transition band implemented by the polyphase
             * filter
             */
            if (minband == 999) {
                gfc.lowpass1 = (lowpass_band - .75) / 31.0;
            } else {
                gfc.lowpass1 = (minband - .75) / 31.0;
            }
            gfc.lowpass2 = lowpass_band / 31.0;
        }

        /*
         * make sure highpass filter is within 90% of what the effective
         * highpass frequency will be
         */
        if (gfc.highpass2 > 0) {
            if (gfc.highpass2 < .9 * (.75 / 31.0)) {
                gfc.highpass1 = 0;
                gfc.highpass2 = 0;
                System.err.println("Warning: highpass filter disabled.  "
                    + "highpass frequency too small\n");
            }
        }

        if (gfc.highpass2 > 0) {
            var maxband = -1;
            for (var band = 0; band <= 31; band++) {
                var freq = band / 31.0;
                /* this band and below will be zereod */
                if (freq <= gfc.highpass1) {
                    highpass_band = Math.max(highpass_band, band);
                }
                if (gfc.highpass1 < freq && freq < gfc.highpass2) {
                    maxband = Math.max(maxband, band);
                }
            }
            /*
             * compute the *actual* transition band implemented by the polyphase
             * filter
             */
            gfc.highpass1 = highpass_band / 31.0;
            if (maxband == -1) {
                gfc.highpass2 = (highpass_band + .75) / 31.0;
            } else {
                gfc.highpass2 = (maxband + .75) / 31.0;
            }
        }

        for (var band = 0; band < 32; band++) {
            var fc1, fc2;
            var freq = band / 31.0;
            if (gfc.highpass2 > gfc.highpass1) {
                fc1 = filter_coef((gfc.highpass2 - freq)
                    / (gfc.highpass2 - gfc.highpass1 + 1e-20));
            } else {
                fc1 = 1.0;
            }
            if (gfc.lowpass2 > gfc.lowpass1) {
                fc2 = filter_coef((freq - gfc.lowpass1)
                    / (gfc.lowpass2 - gfc.lowpass1 + 1e-20));
            } else {
                fc2 = 1.0;
            }
            gfc.amp_filter[band] = (fc1 * fc2);
        }
    }

    function lame_init_qval(gfp) {
        var gfc = gfp.internal_flags;

        switch (gfp.quality) {
            default:
            case 9: /* no psymodel, no noise shaping */
                gfc.psymodel = 0;
                gfc.noise_shaping = 0;
                gfc.noise_shaping_amp = 0;
                gfc.noise_shaping_stop = 0;
                gfc.use_best_huffman = 0;
                gfc.full_outer_loop = 0;
                break;

            case 8:
                gfp.quality = 7;
            //$FALL-THROUGH$
            case 7:
                /*
                 * use psymodel (for short block and m/s switching), but no noise
                 * shapping
                 */
                gfc.psymodel = 1;
                gfc.noise_shaping = 0;
                gfc.noise_shaping_amp = 0;
                gfc.noise_shaping_stop = 0;
                gfc.use_best_huffman = 0;
                gfc.full_outer_loop = 0;
                break;

            case 6:
                gfc.psymodel = 1;
                if (gfc.noise_shaping == 0)
                    gfc.noise_shaping = 1;
                gfc.noise_shaping_amp = 0;
                gfc.noise_shaping_stop = 0;
                if (gfc.subblock_gain == -1)
                    gfc.subblock_gain = 1;
                gfc.use_best_huffman = 0;
                gfc.full_outer_loop = 0;
                break;

            case 5:
                gfc.psymodel = 1;
                if (gfc.noise_shaping == 0)
                    gfc.noise_shaping = 1;
                gfc.noise_shaping_amp = 0;
                gfc.noise_shaping_stop = 0;
                if (gfc.subblock_gain == -1)
                    gfc.subblock_gain = 1;
                gfc.use_best_huffman = 0;
                gfc.full_outer_loop = 0;
                break;

            case 4:
                gfc.psymodel = 1;
                if (gfc.noise_shaping == 0)
                    gfc.noise_shaping = 1;
                gfc.noise_shaping_amp = 0;
                gfc.noise_shaping_stop = 0;
                if (gfc.subblock_gain == -1)
                    gfc.subblock_gain = 1;
                gfc.use_best_huffman = 1;
                gfc.full_outer_loop = 0;
                break;

            case 3:
                gfc.psymodel = 1;
                if (gfc.noise_shaping == 0)
                    gfc.noise_shaping = 1;
                gfc.noise_shaping_amp = 1;
                gfc.noise_shaping_stop = 1;
                if (gfc.subblock_gain == -1)
                    gfc.subblock_gain = 1;
                gfc.use_best_huffman = 1;
                gfc.full_outer_loop = 0;
                break;

            case 2:
                gfc.psymodel = 1;
                if (gfc.noise_shaping == 0)
                    gfc.noise_shaping = 1;
                if (gfc.substep_shaping == 0)
                    gfc.substep_shaping = 2;
                gfc.noise_shaping_amp = 1;
                gfc.noise_shaping_stop = 1;
                if (gfc.subblock_gain == -1)
                    gfc.subblock_gain = 1;
                gfc.use_best_huffman = 1;
                /* inner loop */
                gfc.full_outer_loop = 0;
                break;

            case 1:
                gfc.psymodel = 1;
                if (gfc.noise_shaping == 0)
                    gfc.noise_shaping = 1;
                if (gfc.substep_shaping == 0)
                    gfc.substep_shaping = 2;
                gfc.noise_shaping_amp = 2;
                gfc.noise_shaping_stop = 1;
                if (gfc.subblock_gain == -1)
                    gfc.subblock_gain = 1;
                gfc.use_best_huffman = 1;
                gfc.full_outer_loop = 0;
                break;

            case 0:
                gfc.psymodel = 1;
                if (gfc.noise_shaping == 0)
                    gfc.noise_shaping = 1;
                if (gfc.substep_shaping == 0)
                    gfc.substep_shaping = 2;
                gfc.noise_shaping_amp = 2;
                gfc.noise_shaping_stop = 1;
                if (gfc.subblock_gain == -1)
                    gfc.subblock_gain = 1;
                gfc.use_best_huffman = 1;
                /*
                 * type 2 disabled because of it slowness, in favor of full outer
                 * loop search
                 */
                gfc.full_outer_loop = 0;
                /*
                 * full outer loop search disabled because of audible distortions it
                 * may generate rh 060629
                 */
                break;
        }

    }

    function lame_init_bitstream(gfp) {
        var gfc = gfp.internal_flags;
        gfp.frameNum = 0;

        if (gfp.write_id3tag_automatic) {
            id3.id3tag_write_v2(gfp);
        }
        /* initialize histogram data optionally used by frontend */

        gfc.bitrate_stereoMode_Hist = new_int_n([16, 4 + 1]);
        gfc.bitrate_blockType_Hist = new_int_n([16, 4 + 1 + 1]);

        gfc.PeakSample = 0.0;

        /* Write initial VBR Header to bitstream and init VBR data */
        if (gfp.bWriteVbrTag)
            vbr.InitVbrTag(gfp);
    }

    /********************************************************************
     * initialize internal params based on data in gf (globalflags struct filled
     * in by calling program)
     *
     * OUTLINE:
     *
     * We first have some complex code to determine bitrate, output samplerate
     * and mode. It is complicated by the fact that we allow the user to set
     * some or all of these parameters, and need to determine best possible
     * values for the rest of them:
     *
     * 1. set some CPU related flags 2. check if we are mono.mono, stereo.mono
     * or stereo.stereo 3. compute bitrate and output samplerate: user may have
     * set compression ratio user may have set a bitrate user may have set a
     * output samplerate 4. set some options which depend on output samplerate
     * 5. compute the actual compression ratio 6. set mode based on compression
     * ratio
     *
     * The remaining code is much simpler - it just sets options based on the
     * mode & compression ratio:
     *
     * set allow_diff_short based on mode select lowpass filter based on
     * compression ratio & mode set the bitrate index, and min/max bitrates for
     * VBR modes disable VBR tag if it is not appropriate initialize the
     * bitstream initialize scalefac_band data set sideinfo_len (based on
     * channels, CRC, out_samplerate) write an id3v2 tag into the bitstream
     * write VBR tag into the bitstream set mpeg1/2 flag estimate the number of
     * frames (based on a lot of data)
     *
     * now we set more flags: nspsytune: see code VBR modes see code CBR/ABR see
     * code
     *
     * Finally, we set the algorithm flags based on the gfp.quality value
     * lame_init_qval(gfp);
     *
     ********************************************************************/
    this.lame_init_params = function (gfp) {
        var gfc = gfp.internal_flags;

        gfc.Class_ID = 0;
        if (gfc.ATH == null)
            gfc.ATH = new ATH();
        if (gfc.PSY == null)
            gfc.PSY = new PSY();
        if (gfc.rgdata == null)
            gfc.rgdata = new ReplayGain();

        gfc.channels_in = gfp.num_channels;
        if (gfc.channels_in == 1)
            gfp.mode = MPEGMode.MONO;
        gfc.channels_out = (gfp.mode == MPEGMode.MONO) ? 1 : 2;
        gfc.mode_ext = Encoder.MPG_MD_MS_LR;
        if (gfp.mode == MPEGMode.MONO)
            gfp.force_ms = false;
        /*
         * don't allow forced mid/side stereo for mono output
         */

        if (gfp.VBR == VbrMode.vbr_off && gfp.VBR_mean_bitrate_kbps != 128
            && gfp.brate == 0)
            gfp.brate = gfp.VBR_mean_bitrate_kbps;

        if (gfp.VBR == VbrMode.vbr_off || gfp.VBR == VbrMode.vbr_mtrh
            || gfp.VBR == VbrMode.vbr_mt) {
            /* these modes can handle free format condition */
        } else {
            gfp.free_format = false;
            /* mode can't be mixed with free format */
        }

        if (gfp.VBR == VbrMode.vbr_off && gfp.brate == 0) {
            /* no bitrate or compression ratio specified, use 11.025 */
            if (BitStream.EQ(gfp.compression_ratio, 0))
                gfp.compression_ratio = 11.025;
            /*
             * rate to compress a CD down to exactly 128000 bps
             */
        }

        /* find bitrate if user specify a compression ratio */
        if (gfp.VBR == VbrMode.vbr_off && gfp.compression_ratio > 0) {

            if (gfp.out_samplerate == 0)
                gfp.out_samplerate = map2MP3Frequency((int)(0.97 * gfp.in_samplerate));
            /*
             * round up with a margin of 3 %
             */

            /*
             * choose a bitrate for the output samplerate which achieves
             * specified compression ratio
             */
            gfp.brate = 0 | (gfp.out_samplerate * 16 * gfc.channels_out / (1.e3 * gfp.compression_ratio));

            /* we need the version for the bitrate table look up */
            gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);

            if (!gfp.free_format) /*
             * for non Free Format find the nearest allowed
             * bitrate
             */
                gfp.brate = FindNearestBitrate(gfp.brate, gfp.version,
                    gfp.out_samplerate);
        }

        if (gfp.out_samplerate != 0) {
            if (gfp.out_samplerate < 16000) {
                gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps,
                    8);
                gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps,
                    64);
            } else if (gfp.out_samplerate < 32000) {
                gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps,
                    8);
                gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps,
                    160);
            } else {
                gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps,
                    32);
                gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps,
                    320);
            }
        }

        /****************************************************************/
        /* if a filter has not been enabled, see if we should add one: */
        /****************************************************************/
        if (gfp.lowpassfreq == 0) {
            var lowpass = 16000.;

            switch (gfp.VBR) {
                case VbrMode.vbr_off:
                {
                    var lh = new LowPassHighPass();
                    optimum_bandwidth(lh, gfp.brate);
                    lowpass = lh.lowerlimit;
                    break;
                }
                case VbrMode.vbr_abr:
                {
                    var lh = new LowPassHighPass();
                    optimum_bandwidth(lh, gfp.VBR_mean_bitrate_kbps);
                    lowpass = lh.lowerlimit;
                    break;
                }
                case VbrMode.vbr_rh:
                {
                    var x = [19500, 19000, 18600, 18000, 17500, 16000,
                        15600, 14900, 12500, 10000, 3950];
                    if (0 <= gfp.VBR_q && gfp.VBR_q <= 9) {
                        var a = x[gfp.VBR_q], b = x[gfp.VBR_q + 1], m = gfp.VBR_q_frac;
                        lowpass = linear_int(a, b, m);
                    } else {
                        lowpass = 19500;
                    }
                    break;
                }
                default:
                {
                    var x = [19500, 19000, 18500, 18000, 17500, 16500,
                        15500, 14500, 12500, 9500, 3950];
                    if (0 <= gfp.VBR_q && gfp.VBR_q <= 9) {
                        var a = x[gfp.VBR_q], b = x[gfp.VBR_q + 1], m = gfp.VBR_q_frac;
                        lowpass = linear_int(a, b, m);
                    } else {
                        lowpass = 19500;
                    }
                }
            }
            if (gfp.mode == MPEGMode.MONO
                && (gfp.VBR == VbrMode.vbr_off || gfp.VBR == VbrMode.vbr_abr))
                lowpass *= 1.5;

            gfp.lowpassfreq = lowpass | 0;
        }

        if (gfp.out_samplerate == 0) {
            if (2 * gfp.lowpassfreq > gfp.in_samplerate) {
                gfp.lowpassfreq = gfp.in_samplerate / 2;
            }
            gfp.out_samplerate = optimum_samplefreq(gfp.lowpassfreq | 0,
                gfp.in_samplerate);
        }

        gfp.lowpassfreq = Math.min(20500, gfp.lowpassfreq);
        gfp.lowpassfreq = Math.min(gfp.out_samplerate / 2, gfp.lowpassfreq);

        if (gfp.VBR == VbrMode.vbr_off) {
            gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out
                / (1.e3 * gfp.brate);
        }
        if (gfp.VBR == VbrMode.vbr_abr) {
            gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out
                / (1.e3 * gfp.VBR_mean_bitrate_kbps);
        }

        /*
         * do not compute ReplayGain values and do not find the peak sample if
         * we can't store them
         */
        if (!gfp.bWriteVbrTag) {
            gfp.findReplayGain = false;
            gfp.decode_on_the_fly = false;
            gfc.findPeakSample = false;
        }
        gfc.findReplayGain = gfp.findReplayGain;
        gfc.decode_on_the_fly = gfp.decode_on_the_fly;

        if (gfc.decode_on_the_fly)
            gfc.findPeakSample = true;

        if (gfc.findReplayGain) {
            if (ga.InitGainAnalysis(gfc.rgdata, gfp.out_samplerate) == GainAnalysis.INIT_GAIN_ANALYSIS_ERROR) {
                gfp.internal_flags = null;
                return -6;
            }
        }

        if (gfc.decode_on_the_fly && !gfp.decode_only) {
            if (gfc.hip != null) {
                mpglib.hip_decode_exit(gfc.hip);
            }
            gfc.hip = mpglib.hip_decode_init();
        }

        gfc.mode_gr = gfp.out_samplerate <= 24000 ? 1 : 2;
        /*
         * Number of granules per frame
         */
        gfp.framesize = 576 * gfc.mode_gr;
        gfp.encoder_delay = Encoder.ENCDELAY;

        gfc.resample_ratio = gfp.in_samplerate / gfp.out_samplerate;

        /**
         * <PRE>
         *  sample freq       bitrate     compression ratio
         *     [kHz]      [kbps/channel]   for 16 bit input
         *     44.1            56               12.6
         *     44.1            64               11.025
         *     44.1            80                8.82
         *     22.05           24               14.7
         *     22.05           32               11.025
         *     22.05           40                8.82
         *     16              16               16.0
         *     16              24               10.667
         * </PRE>
         */
        /**
         * <PRE>
         *  For VBR, take a guess at the compression_ratio.
         *  For example:
         *
         *    VBR_q    compression     like
         *     -        4.4         320 kbps/44 kHz
         *   0...1      5.5         256 kbps/44 kHz
         *     2        7.3         192 kbps/44 kHz
         *     4        8.8         160 kbps/44 kHz
         *     6       11           128 kbps/44 kHz
         *     9       14.7          96 kbps
         *
         *  for lower bitrates, downsample with --resample
         * </PRE>
         */
        switch (gfp.VBR) {
            case VbrMode.vbr_mt:
            case VbrMode.vbr_rh:
            case VbrMode.vbr_mtrh:
            {
                /* numbers are a bit strange, but they determine the lowpass value */
                var cmp = [5.7, 6.5, 7.3, 8.2, 10, 11.9, 13, 14,
                    15, 16.5];
                gfp.compression_ratio = cmp[gfp.VBR_q];
            }
                break;
            case VbrMode.vbr_abr:
                gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out
                    / (1.e3 * gfp.VBR_mean_bitrate_kbps);
                break;
            default:
                gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out
                    / (1.e3 * gfp.brate);
                break;
        }

        /*
         * mode = -1 (not set by user) or mode = MONO (because of only 1 input
         * channel). If mode has not been set, then select J-STEREO
         */
        if (gfp.mode == MPEGMode.NOT_SET) {
            gfp.mode = MPEGMode.JOINT_STEREO;
        }

        /* apply user driven high pass filter */
        if (gfp.highpassfreq > 0) {
            gfc.highpass1 = 2. * gfp.highpassfreq;

            if (gfp.highpasswidth >= 0)
                gfc.highpass2 = 2. * (gfp.highpassfreq + gfp.highpasswidth);
            else
            /* 0% above on default */
                gfc.highpass2 = (1 + 0.00) * 2. * gfp.highpassfreq;

            gfc.highpass1 /= gfp.out_samplerate;
            gfc.highpass2 /= gfp.out_samplerate;
        } else {
            gfc.highpass1 = 0;
            gfc.highpass2 = 0;
        }
        /* apply user driven low pass filter */
        if (gfp.lowpassfreq > 0) {
            gfc.lowpass2 = 2. * gfp.lowpassfreq;
            if (gfp.lowpasswidth >= 0) {
                gfc.lowpass1 = 2. * (gfp.lowpassfreq - gfp.lowpasswidth);
                if (gfc.lowpass1 < 0) /* has to be >= 0 */
                    gfc.lowpass1 = 0;
            } else { /* 0% below on default */
                gfc.lowpass1 = (1 - 0.00) * 2. * gfp.lowpassfreq;
            }
            gfc.lowpass1 /= gfp.out_samplerate;
            gfc.lowpass2 /= gfp.out_samplerate;
        } else {
            gfc.lowpass1 = 0;
            gfc.lowpass2 = 0;
        }

        /**********************************************************************/
        /* compute info needed for polyphase filter (filter type==0, default) */
        /**********************************************************************/
        lame_init_params_ppflt(gfp);
        /*******************************************************
         * samplerate and bitrate index
         *******************************************************/
        gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);
        if (gfc.samplerate_index < 0) {
            gfp.internal_flags = null;
            return -1;
        }

        if (gfp.VBR == VbrMode.vbr_off) {
            if (gfp.free_format) {
                gfc.bitrate_index = 0;
            } else {
                gfp.brate = FindNearestBitrate(gfp.brate, gfp.version,
                    gfp.out_samplerate);
                gfc.bitrate_index = BitrateIndex(gfp.brate, gfp.version,
                    gfp.out_samplerate);
                if (gfc.bitrate_index <= 0) {
                    gfp.internal_flags = null;
                    return -1;
                }
            }
        } else {
            gfc.bitrate_index = 1;
        }

        /* for CBR, we will write an "info" tag. */

        if (gfp.analysis)
            gfp.bWriteVbrTag = false;

        /* some file options not allowed if output is: not specified or stdout */
        if (gfc.pinfo != null)
            gfp.bWriteVbrTag = false;
        /* disable Xing VBR tag */

        bs.init_bit_stream_w(gfc);

        var j = gfc.samplerate_index + (3 * gfp.version) + 6
            * (gfp.out_samplerate < 16000 ? 1 : 0);
        for (var i = 0; i < Encoder.SBMAX_l + 1; i++)
            gfc.scalefac_band.l[i] = qupvt.sfBandIndex[j].l[i];

        for (var i = 0; i < Encoder.PSFB21 + 1; i++) {
            var size = (gfc.scalefac_band.l[22] - gfc.scalefac_band.l[21])
                / Encoder.PSFB21;
            var start = gfc.scalefac_band.l[21] + i * size;
            gfc.scalefac_band.psfb21[i] = start;
        }
        gfc.scalefac_band.psfb21[Encoder.PSFB21] = 576;

        for (var i = 0; i < Encoder.SBMAX_s + 1; i++)
            gfc.scalefac_band.s[i] = qupvt.sfBandIndex[j].s[i];

        for (var i = 0; i < Encoder.PSFB12 + 1; i++) {
            var size = (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12])
                / Encoder.PSFB12;
            var start = gfc.scalefac_band.s[12] + i * size;
            gfc.scalefac_band.psfb12[i] = start;
        }
        gfc.scalefac_band.psfb12[Encoder.PSFB12] = 192;
        /* determine the mean bitrate for main data */
        if (gfp.version == 1) /* MPEG 1 */
            gfc.sideinfo_len = (gfc.channels_out == 1) ? 4 + 17 : 4 + 32;
        else
        /* MPEG 2 */
            gfc.sideinfo_len = (gfc.channels_out == 1) ? 4 + 9 : 4 + 17;

        if (gfp.error_protection)
            gfc.sideinfo_len += 2;

        lame_init_bitstream(gfp);

        gfc.Class_ID = LAME_ID;

        {
            var k;

            for (k = 0; k < 19; k++)
                gfc.nsPsy.pefirbuf[k] = 700 * gfc.mode_gr * gfc.channels_out;

            if (gfp.ATHtype == -1)
                gfp.ATHtype = 4;
        }
        assert(gfp.VBR_q <= 9);
        assert(gfp.VBR_q >= 0);

        switch (gfp.VBR) {

            case VbrMode.vbr_mt:
                gfp.VBR = VbrMode.vbr_mtrh;
            //$FALL-THROUGH$
            case VbrMode.vbr_mtrh:
            {
                if (gfp.useTemporal == null) {
                    gfp.useTemporal = false;
                    /* off by default for this VBR mode */
                }

                p.apply_preset(gfp, 500 - (gfp.VBR_q * 10), 0);
                /**
                 * <PRE>
                 *   The newer VBR code supports only a limited
                 *     subset of quality levels:
                 *     9-5=5 are the same, uses x^3/4 quantization
                 *   4-0=0 are the same  5 plus best huffman divide code
                 * </PRE>
                 */
                if (gfp.quality < 0)
                    gfp.quality = LAME_DEFAULT_QUALITY;
                if (gfp.quality < 5)
                    gfp.quality = 0;
                if (gfp.quality > 5)
                    gfp.quality = 5;

                gfc.PSY.mask_adjust = gfp.maskingadjust;
                gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;

                /*
                 * sfb21 extra only with MPEG-1 at higher sampling rates
                 */
                if (gfp.experimentalY)
                    gfc.sfb21_extra = false;
                else
                    gfc.sfb21_extra = (gfp.out_samplerate > 44000);

                gfc.iteration_loop = new VBRNewIterationLoop(qu);
                break;

            }
            case VbrMode.vbr_rh:
            {

                p.apply_preset(gfp, 500 - (gfp.VBR_q * 10), 0);

                gfc.PSY.mask_adjust = gfp.maskingadjust;
                gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;

                /*
                 * sfb21 extra only with MPEG-1 at higher sampling rates
                 */
                if (gfp.experimentalY)
                    gfc.sfb21_extra = false;
                else
                    gfc.sfb21_extra = (gfp.out_samplerate > 44000);

                /*
                 * VBR needs at least the output of GPSYCHO, so we have to garantee
                 * that by setting a minimum quality level, actually level 6 does
                 * it. down to level 6
                 */
                if (gfp.quality > 6)
                    gfp.quality = 6;

                if (gfp.quality < 0)
                    gfp.quality = LAME_DEFAULT_QUALITY;

                gfc.iteration_loop = new VBROldIterationLoop(qu);
                break;
            }

            default: /* cbr/abr */
            {
                var vbrmode;

                /*
                 * no sfb21 extra with CBR code
                 */
                gfc.sfb21_extra = false;

                if (gfp.quality < 0)
                    gfp.quality = LAME_DEFAULT_QUALITY;

                vbrmode = gfp.VBR;
                if (vbrmode == VbrMode.vbr_off)
                    gfp.VBR_mean_bitrate_kbps = gfp.brate;
                /* second, set parameters depending on bitrate */
                p.apply_preset(gfp, gfp.VBR_mean_bitrate_kbps, 0);
                gfp.VBR = vbrmode;

                gfc.PSY.mask_adjust = gfp.maskingadjust;
                gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;

                if (vbrmode == VbrMode.vbr_off) {
                    gfc.iteration_loop = new CBRNewIterationLoop(qu);
                } else {
                    gfc.iteration_loop = new ABRIterationLoop(qu);
                }
                break;
            }
        }
        assert(gfp.scale >= 0);
        /* initialize default values common for all modes */

        if (gfp.VBR != VbrMode.vbr_off) { /* choose a min/max bitrate for VBR */
            /* if the user didn't specify VBR_max_bitrate: */
            gfc.VBR_min_bitrate = 1;
            /*
             * default: allow 8 kbps (MPEG-2) or 32 kbps (MPEG-1)
             */
            gfc.VBR_max_bitrate = 14;
            /*
             * default: allow 160 kbps (MPEG-2) or 320 kbps (MPEG-1)
             */
            if (gfp.out_samplerate < 16000)
                gfc.VBR_max_bitrate = 8;
            /* default: allow 64 kbps (MPEG-2.5) */
            if (gfp.VBR_min_bitrate_kbps != 0) {
                gfp.VBR_min_bitrate_kbps = FindNearestBitrate(
                    gfp.VBR_min_bitrate_kbps, gfp.version,
                    gfp.out_samplerate);
                gfc.VBR_min_bitrate = BitrateIndex(gfp.VBR_min_bitrate_kbps,
                    gfp.version, gfp.out_samplerate);
                if (gfc.VBR_min_bitrate < 0)
                    return -1;
            }
            if (gfp.VBR_max_bitrate_kbps != 0) {
                gfp.VBR_max_bitrate_kbps = FindNearestBitrate(
                    gfp.VBR_max_bitrate_kbps, gfp.version,
                    gfp.out_samplerate);
                gfc.VBR_max_bitrate = BitrateIndex(gfp.VBR_max_bitrate_kbps,
                    gfp.version, gfp.out_samplerate);
                if (gfc.VBR_max_bitrate < 0)
                    return -1;
            }
            gfp.VBR_min_bitrate_kbps = Tables.bitrate_table[gfp.version][gfc.VBR_min_bitrate];
            gfp.VBR_max_bitrate_kbps = Tables.bitrate_table[gfp.version][gfc.VBR_max_bitrate];
            gfp.VBR_mean_bitrate_kbps = Math.min(
                Tables.bitrate_table[gfp.version][gfc.VBR_max_bitrate],
                gfp.VBR_mean_bitrate_kbps);
            gfp.VBR_mean_bitrate_kbps = Math.max(
                Tables.bitrate_table[gfp.version][gfc.VBR_min_bitrate],
                gfp.VBR_mean_bitrate_kbps);
        }

        /* just another daily changing developer switch */
        if (gfp.tune) {
            gfc.PSY.mask_adjust += gfp.tune_value_a;
            gfc.PSY.mask_adjust_short += gfp.tune_value_a;
        }

        /* initialize internal qval settings */
        lame_init_qval(gfp);
        assert(gfp.scale >= 0);
        /*
         * automatic ATH adjustment on
         */
        if (gfp.athaa_type < 0)
            gfc.ATH.useAdjust = 3;
        else
            gfc.ATH.useAdjust = gfp.athaa_type;

        /* initialize internal adaptive ATH settings -jd */
        gfc.ATH.aaSensitivityP = Math.pow(10.0, gfp.athaa_sensitivity
            / -10.0);

        if (gfp.short_blocks == null) {
            gfp.short_blocks = ShortBlock.short_block_allowed;
        }

        /*
         * Note Jan/2003: Many hardware decoders cannot handle short blocks in
         * regular stereo mode unless they are coupled (same type in both
         * channels) it is a rare event (1 frame per min. or so) that LAME would
         * use uncoupled short blocks, so lets turn them off until we decide how
         * to handle this. No other encoders allow uncoupled short blocks, even
         * though it is in the standard.
         */
        /*
         * rh 20040217: coupling makes no sense for mono and dual-mono streams
         */
        if (gfp.short_blocks == ShortBlock.short_block_allowed
            && (gfp.mode == MPEGMode.JOINT_STEREO || gfp.mode == MPEGMode.STEREO)) {
            gfp.short_blocks = ShortBlock.short_block_coupled;
        }

        if (gfp.quant_comp < 0)
            gfp.quant_comp = 1;
        if (gfp.quant_comp_short < 0)
            gfp.quant_comp_short = 0;

        if (gfp.msfix < 0)
            gfp.msfix = 0;

        /* select psychoacoustic model */
        gfp.exp_nspsytune = gfp.exp_nspsytune | 1;

        if (gfp.internal_flags.nsPsy.attackthre < 0)
            gfp.internal_flags.nsPsy.attackthre = PsyModel.NSATTACKTHRE;
        if (gfp.internal_flags.nsPsy.attackthre_s < 0)
            gfp.internal_flags.nsPsy.attackthre_s = PsyModel.NSATTACKTHRE_S;

        assert(gfp.scale >= 0);

        if (gfp.scale < 0)
            gfp.scale = 1;

        if (gfp.ATHtype < 0)
            gfp.ATHtype = 4;

        if (gfp.ATHcurve < 0)
            gfp.ATHcurve = 4;

        if (gfp.athaa_loudapprox < 0)
            gfp.athaa_loudapprox = 2;

        if (gfp.interChRatio < 0)
            gfp.interChRatio = 0;

        if (gfp.useTemporal == null)
            gfp.useTemporal = true;
        /* on by default */

        /*
         * padding method as described in
         * "MPEG-Layer3 / Bitstream Syntax and Decoding" by Martin Sieler, Ralph
         * Sperschneider
         *
         * note: there is no padding for the very first frame
         *
         * Robert Hegemann 2000-06-22
         */
        gfc.slot_lag = gfc.frac_SpF = 0;
        if (gfp.VBR == VbrMode.vbr_off)
            gfc.slot_lag = gfc.frac_SpF = (((gfp.version + 1) * 72000 * gfp.brate) % gfp.out_samplerate) | 0;

        qupvt.iteration_init(gfp);
        psy.psymodel_init(gfp);
        assert(gfp.scale >= 0);
        return 0;
    }

    function update_inbuffer_size(gfc, nsamples) {
        if (gfc.in_buffer_0 == null || gfc.in_buffer_nsamples < nsamples) {
            gfc.in_buffer_0 = new_float(nsamples);
            gfc.in_buffer_1 = new_float(nsamples);
            gfc.in_buffer_nsamples = nsamples;
        }
    }

    this.lame_encode_flush = function (gfp, mp3buffer, mp3bufferPos, mp3buffer_size) {
        var gfc = gfp.internal_flags;
        var buffer = new_short_n([2, 1152]);
        var imp3 = 0, mp3count, mp3buffer_size_remaining;

        /*
         * we always add POSTDELAY=288 padding to make sure granule with real
         * data can be complety decoded (because of 50% overlap with next
         * granule
         */
        var end_padding;
        var frames_left;
        var samples_to_encode = gfc.mf_samples_to_encode - Encoder.POSTDELAY;
        var mf_needed = calcNeeded(gfp);

        /* Was flush already called? */
        if (gfc.mf_samples_to_encode < 1) {
            return 0;
        }
        mp3count = 0;

        if (gfp.in_samplerate != gfp.out_samplerate) {
            /*
             * delay due to resampling; needs to be fixed, if resampling code
             * gets changed
             */
            samples_to_encode += 16. * gfp.out_samplerate / gfp.in_samplerate;
        }
        end_padding = gfp.framesize - (samples_to_encode % gfp.framesize);
        if (end_padding < 576)
            end_padding += gfp.framesize;
        gfp.encoder_padding = end_padding;

        frames_left = (samples_to_encode + end_padding) / gfp.framesize;

        /*
         * send in a frame of 0 padding until all internal sample buffers are
         * flushed
         */
        while (frames_left > 0 && imp3 >= 0) {
            var bunch = mf_needed - gfc.mf_size;
            var frame_num = gfp.frameNum;

            bunch *= gfp.in_samplerate;
            bunch /= gfp.out_samplerate;
            if (bunch > 1152)
                bunch = 1152;
            if (bunch < 1)
                bunch = 1;

            mp3buffer_size_remaining = mp3buffer_size - mp3count;

            /* if user specifed buffer size = 0, dont check size */
            if (mp3buffer_size == 0)
                mp3buffer_size_remaining = 0;

            imp3 = this.lame_encode_buffer(gfp, buffer[0], buffer[1], bunch,
                mp3buffer, mp3bufferPos, mp3buffer_size_remaining);

            mp3bufferPos += imp3;
            mp3count += imp3;
            frames_left -= (frame_num != gfp.frameNum) ? 1 : 0;
        }
        /*
         * Set gfc.mf_samples_to_encode to 0, so we may detect and break loops
         * calling it more than once in a row.
         */
        gfc.mf_samples_to_encode = 0;

        if (imp3 < 0) {
            /* some type of fatal error */
            return imp3;
        }

        mp3buffer_size_remaining = mp3buffer_size - mp3count;
        /* if user specifed buffer size = 0, dont check size */
        if (mp3buffer_size == 0)
            mp3buffer_size_remaining = 0;

        /* mp3 related stuff. bit buffer might still contain some mp3 data */
        bs.flush_bitstream(gfp);
        imp3 = bs.copy_buffer(gfc, mp3buffer, mp3bufferPos,
            mp3buffer_size_remaining, 1);
        if (imp3 < 0) {
            /* some type of fatal error */
            return imp3;
        }
        mp3bufferPos += imp3;
        mp3count += imp3;
        mp3buffer_size_remaining = mp3buffer_size - mp3count;
        /* if user specifed buffer size = 0, dont check size */
        if (mp3buffer_size == 0)
            mp3buffer_size_remaining = 0;

        if (gfp.write_id3tag_automatic) {
            /* write a id3 tag to the bitstream */
            id3.id3tag_write_v1(gfp);

            imp3 = bs.copy_buffer(gfc, mp3buffer, mp3bufferPos,
                mp3buffer_size_remaining, 0);

            if (imp3 < 0) {
                return imp3;
            }
            mp3count += imp3;
        }
        return mp3count;
    };

    this.lame_encode_buffer = function (gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {
        var gfc = gfp.internal_flags;
        var in_buffer = [null, null];

        if (gfc.Class_ID != LAME_ID)
            return -3;

        if (nsamples == 0)
            return 0;

        update_inbuffer_size(gfc, nsamples);

        in_buffer[0] = gfc.in_buffer_0;
        in_buffer[1] = gfc.in_buffer_1;

        /* make a copy of input buffer, changing type to sample_t */
        for (var i = 0; i < nsamples; i++) {
            in_buffer[0][i] = buffer_l[i];
            if (gfc.channels_in > 1)
                in_buffer[1][i] = buffer_r[i];
        }

        return lame_encode_buffer_sample(gfp, in_buffer[0], in_buffer[1],
            nsamples, mp3buf, mp3bufPos, mp3buf_size);
    }

    function calcNeeded(gfp) {
        var mf_needed = Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET;
        /*
         * amount needed for FFT
         */
        mf_needed = Math.max(mf_needed, 512 + gfp.framesize - 32);
        assert(LameInternalFlags.MFSIZE >= mf_needed);

        return mf_needed;
    }

    function lame_encode_buffer_sample(gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {
        var gfc = gfp.internal_flags;
        var mp3size = 0, ret, i, ch, mf_needed;
        var mp3out;
        var mfbuf = [null, null];
        var in_buffer = [null, null];

        if (gfc.Class_ID != LAME_ID)
            return -3;

        if (nsamples == 0)
            return 0;

        /* copy out any tags that may have been written into bitstream */
        mp3out = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 0);
        if (mp3out < 0)
            return mp3out;
        /* not enough buffer space */
        mp3bufPos += mp3out;
        mp3size += mp3out;

        in_buffer[0] = buffer_l;
        in_buffer[1] = buffer_r;

        /* Apply user defined re-scaling */

        /* user selected scaling of the samples */
        if (BitStream.NEQ(gfp.scale, 0) && BitStream.NEQ(gfp.scale, 1.0)) {
            for (i = 0; i < nsamples; ++i) {
                in_buffer[0][i] *= gfp.scale;
                if (gfc.channels_out == 2)
                    in_buffer[1][i] *= gfp.scale;
            }
        }

        /* user selected scaling of the channel 0 (left) samples */
        if (BitStream.NEQ(gfp.scale_left, 0)
            && BitStream.NEQ(gfp.scale_left, 1.0)) {
            for (i = 0; i < nsamples; ++i) {
                in_buffer[0][i] *= gfp.scale_left;
            }
        }

        /* user selected scaling of the channel 1 (right) samples */
        if (BitStream.NEQ(gfp.scale_right, 0)
            && BitStream.NEQ(gfp.scale_right, 1.0)) {
            for (i = 0; i < nsamples; ++i) {
                in_buffer[1][i] *= gfp.scale_right;
            }
        }

        /* Downsample to Mono if 2 channels in and 1 channel out */
        if (gfp.num_channels == 2 && gfc.channels_out == 1) {
            for (i = 0; i < nsamples; ++i) {
                in_buffer[0][i] = 0.5 * ( in_buffer[0][i] + in_buffer[1][i]);
                in_buffer[1][i] = 0.0;
            }
        }

        mf_needed = calcNeeded(gfp);

        mfbuf[0] = gfc.mfbuf[0];
        mfbuf[1] = gfc.mfbuf[1];

        var in_bufferPos = 0;
        while (nsamples > 0) {
            var in_buffer_ptr = [null, null];
            var n_in = 0;
            /* number of input samples processed with fill_buffer */
            var n_out = 0;
            /* number of samples output with fill_buffer */
            /* n_in <> n_out if we are resampling */

            in_buffer_ptr[0] = in_buffer[0];
            in_buffer_ptr[1] = in_buffer[1];
            /* copy in new samples into mfbuf, with resampling */
            var inOut = new InOut();
            fill_buffer(gfp, mfbuf, in_buffer_ptr, in_bufferPos, nsamples,
                inOut);
            n_in = inOut.n_in;
            n_out = inOut.n_out;

            /* compute ReplayGain of resampled input if requested */
            if (gfc.findReplayGain && !gfc.decode_on_the_fly)
                if (ga.AnalyzeSamples(gfc.rgdata, mfbuf[0], gfc.mf_size,
                        mfbuf[1], gfc.mf_size, n_out, gfc.channels_out) == GainAnalysis.GAIN_ANALYSIS_ERROR)
                    return -6;

            /* update in_buffer counters */
            nsamples -= n_in;
            in_bufferPos += n_in;
            if (gfc.channels_out == 2)
                ;// in_bufferPos += n_in;

            /* update mfbuf[] counters */
            gfc.mf_size += n_out;
            assert(gfc.mf_size <= LameInternalFlags.MFSIZE);

            /*
             * lame_encode_flush may have set gfc.mf_sample_to_encode to 0 so we
             * have to reinitialize it here when that happened.
             */
            if (gfc.mf_samples_to_encode < 1) {
                gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;
            }
            gfc.mf_samples_to_encode += n_out;

            if (gfc.mf_size >= mf_needed) {
                /* encode the frame. */
                /* mp3buf = pointer to current location in buffer */
                /* mp3buf_size = size of original mp3 output buffer */
                /* = 0 if we should not worry about the */
                /* buffer size because calling program is */
                /* to lazy to compute it */
                /* mp3size = size of data written to buffer so far */
                /* mp3buf_size-mp3size = amount of space avalable */

                var buf_size = mp3buf_size - mp3size;
                if (mp3buf_size == 0)
                    buf_size = 0;

                ret = lame_encode_frame(gfp, mfbuf[0], mfbuf[1], mp3buf,
                    mp3bufPos, buf_size);

                if (ret < 0)
                    return ret;
                mp3bufPos += ret;
                mp3size += ret;

                /* shift out old samples */
                gfc.mf_size -= gfp.framesize;
                gfc.mf_samples_to_encode -= gfp.framesize;
                for (ch = 0; ch < gfc.channels_out; ch++)
                    for (i = 0; i < gfc.mf_size; i++)
                        mfbuf[ch][i] = mfbuf[ch][i + gfp.framesize];
            }
        }
        assert(nsamples == 0);

        return mp3size;
    }

    function lame_encode_frame(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {
        var ret = self.enc.lame_encode_mp3_frame(gfp, inbuf_l, inbuf_r, mp3buf,
            mp3bufPos, mp3buf_size);
        gfp.frameNum++;
        return ret;
    }

    function InOut() {
        this.n_in = 0;
        this.n_out = 0;
    }


    function NumUsed() {
        this.num_used = 0;
    }

    /**
     * Greatest common divisor.
     * <p>
     * Joint work of Euclid and M. Hendry
     */
    function gcd(i, j) {
        return j != 0 ? gcd(j, i % j) : i;
    }

    /**
     * Resampling via FIR filter, blackman window.
     */
    function blackman(x, fcn, l) {
        /*
         * This algorithm from: SIGNAL PROCESSING ALGORITHMS IN FORTRAN AND C
         * S.D. Stearns and R.A. David, Prentice-Hall, 1992
         */
        var wcn = (Math.PI * fcn);

        x /= l;
        if (x < 0)
            x = 0;
        if (x > 1)
            x = 1;
        var x2 = x - .5;

        var bkwn = 0.42 - 0.5 * Math.cos(2 * x * Math.PI) + 0.08 * Math.cos(4 * x * Math.PI);
        if (Math.abs(x2) < 1e-9)
            return (wcn / Math.PI);
        else
            return (bkwn * Math.sin(l * wcn * x2) / (Math.PI * l * x2));
    }

    function fill_buffer_resample(gfp, outbuf, outbufPos, desired_len, inbuf, in_bufferPos, len, num_used, ch) {
        var gfc = gfp.internal_flags;
        var i, j = 0, k;
        /* number of convolution functions to pre-compute */
        var bpc = gfp.out_samplerate
            / gcd(gfp.out_samplerate, gfp.in_samplerate);
        if (bpc > LameInternalFlags.BPC)
            bpc = LameInternalFlags.BPC;

        var intratio = (Math.abs(gfc.resample_ratio
            - Math.floor(.5 + gfc.resample_ratio)) < .0001) ? 1 : 0;
        var fcn = 1.00 / gfc.resample_ratio;
        if (fcn > 1.00)
            fcn = 1.00;
        var filter_l = 31;
        if (0 == filter_l % 2)
            --filter_l;
        /* must be odd */
        filter_l += intratio;
        /* unless resample_ratio=int, it must be even */

        var BLACKSIZE = filter_l + 1;
        /* size of data needed for FIR */

        if (gfc.fill_buffer_resample_init == 0) {
            gfc.inbuf_old[0] = new_float(BLACKSIZE);
            gfc.inbuf_old[1] = new_float(BLACKSIZE);
            for (i = 0; i <= 2 * bpc; ++i)
                gfc.blackfilt[i] = new_float(BLACKSIZE);

            gfc.itime[0] = 0;
            gfc.itime[1] = 0;

            /* precompute blackman filter coefficients */
            for (j = 0; j <= 2 * bpc; j++) {
                var sum = 0.;
                var offset = (j - bpc) / (2. * bpc);
                for (i = 0; i <= filter_l; i++)
                    sum += gfc.blackfilt[j][i] = blackman(i - offset, fcn,
                        filter_l);
                for (i = 0; i <= filter_l; i++)
                    gfc.blackfilt[j][i] /= sum;
            }
            gfc.fill_buffer_resample_init = 1;
        }

        var inbuf_old = gfc.inbuf_old[ch];

        /* time of j'th element in inbuf = itime + j/ifreq; */
        /* time of k'th element in outbuf = j/ofreq */
        for (k = 0; k < desired_len; k++) {
            var time0;
            var joff;

            time0 = k * gfc.resample_ratio;
            /* time of k'th output sample */
            j = 0 | Math.floor(time0 - gfc.itime[ch]);

            /* check if we need more input data */
            if ((filter_l + j - filter_l / 2) >= len)
                break;

            /* blackman filter. by default, window centered at j+.5(filter_l%2) */
            /* but we want a window centered at time0. */
            var offset = (time0 - gfc.itime[ch] - (j + .5 * (filter_l % 2)));
            assert(Math.abs(offset) <= .501);

            /* find the closest precomputed window for this offset: */
            joff = 0 | Math.floor((offset * 2 * bpc) + bpc + .5);
            var xvalue = 0.;
            for (i = 0; i <= filter_l; ++i) {
                var j2 = i + j - filter_l / 2;
                var y;
                assert(j2 < len);
                assert(j2 + BLACKSIZE >= 0);
                y = (j2 < 0) ? inbuf_old[BLACKSIZE + j2] : inbuf[in_bufferPos
                + j2];
                xvalue += y * gfc.blackfilt[joff][i];
            }
            outbuf[outbufPos + k] = xvalue;
        }

        /* k = number of samples added to outbuf */
        /* last k sample used data from [j-filter_l/2,j+filter_l-filter_l/2] */

        /* how many samples of input data were used: */
        num_used.num_used = Math.min(len, filter_l + j - filter_l / 2);

        /*
         * adjust our input time counter. Incriment by the number of samples
         * used, then normalize so that next output sample is at time 0, next
         * input buffer is at time itime[ch]
         */
        gfc.itime[ch] += num_used.num_used - k * gfc.resample_ratio;

        /* save the last BLACKSIZE samples into the inbuf_old buffer */
        if (num_used.num_used >= BLACKSIZE) {
            for (i = 0; i < BLACKSIZE; i++)
                inbuf_old[i] = inbuf[in_bufferPos + num_used.num_used + i
                - BLACKSIZE];
        } else {
            /* shift in num_used.num_used samples into inbuf_old */
            var n_shift = BLACKSIZE - num_used.num_used;
            /*
             * number of samples to
             * shift
             */

            /*
             * shift n_shift samples by num_used.num_used, to make room for the
             * num_used new samples
             */
            for (i = 0; i < n_shift; ++i)
                inbuf_old[i] = inbuf_old[i + num_used.num_used];

            /* shift in the num_used.num_used samples */
            for (j = 0; i < BLACKSIZE; ++i, ++j)
                inbuf_old[i] = inbuf[in_bufferPos + j];

            assert(j == num_used.num_used);
        }
        return k;
        /* return the number samples created at the new samplerate */
    }

    function fill_buffer(gfp, mfbuf, in_buffer, in_bufferPos, nsamples, io) {
        var gfc = gfp.internal_flags;

        /* copy in new samples into mfbuf, with resampling if necessary */
        if ((gfc.resample_ratio < .9999) || (gfc.resample_ratio > 1.0001)) {
            for (var ch = 0; ch < gfc.channels_out; ch++) {
                var numUsed = new NumUsed();
                io.n_out = fill_buffer_resample(gfp, mfbuf[ch], gfc.mf_size,
                    gfp.framesize, in_buffer[ch], in_bufferPos, nsamples,
                    numUsed, ch);
                io.n_in = numUsed.num_used;
            }
        } else {
            io.n_out = Math.min(gfp.framesize, nsamples);
            io.n_in = io.n_out;
            for (var i = 0; i < io.n_out; ++i) {
                mfbuf[0][gfc.mf_size + i] = in_buffer[0][in_bufferPos + i];
                if (gfc.channels_out == 2)
                    mfbuf[1][gfc.mf_size + i] = in_buffer[1][in_bufferPos + i];
            }
        }
    }

}

module.exports = Lame;


/***/ }),

/***/ "./node_modules/lamejs/src/js/LameGlobalFlags.js":
/*!*******************************************************!*\
  !*** ./node_modules/lamejs/src/js/LameGlobalFlags.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var MPEGMode = __webpack_require__(/*! ./MPEGMode.js */ "./node_modules/lamejs/src/js/MPEGMode.js");

function LameGlobalFlags() {

    this.class_id = 0;

    /* input description */

    /**
     * number of samples. default=-1
     */
    this.num_samples = 0;
    /**
     * input number of channels. default=2
     */
    this.num_channels = 0;
    /**
     * input_samp_rate in Hz. default=44.1 kHz
     */
    this.in_samplerate = 0;
    /**
     * output_samp_rate. default: LAME picks best value at least not used for
     * MP3 decoding: Remember 44.1 kHz MP3s and AC97
     */
    this.out_samplerate = 0;
    /**
     * scale input by this amount before encoding at least not used for MP3
     * decoding
     */
    this.scale = 0.;
    /**
     * scale input of channel 0 (left) by this amount before encoding
     */
    this.scale_left = 0.;
    /**
     * scale input of channel 1 (right) by this amount before encoding
     */
    this.scale_right = 0.;

    /* general control params */
    /**
     * collect data for a MP3 frame analyzer?
     */
    this.analysis = false;
    /**
     * add Xing VBR tag?
     */
    this.bWriteVbrTag = false;

    /**
     * use lame/mpglib to convert mp3 to wav
     */
    this.decode_only = false;
    /**
     * quality setting 0=best, 9=worst default=5
     */
    this.quality = 0;
    /**
     * see enum default = LAME picks best value
     */
    this.mode = MPEGMode.STEREO;
    /**
     * force M/S mode. requires mode=1
     */
    this.force_ms = false;
    /**
     * use free format? default=0
     */
    this.free_format = false;
    /**
     * find the RG value? default=0
     */
    this.findReplayGain = false;
    /**
     * decode on the fly? default=0
     */
    this.decode_on_the_fly = false;
    /**
     * 1 (default) writes ID3 tags, 0 not
     */
    this.write_id3tag_automatic = false;

    /*
     * set either brate>0 or compression_ratio>0, LAME will compute the value of
     * the variable not set. Default is compression_ratio = 11.025
     */
    /**
     * bitrate
     */
    this.brate = 0;
    /**
     * sizeof(wav file)/sizeof(mp3 file)
     */
    this.compression_ratio = 0.;

    /* frame params */
    /**
     * mark as copyright. default=0
     */
    this.copyright = 0;
    /**
     * mark as original. default=1
     */
    this.original = 0;
    /**
     * the MP3 'private extension' bit. Meaningless
     */
    this.extension = 0;
    /**
     * Input PCM is emphased PCM (for instance from one of the rarely emphased
     * CDs), it is STRONGLY not recommended to use this, because psycho does not
     * take it into account, and last but not least many decoders don't care
     * about these bits
     */
    this.emphasis = 0;
    /**
     * use 2 bytes per frame for a CRC checksum. default=0
     */
    this.error_protection = 0;
    /**
     * enforce ISO spec as much as possible
     */
    this.strict_ISO = false;

    /**
     * use bit reservoir?
     */
    this.disable_reservoir = false;

    /* quantization/noise shaping */
    this.quant_comp = 0;
    this.quant_comp_short = 0;
    this.experimentalY = false;
    this.experimentalZ = 0;
    this.exp_nspsytune = 0;

    this.preset = 0;

    /* VBR control */
    this.VBR = null;
    /**
     * Range [0,...,1[
     */
    this.VBR_q_frac = 0.;
    /**
     * Range [0,...,9]
     */
    this.VBR_q = 0;
    this.VBR_mean_bitrate_kbps = 0;
    this.VBR_min_bitrate_kbps = 0;
    this.VBR_max_bitrate_kbps = 0;
    /**
     * strictly enforce VBR_min_bitrate normaly, it will be violated for analog
     * silence
     */
    this.VBR_hard_min = 0;

    /* resampling and filtering */

    /**
     * freq in Hz. 0=lame choses. -1=no filter
     */
    this.lowpassfreq = 0;
    /**
     * freq in Hz. 0=lame choses. -1=no filter
     */
    this.highpassfreq = 0;
    /**
     * freq width of filter, in Hz (default=15%)
     */
    this.lowpasswidth = 0;
    /**
     * freq width of filter, in Hz (default=15%)
     */
    this.highpasswidth = 0;

    /*
     * psycho acoustics and other arguments which you should not change unless
     * you know what you are doing
     */

    this.maskingadjust = 0.;
    this.maskingadjust_short = 0.;
    /**
     * only use ATH
     */
    this.ATHonly = false;
    /**
     * only use ATH for short blocks
     */
    this.ATHshort = false;
    /**
     * disable ATH
     */
    this.noATH = false;
    /**
     * select ATH formula
     */
    this.ATHtype = 0;
    /**
     * change ATH formula 4 shape
     */
    this.ATHcurve = 0.;
    /**
     * lower ATH by this many db
     */
    this.ATHlower = 0.;
    /**
     * select ATH auto-adjust scheme
     */
    this.athaa_type = 0;
    /**
     * select ATH auto-adjust loudness calc
     */
    this.athaa_loudapprox = 0;
    /**
     * dB, tune active region of auto-level
     */
    this.athaa_sensitivity = 0.;
    this.short_blocks = null;
    /**
     * use temporal masking effect
     */
    this.useTemporal = false;
    this.interChRatio = 0.;
    /**
     * Naoki's adjustment of Mid/Side maskings
     */
    this.msfix = 0.;

    /**
     * 0 off, 1 on
     */
    this.tune = false;
    /**
     * used to pass values for debugging and stuff
     */
    this.tune_value_a = 0.;

    /************************************************************************/
    /* internal variables, do not set... */
    /* provided because they may be of use to calling application */
    /************************************************************************/

    /**
     * 0=MPEG-2/2.5 1=MPEG-1
     */
    this.version = 0;
    this.encoder_delay = 0;
    /**
     * number of samples of padding appended to input
     */
    this.encoder_padding = 0;
    this.framesize = 0;
    /**
     * number of frames encoded
     */
    this.frameNum = 0;
    /**
     * is this struct owned by calling program or lame?
     */
    this.lame_allocated_gfp = 0;
    /**************************************************************************/
    /* more internal variables are stored in this structure: */
    /**************************************************************************/
    this.internal_flags = null;
}

module.exports = LameGlobalFlags;


/***/ }),

/***/ "./node_modules/lamejs/src/js/LameInternalFlags.js":
/*!*********************************************************!*\
  !*** ./node_modules/lamejs/src/js/LameInternalFlags.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var IIISideInfo = __webpack_require__(/*! ./IIISideInfo.js */ "./node_modules/lamejs/src/js/IIISideInfo.js");
var ScaleFac = __webpack_require__(/*! ./ScaleFac.js */ "./node_modules/lamejs/src/js/ScaleFac.js");
var NsPsy = __webpack_require__(/*! ./NsPsy.js */ "./node_modules/lamejs/src/js/NsPsy.js");
var VBRSeekInfo = __webpack_require__(/*! ./VBRSeekInfo.js */ "./node_modules/lamejs/src/js/VBRSeekInfo.js");
var III_psy_xmin = __webpack_require__(/*! ./III_psy_xmin.js */ "./node_modules/lamejs/src/js/III_psy_xmin.js");
var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");
var L3Side = __webpack_require__(/*! ./L3Side.js */ "./node_modules/lamejs/src/js/L3Side.js");


LameInternalFlags.MFSIZE = (3 * 1152 + Encoder.ENCDELAY - Encoder.MDCTDELAY);
LameInternalFlags.MAX_HEADER_BUF = 256;
LameInternalFlags.MAX_BITS_PER_CHANNEL = 4095;
LameInternalFlags.MAX_BITS_PER_GRANULE = 7680;
LameInternalFlags.BPC = 320;

function LameInternalFlags() {
    var MAX_HEADER_LEN = 40;


    /********************************************************************
     * internal variables NOT set by calling program, and should not be *
     * modified by the calling program *
     ********************************************************************/

    /**
     * Some remarks to the Class_ID field: The Class ID is an Identifier for a
     * pointer to this struct. It is very unlikely that a pointer to
     * lame_global_flags has the same 32 bits in it's structure (large and other
     * special properties, for instance prime).
     *
     * To test that the structure is right and initialized, use: if ( gfc .
     * Class_ID == LAME_ID ) ... Other remark: If you set a flag to 0 for uninit
     * data and 1 for init data, the right test should be "if (flag == 1)" and
     * NOT "if (flag)". Unintended modification of this element will be
     * otherwise misinterpreted as an init.
     */
    this.Class_ID = 0;

    this.lame_encode_frame_init = 0;
    this.iteration_init_init = 0;
    this.fill_buffer_resample_init = 0;

    //public float mfbuf[][] = new float[2][MFSIZE];
    this.mfbuf = new_float_n([2, LameInternalFlags.MFSIZE]);

    /**
     * granules per frame
     */
    this.mode_gr = 0;
    /**
     * number of channels in the input data stream (PCM or decoded PCM)
     */
    this.channels_in = 0;
    /**
     * number of channels in the output data stream (not used for decoding)
     */
    this.channels_out = 0;
    /**
     * input_samp_rate/output_samp_rate
     */
        //public double resample_ratio;
    this.resample_ratio = 0.;

    this.mf_samples_to_encode = 0;
    this.mf_size = 0;
    /**
     * min bitrate index
     */
    this.VBR_min_bitrate = 0;
    /**
     * max bitrate index
     */
    this.VBR_max_bitrate = 0;
    this.bitrate_index = 0;
    this.samplerate_index = 0;
    this.mode_ext = 0;

    /* lowpass and highpass filter control */
    /**
     * normalized frequency bounds of passband
     */
    this.lowpass1 = 0.;
    this.lowpass2 = 0.;
    /**
     * normalized frequency bounds of passband
     */
    this.highpass1 = 0.;
    this.highpass2 = 0.;

    /**
     * 0 = none 1 = ISO AAC model 2 = allow scalefac_select=1
     */
    this.noise_shaping = 0;

    /**
     * 0 = ISO model: amplify all distorted bands<BR>
     * 1 = amplify within 50% of max (on db scale)<BR>
     * 2 = amplify only most distorted band<BR>
     * 3 = method 1 and refine with method 2<BR>
     */
    this.noise_shaping_amp = 0;
    /**
     * 0 = no substep<BR>
     * 1 = use substep shaping at last step(VBR only)<BR>
     * (not implemented yet)<BR>
     * 2 = use substep inside loop<BR>
     * 3 = use substep inside loop and last step<BR>
     */
    this.substep_shaping = 0;

    /**
     * 1 = gpsycho. 0 = none
     */
    this.psymodel = 0;
    /**
     * 0 = stop at over=0, all scalefacs amplified or<BR>
     * a scalefac has reached max value<BR>
     * 1 = stop when all scalefacs amplified or a scalefac has reached max value<BR>
     * 2 = stop when all scalefacs amplified
     */
    this.noise_shaping_stop = 0;

    /**
     * 0 = no, 1 = yes
     */
    this.subblock_gain = 0;
    /**
     * 0 = no. 1=outside loop 2=inside loop(slow)
     */
    this.use_best_huffman = 0;

    /**
     * 0 = stop early after 0 distortion found. 1 = full search
     */
    this.full_outer_loop = 0;

    //public IIISideInfo l3_side = new IIISideInfo();
    this.l3_side = new IIISideInfo();
    this.ms_ratio = new_float(2);

    /* used for padding */
    /**
     * padding for the current frame?
     */
    this.padding = 0;
    this.frac_SpF = 0;
    this.slot_lag = 0;

    /**
     * optional ID3 tags
     */
        //public ID3TagSpec tag_spec;
    this.tag_spec = null;
    this.nMusicCRC = 0;

    /* variables used by Quantize */
    //public int OldValue[] = new int[2];
    this.OldValue = new_int(2);
    //public int CurrentStep[] = new int[2];
    this.CurrentStep = new_int(2);

    this.masking_lower = 0.;
    //public int bv_scf[] = new int[576];
    this.bv_scf = new_int(576);
    //public int pseudohalf[] = new int[L3Side.SFBMAX];
    this.pseudohalf = new_int(L3Side.SFBMAX);

    /**
     * will be set in lame_init_params
     */
    this.sfb21_extra = false;

    /* BPC = maximum number of filter convolution windows to precompute */
    //public float[][] inbuf_old = new float[2][];
    this.inbuf_old = new Array(2);
    //public float[][] blackfilt = new float[2 * BPC + 1][];
    this.blackfilt = new Array(2 * LameInternalFlags.BPC + 1);
    //public double itime[] = new double[2];
    this.itime = new_double(2);
    this.sideinfo_len = 0;

    /* variables for newmdct.c */
    //public float sb_sample[][][][] = new float[2][2][18][Encoder.SBLIMIT];
    this.sb_sample = new_float_n([2, 2, 18, Encoder.SBLIMIT]);
    this.amp_filter = new_float(32);

    /* variables for BitStream */

    /**
     * <PRE>
     * mpeg1: buffer=511 bytes  smallest frame: 96-38(sideinfo)=58
     * max number of frames in reservoir:  8
     * mpeg2: buffer=255 bytes.  smallest frame: 24-23bytes=1
     * with VBR, if you are encoding all silence, it is possible to
     * have 8kbs/24khz frames with 1byte of data each, which means we need
     * to buffer up to 255 headers!
     * </PRE>
     */
    /**
     * also, max_header_buf has to be a power of two
     */
    /**
     * max size of header is 38
     */

    function Header() {
        this.write_timing = 0;
        this.ptr = 0;
        //public byte buf[] = new byte[MAX_HEADER_LEN];
        this.buf = new_byte(MAX_HEADER_LEN);
    }

    this.header = new Array(LameInternalFlags.MAX_HEADER_BUF);

    this.h_ptr = 0;
    this.w_ptr = 0;
    this.ancillary_flag = 0;

    /* variables for Reservoir */
    /**
     * in bits
     */
    this.ResvSize = 0;
    /**
     * in bits
     */
    this.ResvMax = 0;

    //public ScaleFac scalefac_band = new ScaleFac();
    this.scalefac_band = new ScaleFac();

    /* daa from PsyModel */
    /* The static variables "r", "phi_sav", "new", "old" and "oldest" have */
    /* to be remembered for the unpredictability measure. For "r" and */
    /* "phi_sav", the first index from the left is the channel select and */
    /* the second index is the "age" of the data. */
    this.minval_l = new_float(Encoder.CBANDS);
    this.minval_s = new_float(Encoder.CBANDS);
    this.nb_1 = new_float_n([4, Encoder.CBANDS]);
    this.nb_2 = new_float_n([4, Encoder.CBANDS]);
    this.nb_s1 = new_float_n([4, Encoder.CBANDS]);
    this.nb_s2 = new_float_n([4, Encoder.CBANDS]);
    this.s3_ss = null;
    this.s3_ll = null;
    this.decay = 0.;

    //public III_psy_xmin[] thm = new III_psy_xmin[4];
    //public III_psy_xmin[] en = new III_psy_xmin[4];
    this.thm = new Array(4);
    this.en = new Array(4);

    /**
     * fft and energy calculation
     */
    this.tot_ener = new_float(4);

    /* loudness calculation (for adaptive threshold of hearing) */
    /**
     * loudness^2 approx. per granule and channel
     */
    this.loudness_sq = new_float_n([2, 2]);
    /**
     * account for granule delay of L3psycho_anal
     */
    this.loudness_sq_save = new_float(2);

    /**
     * Scale Factor Bands
     */
    this.mld_l = new_float(Encoder.SBMAX_l);
    this.mld_s = new_float(Encoder.SBMAX_s);
    this.bm_l = new_int(Encoder.SBMAX_l);
    this.bo_l = new_int(Encoder.SBMAX_l);
    this.bm_s = new_int(Encoder.SBMAX_s);
    this.bo_s = new_int(Encoder.SBMAX_s);
    this.npart_l = 0;
    this.npart_s = 0;

    this.s3ind = new_int_n([Encoder.CBANDS, 2]);
    this.s3ind_s = new_int_n([Encoder.CBANDS, 2]);

    this.numlines_s = new_int(Encoder.CBANDS);
    this.numlines_l = new_int(Encoder.CBANDS);
    this.rnumlines_l = new_float(Encoder.CBANDS);
    this.mld_cb_l = new_float(Encoder.CBANDS);
    this.mld_cb_s = new_float(Encoder.CBANDS);
    this.numlines_s_num1 = 0;
    this.numlines_l_num1 = 0;

    /* ratios */
    this.pe = new_float(4);
    this.ms_ratio_s_old = 0.;
    this.ms_ratio_l_old = 0.;
    this.ms_ener_ratio_old = 0.;

    /**
     * block type
     */
    this.blocktype_old = new_int(2);

    /**
     * variables used for --nspsytune
     */
    this.nsPsy = new NsPsy();

    /**
     * used for Xing VBR header
     */
    this.VBR_seek_table = new VBRSeekInfo();

    /**
     * all ATH related stuff
     */
        //public ATH ATH;
    this.ATH = null;

    this.PSY = null;

    this.nogap_total = 0;
    this.nogap_current = 0;

    /* ReplayGain */
    this.decode_on_the_fly = true;
    this.findReplayGain = true;
    this.findPeakSample = true;
    this.PeakSample = 0.;
    this.RadioGain = 0;
    this.AudiophileGain = 0;
    //public ReplayGain rgdata;
    this.rgdata = null;

    /**
     * gain change required for preventing clipping
     */
    this.noclipGainChange = 0;
    /**
     * user-specified scale factor required for preventing clipping
     */
    this.noclipScale = 0.;

    /* simple statistics */
    this.bitrate_stereoMode_Hist = new_int_n([16, 4 + 1]);
    /**
     * norm/start/short/stop/mixed(short)/sum
     */
    this.bitrate_blockType_Hist = new_int_n([16, 4 + 1 + 1]);

    //public PlottingData pinfo;
    //public MPGLib.mpstr_tag hip;
    this.pinfo = null;
    this.hip = null;

    this.in_buffer_nsamples = 0;
    //public float[] in_buffer_0;
    //public float[] in_buffer_1;
    this.in_buffer_0 = null;
    this.in_buffer_1 = null;

    //public IIterationLoop iteration_loop;
    this.iteration_loop = null;

    for (var i = 0; i < this.en.length; i++) {
        this.en[i] = new III_psy_xmin();
    }
    for (var i = 0; i < this.thm.length; i++) {
        this.thm[i] = new III_psy_xmin();
    }
    for (var i = 0; i < this.header.length; i++) {
        this.header[i] = new Header();
    }

}

module.exports = LameInternalFlags;


/***/ }),

/***/ "./node_modules/lamejs/src/js/MPEGMode.js":
/*!************************************************!*\
  !*** ./node_modules/lamejs/src/js/MPEGMode.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

//package mp3;

/* MPEG modes */
function MPEGMode(ordinal) {
    var _ordinal = ordinal;
    this.ordinal = function () {
        return _ordinal;
    }
}

MPEGMode.STEREO = new MPEGMode(0);
MPEGMode.JOINT_STEREO = new MPEGMode(1);
MPEGMode.DUAL_CHANNEL = new MPEGMode(2);
MPEGMode.MONO = new MPEGMode(3);
MPEGMode.NOT_SET = new MPEGMode(4);

module.exports = MPEGMode;


/***/ }),

/***/ "./node_modules/lamejs/src/js/MeanBits.js":
/*!************************************************!*\
  !*** ./node_modules/lamejs/src/js/MeanBits.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

function MeanBits(meanBits) {
    this.bits = meanBits;
}

module.exports = MeanBits;


/***/ }),

/***/ "./node_modules/lamejs/src/js/NewMDCT.js":
/*!***********************************************!*\
  !*** ./node_modules/lamejs/src/js/NewMDCT.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/*
 *      MP3 window subband -> subband filtering -> mdct routine
 *
 *      Copyright (c) 1999-2000 Takehiro Tominaga
 *
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */
/*
 *         Special Thanks to Patrick De Smet for your advices.
 */

/* $Id: NewMDCT.java,v 1.11 2011/05/24 20:48:06 kenchis Exp $ */

//package mp3;

//import java.util.Arrays;
var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");


function NewMDCT() {

	var enwindow = [
			-4.77e-07 * 0.740951125354959 / 2.384e-06,
			1.03951e-04 * 0.740951125354959 / 2.384e-06,
			9.53674e-04 * 0.740951125354959 / 2.384e-06,
			2.841473e-03 * 0.740951125354959 / 2.384e-06,
			3.5758972e-02 * 0.740951125354959 / 2.384e-06,
			3.401756e-03 * 0.740951125354959 / 2.384e-06,
			9.83715e-04 * 0.740951125354959 / 2.384e-06,
			9.9182e-05 * 0.740951125354959 / 2.384e-06, /* 15 */
			1.2398e-05 * 0.740951125354959 / 2.384e-06,
			1.91212e-04 * 0.740951125354959 / 2.384e-06,
			2.283096e-03 * 0.740951125354959 / 2.384e-06,
			1.6994476e-02 * 0.740951125354959 / 2.384e-06,
			-1.8756866e-02 * 0.740951125354959 / 2.384e-06,
			-2.630711e-03 * 0.740951125354959 / 2.384e-06,
			-2.47478e-04 * 0.740951125354959 / 2.384e-06,
			-1.4782e-05 * 0.740951125354959 / 2.384e-06,
			9.063471690191471e-01, 1.960342806591213e-01,

			-4.77e-07 * 0.773010453362737 / 2.384e-06,
			1.05858e-04 * 0.773010453362737 / 2.384e-06,
			9.30786e-04 * 0.773010453362737 / 2.384e-06,
			2.521515e-03 * 0.773010453362737 / 2.384e-06,
			3.5694122e-02 * 0.773010453362737 / 2.384e-06,
			3.643036e-03 * 0.773010453362737 / 2.384e-06,
			9.91821e-04 * 0.773010453362737 / 2.384e-06,
			9.6321e-05 * 0.773010453362737 / 2.384e-06, /* 14 */
			1.1444e-05 * 0.773010453362737 / 2.384e-06,
			1.65462e-04 * 0.773010453362737 / 2.384e-06,
			2.110004e-03 * 0.773010453362737 / 2.384e-06,
			1.6112804e-02 * 0.773010453362737 / 2.384e-06,
			-1.9634247e-02 * 0.773010453362737 / 2.384e-06,
			-2.803326e-03 * 0.773010453362737 / 2.384e-06,
			-2.77042e-04 * 0.773010453362737 / 2.384e-06,
			-1.6689e-05 * 0.773010453362737 / 2.384e-06,
			8.206787908286602e-01, 3.901806440322567e-01,

			-4.77e-07 * 0.803207531480645 / 2.384e-06,
			1.07288e-04 * 0.803207531480645 / 2.384e-06,
			9.02653e-04 * 0.803207531480645 / 2.384e-06,
			2.174854e-03 * 0.803207531480645 / 2.384e-06,
			3.5586357e-02 * 0.803207531480645 / 2.384e-06,
			3.858566e-03 * 0.803207531480645 / 2.384e-06,
			9.95159e-04 * 0.803207531480645 / 2.384e-06,
			9.3460e-05 * 0.803207531480645 / 2.384e-06, /* 13 */
			1.0014e-05 * 0.803207531480645 / 2.384e-06,
			1.40190e-04 * 0.803207531480645 / 2.384e-06,
			1.937389e-03 * 0.803207531480645 / 2.384e-06,
			1.5233517e-02 * 0.803207531480645 / 2.384e-06,
			-2.0506859e-02 * 0.803207531480645 / 2.384e-06,
			-2.974033e-03 * 0.803207531480645 / 2.384e-06,
			-3.07560e-04 * 0.803207531480645 / 2.384e-06,
			-1.8120e-05 * 0.803207531480645 / 2.384e-06,
			7.416505462720353e-01, 5.805693545089249e-01,

			-4.77e-07 * 0.831469612302545 / 2.384e-06,
			1.08242e-04 * 0.831469612302545 / 2.384e-06,
			8.68797e-04 * 0.831469612302545 / 2.384e-06,
			1.800537e-03 * 0.831469612302545 / 2.384e-06,
			3.5435200e-02 * 0.831469612302545 / 2.384e-06,
			4.049301e-03 * 0.831469612302545 / 2.384e-06,
			9.94205e-04 * 0.831469612302545 / 2.384e-06,
			9.0599e-05 * 0.831469612302545 / 2.384e-06, /* 12 */
			9.060e-06 * 0.831469612302545 / 2.384e-06,
			1.16348e-04 * 0.831469612302545 / 2.384e-06,
			1.766682e-03 * 0.831469612302545 / 2.384e-06,
			1.4358521e-02 * 0.831469612302545 / 2.384e-06,
			-2.1372318e-02 * 0.831469612302545 / 2.384e-06,
			-3.14188e-03 * 0.831469612302545 / 2.384e-06,
			-3.39031e-04 * 0.831469612302545 / 2.384e-06,
			-1.9550e-05 * 0.831469612302545 / 2.384e-06,
			6.681786379192989e-01, 7.653668647301797e-01,

			-4.77e-07 * 0.857728610000272 / 2.384e-06,
			1.08719e-04 * 0.857728610000272 / 2.384e-06,
			8.29220e-04 * 0.857728610000272 / 2.384e-06,
			1.399517e-03 * 0.857728610000272 / 2.384e-06,
			3.5242081e-02 * 0.857728610000272 / 2.384e-06,
			4.215240e-03 * 0.857728610000272 / 2.384e-06,
			9.89437e-04 * 0.857728610000272 / 2.384e-06,
			8.7261e-05 * 0.857728610000272 / 2.384e-06, /* 11 */
			8.106e-06 * 0.857728610000272 / 2.384e-06,
			9.3937e-05 * 0.857728610000272 / 2.384e-06,
			1.597881e-03 * 0.857728610000272 / 2.384e-06,
			1.3489246e-02 * 0.857728610000272 / 2.384e-06,
			-2.2228718e-02 * 0.857728610000272 / 2.384e-06,
			-3.306866e-03 * 0.857728610000272 / 2.384e-06,
			-3.71456e-04 * 0.857728610000272 / 2.384e-06,
			-2.1458e-05 * 0.857728610000272 / 2.384e-06,
			5.993769336819237e-01, 9.427934736519954e-01,

			-4.77e-07 * 0.881921264348355 / 2.384e-06,
			1.08719e-04 * 0.881921264348355 / 2.384e-06,
			7.8392e-04 * 0.881921264348355 / 2.384e-06,
			9.71317e-04 * 0.881921264348355 / 2.384e-06,
			3.5007000e-02 * 0.881921264348355 / 2.384e-06,
			4.357815e-03 * 0.881921264348355 / 2.384e-06,
			9.80854e-04 * 0.881921264348355 / 2.384e-06,
			8.3923e-05 * 0.881921264348355 / 2.384e-06, /* 10 */
			7.629e-06 * 0.881921264348355 / 2.384e-06,
			7.2956e-05 * 0.881921264348355 / 2.384e-06,
			1.432419e-03 * 0.881921264348355 / 2.384e-06,
			1.2627602e-02 * 0.881921264348355 / 2.384e-06,
			-2.3074150e-02 * 0.881921264348355 / 2.384e-06,
			-3.467083e-03 * 0.881921264348355 / 2.384e-06,
			-4.04358e-04 * 0.881921264348355 / 2.384e-06,
			-2.3365e-05 * 0.881921264348355 / 2.384e-06,
			5.345111359507916e-01, 1.111140466039205e+00,

			-9.54e-07 * 0.903989293123443 / 2.384e-06,
			1.08242e-04 * 0.903989293123443 / 2.384e-06,
			7.31945e-04 * 0.903989293123443 / 2.384e-06,
			5.15938e-04 * 0.903989293123443 / 2.384e-06,
			3.4730434e-02 * 0.903989293123443 / 2.384e-06,
			4.477024e-03 * 0.903989293123443 / 2.384e-06,
			9.68933e-04 * 0.903989293123443 / 2.384e-06,
			8.0585e-05 * 0.903989293123443 / 2.384e-06, /* 9 */
			6.676e-06 * 0.903989293123443 / 2.384e-06,
			5.2929e-05 * 0.903989293123443 / 2.384e-06,
			1.269817e-03 * 0.903989293123443 / 2.384e-06,
			1.1775017e-02 * 0.903989293123443 / 2.384e-06,
			-2.3907185e-02 * 0.903989293123443 / 2.384e-06,
			-3.622532e-03 * 0.903989293123443 / 2.384e-06,
			-4.38213e-04 * 0.903989293123443 / 2.384e-06,
			-2.5272e-05 * 0.903989293123443 / 2.384e-06,
			4.729647758913199e-01, 1.268786568327291e+00,

			-9.54e-07 * 0.92387953251128675613 / 2.384e-06,
			1.06812e-04 * 0.92387953251128675613 / 2.384e-06,
			6.74248e-04 * 0.92387953251128675613 / 2.384e-06,
			3.3379e-05 * 0.92387953251128675613 / 2.384e-06,
			3.4412861e-02 * 0.92387953251128675613 / 2.384e-06,
			4.573822e-03 * 0.92387953251128675613 / 2.384e-06,
			9.54151e-04 * 0.92387953251128675613 / 2.384e-06,
			7.6771e-05 * 0.92387953251128675613 / 2.384e-06,
			6.199e-06 * 0.92387953251128675613 / 2.384e-06,
			3.4332e-05 * 0.92387953251128675613 / 2.384e-06,
			1.111031e-03 * 0.92387953251128675613 / 2.384e-06,
			1.0933399e-02 * 0.92387953251128675613 / 2.384e-06,
			-2.4725437e-02 * 0.92387953251128675613 / 2.384e-06,
			-3.771782e-03 * 0.92387953251128675613 / 2.384e-06,
			-4.72546e-04 * 0.92387953251128675613 / 2.384e-06,
			-2.7657e-05 * 0.92387953251128675613 / 2.384e-06,
			4.1421356237309504879e-01, /* tan(PI/8) */
			1.414213562373095e+00,

			-9.54e-07 * 0.941544065183021 / 2.384e-06,
			1.05381e-04 * 0.941544065183021 / 2.384e-06,
			6.10352e-04 * 0.941544065183021 / 2.384e-06,
			-4.75883e-04 * 0.941544065183021 / 2.384e-06,
			3.4055710e-02 * 0.941544065183021 / 2.384e-06,
			4.649162e-03 * 0.941544065183021 / 2.384e-06,
			9.35555e-04 * 0.941544065183021 / 2.384e-06,
			7.3433e-05 * 0.941544065183021 / 2.384e-06, /* 7 */
			5.245e-06 * 0.941544065183021 / 2.384e-06,
			1.7166e-05 * 0.941544065183021 / 2.384e-06,
			9.56535e-04 * 0.941544065183021 / 2.384e-06,
			1.0103703e-02 * 0.941544065183021 / 2.384e-06,
			-2.5527000e-02 * 0.941544065183021 / 2.384e-06,
			-3.914356e-03 * 0.941544065183021 / 2.384e-06,
			-5.07355e-04 * 0.941544065183021 / 2.384e-06,
			-3.0041e-05 * 0.941544065183021 / 2.384e-06,
			3.578057213145241e-01, 1.546020906725474e+00,

			-9.54e-07 * 0.956940335732209 / 2.384e-06,
			1.02520e-04 * 0.956940335732209 / 2.384e-06,
			5.39303e-04 * 0.956940335732209 / 2.384e-06,
			-1.011848e-03 * 0.956940335732209 / 2.384e-06,
			3.3659935e-02 * 0.956940335732209 / 2.384e-06,
			4.703045e-03 * 0.956940335732209 / 2.384e-06,
			9.15051e-04 * 0.956940335732209 / 2.384e-06,
			7.0095e-05 * 0.956940335732209 / 2.384e-06, /* 6 */
			4.768e-06 * 0.956940335732209 / 2.384e-06,
			9.54e-07 * 0.956940335732209 / 2.384e-06,
			8.06808e-04 * 0.956940335732209 / 2.384e-06,
			9.287834e-03 * 0.956940335732209 / 2.384e-06,
			-2.6310921e-02 * 0.956940335732209 / 2.384e-06,
			-4.048824e-03 * 0.956940335732209 / 2.384e-06,
			-5.42164e-04 * 0.956940335732209 / 2.384e-06,
			-3.2425e-05 * 0.956940335732209 / 2.384e-06,
			3.033466836073424e-01, 1.662939224605090e+00,

			-1.431e-06 * 0.970031253194544 / 2.384e-06,
			9.9182e-05 * 0.970031253194544 / 2.384e-06,
			4.62532e-04 * 0.970031253194544 / 2.384e-06,
			-1.573563e-03 * 0.970031253194544 / 2.384e-06,
			3.3225536e-02 * 0.970031253194544 / 2.384e-06,
			4.737377e-03 * 0.970031253194544 / 2.384e-06,
			8.91685e-04 * 0.970031253194544 / 2.384e-06,
			6.6280e-05 * 0.970031253194544 / 2.384e-06, /* 5 */
			4.292e-06 * 0.970031253194544 / 2.384e-06,
			-1.3828e-05 * 0.970031253194544 / 2.384e-06,
			6.61850e-04 * 0.970031253194544 / 2.384e-06,
			8.487225e-03 * 0.970031253194544 / 2.384e-06,
			-2.7073860e-02 * 0.970031253194544 / 2.384e-06,
			-4.174709e-03 * 0.970031253194544 / 2.384e-06,
			-5.76973e-04 * 0.970031253194544 / 2.384e-06,
			-3.4809e-05 * 0.970031253194544 / 2.384e-06,
			2.504869601913055e-01, 1.763842528696710e+00,

			-1.431e-06 * 0.98078528040323 / 2.384e-06,
			9.5367e-05 * 0.98078528040323 / 2.384e-06,
			3.78609e-04 * 0.98078528040323 / 2.384e-06,
			-2.161503e-03 * 0.98078528040323 / 2.384e-06,
			3.2754898e-02 * 0.98078528040323 / 2.384e-06,
			4.752159e-03 * 0.98078528040323 / 2.384e-06,
			8.66413e-04 * 0.98078528040323 / 2.384e-06,
			6.2943e-05 * 0.98078528040323 / 2.384e-06, /* 4 */
			3.815e-06 * 0.98078528040323 / 2.384e-06,
			-2.718e-05 * 0.98078528040323 / 2.384e-06,
			5.22137e-04 * 0.98078528040323 / 2.384e-06,
			7.703304e-03 * 0.98078528040323 / 2.384e-06,
			-2.7815342e-02 * 0.98078528040323 / 2.384e-06,
			-4.290581e-03 * 0.98078528040323 / 2.384e-06,
			-6.11782e-04 * 0.98078528040323 / 2.384e-06,
			-3.7670e-05 * 0.98078528040323 / 2.384e-06,
			1.989123673796580e-01, 1.847759065022573e+00,

			-1.907e-06 * 0.989176509964781 / 2.384e-06,
			9.0122e-05 * 0.989176509964781 / 2.384e-06,
			2.88486e-04 * 0.989176509964781 / 2.384e-06,
			-2.774239e-03 * 0.989176509964781 / 2.384e-06,
			3.2248020e-02 * 0.989176509964781 / 2.384e-06,
			4.748821e-03 * 0.989176509964781 / 2.384e-06,
			8.38757e-04 * 0.989176509964781 / 2.384e-06,
			5.9605e-05 * 0.989176509964781 / 2.384e-06, /* 3 */
			3.338e-06 * 0.989176509964781 / 2.384e-06,
			-3.9577e-05 * 0.989176509964781 / 2.384e-06,
			3.88145e-04 * 0.989176509964781 / 2.384e-06,
			6.937027e-03 * 0.989176509964781 / 2.384e-06,
			-2.8532982e-02 * 0.989176509964781 / 2.384e-06,
			-4.395962e-03 * 0.989176509964781 / 2.384e-06,
			-6.46591e-04 * 0.989176509964781 / 2.384e-06,
			-4.0531e-05 * 0.989176509964781 / 2.384e-06,
			1.483359875383474e-01, 1.913880671464418e+00,

			-1.907e-06 * 0.995184726672197 / 2.384e-06,
			8.4400e-05 * 0.995184726672197 / 2.384e-06,
			1.91689e-04 * 0.995184726672197 / 2.384e-06,
			-3.411293e-03 * 0.995184726672197 / 2.384e-06,
			3.1706810e-02 * 0.995184726672197 / 2.384e-06,
			4.728317e-03 * 0.995184726672197 / 2.384e-06,
			8.09669e-04 * 0.995184726672197 / 2.384e-06,
			5.579e-05 * 0.995184726672197 / 2.384e-06,
			3.338e-06 * 0.995184726672197 / 2.384e-06,
			-5.0545e-05 * 0.995184726672197 / 2.384e-06,
			2.59876e-04 * 0.995184726672197 / 2.384e-06,
			6.189346e-03 * 0.995184726672197 / 2.384e-06,
			-2.9224873e-02 * 0.995184726672197 / 2.384e-06,
			-4.489899e-03 * 0.995184726672197 / 2.384e-06,
			-6.80923e-04 * 0.995184726672197 / 2.384e-06,
			-4.3392e-05 * 0.995184726672197 / 2.384e-06,
			9.849140335716425e-02, 1.961570560806461e+00,

			-2.384e-06 * 0.998795456205172 / 2.384e-06,
			7.7724e-05 * 0.998795456205172 / 2.384e-06,
			8.8215e-05 * 0.998795456205172 / 2.384e-06,
			-4.072189e-03 * 0.998795456205172 / 2.384e-06,
			3.1132698e-02 * 0.998795456205172 / 2.384e-06,
			4.691124e-03 * 0.998795456205172 / 2.384e-06,
			7.79152e-04 * 0.998795456205172 / 2.384e-06,
			5.2929e-05 * 0.998795456205172 / 2.384e-06,
			2.861e-06 * 0.998795456205172 / 2.384e-06,
			-6.0558e-05 * 0.998795456205172 / 2.384e-06,
			1.37329e-04 * 0.998795456205172 / 2.384e-06,
			5.462170e-03 * 0.998795456205172 / 2.384e-06,
			-2.9890060e-02 * 0.998795456205172 / 2.384e-06,
			-4.570484e-03 * 0.998795456205172 / 2.384e-06,
			-7.14302e-04 * 0.998795456205172 / 2.384e-06,
			-4.6253e-05 * 0.998795456205172 / 2.384e-06,
			4.912684976946725e-02, 1.990369453344394e+00,

			3.5780907e-02 * Util.SQRT2 * 0.5 / 2.384e-06,
			1.7876148e-02 * Util.SQRT2 * 0.5 / 2.384e-06,
			3.134727e-03 * Util.SQRT2 * 0.5 / 2.384e-06,
			2.457142e-03 * Util.SQRT2 * 0.5 / 2.384e-06,
			9.71317e-04 * Util.SQRT2 * 0.5 / 2.384e-06,
			2.18868e-04 * Util.SQRT2 * 0.5 / 2.384e-06,
			1.01566e-04 * Util.SQRT2 * 0.5 / 2.384e-06,
			1.3828e-05 * Util.SQRT2 * 0.5 / 2.384e-06,

			3.0526638e-02 / 2.384e-06, 4.638195e-03 / 2.384e-06,
			7.47204e-04 / 2.384e-06, 4.9591e-05 / 2.384e-06,
			4.756451e-03 / 2.384e-06, 2.1458e-05 / 2.384e-06,
			-6.9618e-05 / 2.384e-06, /* 2.384e-06/2.384e-06 */
	];

	var NS = 12;
	var NL = 36;

	var win = [
	    [
	     2.382191739347913e-13,
	     6.423305872147834e-13,
	     9.400849094049688e-13,
	     1.122435026096556e-12,
	     1.183840321267481e-12,
	     1.122435026096556e-12,
	     9.400849094049690e-13,
	     6.423305872147839e-13,
	     2.382191739347918e-13,

	     5.456116108943412e-12,
	     4.878985199565852e-12,
	     4.240448995017367e-12,
	     3.559909094758252e-12,
	     2.858043359288075e-12,
	     2.156177623817898e-12,
	     1.475637723558783e-12,
	     8.371015190102974e-13,
	     2.599706096327376e-13,

	     -5.456116108943412e-12,
	     -4.878985199565852e-12,
	     -4.240448995017367e-12,
	     -3.559909094758252e-12,
	     -2.858043359288076e-12,
	     -2.156177623817898e-12,
	     -1.475637723558783e-12,
	     -8.371015190102975e-13,
	     -2.599706096327376e-13,

	     -2.382191739347923e-13,
	     -6.423305872147843e-13,
	     -9.400849094049696e-13,
	     -1.122435026096556e-12,
	     -1.183840321267481e-12,
	     -1.122435026096556e-12,
	     -9.400849094049694e-13,
	     -6.423305872147840e-13,
	     -2.382191739347918e-13,
	     ],
	    [
	     2.382191739347913e-13,
	     6.423305872147834e-13,
	     9.400849094049688e-13,
	     1.122435026096556e-12,
	     1.183840321267481e-12,
	     1.122435026096556e-12,
	     9.400849094049688e-13,
	     6.423305872147841e-13,
	     2.382191739347918e-13,

	     5.456116108943413e-12,
	     4.878985199565852e-12,
	     4.240448995017367e-12,
	     3.559909094758253e-12,
	     2.858043359288075e-12,
	     2.156177623817898e-12,
	     1.475637723558782e-12,
	     8.371015190102975e-13,
	     2.599706096327376e-13,

	     -5.461314069809755e-12,
	     -4.921085770524055e-12,
	     -4.343405037091838e-12,
	     -3.732668368707687e-12,
	     -3.093523840190885e-12,
	     -2.430835727329465e-12,
	     -1.734679010007751e-12,
	     -9.748253656609281e-13,
	     -2.797435120168326e-13,

	     0.000000000000000e+00,
	     0.000000000000000e+00,
	     0.000000000000000e+00,
	     0.000000000000000e+00,
	     0.000000000000000e+00,
	     0.000000000000000e+00,
	     -2.283748241799531e-13,
	     -4.037858874020686e-13,
	     -2.146547464825323e-13,
	     ],
	    [
	     1.316524975873958e-01, /* win[SHORT_TYPE] */
	     4.142135623730950e-01,
	     7.673269879789602e-01,

	     1.091308501069271e+00, /* tantab_l */
	     1.303225372841206e+00,
	     1.569685577117490e+00,
	     1.920982126971166e+00,
	     2.414213562373094e+00,
	     3.171594802363212e+00,
	     4.510708503662055e+00,
	     7.595754112725146e+00,
	     2.290376554843115e+01,

	     0.98480775301220802032, /* cx */
	     0.64278760968653936292,
	     0.34202014332566882393,
	     0.93969262078590842791,
	     -0.17364817766693030343,
	     -0.76604444311897790243,
	     0.86602540378443870761,
	     0.500000000000000e+00,

	     -5.144957554275265e-01, /* ca */
	     -4.717319685649723e-01,
	     -3.133774542039019e-01,
	     -1.819131996109812e-01,
	     -9.457419252642064e-02,
	     -4.096558288530405e-02,
	     -1.419856857247115e-02,
	     -3.699974673760037e-03,

	     8.574929257125442e-01, /* cs */
	     8.817419973177052e-01,
	     9.496286491027329e-01,
	     9.833145924917901e-01,
	     9.955178160675857e-01,
	     9.991605581781475e-01,
	     9.998991952444470e-01,
	     9.999931550702802e-01,
	     ],
	    [
	     0.000000000000000e+00,
	     0.000000000000000e+00,
	     0.000000000000000e+00,
	     0.000000000000000e+00,
	     0.000000000000000e+00,
	     0.000000000000000e+00,
	     2.283748241799531e-13,
	     4.037858874020686e-13,
	     2.146547464825323e-13,

	     5.461314069809755e-12,
	     4.921085770524055e-12,
	     4.343405037091838e-12,
	     3.732668368707687e-12,
	     3.093523840190885e-12,
	     2.430835727329466e-12,
	     1.734679010007751e-12,
	     9.748253656609281e-13,
	     2.797435120168326e-13,

	     -5.456116108943413e-12,
	     -4.878985199565852e-12,
	     -4.240448995017367e-12,
	     -3.559909094758253e-12,
	     -2.858043359288075e-12,
	     -2.156177623817898e-12,
	     -1.475637723558782e-12,
	     -8.371015190102975e-13,
	     -2.599706096327376e-13,

	     -2.382191739347913e-13,
	     -6.423305872147834e-13,
	     -9.400849094049688e-13,
	     -1.122435026096556e-12,
	     -1.183840321267481e-12,
	     -1.122435026096556e-12,
	     -9.400849094049688e-13,
	     -6.423305872147841e-13,
	     -2.382191739347918e-13,
	     ]
	];

	var tantab_l = win[Encoder.SHORT_TYPE];
	var cx = win[Encoder.SHORT_TYPE];
	var ca = win[Encoder.SHORT_TYPE];
	var cs = win[Encoder.SHORT_TYPE];

	/**
	 * new IDCT routine written by Takehiro TOMINAGA
	 *
	 * PURPOSE: Overlapping window on PCM samples<BR>
	 *
	 * SEMANTICS:<BR>
	 * 32 16-bit pcm samples are scaled to fractional 2's complement and
	 * concatenated to the end of the window buffer #x#. The updated window
	 * buffer #x# is then windowed by the analysis window #c# to produce the
	 * windowed sample #z#
	 */
	var order = [
	    0, 1, 16, 17, 8, 9, 24, 25, 4, 5, 20, 21, 12, 13, 28, 29,
	    2, 3, 18, 19, 10, 11, 26, 27, 6, 7, 22, 23, 14, 15, 30, 31
	];

	/**
	 * returns sum_j=0^31 a[j]*cos(PI*j*(k+1/2)/32), 0<=k<32
	 */
	function window_subband(x1, x1Pos, a) {
		var wp = 10;

		var x2 = x1Pos + 238 - 14 - 286;

		for (var i = -15; i < 0; i++) {
			var w, s, t;

			w = enwindow[wp + -10];
			s = x1[x2 + -224] * w;
			t = x1[x1Pos + 224] * w;
			w = enwindow[wp + -9];
			s += x1[x2 + -160] * w;
			t += x1[x1Pos + 160] * w;
			w = enwindow[wp + -8];
			s += x1[x2 + -96] * w;
			t += x1[x1Pos + 96] * w;
			w = enwindow[wp + -7];
			s += x1[x2 + -32] * w;
			t += x1[x1Pos + 32] * w;
			w = enwindow[wp + -6];
			s += x1[x2 + 32] * w;
			t += x1[x1Pos + -32] * w;
			w = enwindow[wp + -5];
			s += x1[x2 + 96] * w;
			t += x1[x1Pos + -96] * w;
			w = enwindow[wp + -4];
			s += x1[x2 + 160] * w;
			t += x1[x1Pos + -160] * w;
			w = enwindow[wp + -3];
			s += x1[x2 + 224] * w;
			t += x1[x1Pos + -224] * w;

			w = enwindow[wp + -2];
			s += x1[x1Pos + -256] * w;
			t -= x1[x2 + 256] * w;
			w = enwindow[wp + -1];
			s += x1[x1Pos + -192] * w;
			t -= x1[x2 + 192] * w;
			w = enwindow[wp + 0];
			s += x1[x1Pos + -128] * w;
			t -= x1[x2 + 128] * w;
			w = enwindow[wp + 1];
			s += x1[x1Pos + -64] * w;
			t -= x1[x2 + 64] * w;
			w = enwindow[wp + 2];
			s += x1[x1Pos + 0] * w;
			t -= x1[x2 + 0] * w;
			w = enwindow[wp + 3];
			s += x1[x1Pos + 64] * w;
			t -= x1[x2 + -64] * w;
			w = enwindow[wp + 4];
			s += x1[x1Pos + 128] * w;
			t -= x1[x2 + -128] * w;
			w = enwindow[wp + 5];
			s += x1[x1Pos + 192] * w;
			t -= x1[x2 + -192] * w;

			/*
			 * this multiplyer could be removed, but it needs more 256 FLOAT
			 * data. thinking about the data cache performance, I think we
			 * should not use such a huge table. tt 2000/Oct/25
			 */
			s *= enwindow[wp + 6];
			w = t - s;
			a[30 + i * 2] = t + s;
			a[31 + i * 2] = enwindow[wp + 7] * w;
			wp += 18;
			x1Pos--;
			x2++;
		}
		{
			var s, t, u, v;
			t = x1[x1Pos + -16] * enwindow[wp + -10];
			s = x1[x1Pos + -32] * enwindow[wp + -2];
			t += (x1[x1Pos + -48] - x1[x1Pos + 16]) * enwindow[wp + -9];
			s += x1[x1Pos + -96] * enwindow[wp + -1];
			t += (x1[x1Pos + -80] + x1[x1Pos + 48]) * enwindow[wp + -8];
			s += x1[x1Pos + -160] * enwindow[wp + 0];
			t += (x1[x1Pos + -112] - x1[x1Pos + 80]) * enwindow[wp + -7];
			s += x1[x1Pos + -224] * enwindow[wp + 1];
			t += (x1[x1Pos + -144] + x1[x1Pos + 112]) * enwindow[wp + -6];
			s -= x1[x1Pos + 32] * enwindow[wp + 2];
			t += (x1[x1Pos + -176] - x1[x1Pos + 144]) * enwindow[wp + -5];
			s -= x1[x1Pos + 96] * enwindow[wp + 3];
			t += (x1[x1Pos + -208] + x1[x1Pos + 176]) * enwindow[wp + -4];
			s -= x1[x1Pos + 160] * enwindow[wp + 4];
			t += (x1[x1Pos + -240] - x1[x1Pos + 208]) * enwindow[wp + -3];
			s -= x1[x1Pos + 224];

			u = s - t;
			v = s + t;

			t = a[14];
			s = a[15] - t;

			a[31] = v + t; /* A0 */
			a[30] = u + s; /* A1 */
			a[15] = u - s; /* A2 */
			a[14] = v - t; /* A3 */
		}
		{
			var xr;
			xr = a[28] - a[0];
			a[0] += a[28];
			a[28] = xr * enwindow[wp + -2 * 18 + 7];
			xr = a[29] - a[1];
			a[1] += a[29];
			a[29] = xr * enwindow[wp + -2 * 18 + 7];

			xr = a[26] - a[2];
			a[2] += a[26];
			a[26] = xr * enwindow[wp + -4 * 18 + 7];
			xr = a[27] - a[3];
			a[3] += a[27];
			a[27] = xr * enwindow[wp + -4 * 18 + 7];

			xr = a[24] - a[4];
			a[4] += a[24];
			a[24] = xr * enwindow[wp + -6 * 18 + 7];
			xr = a[25] - a[5];
			a[5] += a[25];
			a[25] = xr * enwindow[wp + -6 * 18 + 7];

			xr = a[22] - a[6];
			a[6] += a[22];
			a[22] = xr * Util.SQRT2;
			xr = a[23] - a[7];
			a[7] += a[23];
			a[23] = xr * Util.SQRT2 - a[7];
			a[7] -= a[6];
			a[22] -= a[7];
			a[23] -= a[22];

			xr = a[6];
			a[6] = a[31] - xr;
			a[31] = a[31] + xr;
			xr = a[7];
			a[7] = a[30] - xr;
			a[30] = a[30] + xr;
			xr = a[22];
			a[22] = a[15] - xr;
			a[15] = a[15] + xr;
			xr = a[23];
			a[23] = a[14] - xr;
			a[14] = a[14] + xr;

			xr = a[20] - a[8];
			a[8] += a[20];
			a[20] = xr * enwindow[wp + -10 * 18 + 7];
			xr = a[21] - a[9];
			a[9] += a[21];
			a[21] = xr * enwindow[wp + -10 * 18 + 7];

			xr = a[18] - a[10];
			a[10] += a[18];
			a[18] = xr * enwindow[wp + -12 * 18 + 7];
			xr = a[19] - a[11];
			a[11] += a[19];
			a[19] = xr * enwindow[wp + -12 * 18 + 7];

			xr = a[16] - a[12];
			a[12] += a[16];
			a[16] = xr * enwindow[wp + -14 * 18 + 7];
			xr = a[17] - a[13];
			a[13] += a[17];
			a[17] = xr * enwindow[wp + -14 * 18 + 7];

			xr = -a[20] + a[24];
			a[20] += a[24];
			a[24] = xr * enwindow[wp + -12 * 18 + 7];
			xr = -a[21] + a[25];
			a[21] += a[25];
			a[25] = xr * enwindow[wp + -12 * 18 + 7];

			xr = a[4] - a[8];
			a[4] += a[8];
			a[8] = xr * enwindow[wp + -12 * 18 + 7];
			xr = a[5] - a[9];
			a[5] += a[9];
			a[9] = xr * enwindow[wp + -12 * 18 + 7];

			xr = a[0] - a[12];
			a[0] += a[12];
			a[12] = xr * enwindow[wp + -4 * 18 + 7];
			xr = a[1] - a[13];
			a[1] += a[13];
			a[13] = xr * enwindow[wp + -4 * 18 + 7];
			xr = a[16] - a[28];
			a[16] += a[28];
			a[28] = xr * enwindow[wp + -4 * 18 + 7];
			xr = -a[17] + a[29];
			a[17] += a[29];
			a[29] = xr * enwindow[wp + -4 * 18 + 7];

			xr = Util.SQRT2 * (a[2] - a[10]);
			a[2] += a[10];
			a[10] = xr;
			xr = Util.SQRT2 * (a[3] - a[11]);
			a[3] += a[11];
			a[11] = xr;
			xr = Util.SQRT2 * (-a[18] + a[26]);
			a[18] += a[26];
			a[26] = xr - a[18];
			xr = Util.SQRT2 * (-a[19] + a[27]);
			a[19] += a[27];
			a[27] = xr - a[19];

			xr = a[2];
			a[19] -= a[3];
			a[3] -= xr;
			a[2] = a[31] - xr;
			a[31] += xr;
			xr = a[3];
			a[11] -= a[19];
			a[18] -= xr;
			a[3] = a[30] - xr;
			a[30] += xr;
			xr = a[18];
			a[27] -= a[11];
			a[19] -= xr;
			a[18] = a[15] - xr;
			a[15] += xr;

			xr = a[19];
			a[10] -= xr;
			a[19] = a[14] - xr;
			a[14] += xr;
			xr = a[10];
			a[11] -= xr;
			a[10] = a[23] - xr;
			a[23] += xr;
			xr = a[11];
			a[26] -= xr;
			a[11] = a[22] - xr;
			a[22] += xr;
			xr = a[26];
			a[27] -= xr;
			a[26] = a[7] - xr;
			a[7] += xr;

			xr = a[27];
			a[27] = a[6] - xr;
			a[6] += xr;

			xr = Util.SQRT2 * (a[0] - a[4]);
			a[0] += a[4];
			a[4] = xr;
			xr = Util.SQRT2 * (a[1] - a[5]);
			a[1] += a[5];
			a[5] = xr;
			xr = Util.SQRT2 * (a[16] - a[20]);
			a[16] += a[20];
			a[20] = xr;
			xr = Util.SQRT2 * (a[17] - a[21]);
			a[17] += a[21];
			a[21] = xr;

			xr = -Util.SQRT2 * (a[8] - a[12]);
			a[8] += a[12];
			a[12] = xr - a[8];
			xr = -Util.SQRT2 * (a[9] - a[13]);
			a[9] += a[13];
			a[13] = xr - a[9];
			xr = -Util.SQRT2 * (a[25] - a[29]);
			a[25] += a[29];
			a[29] = xr - a[25];
			xr = -Util.SQRT2 * (a[24] + a[28]);
			a[24] -= a[28];
			a[28] = xr - a[24];

			xr = a[24] - a[16];
			a[24] = xr;
			xr = a[20] - xr;
			a[20] = xr;
			xr = a[28] - xr;
			a[28] = xr;

			xr = a[25] - a[17];
			a[25] = xr;
			xr = a[21] - xr;
			a[21] = xr;
			xr = a[29] - xr;
			a[29] = xr;

			xr = a[17] - a[1];
			a[17] = xr;
			xr = a[9] - xr;
			a[9] = xr;
			xr = a[25] - xr;
			a[25] = xr;
			xr = a[5] - xr;
			a[5] = xr;
			xr = a[21] - xr;
			a[21] = xr;
			xr = a[13] - xr;
			a[13] = xr;
			xr = a[29] - xr;
			a[29] = xr;

			xr = a[1] - a[0];
			a[1] = xr;
			xr = a[16] - xr;
			a[16] = xr;
			xr = a[17] - xr;
			a[17] = xr;
			xr = a[8] - xr;
			a[8] = xr;
			xr = a[9] - xr;
			a[9] = xr;
			xr = a[24] - xr;
			a[24] = xr;
			xr = a[25] - xr;
			a[25] = xr;
			xr = a[4] - xr;
			a[4] = xr;
			xr = a[5] - xr;
			a[5] = xr;
			xr = a[20] - xr;
			a[20] = xr;
			xr = a[21] - xr;
			a[21] = xr;
			xr = a[12] - xr;
			a[12] = xr;
			xr = a[13] - xr;
			a[13] = xr;
			xr = a[28] - xr;
			a[28] = xr;
			xr = a[29] - xr;
			a[29] = xr;

			xr = a[0];
			a[0] += a[31];
			a[31] -= xr;
			xr = a[1];
			a[1] += a[30];
			a[30] -= xr;
			xr = a[16];
			a[16] += a[15];
			a[15] -= xr;
			xr = a[17];
			a[17] += a[14];
			a[14] -= xr;
			xr = a[8];
			a[8] += a[23];
			a[23] -= xr;
			xr = a[9];
			a[9] += a[22];
			a[22] -= xr;
			xr = a[24];
			a[24] += a[7];
			a[7] -= xr;
			xr = a[25];
			a[25] += a[6];
			a[6] -= xr;
			xr = a[4];
			a[4] += a[27];
			a[27] -= xr;
			xr = a[5];
			a[5] += a[26];
			a[26] -= xr;
			xr = a[20];
			a[20] += a[11];
			a[11] -= xr;
			xr = a[21];
			a[21] += a[10];
			a[10] -= xr;
			xr = a[12];
			a[12] += a[19];
			a[19] -= xr;
			xr = a[13];
			a[13] += a[18];
			a[18] -= xr;
			xr = a[28];
			a[28] += a[3];
			a[3] -= xr;
			xr = a[29];
			a[29] += a[2];
			a[2] -= xr;
		}
	}

	/**
	 * Function: Calculation of the MDCT In the case of long blocks (type 0,1,3)
	 * there are 36 coefficents in the time domain and 18 in the frequency
	 * domain.<BR>
	 * In the case of short blocks (type 2) there are 3 transformations with
	 * short length. This leads to 12 coefficents in the time and 6 in the
	 * frequency domain. In this case the results are stored side by side in the
	 * vector out[].
	 *
	 * New layer3
	 */
	function mdct_short(inout, inoutPos) {
		for (var l = 0; l < 3; l++) {
			var tc0, tc1, tc2, ts0, ts1, ts2;

			ts0 = inout[inoutPos + 2 * 3] * win[Encoder.SHORT_TYPE][0]
					- inout[inoutPos + 5 * 3];
			tc0 = inout[inoutPos + 0 * 3] * win[Encoder.SHORT_TYPE][2]
					- inout[inoutPos + 3 * 3];
			tc1 = ts0 + tc0;
			tc2 = ts0 - tc0;

			ts0 = inout[inoutPos + 5 * 3] * win[Encoder.SHORT_TYPE][0]
					+ inout[inoutPos + 2 * 3];
			tc0 = inout[inoutPos + 3 * 3] * win[Encoder.SHORT_TYPE][2]
					+ inout[inoutPos + 0 * 3];
			ts1 = ts0 + tc0;
			ts2 = -ts0 + tc0;

			tc0 = (inout[inoutPos + 1 * 3] * win[Encoder.SHORT_TYPE][1] - inout[inoutPos + 4 * 3]) * 2.069978111953089e-11;
			/*
			 * tritab_s [ 1 ]
			 */
			ts0 = (inout[inoutPos + 4 * 3] * win[Encoder.SHORT_TYPE][1] + inout[inoutPos + 1 * 3]) * 2.069978111953089e-11;
			/*
			 * tritab_s [ 1 ]
			 */
			inout[inoutPos + 3 * 0] = tc1 * 1.907525191737280e-11 + tc0;
			/*
			 * tritab_s[ 2 ]
			 */
			inout[inoutPos + 3 * 5] = -ts1 * 1.907525191737280e-11 + ts0;
			/*
			 * tritab_s[0 ]
			 */
			tc2 = tc2 * 0.86602540378443870761 * 1.907525191737281e-11;
			/*
			 * tritab_s[ 2]
			 */
			ts1 = ts1 * 0.5 * 1.907525191737281e-11 + ts0;
			inout[inoutPos + 3 * 1] = tc2 - ts1;
			inout[inoutPos + 3 * 2] = tc2 + ts1;

			tc1 = tc1 * 0.5 * 1.907525191737281e-11 - tc0;
			ts2 = ts2 * 0.86602540378443870761 * 1.907525191737281e-11;
			/*
			 * tritab_s[ 0]
			 */
			inout[inoutPos + 3 * 3] = tc1 + ts2;
			inout[inoutPos + 3 * 4] = tc1 - ts2;

			inoutPos++;
		}
	}

	function mdct_long(out, outPos, _in) {
		var ct, st;
		{
			var tc1, tc2, tc3, tc4, ts5, ts6, ts7, ts8;
			/* 1,2, 5,6, 9,10, 13,14, 17 */
			tc1 = _in[17] - _in[9];
			tc3 = _in[15] - _in[11];
			tc4 = _in[14] - _in[12];
			ts5 = _in[0] + _in[8];
			ts6 = _in[1] + _in[7];
			ts7 = _in[2] + _in[6];
			ts8 = _in[3] + _in[5];

			out[outPos + 17] = (ts5 + ts7 - ts8) - (ts6 - _in[4]);
			st = (ts5 + ts7 - ts8) * cx[12 + 7] + (ts6 - _in[4]);
			ct = (tc1 - tc3 - tc4) * cx[12 + 6];
			out[outPos + 5] = ct + st;
			out[outPos + 6] = ct - st;

			tc2 = (_in[16] - _in[10]) * cx[12 + 6];
			ts6 = ts6 * cx[12 + 7] + _in[4];
			ct = tc1 * cx[12 + 0] + tc2 + tc3 * cx[12 + 1] + tc4 * cx[12 + 2];
			st = -ts5 * cx[12 + 4] + ts6 - ts7 * cx[12 + 5] + ts8 * cx[12 + 3];
			out[outPos + 1] = ct + st;
			out[outPos + 2] = ct - st;

			ct = tc1 * cx[12 + 1] - tc2 - tc3 * cx[12 + 2] + tc4 * cx[12 + 0];
			st = -ts5 * cx[12 + 5] + ts6 - ts7 * cx[12 + 3] + ts8 * cx[12 + 4];
			out[outPos + 9] = ct + st;
			out[outPos + 10] = ct - st;

			ct = tc1 * cx[12 + 2] - tc2 + tc3 * cx[12 + 0] - tc4 * cx[12 + 1];
			st = ts5 * cx[12 + 3] - ts6 + ts7 * cx[12 + 4] - ts8 * cx[12 + 5];
			out[outPos + 13] = ct + st;
			out[outPos + 14] = ct - st;
		}
		{
			var ts1, ts2, ts3, ts4, tc5, tc6, tc7, tc8;

			ts1 = _in[8] - _in[0];
			ts3 = _in[6] - _in[2];
			ts4 = _in[5] - _in[3];
			tc5 = _in[17] + _in[9];
			tc6 = _in[16] + _in[10];
			tc7 = _in[15] + _in[11];
			tc8 = _in[14] + _in[12];

			out[outPos + 0] = (tc5 + tc7 + tc8) + (tc6 + _in[13]);
			ct = (tc5 + tc7 + tc8) * cx[12 + 7] - (tc6 + _in[13]);
			st = (ts1 - ts3 + ts4) * cx[12 + 6];
			out[outPos + 11] = ct + st;
			out[outPos + 12] = ct - st;

			ts2 = (_in[7] - _in[1]) * cx[12 + 6];
			tc6 = _in[13] - tc6 * cx[12 + 7];
			ct = tc5 * cx[12 + 3] - tc6 + tc7 * cx[12 + 4] + tc8 * cx[12 + 5];
			st = ts1 * cx[12 + 2] + ts2 + ts3 * cx[12 + 0] + ts4 * cx[12 + 1];
			out[outPos + 3] = ct + st;
			out[outPos + 4] = ct - st;

			ct = -tc5 * cx[12 + 5] + tc6 - tc7 * cx[12 + 3] - tc8 * cx[12 + 4];
			st = ts1 * cx[12 + 1] + ts2 - ts3 * cx[12 + 2] - ts4 * cx[12 + 0];
			out[outPos + 7] = ct + st;
			out[outPos + 8] = ct - st;

			ct = -tc5 * cx[12 + 4] + tc6 - tc7 * cx[12 + 5] - tc8 * cx[12 + 3];
			st = ts1 * cx[12 + 0] - ts2 + ts3 * cx[12 + 1] - ts4 * cx[12 + 2];
			out[outPos + 15] = ct + st;
			out[outPos + 16] = ct - st;
		}
	}

	this.mdct_sub48 = function(gfc, w0, w1) {
		var wk = w0;
		var wkPos = 286;
		/* thinking cache performance, ch->gr loop is better than gr->ch loop */
		for (var ch = 0; ch < gfc.channels_out; ch++) {
			for (var gr = 0; gr < gfc.mode_gr; gr++) {
				var band;
				var gi = (gfc.l3_side.tt[gr][ch]);
				var mdct_enc = gi.xr;
				var mdct_encPos = 0;
				var samp = gfc.sb_sample[ch][1 - gr];
				var sampPos = 0;

				for (var k = 0; k < 18 / 2; k++) {
					window_subband(wk, wkPos, samp[sampPos]);
					window_subband(wk, wkPos + 32, samp[sampPos + 1]);
					sampPos += 2;
					wkPos += 64;
					/*
					 * Compensate for inversion in the analysis filter
					 */
					for (band = 1; band < 32; band += 2) {
						samp[sampPos - 1][band] *= -1;
					}
				}

				/*
				 * Perform imdct of 18 previous subband samples + 18 current
				 * subband samples
				 */
				for (band = 0; band < 32; band++, mdct_encPos += 18) {
					var type = gi.block_type;
					var band0 = gfc.sb_sample[ch][gr];
					var band1 = gfc.sb_sample[ch][1 - gr];
					if (gi.mixed_block_flag != 0 && band < 2)
						type = 0;
					if (gfc.amp_filter[band] < 1e-12) {
						Arrays.fill(mdct_enc, mdct_encPos + 0,
								mdct_encPos + 18, 0);
					} else {
						if (gfc.amp_filter[band] < 1.0) {
							for (var k = 0; k < 18; k++)
								band1[k][order[band]] *= gfc.amp_filter[band];
						}
						if (type == Encoder.SHORT_TYPE) {
							for (var k = -NS / 4; k < 0; k++) {
								var w = win[Encoder.SHORT_TYPE][k + 3];
								mdct_enc[mdct_encPos + k * 3 + 9] = band0[9 + k][order[band]]
										* w - band0[8 - k][order[band]];
								mdct_enc[mdct_encPos + k * 3 + 18] = band0[14 - k][order[band]]
										* w + band0[15 + k][order[band]];
								mdct_enc[mdct_encPos + k * 3 + 10] = band0[15 + k][order[band]]
										* w - band0[14 - k][order[band]];
								mdct_enc[mdct_encPos + k * 3 + 19] = band1[2 - k][order[band]]
										* w + band1[3 + k][order[band]];
								mdct_enc[mdct_encPos + k * 3 + 11] = band1[3 + k][order[band]]
										* w - band1[2 - k][order[band]];
								mdct_enc[mdct_encPos + k * 3 + 20] = band1[8 - k][order[band]]
										* w + band1[9 + k][order[band]];
							}
							mdct_short(mdct_enc, mdct_encPos);
						} else {
							var work = new_float(18);
							for (var k = -NL / 4; k < 0; k++) {
								var a, b;
								a = win[type][k + 27]
										* band1[k + 9][order[band]]
										+ win[type][k + 36]
										* band1[8 - k][order[band]];
								b = win[type][k + 9]
										* band0[k + 9][order[band]]
										- win[type][k + 18]
										* band0[8 - k][order[band]];
								work[k + 9] = a - b * tantab_l[3 + k + 9];
								work[k + 18] = a * tantab_l[3 + k + 9] + b;
							}

							mdct_long(mdct_enc, mdct_encPos, work);
						}
					}
					/*
					 * Perform aliasing reduction butterfly
					 */
					if (type != Encoder.SHORT_TYPE && band != 0) {
						for (var k = 7; k >= 0; --k) {
							var bu, bd;
							bu = mdct_enc[mdct_encPos + k] * ca[20 + k]
									+ mdct_enc[mdct_encPos + -1 - k]
									* cs[28 + k];
							bd = mdct_enc[mdct_encPos + k] * cs[28 + k]
									- mdct_enc[mdct_encPos + -1 - k]
									* ca[20 + k];

							mdct_enc[mdct_encPos + -1 - k] = bu;
							mdct_enc[mdct_encPos + k] = bd;
						}
					}
				}
			}
			wk = w1;
			wkPos = 286;
			if (gfc.mode_gr == 1) {
				for (var i = 0; i < 18; i++) {
					System.arraycopy(gfc.sb_sample[ch][1][i], 0,
							gfc.sb_sample[ch][0][i], 0, 32);
				}
			}
		}
	}
}

module.exports = NewMDCT;


/***/ }),

/***/ "./node_modules/lamejs/src/js/NsPsy.js":
/*!*********************************************!*\
  !*** ./node_modules/lamejs/src/js/NsPsy.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");

//package mp3;

/**
 * Variables used for --nspsytune
 *
 * @author Ken
 *
 */
function NsPsy() {
    this.last_en_subshort = new_float_n([4, 9]);
    this.lastAttacks = new_int(4);
    this.pefirbuf = new_float(19);
    this.longfact = new_float(Encoder.SBMAX_l);
    this.shortfact = new_float(Encoder.SBMAX_s);

    /**
     * short block tuning
     */
    this.attackthre = 0.;
    this.attackthre_s = 0.;
}

module.exports = NsPsy;


/***/ }),

/***/ "./node_modules/lamejs/src/js/Presets.js":
/*!***********************************************!*\
  !*** ./node_modules/lamejs/src/js/Presets.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

function Presets() {
    function VBRPresets(qual, comp, compS,
                        y, shThreshold, shThresholdS,
                        adj, adjShort, lower,
                        curve, sens, inter,
                        joint, mod, fix) {
        this.vbr_q = qual;
        this.quant_comp = comp;
        this.quant_comp_s = compS;
        this.expY = y;
        this.st_lrm = shThreshold;
        this.st_s = shThresholdS;
        this.masking_adj = adj;
        this.masking_adj_short = adjShort;
        this.ath_lower = lower;
        this.ath_curve = curve;
        this.ath_sensitivity = sens;
        this.interch = inter;
        this.safejoint = joint;
        this.sfb21mod = mod;
        this.msfix = fix;
    }

    function ABRPresets(kbps, comp, compS,
                        joint, fix, shThreshold,
                        shThresholdS, bass, sc,
                        mask, lower, curve,
                        interCh, sfScale) {
        this.quant_comp = comp;
        this.quant_comp_s = compS;
        this.safejoint = joint;
        this.nsmsfix = fix;
        this.st_lrm = shThreshold;
        this.st_s = shThresholdS;
        this.nsbass = bass;
        this.scale = sc;
        this.masking_adj = mask;
        this.ath_lower = lower;
        this.ath_curve = curve;
        this.interch = interCh;
        this.sfscale = sfScale;
    }

    var lame;

    this.setModules = function (_lame) {
        lame = _lame;
    };

    /**
     * <PRE>
     * Switch mappings for VBR mode VBR_RH
     *             vbr_q  qcomp_l  qcomp_s  expY  st_lrm   st_s  mask adj_l  adj_s  ath_lower  ath_curve  ath_sens  interChR  safejoint sfb21mod  msfix
     * </PRE>
     */
    var vbr_old_switch_map = [
        new VBRPresets(0, 9, 9, 0, 5.20, 125.0, -4.2, -6.3, 4.8, 1, 0, 0, 2, 21, 0.97),
        new VBRPresets(1, 9, 9, 0, 5.30, 125.0, -3.6, -5.6, 4.5, 1.5, 0, 0, 2, 21, 1.35),
        new VBRPresets(2, 9, 9, 0, 5.60, 125.0, -2.2, -3.5, 2.8, 2, 0, 0, 2, 21, 1.49),
        new VBRPresets(3, 9, 9, 1, 5.80, 130.0, -1.8, -2.8, 2.6, 3, -4, 0, 2, 20, 1.64),
        new VBRPresets(4, 9, 9, 1, 6.00, 135.0, -0.7, -1.1, 1.1, 3.5, -8, 0, 2, 0, 1.79),
        new VBRPresets(5, 9, 9, 1, 6.40, 140.0, 0.5, 0.4, -7.5, 4, -12, 0.0002, 0, 0, 1.95),
        new VBRPresets(6, 9, 9, 1, 6.60, 145.0, 0.67, 0.65, -14.7, 6.5, -19, 0.0004, 0, 0, 2.30),
        new VBRPresets(7, 9, 9, 1, 6.60, 145.0, 0.8, 0.75, -19.7, 8, -22, 0.0006, 0, 0, 2.70),
        new VBRPresets(8, 9, 9, 1, 6.60, 145.0, 1.2, 1.15, -27.5, 10, -23, 0.0007, 0, 0, 0),
        new VBRPresets(9, 9, 9, 1, 6.60, 145.0, 1.6, 1.6, -36, 11, -25, 0.0008, 0, 0, 0),
        new VBRPresets(10, 9, 9, 1, 6.60, 145.0, 2.0, 2.0, -36, 12, -25, 0.0008, 0, 0, 0)
    ];

    /**
     * <PRE>
     *                 vbr_q  qcomp_l  qcomp_s  expY  st_lrm   st_s  mask adj_l  adj_s  ath_lower  ath_curve  ath_sens  interChR  safejoint sfb21mod  msfix
     * </PRE>
     */
    var vbr_psy_switch_map = [
        new VBRPresets(0, 9, 9, 0, 4.20, 25.0, -7.0, -4.0, 7.5, 1, 0, 0, 2, 26, 0.97),
        new VBRPresets(1, 9, 9, 0, 4.20, 25.0, -5.6, -3.6, 4.5, 1.5, 0, 0, 2, 21, 1.35),
        new VBRPresets(2, 9, 9, 0, 4.20, 25.0, -4.4, -1.8, 2, 2, 0, 0, 2, 18, 1.49),
        new VBRPresets(3, 9, 9, 1, 4.20, 25.0, -3.4, -1.25, 1.1, 3, -4, 0, 2, 15, 1.64),
        new VBRPresets(4, 9, 9, 1, 4.20, 25.0, -2.2, 0.1, 0, 3.5, -8, 0, 2, 0, 1.79),
        new VBRPresets(5, 9, 9, 1, 4.20, 25.0, -1.0, 1.65, -7.7, 4, -12, 0.0002, 0, 0, 1.95),
        new VBRPresets(6, 9, 9, 1, 4.20, 25.0, -0.0, 2.47, -7.7, 6.5, -19, 0.0004, 0, 0, 2),
        new VBRPresets(7, 9, 9, 1, 4.20, 25.0, 0.5, 2.0, -14.5, 8, -22, 0.0006, 0, 0, 2),
        new VBRPresets(8, 9, 9, 1, 4.20, 25.0, 1.0, 2.4, -22.0, 10, -23, 0.0007, 0, 0, 2),
        new VBRPresets(9, 9, 9, 1, 4.20, 25.0, 1.5, 2.95, -30.0, 11, -25, 0.0008, 0, 0, 2),
        new VBRPresets(10, 9, 9, 1, 4.20, 25.0, 2.0, 2.95, -36.0, 12, -30, 0.0008, 0, 0, 2)
    ];

    function apply_vbr_preset(gfp, a, enforce) {
        var vbr_preset = gfp.VBR == VbrMode.vbr_rh ? vbr_old_switch_map
            : vbr_psy_switch_map;

        var x = gfp.VBR_q_frac;
        var p = vbr_preset[a];
        var q = vbr_preset[a + 1];
        var set = p;

        // NOOP(vbr_q);
        // NOOP(quant_comp);
        // NOOP(quant_comp_s);
        // NOOP(expY);
        p.st_lrm = p.st_lrm + x * (q.st_lrm - p.st_lrm);
        // LERP(st_lrm);
        p.st_s = p.st_s + x * (q.st_s - p.st_s);
        // LERP(st_s);
        p.masking_adj = p.masking_adj + x * (q.masking_adj - p.masking_adj);
        // LERP(masking_adj);
        p.masking_adj_short = p.masking_adj_short + x
            * (q.masking_adj_short - p.masking_adj_short);
        // LERP(masking_adj_short);
        p.ath_lower = p.ath_lower + x * (q.ath_lower - p.ath_lower);
        // LERP(ath_lower);
        p.ath_curve = p.ath_curve + x * (q.ath_curve - p.ath_curve);
        // LERP(ath_curve);
        p.ath_sensitivity = p.ath_sensitivity + x
            * (q.ath_sensitivity - p.ath_sensitivity);
        // LERP(ath_sensitivity);
        p.interch = p.interch + x * (q.interch - p.interch);
        // LERP(interch);
        // NOOP(safejoint);
        // NOOP(sfb21mod);
        p.msfix = p.msfix + x * (q.msfix - p.msfix);
        // LERP(msfix);

        lame_set_VBR_q(gfp, set.vbr_q);

        if (enforce != 0)
            gfp.quant_comp = set.quant_comp;
        else if (!(Math.abs(gfp.quant_comp - -1) > 0))
            gfp.quant_comp = set.quant_comp;
        // SET_OPTION(quant_comp, set.quant_comp, -1);
        if (enforce != 0)
            gfp.quant_comp_short = set.quant_comp_s;
        else if (!(Math.abs(gfp.quant_comp_short - -1) > 0))
            gfp.quant_comp_short = set.quant_comp_s;
        // SET_OPTION(quant_comp_short, set.quant_comp_s, -1);
        if (set.expY != 0) {
            gfp.experimentalY = set.expY != 0;
        }
        if (enforce != 0)
            gfp.internal_flags.nsPsy.attackthre = set.st_lrm;
        else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0))
            gfp.internal_flags.nsPsy.attackthre = set.st_lrm;
        // SET_OPTION(short_threshold_lrm, set.st_lrm, -1);
        if (enforce != 0)
            gfp.internal_flags.nsPsy.attackthre_s = set.st_s;
        else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0))
            gfp.internal_flags.nsPsy.attackthre_s = set.st_s;
        // SET_OPTION(short_threshold_s, set.st_s, -1);
        if (enforce != 0)
            gfp.maskingadjust = set.masking_adj;
        else if (!(Math.abs(gfp.maskingadjust - 0) > 0))
            gfp.maskingadjust = set.masking_adj;
        // SET_OPTION(maskingadjust, set.masking_adj, 0);
        if (enforce != 0)
            gfp.maskingadjust_short = set.masking_adj_short;
        else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))
            gfp.maskingadjust_short = set.masking_adj_short;
        // SET_OPTION(maskingadjust_short, set.masking_adj_short, 0);
        if (enforce != 0)
            gfp.ATHlower = -set.ath_lower / 10.0;
        else if (!(Math.abs((-gfp.ATHlower * 10.0) - 0) > 0))
            gfp.ATHlower = -set.ath_lower / 10.0;
        // SET_OPTION(ATHlower, set.ath_lower, 0);
        if (enforce != 0)
            gfp.ATHcurve = set.ath_curve;
        else if (!(Math.abs(gfp.ATHcurve - -1) > 0))
            gfp.ATHcurve = set.ath_curve;
        // SET_OPTION(ATHcurve, set.ath_curve, -1);
        if (enforce != 0)
            gfp.athaa_sensitivity = set.ath_sensitivity;
        else if (!(Math.abs(gfp.athaa_sensitivity - -1) > 0))
            gfp.athaa_sensitivity = set.ath_sensitivity;
        // SET_OPTION(athaa_sensitivity, set.ath_sensitivity, 0);
        if (set.interch > 0) {
            if (enforce != 0)
                gfp.interChRatio = set.interch;
            else if (!(Math.abs(gfp.interChRatio - -1) > 0))
                gfp.interChRatio = set.interch;
            // SET_OPTION(interChRatio, set.interch, -1);
        }

        /* parameters for which there is no proper set/get interface */
        if (set.safejoint > 0) {
            gfp.exp_nspsytune = gfp.exp_nspsytune | set.safejoint;
        }
        if (set.sfb21mod > 0) {
            gfp.exp_nspsytune = gfp.exp_nspsytune | (set.sfb21mod << 20);
        }
        if (enforce != 0)
            gfp.msfix = set.msfix;
        else if (!(Math.abs(gfp.msfix - -1) > 0))
            gfp.msfix = set.msfix;
        // SET_OPTION(msfix, set.msfix, -1);

        if (enforce == 0) {
            gfp.VBR_q = a;
            gfp.VBR_q_frac = x;
        }
    }

    /**
     * <PRE>
     *  Switch mappings for ABR mode
     *
     *              kbps  quant q_s safejoint nsmsfix st_lrm  st_s  ns-bass scale   msk ath_lwr ath_curve  interch , sfscale
     * </PRE>
     */
    var abr_switch_map = [
        new ABRPresets(8, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -30.0, 11, 0.0012, 1), /*   8, impossible to use in stereo */
        new ABRPresets(16, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -25.0, 11, 0.0010, 1), /*  16 */
        new ABRPresets(24, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -20.0, 11, 0.0010, 1), /*  24 */
        new ABRPresets(32, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -15.0, 11, 0.0010, 1), /*  32 */
        new ABRPresets(40, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -10.0, 11, 0.0009, 1), /*  40 */
        new ABRPresets(48, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -10.0, 11, 0.0009, 1), /*  48 */
        new ABRPresets(56, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -6.0, 11, 0.0008, 1), /*  56 */
        new ABRPresets(64, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -2.0, 11, 0.0008, 1), /*  64 */
        new ABRPresets(80, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, .0, 8, 0.0007, 1), /*  80 */
        new ABRPresets(96, 9, 9, 0, 2.50, 6.60, 145, 0, 0.95, 0, 1.0, 5.5, 0.0006, 1), /*  96 */
        new ABRPresets(112, 9, 9, 0, 2.25, 6.60, 145, 0, 0.95, 0, 2.0, 4.5, 0.0005, 1), /* 112 */
        new ABRPresets(128, 9, 9, 0, 1.95, 6.40, 140, 0, 0.95, 0, 3.0, 4, 0.0002, 1), /* 128 */
        new ABRPresets(160, 9, 9, 1, 1.79, 6.00, 135, 0, 0.95, -2, 5.0, 3.5, 0, 1), /* 160 */
        new ABRPresets(192, 9, 9, 1, 1.49, 5.60, 125, 0, 0.97, -4, 7.0, 3, 0, 0), /* 192 */
        new ABRPresets(224, 9, 9, 1, 1.25, 5.20, 125, 0, 0.98, -6, 9.0, 2, 0, 0), /* 224 */
        new ABRPresets(256, 9, 9, 1, 0.97, 5.20, 125, 0, 1.00, -8, 10.0, 1, 0, 0), /* 256 */
        new ABRPresets(320, 9, 9, 1, 0.90, 5.20, 125, 0, 1.00, -10, 12.0, 0, 0, 0)  /* 320 */
    ];

    function apply_abr_preset(gfp, preset, enforce) {
        /* Variables for the ABR stuff */
        var actual_bitrate = preset;

        var r = lame.nearestBitrateFullIndex(preset);

        gfp.VBR = VbrMode.vbr_abr;
        gfp.VBR_mean_bitrate_kbps = actual_bitrate;
        gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);
        gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);
        gfp.brate = gfp.VBR_mean_bitrate_kbps;
        if (gfp.VBR_mean_bitrate_kbps > 320) {
            gfp.disable_reservoir = true;
        }

        /* parameters for which there is no proper set/get interface */
        if (abr_switch_map[r].safejoint > 0)
            gfp.exp_nspsytune = gfp.exp_nspsytune | 2;
        /* safejoint */

        if (abr_switch_map[r].sfscale > 0) {
            gfp.internal_flags.noise_shaping = 2;
        }
        /* ns-bass tweaks */
        if (Math.abs(abr_switch_map[r].nsbass) > 0) {
            var k = (int)(abr_switch_map[r].nsbass * 4);
            if (k < 0)
                k += 64;
            gfp.exp_nspsytune = gfp.exp_nspsytune | (k << 2);
        }

        if (enforce != 0)
            gfp.quant_comp = abr_switch_map[r].quant_comp;
        else if (!(Math.abs(gfp.quant_comp - -1) > 0))
            gfp.quant_comp = abr_switch_map[r].quant_comp;
        // SET_OPTION(quant_comp, abr_switch_map[r].quant_comp, -1);
        if (enforce != 0)
            gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;
        else if (!(Math.abs(gfp.quant_comp_short - -1) > 0))
            gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;
        // SET_OPTION(quant_comp_short, abr_switch_map[r].quant_comp_s, -1);

        if (enforce != 0)
            gfp.msfix = abr_switch_map[r].nsmsfix;
        else if (!(Math.abs(gfp.msfix - -1) > 0))
            gfp.msfix = abr_switch_map[r].nsmsfix;
        // SET_OPTION(msfix, abr_switch_map[r].nsmsfix, -1);

        if (enforce != 0)
            gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;
        else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0))
            gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;
        // SET_OPTION(short_threshold_lrm, abr_switch_map[r].st_lrm, -1);
        if (enforce != 0)
            gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;
        else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0))
            gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;
        // SET_OPTION(short_threshold_s, abr_switch_map[r].st_s, -1);

        /*
         * ABR seems to have big problems with clipping, especially at low
         * bitrates
         */
        /*
         * so we compensate for that here by using a scale value depending on
         * bitrate
         */
        if (enforce != 0)
            gfp.scale = abr_switch_map[r].scale;
        else if (!(Math.abs(gfp.scale - -1) > 0))
            gfp.scale = abr_switch_map[r].scale;
        // SET_OPTION(scale, abr_switch_map[r].scale, -1);

        if (enforce != 0)
            gfp.maskingadjust = abr_switch_map[r].masking_adj;
        else if (!(Math.abs(gfp.maskingadjust - 0) > 0))
            gfp.maskingadjust = abr_switch_map[r].masking_adj;
        // SET_OPTION(maskingadjust, abr_switch_map[r].masking_adj, 0);
        if (abr_switch_map[r].masking_adj > 0) {
            if (enforce != 0)
                gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * .9);
            else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))
                gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * .9);
            // SET_OPTION(maskingadjust_short, abr_switch_map[r].masking_adj *
            // .9, 0);
        } else {
            if (enforce != 0)
                gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * 1.1);
            else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))
                gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * 1.1);
            // SET_OPTION(maskingadjust_short, abr_switch_map[r].masking_adj *
            // 1.1, 0);
        }

        if (enforce != 0)
            gfp.ATHlower = -abr_switch_map[r].ath_lower / 10.;
        else if (!(Math.abs((-gfp.ATHlower * 10.) - 0) > 0))
            gfp.ATHlower = -abr_switch_map[r].ath_lower / 10.;
        // SET_OPTION(ATHlower, abr_switch_map[r].ath_lower, 0);
        if (enforce != 0)
            gfp.ATHcurve = abr_switch_map[r].ath_curve;
        else if (!(Math.abs(gfp.ATHcurve - -1) > 0))
            gfp.ATHcurve = abr_switch_map[r].ath_curve;
        // SET_OPTION(ATHcurve, abr_switch_map[r].ath_curve, -1);

        if (enforce != 0)
            gfp.interChRatio = abr_switch_map[r].interch;
        else if (!(Math.abs(gfp.interChRatio - -1) > 0))
            gfp.interChRatio = abr_switch_map[r].interch;
        // SET_OPTION(interChRatio, abr_switch_map[r].interch, -1);

        return preset;
    }

    this.apply_preset = function(gfp, preset, enforce) {
        /* translate legacy presets */
        switch (preset) {
            case Lame.R3MIX:
            {
                preset = Lame.V3;
                gfp.VBR = VbrMode.vbr_mtrh;
                break;
            }
            case Lame.MEDIUM:
            {
                preset = Lame.V4;
                gfp.VBR = VbrMode.vbr_rh;
                break;
            }
            case Lame.MEDIUM_FAST:
            {
                preset = Lame.V4;
                gfp.VBR = VbrMode.vbr_mtrh;
                break;
            }
            case Lame.STANDARD:
            {
                preset = Lame.V2;
                gfp.VBR = VbrMode.vbr_rh;
                break;
            }
            case Lame.STANDARD_FAST:
            {
                preset = Lame.V2;
                gfp.VBR = VbrMode.vbr_mtrh;
                break;
            }
            case Lame.EXTREME:
            {
                preset = Lame.V0;
                gfp.VBR = VbrMode.vbr_rh;
                break;
            }
            case Lame.EXTREME_FAST:
            {
                preset = Lame.V0;
                gfp.VBR = VbrMode.vbr_mtrh;
                break;
            }
            case Lame.INSANE:
            {
                preset = 320;
                gfp.preset = preset;
                apply_abr_preset(gfp, preset, enforce);
                gfp.VBR = VbrMode.vbr_off;
                return preset;
            }
        }

        gfp.preset = preset;
        {
            switch (preset) {
                case Lame.V9:
                    apply_vbr_preset(gfp, 9, enforce);
                    return preset;
                case Lame.V8:
                    apply_vbr_preset(gfp, 8, enforce);
                    return preset;
                case Lame.V7:
                    apply_vbr_preset(gfp, 7, enforce);
                    return preset;
                case Lame.V6:
                    apply_vbr_preset(gfp, 6, enforce);
                    return preset;
                case Lame.V5:
                    apply_vbr_preset(gfp, 5, enforce);
                    return preset;
                case Lame.V4:
                    apply_vbr_preset(gfp, 4, enforce);
                    return preset;
                case Lame.V3:
                    apply_vbr_preset(gfp, 3, enforce);
                    return preset;
                case Lame.V2:
                    apply_vbr_preset(gfp, 2, enforce);
                    return preset;
                case Lame.V1:
                    apply_vbr_preset(gfp, 1, enforce);
                    return preset;
                case Lame.V0:
                    apply_vbr_preset(gfp, 0, enforce);
                    return preset;
                default:
                    break;
            }
        }
        if (8 <= preset && preset <= 320) {
            return apply_abr_preset(gfp, preset, enforce);
        }

        /* no corresponding preset found */
        gfp.preset = 0;
        return preset;
    }

    // Rest from getset.c:

    /**
     * VBR quality level.<BR>
     * 0 = highest<BR>
     * 9 = lowest
     */
    function lame_set_VBR_q(gfp, VBR_q) {
        var ret = 0;

        if (0 > VBR_q) {
            /* Unknown VBR quality level! */
            ret = -1;
            VBR_q = 0;
        }
        if (9 < VBR_q) {
            ret = -1;
            VBR_q = 9;
        }

        gfp.VBR_q = VBR_q;
        gfp.VBR_q_frac = 0;
        return ret;
    }

}

module.exports = Presets;


/***/ }),

/***/ "./node_modules/lamejs/src/js/PsyModel.js":
/*!************************************************!*\
  !*** ./node_modules/lamejs/src/js/PsyModel.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/*
 *      psymodel.c
 *
 *      Copyright (c) 1999-2000 Mark Taylor
 *      Copyright (c) 2001-2002 Naoki Shibata
 *      Copyright (c) 2000-2003 Takehiro Tominaga
 *      Copyright (c) 2000-2008 Robert Hegemann
 *      Copyright (c) 2000-2005 Gabriel Bouvigne
 *      Copyright (c) 2000-2005 Alexander Leidinger
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */

/* $Id: PsyModel.java,v 1.27 2011/05/24 20:48:06 kenchis Exp $ */


/*
 PSYCHO ACOUSTICS


 This routine computes the psycho acoustics, delayed by one granule.

 Input: buffer of PCM data (1024 samples).

 This window should be centered over the 576 sample granule window.
 The routine will compute the psycho acoustics for
 this granule, but return the psycho acoustics computed
 for the *previous* granule.  This is because the block
 type of the previous granule can only be determined
 after we have computed the psycho acoustics for the following
 granule.

 Output:  maskings and energies for each scalefactor band.
 block type, PE, and some correlation measures.
 The PE is used by CBR modes to determine if extra bits
 from the bit reservoir should be used.  The correlation
 measures are used to determine mid/side or regular stereo.
 */
/*
 Notation:

 barks:  a non-linear frequency scale.  Mapping from frequency to
 barks is given by freq2bark()

 scalefactor bands: The spectrum (frequencies) are broken into
 SBMAX "scalefactor bands".  Thes bands
 are determined by the MPEG ISO spec.  In
 the noise shaping/quantization code, we allocate
 bits among the partition bands to achieve the
 best possible quality

 partition bands:   The spectrum is also broken into about
 64 "partition bands".  Each partition
 band is about .34 barks wide.  There are about 2-5
 partition bands for each scalefactor band.

 LAME computes all psycho acoustic information for each partition
 band.  Then at the end of the computations, this information
 is mapped to scalefactor bands.  The energy in each scalefactor
 band is taken as the sum of the energy in all partition bands
 which overlap the scalefactor band.  The maskings can be computed
 in the same way (and thus represent the average masking in that band)
 or by taking the minmum value multiplied by the number of
 partition bands used (which represents a minimum masking in that band).
 */
/*
 The general outline is as follows:

 1. compute the energy in each partition band
 2. compute the tonality in each partition band
 3. compute the strength of each partion band "masker"
 4. compute the masking (via the spreading function applied to each masker)
 5. Modifications for mid/side masking.

 Each partition band is considiered a "masker".  The strength
 of the i'th masker in band j is given by:

 s3(bark(i)-bark(j))*strength(i)

 The strength of the masker is a function of the energy and tonality.
 The more tonal, the less masking.  LAME uses a simple linear formula
 (controlled by NMT and TMN) which says the strength is given by the
 energy divided by a linear function of the tonality.
 */
/*
 s3() is the "spreading function".  It is given by a formula
 determined via listening tests.

 The total masking in the j'th partition band is the sum over
 all maskings i.  It is thus given by the convolution of
 the strength with s3(), the "spreading function."

 masking(j) = sum_over_i  s3(i-j)*strength(i)  = s3 o strength

 where "o" = convolution operator.  s3 is given by a formula determined
 via listening tests.  It is normalized so that s3 o 1 = 1.

 Note: instead of a simple convolution, LAME also has the
 option of using "additive masking"

 The most critical part is step 2, computing the tonality of each
 partition band.  LAME has two tonality estimators.  The first
 is based on the ISO spec, and measures how predictiable the
 signal is over time.  The more predictable, the more tonal.
 The second measure is based on looking at the spectrum of
 a single granule.  The more peaky the spectrum, the more
 tonal.  By most indications, the latter approach is better.

 Finally, in step 5, the maskings for the mid and side
 channel are possibly increased.  Under certain circumstances,
 noise in the mid & side channels is assumed to also
 be masked by strong maskers in the L or R channels.


 Other data computed by the psy-model:

 ms_ratio        side-channel / mid-channel masking ratio (for previous granule)
 ms_ratio_next   side-channel / mid-channel masking ratio for this granule

 percep_entropy[2]     L and R values (prev granule) of PE - A measure of how
 much pre-echo is in the previous granule
 percep_entropy_MS[2]  mid and side channel values (prev granule) of percep_entropy
 energy[4]             L,R,M,S energy in each channel, prev granule
 blocktype_d[2]        block type to use for previous granule
 */
//package mp3;

//import java.util.Arrays;
var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var FFT = __webpack_require__(/*! ./FFT.js */ "./node_modules/lamejs/src/js/FFT.js");
var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");

function PsyModel() {

    var fft = new FFT();

    var LOG10 = 2.30258509299404568402;

    var rpelev = 2;
    var rpelev2 = 16;
    var rpelev_s = 2;
    var rpelev2_s = 16;

    /* size of each partition band, in barks: */
    var DELBARK = .34;

    /* tuned for output level (sensitive to energy scale) */
    var VO_SCALE = (1. / (14752 * 14752) / (Encoder.BLKSIZE / 2));

    var temporalmask_sustain_sec = 0.01;

    var NS_PREECHO_ATT0 = 0.8;
    var NS_PREECHO_ATT1 = 0.6;
    var NS_PREECHO_ATT2 = 0.3;

    var NS_MSFIX = 3.5;

    var NSATTACKTHRE = 4.4;
    var NSATTACKTHRE_S = 25;

    var NSFIRLEN = 21;

    /* size of each partition band, in barks: */
    var LN_TO_LOG10 = 0.2302585093;

    function NON_LINEAR_SCALE_ENERGY(x) {
        return x;
    }

    /**
     * <PRE>
     *       L3psycho_anal.  Compute psycho acoustics.
     *
     *       Data returned to the calling program must be delayed by one
     *       granule.
     *
     *       This is done in two places.
     *       If we do not need to know the blocktype, the copying
     *       can be done here at the top of the program: we copy the data for
     *       the last granule (computed during the last call) before it is
     *       overwritten with the new data.  It looks like this:
     *
     *       0. static psymodel_data
     *       1. calling_program_data = psymodel_data
     *       2. compute psymodel_data
     *
     *       For data which needs to know the blocktype, the copying must be
     *       done at the end of this loop, and the old values must be saved:
     *
     *       0. static psymodel_data_old
     *       1. compute psymodel_data
     *       2. compute possible block type of this granule
     *       3. compute final block type of previous granule based on #2.
     *       4. calling_program_data = psymodel_data_old
     *       5. psymodel_data_old = psymodel_data
     *     psycho_loudness_approx
     *       jd - 2001 mar 12
     *    in:  energy   - BLKSIZE/2 elements of frequency magnitudes ^ 2
     *         gfp      - uses out_samplerate, ATHtype (also needed for ATHformula)
     *    returns: loudness^2 approximation, a positive value roughly tuned for a value
     *             of 1.0 for signals near clipping.
     *    notes:   When calibrated, feeding this function binary white noise at sample
     *             values +32767 or -32768 should return values that approach 3.
     *             ATHformula is used to approximate an equal loudness curve.
     *    future:  Data indicates that the shape of the equal loudness curve varies
     *             with intensity.  This function might be improved by using an equal
     *             loudness curve shaped for typical playback levels (instead of the
     *             ATH, that is shaped for the threshold).  A flexible realization might
     *             simply bend the existing ATH curve to achieve the desired shape.
     *             However, the potential gain may not be enough to justify an effort.
     * </PRE>
     */
    function psycho_loudness_approx(energy, gfc) {
        var loudness_power = 0.0;
        /* apply weights to power in freq. bands */
        for (var i = 0; i < Encoder.BLKSIZE / 2; ++i)
            loudness_power += energy[i] * gfc.ATH.eql_w[i];
        loudness_power *= VO_SCALE;

        return loudness_power;
    }

    function compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, wsamp_lPos, wsamp_s, wsamp_sPos, gr_out, chn, buffer, bufPos) {
        var gfc = gfp.internal_flags;
        if (chn < 2) {
            fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);
            fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);
        }
        /* FFT data for mid and side channel is derived from L & R */
        else if (chn == 2) {
            for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {
                var l = wsamp_l[wsamp_lPos + 0][j];
                var r = wsamp_l[wsamp_lPos + 1][j];
                wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util.SQRT2 * 0.5;
                wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util.SQRT2 * 0.5;
            }
            for (var b = 2; b >= 0; --b) {
                for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {
                    var l = wsamp_s[wsamp_sPos + 0][b][j];
                    var r = wsamp_s[wsamp_sPos + 1][b][j];
                    wsamp_s[wsamp_sPos + 0][b][j] = (l + r) * Util.SQRT2 * 0.5;
                    wsamp_s[wsamp_sPos + 1][b][j] = (l - r) * Util.SQRT2 * 0.5;
                }
            }
        }

        /*********************************************************************
         * compute energies
         *********************************************************************/
        fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);
        fftenergy[0] *= fftenergy[0];

        for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {
            var re = (wsamp_l[wsamp_lPos + 0])[Encoder.BLKSIZE / 2 - j];
            var im = (wsamp_l[wsamp_lPos + 0])[Encoder.BLKSIZE / 2 + j];
            fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY((re
                * re + im * im) * 0.5);
        }
        for (var b = 2; b >= 0; --b) {
            fftenergy_s[b][0] = (wsamp_s[wsamp_sPos + 0])[b][0];
            fftenergy_s[b][0] *= fftenergy_s[b][0];
            for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {
                var re = (wsamp_s[wsamp_sPos + 0])[b][Encoder.BLKSIZE_s
                / 2 - j];
                var im = (wsamp_s[wsamp_sPos + 0])[b][Encoder.BLKSIZE_s
                / 2 + j];
                fftenergy_s[b][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY((re
                    * re + im * im) * 0.5);
            }
        }
        /* total energy */
        {
            var totalenergy = 0.0;
            for (var j = 11; j < Encoder.HBLKSIZE; j++)
                totalenergy += fftenergy[j];

            gfc.tot_ener[chn] = totalenergy;
        }

        if (gfp.analysis) {
            for (var j = 0; j < Encoder.HBLKSIZE; j++) {
                gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];
                gfc.pinfo.energy_save[chn][j] = fftenergy[j];
            }
            gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];
        }

        /*********************************************************************
         * compute loudness approximation (used for ATH auto-level adjustment)
         *********************************************************************/
        if (gfp.athaa_loudapprox == 2 && chn < 2) {
            // no loudness for mid/side ch
            gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];
            gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);
        }
    }

    /* mask_add optimization */
    /* init the limit values used to avoid computing log in mask_add when it is not necessary */

    /**
     * <PRE>
     *  For example, with i = 10*log10(m2/m1)/10*16         (= log10(m2/m1)*16)
     *
     * abs(i)>8 is equivalent (as i is an integer) to
     * abs(i)>=9
     * i>=9 || i<=-9
     * equivalent to (as i is the biggest integer smaller than log10(m2/m1)*16
     * or the smallest integer bigger than log10(m2/m1)*16 depending on the sign of log10(m2/m1)*16)
     * log10(m2/m1)>=9/16 || log10(m2/m1)<=-9/16
     * exp10 is strictly increasing thus this is equivalent to
     * m2/m1 >= 10^(9/16) || m2/m1<=10^(-9/16) which are comparisons to constants
     * </PRE>
     */

    /**
     * as in if(i>8)
     */
    var I1LIMIT = 8;
    /**
     * as in if(i>24) . changed 23
     */
    var I2LIMIT = 23;
    /**
     * as in if(m<15)
     */
    var MLIMIT = 15;

    var ma_max_i1;
    var ma_max_i2;
    var ma_max_m;

    /**
     * This is the masking table:<BR>
     * According to tonality, values are going from 0dB (TMN) to 9.3dB (NMT).<BR>
     * After additive masking computation, 8dB are added, so final values are
     * going from 8dB to 17.3dB
     *
     * pow(10, -0.0..-0.6)
     */
    var tab = [1.0, 0.79433, 0.63096, 0.63096,
        0.63096, 0.63096, 0.63096, 0.25119, 0.11749];

    function init_mask_add_max_values() {
        ma_max_i1 = Math.pow(10, (I1LIMIT + 1) / 16.0);
        ma_max_i2 = Math.pow(10, (I2LIMIT + 1) / 16.0);
        ma_max_m = Math.pow(10, (MLIMIT) / 10.0);
    }

    var table1 = [3.3246 * 3.3246,
        3.23837 * 3.23837, 3.15437 * 3.15437, 3.00412 * 3.00412,
        2.86103 * 2.86103, 2.65407 * 2.65407, 2.46209 * 2.46209,
        2.284 * 2.284, 2.11879 * 2.11879, 1.96552 * 1.96552,
        1.82335 * 1.82335, 1.69146 * 1.69146, 1.56911 * 1.56911,
        1.46658 * 1.46658, 1.37074 * 1.37074, 1.31036 * 1.31036,
        1.25264 * 1.25264, 1.20648 * 1.20648, 1.16203 * 1.16203,
        1.12765 * 1.12765, 1.09428 * 1.09428, 1.0659 * 1.0659,
        1.03826 * 1.03826, 1.01895 * 1.01895, 1];

    var table2 = [1.33352 * 1.33352,
        1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497,
        1.40548 * 1.40548, 1.3537 * 1.3537, 1.30382 * 1.30382,
        1.22321 * 1.22321, 1.14758 * 1.14758, 1];

    var table3 = [2.35364 * 2.35364,
        2.29259 * 2.29259, 2.23313 * 2.23313, 2.12675 * 2.12675,
        2.02545 * 2.02545, 1.87894 * 1.87894, 1.74303 * 1.74303,
        1.61695 * 1.61695, 1.49999 * 1.49999, 1.39148 * 1.39148,
        1.29083 * 1.29083, 1.19746 * 1.19746, 1.11084 * 1.11084,
        1.03826 * 1.03826];

    /**
     * addition of simultaneous masking Naoki Shibata 2000/7
     */
    function mask_add(m1, m2, kk, b, gfc, shortblock) {
        var ratio;

        if (m2 > m1) {
            if (m2 < (m1 * ma_max_i2))
                ratio = m2 / m1;
            else
                return (m1 + m2);
        } else {
            if (m1 >= (m2 * ma_max_i2))
                return (m1 + m2);
            ratio = m1 / m2;
        }

        /* Should always be true, just checking */
        assert(m1 >= 0);
        assert(m2 >= 0);

        m1 += m2;
        //if (((long)(b + 3) & 0xffffffff) <= 3 + 3) {
        if ((b + 3) <= 3 + 3) {
            /* approximately, 1 bark = 3 partitions */
            /* 65% of the cases */
            /* originally 'if(i > 8)' */
            if (ratio >= ma_max_i1) {
                /* 43% of the total */
                return m1;
            }

            /* 22% of the total */
            var i = 0 | (Util.FAST_LOG10_X(ratio, 16.0));
            return m1 * table2[i];
        }

        /**
         * <PRE>
         * m<15 equ log10((m1+m2)/gfc.ATH.cb[k])<1.5
         * equ (m1+m2)/gfc.ATH.cb[k]<10^1.5
         * equ (m1+m2)<10^1.5 * gfc.ATH.cb[k]
         * </PRE>
         */
        var i = 0 | Util.FAST_LOG10_X(ratio, 16.0);
        if (shortblock != 0) {
            m2 = gfc.ATH.cb_s[kk] * gfc.ATH.adjust;
        } else {
            m2 = gfc.ATH.cb_l[kk] * gfc.ATH.adjust;
        }
        assert(m2 >= 0);
        if (m1 < ma_max_m * m2) {
            /* 3% of the total */
            /* Originally if (m > 0) { */
            if (m1 > m2) {
                var f, r;

                f = 1.0;
                if (i <= 13)
                    f = table3[i];

                r = Util.FAST_LOG10_X(m1 / m2, 10.0 / 15.0);
                return m1 * ((table1[i] - f) * r + f);
            }

            if (i > 13)
                return m1;

            return m1 * table3[i];
        }

        /* 10% of total */
        return m1 * table1[i];
    }

    var table2_ = [1.33352 * 1.33352,
        1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497,
        1.40548 * 1.40548, 1.3537 * 1.3537, 1.30382 * 1.30382,
        1.22321 * 1.22321, 1.14758 * 1.14758, 1];

    /**
     * addition of simultaneous masking Naoki Shibata 2000/7
     */
    function vbrpsy_mask_add(m1, m2, b) {
        var ratio;

        if (m1 < 0) {
            m1 = 0;
        }
        if (m2 < 0) {
            m2 = 0;
        }
        if (m1 <= 0) {
            return m2;
        }
        if (m2 <= 0) {
            return m1;
        }
        if (m2 > m1) {
            ratio = m2 / m1;
        } else {
            ratio = m1 / m2;
        }
        if (-2 <= b && b <= 2) {
            /* approximately, 1 bark = 3 partitions */
            /* originally 'if(i > 8)' */
            if (ratio >= ma_max_i1) {
                return m1 + m2;
            } else {
                var i = 0 | (Util.FAST_LOG10_X(ratio, 16.0));
                return (m1 + m2) * table2_[i];
            }
        }
        if (ratio < ma_max_i2) {
            return m1 + m2;
        }
        if (m1 < m2) {
            m1 = m2;
        }
        return m1;
    }

    /**
     * compute interchannel masking effects
     */
    function calc_interchannel_masking(gfp, ratio) {
        var gfc = gfp.internal_flags;
        if (gfc.channels_out > 1) {
            for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {
                var l = gfc.thm[0].l[sb];
                var r = gfc.thm[1].l[sb];
                gfc.thm[0].l[sb] += r * ratio;
                gfc.thm[1].l[sb] += l * ratio;
            }
            for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {
                for (var sblock = 0; sblock < 3; sblock++) {
                    var l = gfc.thm[0].s[sb][sblock];
                    var r = gfc.thm[1].s[sb][sblock];
                    gfc.thm[0].s[sb][sblock] += r * ratio;
                    gfc.thm[1].s[sb][sblock] += l * ratio;
                }
            }
        }
    }

    /**
     * compute M/S thresholds from Johnston & Ferreira 1992 ICASSP paper
     */
    function msfix1(gfc) {
        for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {
            /* use this fix if L & R masking differs by 2db or less */
            /* if db = 10*log10(x2/x1) < 2 */
            /* if (x2 < 1.58*x1) { */
            if (gfc.thm[0].l[sb] > 1.58 * gfc.thm[1].l[sb]
                || gfc.thm[1].l[sb] > 1.58 * gfc.thm[0].l[sb])
                continue;
            var mld = gfc.mld_l[sb] * gfc.en[3].l[sb];
            var rmid = Math.max(gfc.thm[2].l[sb],
                Math.min(gfc.thm[3].l[sb], mld));

            mld = gfc.mld_l[sb] * gfc.en[2].l[sb];
            var rside = Math.max(gfc.thm[3].l[sb],
                Math.min(gfc.thm[2].l[sb], mld));
            gfc.thm[2].l[sb] = rmid;
            gfc.thm[3].l[sb] = rside;
        }

        for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {
            for (var sblock = 0; sblock < 3; sblock++) {
                if (gfc.thm[0].s[sb][sblock] > 1.58 * gfc.thm[1].s[sb][sblock]
                    || gfc.thm[1].s[sb][sblock] > 1.58 * gfc.thm[0].s[sb][sblock])
                    continue;
                var mld = gfc.mld_s[sb] * gfc.en[3].s[sb][sblock];
                var rmid = Math.max(gfc.thm[2].s[sb][sblock],
                    Math.min(gfc.thm[3].s[sb][sblock], mld));

                mld = gfc.mld_s[sb] * gfc.en[2].s[sb][sblock];
                var rside = Math.max(gfc.thm[3].s[sb][sblock],
                    Math.min(gfc.thm[2].s[sb][sblock], mld));

                gfc.thm[2].s[sb][sblock] = rmid;
                gfc.thm[3].s[sb][sblock] = rside;
            }
        }
    }

    /**
     * Adjust M/S maskings if user set "msfix"
     *
     * Naoki Shibata 2000
     */
    function ns_msfix(gfc, msfix, athadjust) {
        var msfix2 = msfix;
        var athlower = Math.pow(10, athadjust);

        msfix *= 2.0;
        msfix2 *= 2.0;
        for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {
            var thmLR, thmM, thmS, ath;
            ath = (gfc.ATH.cb_l[gfc.bm_l[sb]]) * athlower;
            thmLR = Math.min(Math.max(gfc.thm[0].l[sb], ath),
                Math.max(gfc.thm[1].l[sb], ath));
            thmM = Math.max(gfc.thm[2].l[sb], ath);
            thmS = Math.max(gfc.thm[3].l[sb], ath);
            if (thmLR * msfix < thmM + thmS) {
                var f = thmLR * msfix2 / (thmM + thmS);
                thmM *= f;
                thmS *= f;
                assert(thmM + thmS > 0);
            }
            gfc.thm[2].l[sb] = Math.min(thmM, gfc.thm[2].l[sb]);
            gfc.thm[3].l[sb] = Math.min(thmS, gfc.thm[3].l[sb]);
        }

        athlower *= ( Encoder.BLKSIZE_s / Encoder.BLKSIZE);
        for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {
            for (var sblock = 0; sblock < 3; sblock++) {
                var thmLR, thmM, thmS, ath;
                ath = (gfc.ATH.cb_s[gfc.bm_s[sb]]) * athlower;
                thmLR = Math.min(Math.max(gfc.thm[0].s[sb][sblock], ath),
                    Math.max(gfc.thm[1].s[sb][sblock], ath));
                thmM = Math.max(gfc.thm[2].s[sb][sblock], ath);
                thmS = Math.max(gfc.thm[3].s[sb][sblock], ath);

                if (thmLR * msfix < thmM + thmS) {
                    var f = thmLR * msfix / (thmM + thmS);
                    thmM *= f;
                    thmS *= f;
                    assert(thmM + thmS > 0);
                }
                gfc.thm[2].s[sb][sblock] = Math.min(gfc.thm[2].s[sb][sblock],
                    thmM);
                gfc.thm[3].s[sb][sblock] = Math.min(gfc.thm[3].s[sb][sblock],
                    thmS);
            }
        }
    }

    /**
     * short block threshold calculation (part 2)
     *
     * partition band bo_s[sfb] is at the transition from scalefactor band sfb
     * to the next one sfb+1; enn and thmm have to be split between them
     */
    function convert_partition2scalefac_s(gfc, eb, thr, chn, sblock) {
        var sb, b;
        var enn = 0.0;
        var thmm = 0.0;
        for (sb = b = 0; sb < Encoder.SBMAX_s; ++b, ++sb) {
            var bo_s_sb = gfc.bo_s[sb];
            var npart_s = gfc.npart_s;
            var b_lim = bo_s_sb < npart_s ? bo_s_sb : npart_s;
            while (b < b_lim) {
                assert(eb[b] >= 0);
                // iff failed, it may indicate some index error elsewhere
                assert(thr[b] >= 0);
                enn += eb[b];
                thmm += thr[b];
                b++;
            }
            gfc.en[chn].s[sb][sblock] = enn;
            gfc.thm[chn].s[sb][sblock] = thmm;

            if (b >= npart_s) {
                ++sb;
                break;
            }
            assert(eb[b] >= 0);
            // iff failed, it may indicate some index error elsewhere
            assert(thr[b] >= 0);
            {
                /* at transition sfb . sfb+1 */
                var w_curr = gfc.PSY.bo_s_weight[sb];
                var w_next = 1.0 - w_curr;
                enn = w_curr * eb[b];
                thmm = w_curr * thr[b];
                gfc.en[chn].s[sb][sblock] += enn;
                gfc.thm[chn].s[sb][sblock] += thmm;
                enn = w_next * eb[b];
                thmm = w_next * thr[b];
            }
        }
        /* zero initialize the rest */
        for (; sb < Encoder.SBMAX_s; ++sb) {
            gfc.en[chn].s[sb][sblock] = 0;
            gfc.thm[chn].s[sb][sblock] = 0;
        }
    }

    /**
     * longblock threshold calculation (part 2)
     */
    function convert_partition2scalefac_l(gfc, eb, thr, chn) {
        var sb, b;
        var enn = 0.0;
        var thmm = 0.0;
        for (sb = b = 0; sb < Encoder.SBMAX_l; ++b, ++sb) {
            var bo_l_sb = gfc.bo_l[sb];
            var npart_l = gfc.npart_l;
            var b_lim = bo_l_sb < npart_l ? bo_l_sb : npart_l;
            while (b < b_lim) {
                assert(eb[b] >= 0);
                // iff failed, it may indicate some index error elsewhere
                assert(thr[b] >= 0);
                enn += eb[b];
                thmm += thr[b];
                b++;
            }
            gfc.en[chn].l[sb] = enn;
            gfc.thm[chn].l[sb] = thmm;

            if (b >= npart_l) {
                ++sb;
                break;
            }
            assert(eb[b] >= 0);
            assert(thr[b] >= 0);
            {
                /* at transition sfb . sfb+1 */
                var w_curr = gfc.PSY.bo_l_weight[sb];
                var w_next = 1.0 - w_curr;
                enn = w_curr * eb[b];
                thmm = w_curr * thr[b];
                gfc.en[chn].l[sb] += enn;
                gfc.thm[chn].l[sb] += thmm;
                enn = w_next * eb[b];
                thmm = w_next * thr[b];
            }
        }
        /* zero initialize the rest */
        for (; sb < Encoder.SBMAX_l; ++sb) {
            gfc.en[chn].l[sb] = 0;
            gfc.thm[chn].l[sb] = 0;
        }
    }

    function compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {
        var gfc = gfp.internal_flags;
        var j, b;

        for (b = j = 0; b < gfc.npart_s; ++b) {
            var ebb = 0, m = 0;
            var n = gfc.numlines_s[b];
            for (var i = 0; i < n; ++i, ++j) {
                var el = fftenergy_s[sblock][j];
                ebb += el;
                if (m < el)
                    m = el;
            }
            eb[b] = ebb;
        }
        assert(b == gfc.npart_s);
        assert(j == 129);
        for (j = b = 0; b < gfc.npart_s; b++) {
            var kk = gfc.s3ind_s[b][0];
            var ecb = gfc.s3_ss[j++] * eb[kk];
            ++kk;
            while (kk <= gfc.s3ind_s[b][1]) {
                ecb += gfc.s3_ss[j] * eb[kk];
                ++j;
                ++kk;
            }

            { /* limit calculated threshold by previous granule */
                var x = rpelev_s * gfc.nb_s1[chn][b];
                thr[b] = Math.min(ecb, x);
            }
            if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE) {
                /* limit calculated threshold by even older granule */
                var x = rpelev2_s * gfc.nb_s2[chn][b];
                var y = thr[b];
                thr[b] = Math.min(x, y);
            }

            gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];
            gfc.nb_s1[chn][b] = ecb;
            assert(thr[b] >= 0);
        }
        for (; b <= Encoder.CBANDS; ++b) {
            eb[b] = 0;
            thr[b] = 0;
        }
    }

    function block_type_set(gfp, uselongblock, blocktype_d, blocktype) {
        var gfc = gfp.internal_flags;

        if (gfp.short_blocks == ShortBlock.short_block_coupled
                /* force both channels to use the same block type */
                /* this is necessary if the frame is to be encoded in ms_stereo. */
                /* But even without ms_stereo, FhG does this */
            && !(uselongblock[0] != 0 && uselongblock[1] != 0))
            uselongblock[0] = uselongblock[1] = 0;

        /*
         * update the blocktype of the previous granule, since it depends on
         * what happend in this granule
         */
        for (var chn = 0; chn < gfc.channels_out; chn++) {
            blocktype[chn] = Encoder.NORM_TYPE;
            /* disable short blocks */
            if (gfp.short_blocks == ShortBlock.short_block_dispensed)
                uselongblock[chn] = 1;
            if (gfp.short_blocks == ShortBlock.short_block_forced)
                uselongblock[chn] = 0;

            if (uselongblock[chn] != 0) {
                /* no attack : use long blocks */
                assert(gfc.blocktype_old[chn] != Encoder.START_TYPE);
                if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE)
                    blocktype[chn] = Encoder.STOP_TYPE;
            } else {
                /* attack : use short blocks */
                blocktype[chn] = Encoder.SHORT_TYPE;
                if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {
                    gfc.blocktype_old[chn] = Encoder.START_TYPE;
                }
                if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE)
                    gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;
            }

            blocktype_d[chn] = gfc.blocktype_old[chn];
            // value returned to calling program
            gfc.blocktype_old[chn] = blocktype[chn];
            // save for next call to l3psy_anal
        }
    }

    function NS_INTERP(x, y, r) {
        /* was pow((x),(r))*pow((y),1-(r)) */
        if (r >= 1.0) {
            /* 99.7% of the time */
            return x;
        }
        if (r <= 0.0)
            return y;
        if (y > 0.0) {
            /* rest of the time */
            return (Math.pow(x / y, r) * y);
        }
        /* never happens */
        return 0.0;
    }

    /**
     * these values are tuned only for 44.1kHz...
     */
    var regcoef_s = [11.8, 13.6, 17.2, 32, 46.5,
        51.3, 57.5, 67.1, 71.5, 84.6, 97.6, 130,
        /* 255.8 */
    ];

    function pecalc_s(mr, masking_lower) {
        var pe_s = 1236.28 / 4;
        for (var sb = 0; sb < Encoder.SBMAX_s - 1; sb++) {
            for (var sblock = 0; sblock < 3; sblock++) {
                var thm = mr.thm.s[sb][sblock];
                assert(sb < regcoef_s.length);
                if (thm > 0.0) {
                    var x = thm * masking_lower;
                    var en = mr.en.s[sb][sblock];
                    if (en > x) {
                        if (en > x * 1e10) {
                            pe_s += regcoef_s[sb] * (10.0 * LOG10);
                        } else {
                            assert(x > 0);
                            pe_s += regcoef_s[sb] * Util.FAST_LOG10(en / x);
                        }
                    }
                }
            }
        }

        return pe_s;
    }

    /**
     * these values are tuned only for 44.1kHz...
     */
    var regcoef_l = [6.8, 5.8, 5.8, 6.4, 6.5, 9.9,
        12.1, 14.4, 15, 18.9, 21.6, 26.9, 34.2, 40.2, 46.8, 56.5,
        60.7, 73.9, 85.7, 93.4, 126.1,
        /* 241.3 */
    ];

    function pecalc_l(mr, masking_lower) {
        var pe_l = 1124.23 / 4;
        for (var sb = 0; sb < Encoder.SBMAX_l - 1; sb++) {
            var thm = mr.thm.l[sb];
            assert(sb < regcoef_l.length);
            if (thm > 0.0) {
                var x = thm * masking_lower;
                var en = mr.en.l[sb];
                if (en > x) {
                    if (en > x * 1e10) {
                        pe_l += regcoef_l[sb] * (10.0 * LOG10);
                    } else {
                        assert(x > 0);
                        pe_l += regcoef_l[sb] * Util.FAST_LOG10(en / x);
                    }
                }
            }
        }
        return pe_l;
    }

    function calc_energy(gfc, fftenergy, eb, max, avg) {
        var b, j;

        for (b = j = 0; b < gfc.npart_l; ++b) {
            var ebb = 0, m = 0;
            var i;
            for (i = 0; i < gfc.numlines_l[b]; ++i, ++j) {
                var el = fftenergy[j];
                assert(el >= 0);
                ebb += el;
                if (m < el)
                    m = el;
            }
            eb[b] = ebb;
            max[b] = m;
            avg[b] = ebb * gfc.rnumlines_l[b];
            assert(gfc.rnumlines_l[b] >= 0);
            assert(ebb >= 0);
            assert(eb[b] >= 0);
            assert(max[b] >= 0);
            assert(avg[b] >= 0);
        }
    }

    function calc_mask_index_l(gfc, max, avg, mask_idx) {
        var last_tab_entry = tab.length - 1;
        var b = 0;
        var a = avg[b] + avg[b + 1];
        assert(a >= 0);
        if (a > 0.0) {
            var m = max[b];
            if (m < max[b + 1])
                m = max[b + 1];
            assert((gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1) > 0);
            a = 20.0 * (m * 2.0 - a)
                / (a * (gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));
            var k = 0 | a;
            if (k > last_tab_entry)
                k = last_tab_entry;
            mask_idx[b] = k;
        } else {
            mask_idx[b] = 0;
        }

        for (b = 1; b < gfc.npart_l - 1; b++) {
            a = avg[b - 1] + avg[b] + avg[b + 1];
            assert(a >= 0);
            if (a > 0.0) {
                var m = max[b - 1];
                if (m < max[b])
                    m = max[b];
                if (m < max[b + 1])
                    m = max[b + 1];
                assert((gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1) > 0);
                a = 20.0
                    * (m * 3.0 - a)
                    / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b]
                    + gfc.numlines_l[b + 1] - 1));
                var k = 0 | a;
                if (k > last_tab_entry)
                    k = last_tab_entry;
                mask_idx[b] = k;
            } else {
                mask_idx[b] = 0;
            }
        }
        assert(b > 0);
        assert(b == gfc.npart_l - 1);

        a = avg[b - 1] + avg[b];
        assert(a >= 0);
        if (a > 0.0) {
            var m = max[b - 1];
            if (m < max[b])
                m = max[b];
            assert((gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1) > 0);
            a = 20.0 * (m * 2.0 - a)
                / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1));
            var k = 0 | a;
            if (k > last_tab_entry)
                k = last_tab_entry;
            mask_idx[b] = k;
        } else {
            mask_idx[b] = 0;
        }
        assert(b == (gfc.npart_l - 1));
    }

    var fircoef = [
        -8.65163e-18 * 2, -0.00851586 * 2, -6.74764e-18 * 2, 0.0209036 * 2,
        -3.36639e-17 * 2, -0.0438162 * 2, -1.54175e-17 * 2, 0.0931738 * 2,
        -5.52212e-17 * 2, -0.313819 * 2
    ];

    this.L3psycho_anal_ns = function (gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {
        /*
         * to get a good cache performance, one has to think about the sequence,
         * in which the variables are used.
         */
        var gfc = gfp.internal_flags;

        /* fft and energy calculation */
        var wsamp_L = new_float_n([2, Encoder.BLKSIZE]);
        var wsamp_S = new_float_n([2, 3, Encoder.BLKSIZE_s]);

        /* convolution */
        var eb_l = new_float(Encoder.CBANDS + 1);
        var eb_s = new_float(Encoder.CBANDS + 1);
        var thr = new_float(Encoder.CBANDS + 2);

        /* block type */
        var blocktype = new_int(2), uselongblock = new_int(2);

        /* usual variables like loop indices, etc.. */
        var numchn, chn;
        var b, i, j, k;
        var sb, sblock;

        /* variables used for --nspsytune */
        var ns_hpfsmpl = new_float_n([2, 576]);
        var pcfact;
        var mask_idx_l = new_int(Encoder.CBANDS + 2), mask_idx_s = new_int(Encoder.CBANDS + 2);

        Arrays.fill(mask_idx_s, 0);

        numchn = gfc.channels_out;
        /* chn=2 and 3 = Mid and Side channels */
        if (gfp.mode == MPEGMode.JOINT_STEREO)
            numchn = 4;

        if (gfp.VBR == VbrMode.vbr_off)
            pcfact = gfc.ResvMax == 0 ? 0 : ( gfc.ResvSize)
            / gfc.ResvMax * 0.5;
        else if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh
            || gfp.VBR == VbrMode.vbr_mt) {
            pcfact = 0.6;
        } else
            pcfact = 1.0;

        /**********************************************************************
         * Apply HPF of fs/4 to the input signal. This is used for attack
         * detection / handling.
         **********************************************************************/
        /* Don't copy the input buffer into a temporary buffer */
        /* unroll the loop 2 times */
        for (chn = 0; chn < gfc.channels_out; chn++) {
            /* apply high pass filter of fs/4 */
            var firbuf = buffer[chn];
            var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;
            assert(fircoef.length == ((NSFIRLEN - 1) / 2));
            for (i = 0; i < 576; i++) {
                var sum1, sum2;
                sum1 = firbuf[firbufPos + i + 10];
                sum2 = 0.0;
                for (j = 0; j < ((NSFIRLEN - 1) / 2) - 1; j += 2) {
                    sum1 += fircoef[j]
                        * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i
                        + NSFIRLEN - j]);
                    sum2 += fircoef[j + 1]
                        * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos
                        + i + NSFIRLEN - j - 1]);
                }
                ns_hpfsmpl[chn][i] = sum1 + sum2;
            }
            masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);
            masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);
            if (numchn > 2) {
                /* MS maskings */
                /* percep_MS_entropy [chn-2] = gfc . pe [chn]; */
                masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);
                masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);
            }
        }

        for (chn = 0; chn < numchn; chn++) {
            var wsamp_l;
            var wsamp_s;
            var en_subshort = new_float(12);
            var en_short = [0, 0, 0, 0];
            var attack_intensity = new_float(12);
            var ns_uselongblock = 1;
            var attackThreshold;
            var max = new_float(Encoder.CBANDS), avg = new_float(Encoder.CBANDS);
            var ns_attacks = [0, 0, 0, 0];
            var fftenergy = new_float(Encoder.HBLKSIZE);
            var fftenergy_s = new_float_n([3, Encoder.HBLKSIZE_s]);

            /*
             * rh 20040301: the following loops do access one off the limits so
             * I increase the array dimensions by one and initialize the
             * accessed values to zero
             */
            assert(gfc.npart_s <= Encoder.CBANDS);
            assert(gfc.npart_l <= Encoder.CBANDS);

            /***************************************************************
             * determine the block type (window type)
             ***************************************************************/
            /* calculate energies of each sub-shortblocks */
            for (i = 0; i < 3; i++) {
                en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];
                assert(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);
                attack_intensity[i] = en_subshort[i]
                    / gfc.nsPsy.last_en_subshort[chn][i + 4];
                en_short[0] += en_subshort[i];
            }

            if (chn == 2) {
                for (i = 0; i < 576; i++) {
                    var l, r;
                    l = ns_hpfsmpl[0][i];
                    r = ns_hpfsmpl[1][i];
                    ns_hpfsmpl[0][i] = l + r;
                    ns_hpfsmpl[1][i] = l - r;
                }
            }
            {
                var pf = ns_hpfsmpl[chn & 1];
                var pfPos = 0;
                for (i = 0; i < 9; i++) {
                    var pfe = pfPos + 576 / 9;
                    var p = 1.;
                    for (; pfPos < pfe; pfPos++)
                        if (p < Math.abs(pf[pfPos]))
                            p = Math.abs(pf[pfPos]);

                    gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p;
                    en_short[1 + i / 3] += p;
                    if (p > en_subshort[i + 3 - 2]) {
                        assert(en_subshort[i + 3 - 2] > 0);
                        p = p / en_subshort[i + 3 - 2];
                    } else if (en_subshort[i + 3 - 2] > p * 10.0) {
                        assert(p > 0);
                        p = en_subshort[i + 3 - 2] / (p * 10.0);
                    } else
                        p = 0.0;
                    attack_intensity[i + 3] = p;
                }
            }

            if (gfp.analysis) {
                var x = attack_intensity[0];
                for (i = 1; i < 12; i++)
                    if (x < attack_intensity[i])
                        x = attack_intensity[i];
                gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];
                gfc.pinfo.ers_save[chn] = x;
            }

            /* compare energies between sub-shortblocks */
            attackThreshold = (chn == 3) ? gfc.nsPsy.attackthre_s
                : gfc.nsPsy.attackthre;
            for (i = 0; i < 12; i++)
                if (0 == ns_attacks[i / 3]
                    && attack_intensity[i] > attackThreshold)
                    ns_attacks[i / 3] = (i % 3) + 1;

            /*
             * should have energy change between short blocks, in order to avoid
             * periodic signals
             */
            for (i = 1; i < 4; i++) {
                var ratio;
                if (en_short[i - 1] > en_short[i]) {
                    assert(en_short[i] > 0);
                    ratio = en_short[i - 1] / en_short[i];
                } else {
                    assert(en_short[i - 1] > 0);
                    ratio = en_short[i] / en_short[i - 1];
                }
                if (ratio < 1.7) {
                    ns_attacks[i] = 0;
                    if (i == 1)
                        ns_attacks[0] = 0;
                }
            }

            if (ns_attacks[0] != 0 && gfc.nsPsy.lastAttacks[chn] != 0)
                ns_attacks[0] = 0;

            if (gfc.nsPsy.lastAttacks[chn] == 3
                || (ns_attacks[0] + ns_attacks[1] + ns_attacks[2] + ns_attacks[3]) != 0) {
                ns_uselongblock = 0;

                if (ns_attacks[1] != 0 && ns_attacks[0] != 0)
                    ns_attacks[1] = 0;
                if (ns_attacks[2] != 0 && ns_attacks[1] != 0)
                    ns_attacks[2] = 0;
                if (ns_attacks[3] != 0 && ns_attacks[2] != 0)
                    ns_attacks[3] = 0;
            }

            if (chn < 2) {
                uselongblock[chn] = ns_uselongblock;
            } else {
                if (ns_uselongblock == 0) {
                    uselongblock[0] = uselongblock[1] = 0;
                }
            }

            /*
             * there is a one granule delay. Copy maskings computed last call
             * into masking_ratio to return to calling program.
             */
            energy[chn] = gfc.tot_ener[chn];

            /*********************************************************************
             * compute FFTs
             *********************************************************************/
            wsamp_s = wsamp_S;
            wsamp_l = wsamp_L;
            compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, (chn & 1),
                wsamp_s, (chn & 1), gr_out, chn, buffer, bufPos);

            /*********************************************************************
             * Calculate the energy and the tonality of each partition.
             *********************************************************************/
            calc_energy(gfc, fftenergy, eb_l, max, avg);
            calc_mask_index_l(gfc, max, avg, mask_idx_l);
            /* compute masking thresholds for short blocks */
            for (sblock = 0; sblock < 3; sblock++) {
                var enn, thmm;
                compute_masking_s(gfp, fftenergy_s, eb_s, thr, chn, sblock);
                convert_partition2scalefac_s(gfc, eb_s, thr, chn, sblock);
                /**** short block pre-echo control ****/
                for (sb = 0; sb < Encoder.SBMAX_s; sb++) {
                    thmm = gfc.thm[chn].s[sb][sblock];

                    thmm *= NS_PREECHO_ATT0;
                    if (ns_attacks[sblock] >= 2 || ns_attacks[sblock + 1] == 1) {
                        var idx = (sblock != 0) ? sblock - 1 : 2;
                        var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,
                            NS_PREECHO_ATT1 * pcfact);
                        thmm = Math.min(thmm, p);
                    }

                    if (ns_attacks[sblock] == 1) {
                        var idx = (sblock != 0) ? sblock - 1 : 2;
                        var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,
                            NS_PREECHO_ATT2 * pcfact);
                        thmm = Math.min(thmm, p);
                    } else if ((sblock != 0 && ns_attacks[sblock - 1] == 3)
                        || (sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3)) {
                        var idx = (sblock != 2) ? sblock + 1 : 0;
                        var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,
                            NS_PREECHO_ATT2 * pcfact);
                        thmm = Math.min(thmm, p);
                    }

                    /* pulse like signal detection for fatboy.wav and so on */
                    enn = en_subshort[sblock * 3 + 3]
                        + en_subshort[sblock * 3 + 4]
                        + en_subshort[sblock * 3 + 5];
                    if (en_subshort[sblock * 3 + 5] * 6 < enn) {
                        thmm *= 0.5;
                        if (en_subshort[sblock * 3 + 4] * 6 < enn)
                            thmm *= 0.5;
                    }

                    gfc.thm[chn].s[sb][sblock] = thmm;
                }
            }
            gfc.nsPsy.lastAttacks[chn] = ns_attacks[2];

            /*********************************************************************
             * convolve the partitioned energy and unpredictability with the
             * spreading function, s3_l[b][k]
             ********************************************************************/
            k = 0;
            {
                for (b = 0; b < gfc.npart_l; b++) {
                    /*
                     * convolve the partitioned energy with the spreading
                     * function
                     */
                    var kk = gfc.s3ind[b][0];
                    var eb2 = eb_l[kk] * tab[mask_idx_l[kk]];
                    var ecb = gfc.s3_ll[k++] * eb2;
                    while (++kk <= gfc.s3ind[b][1]) {
                        eb2 = eb_l[kk] * tab[mask_idx_l[kk]];
                        ecb = mask_add(ecb, gfc.s3_ll[k++] * eb2, kk, kk - b,
                            gfc, 0);
                    }
                    ecb *= 0.158489319246111;
                    /* pow(10,-0.8) */

                    /**** long block pre-echo control ****/
                    /**
                     * <PRE>
                     * dont use long block pre-echo control if previous granule was
                     * a short block.  This is to avoid the situation:
                     * frame0:  quiet (very low masking)
                     * frame1:  surge  (triggers short blocks)
                     * frame2:  regular frame.  looks like pre-echo when compared to
                     *          frame0, but all pre-echo was in frame1.
                     * </PRE>
                     */
                    /*
                     * chn=0,1 L and R channels
                     *
                     * chn=2,3 S and M channels.
                     */

                    if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE)
                        thr[b] = ecb;
                    else
                        thr[b] = NS_INTERP(
                            Math.min(ecb, Math.min(rpelev
                                * gfc.nb_1[chn][b], rpelev2
                                * gfc.nb_2[chn][b])), ecb, pcfact);

                    gfc.nb_2[chn][b] = gfc.nb_1[chn][b];
                    gfc.nb_1[chn][b] = ecb;
                }
            }
            for (; b <= Encoder.CBANDS; ++b) {
                eb_l[b] = 0;
                thr[b] = 0;
            }
            /* compute masking thresholds for long blocks */
            convert_partition2scalefac_l(gfc, eb_l, thr, chn);
        }
        /* end loop over chn */

        if (gfp.mode == MPEGMode.STEREO || gfp.mode == MPEGMode.JOINT_STEREO) {
            if (gfp.interChRatio > 0.0) {
                calc_interchannel_masking(gfp, gfp.interChRatio);
            }
        }

        if (gfp.mode == MPEGMode.JOINT_STEREO) {
            var msfix;
            msfix1(gfc);
            msfix = gfp.msfix;
            if (Math.abs(msfix) > 0.0)
                ns_msfix(gfc, msfix, gfp.ATHlower * gfc.ATH.adjust);
        }

        /***************************************************************
         * determine final block type
         ***************************************************************/
        block_type_set(gfp, uselongblock, blocktype_d, blocktype);

        /*********************************************************************
         * compute the value of PE to return ... no delay and advance
         *********************************************************************/
        for (chn = 0; chn < numchn; chn++) {
            var ppe;
            var ppePos = 0;
            var type;
            var mr;

            if (chn > 1) {
                ppe = percep_MS_entropy;
                ppePos = -2;
                type = Encoder.NORM_TYPE;
                if (blocktype_d[0] == Encoder.SHORT_TYPE
                    || blocktype_d[1] == Encoder.SHORT_TYPE)
                    type = Encoder.SHORT_TYPE;
                mr = masking_MS_ratio[gr_out][chn - 2];
            } else {
                ppe = percep_entropy;
                ppePos = 0;
                type = blocktype_d[chn];
                mr = masking_ratio[gr_out][chn];
            }

            if (type == Encoder.SHORT_TYPE)
                ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);
            else
                ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);

            if (gfp.analysis)
                gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];

        }
        return 0;
    }

    function vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out, fftenergy, wsamp_l, wsamp_lPos) {
        var gfc = gfp.internal_flags;
        if (chn < 2) {
            fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);
        } else if (chn == 2) {
            /* FFT data for mid and side channel is derived from L & R */
            for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {
                var l = wsamp_l[wsamp_lPos + 0][j];
                var r = wsamp_l[wsamp_lPos + 1][j];
                wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util.SQRT2 * 0.5;
                wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util.SQRT2 * 0.5;
            }
        }

        /*********************************************************************
         * compute energies
         *********************************************************************/
        fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);
        fftenergy[0] *= fftenergy[0];

        for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {
            var re = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 - j];
            var im = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 + j];
            fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY((re
                * re + im * im) * 0.5);
        }
        /* total energy */
        {
            var totalenergy = 0.0;
            for (var j = 11; j < Encoder.HBLKSIZE; j++)
                totalenergy += fftenergy[j];

            gfc.tot_ener[chn] = totalenergy;
        }

        if (gfp.analysis) {
            for (var j = 0; j < Encoder.HBLKSIZE; j++) {
                gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];
                gfc.pinfo.energy_save[chn][j] = fftenergy[j];
            }
            gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];
        }
    }

    function vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock, fftenergy_s, wsamp_s, wsamp_sPos) {
        var gfc = gfp.internal_flags;

        if (sblock == 0 && chn < 2) {
            fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);
        }
        if (chn == 2) {
            /* FFT data for mid and side channel is derived from L & R */
            for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {
                var l = wsamp_s[wsamp_sPos + 0][sblock][j];
                var r = wsamp_s[wsamp_sPos + 1][sblock][j];
                wsamp_s[wsamp_sPos + 0][sblock][j] = (l + r) * Util.SQRT2 * 0.5;
                wsamp_s[wsamp_sPos + 1][sblock][j] = (l - r) * Util.SQRT2 * 0.5;
            }
        }

        /*********************************************************************
         * compute energies
         *********************************************************************/
        fftenergy_s[sblock][0] = wsamp_s[wsamp_sPos + 0][sblock][0];
        fftenergy_s[sblock][0] *= fftenergy_s[sblock][0];
        for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {
            var re = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 - j];
            var im = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 + j];
            fftenergy_s[sblock][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY((re
                * re + im * im) * 0.5);
        }
    }

    /**
     * compute loudness approximation (used for ATH auto-level adjustment)
     */
    function vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy) {
        var gfc = gfp.internal_flags;
        if (gfp.athaa_loudapprox == 2 && chn < 2) {
            // no loudness for mid/side ch
            gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];
            gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);
        }
    }

    var fircoef_ = [-8.65163e-18 * 2,
        -0.00851586 * 2, -6.74764e-18 * 2, 0.0209036 * 2,
        -3.36639e-17 * 2, -0.0438162 * 2, -1.54175e-17 * 2,
        0.0931738 * 2, -5.52212e-17 * 2, -0.313819 * 2];

    /**
     * Apply HPF of fs/4 to the input signal. This is used for attack detection
     * / handling.
     */
    function vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, energy, sub_short_factor, ns_attacks, uselongblock) {
        var ns_hpfsmpl = new_float_n([2, 576]);
        var gfc = gfp.internal_flags;
        var n_chn_out = gfc.channels_out;
        /* chn=2 and 3 = Mid and Side channels */
        var n_chn_psy = (gfp.mode == MPEGMode.JOINT_STEREO) ? 4 : n_chn_out;
        /* Don't copy the input buffer into a temporary buffer */
        /* unroll the loop 2 times */
        for (var chn = 0; chn < n_chn_out; chn++) {
            /* apply high pass filter of fs/4 */
            firbuf = buffer[chn];
            var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;
            assert(fircoef_.length == ((NSFIRLEN - 1) / 2));
            for (var i = 0; i < 576; i++) {
                var sum1, sum2;
                sum1 = firbuf[firbufPos + i + 10];
                sum2 = 0.0;
                for (var j = 0; j < ((NSFIRLEN - 1) / 2) - 1; j += 2) {
                    sum1 += fircoef_[j]
                        * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i
                        + NSFIRLEN - j]);
                    sum2 += fircoef_[j + 1]
                        * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos
                        + i + NSFIRLEN - j - 1]);
                }
                ns_hpfsmpl[chn][i] = sum1 + sum2;
            }
            masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);
            masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);
            if (n_chn_psy > 2) {
                /* MS maskings */
                /* percep_MS_entropy [chn-2] = gfc . pe [chn]; */
                masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);
                masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);
            }
        }
        for (var chn = 0; chn < n_chn_psy; chn++) {
            var attack_intensity = new_float(12);
            var en_subshort = new_float(12);
            var en_short = [0, 0, 0, 0];
            var pf = ns_hpfsmpl[chn & 1];
            var pfPos = 0;
            var attackThreshold = (chn == 3) ? gfc.nsPsy.attackthre_s
                : gfc.nsPsy.attackthre;
            var ns_uselongblock = 1;

            if (chn == 2) {
                for (var i = 0, j = 576; j > 0; ++i, --j) {
                    var l = ns_hpfsmpl[0][i];
                    var r = ns_hpfsmpl[1][i];
                    ns_hpfsmpl[0][i] = l + r;
                    ns_hpfsmpl[1][i] = l - r;
                }
            }
            /***************************************************************
             * determine the block type (window type)
             ***************************************************************/
            /* calculate energies of each sub-shortblocks */
            for (var i = 0; i < 3; i++) {
                en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];
                assert(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);
                attack_intensity[i] = en_subshort[i]
                    / gfc.nsPsy.last_en_subshort[chn][i + 4];
                en_short[0] += en_subshort[i];
            }

            for (var i = 0; i < 9; i++) {
                var pfe = pfPos + 576 / 9;
                var p = 1.;
                for (; pfPos < pfe; pfPos++)
                    if (p < Math.abs(pf[pfPos]))
                        p = Math.abs(pf[pfPos]);

                gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p;
                en_short[1 + i / 3] += p;
                if (p > en_subshort[i + 3 - 2]) {
                    assert(en_subshort[i + 3 - 2] > 0);
                    p = p / en_subshort[i + 3 - 2];
                } else if (en_subshort[i + 3 - 2] > p * 10.0) {
                    assert(p > 0);
                    p = en_subshort[i + 3 - 2] / (p * 10.0);
                } else {
                    p = 0.0;
                }
                attack_intensity[i + 3] = p;
            }
            /* pulse like signal detection for fatboy.wav and so on */
            for (var i = 0; i < 3; ++i) {
                var enn = en_subshort[i * 3 + 3]
                    + en_subshort[i * 3 + 4] + en_subshort[i * 3 + 5];
                var factor = 1.;
                if (en_subshort[i * 3 + 5] * 6 < enn) {
                    factor *= 0.5;
                    if (en_subshort[i * 3 + 4] * 6 < enn) {
                        factor *= 0.5;
                    }
                }
                sub_short_factor[chn][i] = factor;
            }

            if (gfp.analysis) {
                var x = attack_intensity[0];
                for (var i = 1; i < 12; i++) {
                    if (x < attack_intensity[i]) {
                        x = attack_intensity[i];
                    }
                }
                gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];
                gfc.pinfo.ers_save[chn] = x;
            }

            /* compare energies between sub-shortblocks */
            for (var i = 0; i < 12; i++) {
                if (0 == ns_attacks[chn][i / 3]
                    && attack_intensity[i] > attackThreshold) {
                    ns_attacks[chn][i / 3] = (i % 3) + 1;
                }
            }

            /*
             * should have energy change between short blocks, in order to avoid
             * periodic signals
             */
            /* Good samples to show the effect are Trumpet test songs */
            /*
             * GB: tuned (1) to avoid too many short blocks for test sample
             * TRUMPET
             */
            /*
             * RH: tuned (2) to let enough short blocks through for test sample
             * FSOL and SNAPS
             */
            for (var i = 1; i < 4; i++) {
                var u = en_short[i - 1];
                var v = en_short[i];
                var m = Math.max(u, v);
                if (m < 40000) { /* (2) */
                    if (u < 1.7 * v && v < 1.7 * u) { /* (1) */
                        if (i == 1 && ns_attacks[chn][0] <= ns_attacks[chn][i]) {
                            ns_attacks[chn][0] = 0;
                        }
                        ns_attacks[chn][i] = 0;
                    }
                }
            }

            if (ns_attacks[chn][0] <= gfc.nsPsy.lastAttacks[chn]) {
                ns_attacks[chn][0] = 0;
            }

            if (gfc.nsPsy.lastAttacks[chn] == 3
                || (ns_attacks[chn][0] + ns_attacks[chn][1]
                + ns_attacks[chn][2] + ns_attacks[chn][3]) != 0) {
                ns_uselongblock = 0;

                if (ns_attacks[chn][1] != 0 && ns_attacks[chn][0] != 0) {
                    ns_attacks[chn][1] = 0;
                }
                if (ns_attacks[chn][2] != 0 && ns_attacks[chn][1] != 0) {
                    ns_attacks[chn][2] = 0;
                }
                if (ns_attacks[chn][3] != 0 && ns_attacks[chn][2] != 0) {
                    ns_attacks[chn][3] = 0;
                }
            }
            if (chn < 2) {
                uselongblock[chn] = ns_uselongblock;
            } else {
                if (ns_uselongblock == 0) {
                    uselongblock[0] = uselongblock[1] = 0;
                }
            }

            /*
             * there is a one granule delay. Copy maskings computed last call
             * into masking_ratio to return to calling program.
             */
            energy[chn] = gfc.tot_ener[chn];
        }
    }

    function vbrpsy_skip_masking_s(gfc, chn, sblock) {
        if (sblock == 0) {
            for (var b = 0; b < gfc.npart_s; b++) {
                gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];
                gfc.nb_s1[chn][b] = 0;
            }
        }
    }

    function vbrpsy_skip_masking_l(gfc, chn) {
        for (var b = 0; b < gfc.npart_l; b++) {
            gfc.nb_2[chn][b] = gfc.nb_1[chn][b];
            gfc.nb_1[chn][b] = 0;
        }
    }

    function psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx) {
        var last_tab_entry = tab.length - 1;
        var b = 0;
        var a = avg[b] + avg[b + 1];
        assert(a >= 0);
        if (a > 0.0) {
            var m = max[b];
            if (m < max[b + 1])
                m = max[b + 1];
            assert((gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1) > 0);
            a = 20.0 * (m * 2.0 - a)
                / (a * (gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));
            var k = 0 | a;
            if (k > last_tab_entry)
                k = last_tab_entry;
            mask_idx[b] = k;
        } else {
            mask_idx[b] = 0;
        }

        for (b = 1; b < gfc.npart_s - 1; b++) {
            a = avg[b - 1] + avg[b] + avg[b + 1];
            assert(b + 1 < gfc.npart_s);
            assert(a >= 0);
            if (a > 0.0) {
                var m = max[b - 1];
                if (m < max[b])
                    m = max[b];
                if (m < max[b + 1])
                    m = max[b + 1];
                assert((gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1) > 0);
                a = 20.0
                    * (m * 3.0 - a)
                    / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b]
                    + gfc.numlines_s[b + 1] - 1));
                var k = 0 | a;
                if (k > last_tab_entry)
                    k = last_tab_entry;
                mask_idx[b] = k;
            } else {
                mask_idx[b] = 0;
            }
        }
        assert(b > 0);
        assert(b == gfc.npart_s - 1);

        a = avg[b - 1] + avg[b];
        assert(a >= 0);
        if (a > 0.0) {
            var m = max[b - 1];
            if (m < max[b])
                m = max[b];
            assert((gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1) > 0);
            a = 20.0 * (m * 2.0 - a)
                / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1));
            var k = 0 | a;
            if (k > last_tab_entry)
                k = last_tab_entry;
            mask_idx[b] = k;
        } else {
            mask_idx[b] = 0;
        }
        assert(b == (gfc.npart_s - 1));
    }

    function vbrpsy_compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {
        var gfc = gfp.internal_flags;
        var max = new float[Encoder.CBANDS], avg = new_float(Encoder.CBANDS);
        var i, j, b;
        var mask_idx_s = new int[Encoder.CBANDS];

        for (b = j = 0; b < gfc.npart_s; ++b) {
            var ebb = 0, m = 0;
            var n = gfc.numlines_s[b];
            for (i = 0; i < n; ++i, ++j) {
                var el = fftenergy_s[sblock][j];
                ebb += el;
                if (m < el)
                    m = el;
            }
            eb[b] = ebb;
            assert(ebb >= 0);
            max[b] = m;
            assert(n > 0);
            avg[b] = ebb / n;
            assert(avg[b] >= 0);
        }
        assert(b == gfc.npart_s);
        assert(j == 129);
        for (; b < Encoder.CBANDS; ++b) {
            max[b] = 0;
            avg[b] = 0;
        }
        psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx_s);
        for (j = b = 0; b < gfc.npart_s; b++) {
            var kk = gfc.s3ind_s[b][0];
            var last = gfc.s3ind_s[b][1];
            var dd, dd_n;
            var x, ecb, avg_mask;
            dd = mask_idx_s[kk];
            dd_n = 1;
            ecb = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];
            ++j;
            ++kk;
            while (kk <= last) {
                dd += mask_idx_s[kk];
                dd_n += 1;
                x = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];
                ecb = vbrpsy_mask_add(ecb, x, kk - b);
                ++j;
                ++kk;
            }
            dd = (1 + 2 * dd) / (2 * dd_n);
            avg_mask = tab[dd] * 0.5;
            ecb *= avg_mask;
            thr[b] = ecb;
            gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];
            gfc.nb_s1[chn][b] = ecb;
            {
                /*
                 * if THR exceeds EB, the quantization routines will take the
                 * difference from other bands. in case of strong tonal samples
                 * (tonaltest.wav) this leads to heavy distortions. that's why
                 * we limit THR here.
                 */
                x = max[b];
                x *= gfc.minval_s[b];
                x *= avg_mask;
                if (thr[b] > x) {
                    thr[b] = x;
                }
            }
            if (gfc.masking_lower > 1) {
                thr[b] *= gfc.masking_lower;
            }
            if (thr[b] > eb[b]) {
                thr[b] = eb[b];
            }
            if (gfc.masking_lower < 1) {
                thr[b] *= gfc.masking_lower;
            }

            assert(thr[b] >= 0);
        }
        for (; b < Encoder.CBANDS; ++b) {
            eb[b] = 0;
            thr[b] = 0;
        }
    }

    function vbrpsy_compute_masking_l(gfc, fftenergy, eb_l, thr, chn) {
        var max = new_float(Encoder.CBANDS), avg = new_float(Encoder.CBANDS);
        var mask_idx_l = new_int(Encoder.CBANDS + 2);
        var b;

        /*********************************************************************
         * Calculate the energy and the tonality of each partition.
         *********************************************************************/
        calc_energy(gfc, fftenergy, eb_l, max, avg);
        calc_mask_index_l(gfc, max, avg, mask_idx_l);

        /*********************************************************************
         * convolve the partitioned energy and unpredictability with the
         * spreading function, s3_l[b][k]
         ********************************************************************/
        var k = 0;
        for (b = 0; b < gfc.npart_l; b++) {
            var x, ecb, avg_mask, t;
            /* convolve the partitioned energy with the spreading function */
            var kk = gfc.s3ind[b][0];
            var last = gfc.s3ind[b][1];
            var dd = 0, dd_n = 0;
            dd = mask_idx_l[kk];
            dd_n += 1;
            ecb = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];
            ++k;
            ++kk;
            while (kk <= last) {
                dd += mask_idx_l[kk];
                dd_n += 1;
                x = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];
                t = vbrpsy_mask_add(ecb, x, kk - b);
                ecb = t;
                ++k;
                ++kk;
            }
            dd = (1 + 2 * dd) / (2 * dd_n);
            avg_mask = tab[dd] * 0.5;
            ecb *= avg_mask;

            /**** long block pre-echo control ****/
            /**
             * <PRE>
             * dont use long block pre-echo control if previous granule was
             * a short block.  This is to avoid the situation:
             * frame0:  quiet (very low masking)
             * frame1:  surge  (triggers short blocks)
             * frame2:  regular frame.  looks like pre-echo when compared to
             *          frame0, but all pre-echo was in frame1.
             * </PRE>
             */
            /*
             * chn=0,1 L and R channels chn=2,3 S and M channels.
             */
            if (gfc.blocktype_old[chn & 0x01] == Encoder.SHORT_TYPE) {
                var ecb_limit = rpelev * gfc.nb_1[chn][b];
                if (ecb_limit > 0) {
                    thr[b] = Math.min(ecb, ecb_limit);
                } else {
                    /**
                     * <PRE>
                     * Robert 071209:
                     * Because we don't calculate long block psy when we know a granule
                     * should be of short blocks, we don't have any clue how the granule
                     * before would have looked like as a long block. So we have to guess
                     * a little bit for this END_TYPE block.
                     * Most of the time we get away with this sloppyness. (fingers crossed :)
                     * The speed increase is worth it.
                     * </PRE>
                     */
                    thr[b] = Math.min(ecb, eb_l[b] * NS_PREECHO_ATT2);
                }
            } else {
                var ecb_limit_2 = rpelev2 * gfc.nb_2[chn][b];
                var ecb_limit_1 = rpelev * gfc.nb_1[chn][b];
                var ecb_limit;
                if (ecb_limit_2 <= 0) {
                    ecb_limit_2 = ecb;
                }
                if (ecb_limit_1 <= 0) {
                    ecb_limit_1 = ecb;
                }
                if (gfc.blocktype_old[chn & 0x01] == Encoder.NORM_TYPE) {
                    ecb_limit = Math.min(ecb_limit_1, ecb_limit_2);
                } else {
                    ecb_limit = ecb_limit_1;
                }
                thr[b] = Math.min(ecb, ecb_limit);
            }
            gfc.nb_2[chn][b] = gfc.nb_1[chn][b];
            gfc.nb_1[chn][b] = ecb;
            {
                /*
                 * if THR exceeds EB, the quantization routines will take the
                 * difference from other bands. in case of strong tonal samples
                 * (tonaltest.wav) this leads to heavy distortions. that's why
                 * we limit THR here.
                 */
                x = max[b];
                x *= gfc.minval_l[b];
                x *= avg_mask;
                if (thr[b] > x) {
                    thr[b] = x;
                }
            }
            if (gfc.masking_lower > 1) {
                thr[b] *= gfc.masking_lower;
            }
            if (thr[b] > eb_l[b]) {
                thr[b] = eb_l[b];
            }
            if (gfc.masking_lower < 1) {
                thr[b] *= gfc.masking_lower;
            }
            assert(thr[b] >= 0);
        }
        for (; b < Encoder.CBANDS; ++b) {
            eb_l[b] = 0;
            thr[b] = 0;
        }
    }

    function vbrpsy_compute_block_type(gfp, uselongblock) {
        var gfc = gfp.internal_flags;

        if (gfp.short_blocks == ShortBlock.short_block_coupled
                /* force both channels to use the same block type */
                /* this is necessary if the frame is to be encoded in ms_stereo. */
                /* But even without ms_stereo, FhG does this */
            && !(uselongblock[0] != 0 && uselongblock[1] != 0))
            uselongblock[0] = uselongblock[1] = 0;

        for (var chn = 0; chn < gfc.channels_out; chn++) {
            /* disable short blocks */
            if (gfp.short_blocks == ShortBlock.short_block_dispensed) {
                uselongblock[chn] = 1;
            }
            if (gfp.short_blocks == ShortBlock.short_block_forced) {
                uselongblock[chn] = 0;
            }
        }
    }

    function vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d) {
        var gfc = gfp.internal_flags;

        /*
         * update the blocktype of the previous granule, since it depends on
         * what happend in this granule
         */
        for (var chn = 0; chn < gfc.channels_out; chn++) {
            var blocktype = Encoder.NORM_TYPE;
            /* disable short blocks */

            if (uselongblock[chn] != 0) {
                /* no attack : use long blocks */
                assert(gfc.blocktype_old[chn] != Encoder.START_TYPE);
                if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE)
                    blocktype = Encoder.STOP_TYPE;
            } else {
                /* attack : use short blocks */
                blocktype = Encoder.SHORT_TYPE;
                if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {
                    gfc.blocktype_old[chn] = Encoder.START_TYPE;
                }
                if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE)
                    gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;
            }

            blocktype_d[chn] = gfc.blocktype_old[chn];
            // value returned to calling program
            gfc.blocktype_old[chn] = blocktype;
            // save for next call to l3psy_anal
        }
    }

    /**
     * compute M/S thresholds from Johnston & Ferreira 1992 ICASSP paper
     */
    function vbrpsy_compute_MS_thresholds(eb, thr, cb_mld, ath_cb, athadjust, msfix, n) {
        var msfix2 = msfix * 2;
        var athlower = msfix > 0 ? Math.pow(10, athadjust) : 1;
        var rside, rmid;
        for (var b = 0; b < n; ++b) {
            var ebM = eb[2][b];
            var ebS = eb[3][b];
            var thmL = thr[0][b];
            var thmR = thr[1][b];
            var thmM = thr[2][b];
            var thmS = thr[3][b];

            /* use this fix if L & R masking differs by 2db or less */
            if (thmL <= 1.58 * thmR && thmR <= 1.58 * thmL) {
                var mld_m = cb_mld[b] * ebS;
                var mld_s = cb_mld[b] * ebM;
                rmid = Math.max(thmM, Math.min(thmS, mld_m));
                rside = Math.max(thmS, Math.min(thmM, mld_s));
            } else {
                rmid = thmM;
                rside = thmS;
            }
            if (msfix > 0) {
                /***************************************************************/
                /* Adjust M/S maskings if user set "msfix" */
                /***************************************************************/
                /* Naoki Shibata 2000 */
                var thmLR, thmMS;
                var ath = ath_cb[b] * athlower;
                thmLR = Math.min(Math.max(thmL, ath), Math.max(thmR, ath));
                thmM = Math.max(rmid, ath);
                thmS = Math.max(rside, ath);
                thmMS = thmM + thmS;
                if (thmMS > 0 && (thmLR * msfix2) < thmMS) {
                    var f = thmLR * msfix2 / thmMS;
                    thmM *= f;
                    thmS *= f;
                    assert(thmMS > 0);
                }
                rmid = Math.min(thmM, rmid);
                rside = Math.min(thmS, rside);
            }
            if (rmid > ebM) {
                rmid = ebM;
            }
            if (rside > ebS) {
                rside = ebS;
            }
            thr[2][b] = rmid;
            thr[3][b] = rside;
        }
    }

    this.L3psycho_anal_vbr = function (gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {
        var gfc = gfp.internal_flags;

        /* fft and energy calculation */
        var wsamp_l;
        var wsamp_s;
        var fftenergy = new_float(Encoder.HBLKSIZE);
        var fftenergy_s = new_float_n([3, Encoder.HBLKSIZE_s]);
        var wsamp_L = new_float_n([2, Encoder.BLKSIZE]);
        var wsamp_S = new_float_n([2, 3, Encoder.BLKSIZE_s]);
        var eb = new_float_n([4, Encoder.CBANDS]), thr = new_float_n([4, Encoder.CBANDS]);
        var sub_short_factor = new_float_n([4, 3]);
        var pcfact = 0.6;

        /* block type */
        var ns_attacks = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],
            [0, 0, 0, 0]];
        var uselongblock = new_int(2);

        /* usual variables like loop indices, etc.. */

        /* chn=2 and 3 = Mid and Side channels */
        var n_chn_psy = (gfp.mode == MPEGMode.JOINT_STEREO) ? 4
            : gfc.channels_out;

        vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio,
            masking_MS_ratio, energy, sub_short_factor, ns_attacks,
            uselongblock);

        vbrpsy_compute_block_type(gfp, uselongblock);

        /* LONG BLOCK CASE */
        {
            for (var chn = 0; chn < n_chn_psy; chn++) {
                var ch01 = chn & 0x01;
                wsamp_l = wsamp_L;
                vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out,
                    fftenergy, wsamp_l, ch01);

                vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn,
                    fftenergy);

                if (uselongblock[ch01] != 0) {
                    vbrpsy_compute_masking_l(gfc, fftenergy, eb[chn], thr[chn],
                        chn);
                } else {
                    vbrpsy_skip_masking_l(gfc, chn);
                }
            }
            if ((uselongblock[0] + uselongblock[1]) == 2) {
                /* M/S channel */
                if (gfp.mode == MPEGMode.JOINT_STEREO) {
                    vbrpsy_compute_MS_thresholds(eb, thr, gfc.mld_cb_l,
                        gfc.ATH.cb_l, gfp.ATHlower * gfc.ATH.adjust,
                        gfp.msfix, gfc.npart_l);
                }
            }
            /* TODO: apply adaptive ATH masking here ?? */
            for (var chn = 0; chn < n_chn_psy; chn++) {
                var ch01 = chn & 0x01;
                if (uselongblock[ch01] != 0) {
                    convert_partition2scalefac_l(gfc, eb[chn], thr[chn], chn);
                }
            }
        }

        /* SHORT BLOCKS CASE */
        {
            for (var sblock = 0; sblock < 3; sblock++) {
                for (var chn = 0; chn < n_chn_psy; ++chn) {
                    var ch01 = chn & 0x01;

                    if (uselongblock[ch01] != 0) {
                        vbrpsy_skip_masking_s(gfc, chn, sblock);
                    } else {
                        /* compute masking thresholds for short blocks */
                        wsamp_s = wsamp_S;
                        vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock,
                            fftenergy_s, wsamp_s, ch01);
                        vbrpsy_compute_masking_s(gfp, fftenergy_s, eb[chn],
                            thr[chn], chn, sblock);
                    }
                }
                if ((uselongblock[0] + uselongblock[1]) == 0) {
                    /* M/S channel */
                    if (gfp.mode == MPEGMode.JOINT_STEREO) {
                        vbrpsy_compute_MS_thresholds(eb, thr, gfc.mld_cb_s,
                            gfc.ATH.cb_s, gfp.ATHlower * gfc.ATH.adjust,
                            gfp.msfix, gfc.npart_s);
                    }
                    /* L/R channel */
                }
                /* TODO: apply adaptive ATH masking here ?? */
                for (var chn = 0; chn < n_chn_psy; ++chn) {
                    var ch01 = chn & 0x01;
                    if (0 == uselongblock[ch01]) {
                        convert_partition2scalefac_s(gfc, eb[chn], thr[chn],
                            chn, sblock);
                    }
                }
            }

            /**** short block pre-echo control ****/
            for (var chn = 0; chn < n_chn_psy; chn++) {
                var ch01 = chn & 0x01;

                if (uselongblock[ch01] != 0) {
                    continue;
                }
                for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {
                    var new_thmm = new_float(3);
                    for (var sblock = 0; sblock < 3; sblock++) {
                        var thmm = gfc.thm[chn].s[sb][sblock];
                        thmm *= NS_PREECHO_ATT0;

                        if (ns_attacks[chn][sblock] >= 2
                            || ns_attacks[chn][sblock + 1] == 1) {
                            var idx = (sblock != 0) ? sblock - 1 : 2;
                            var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,
                                NS_PREECHO_ATT1 * pcfact);
                            thmm = Math.min(thmm, p);
                        } else if (ns_attacks[chn][sblock] == 1) {
                            var idx = (sblock != 0) ? sblock - 1 : 2;
                            var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,
                                NS_PREECHO_ATT2 * pcfact);
                            thmm = Math.min(thmm, p);
                        } else if ((sblock != 0 && ns_attacks[chn][sblock - 1] == 3)
                            || (sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3)) {
                            var idx = (sblock != 2) ? sblock + 1 : 0;
                            var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,
                                NS_PREECHO_ATT2 * pcfact);
                            thmm = Math.min(thmm, p);
                        }

                        /* pulse like signal detection for fatboy.wav and so on */
                        thmm *= sub_short_factor[chn][sblock];

                        new_thmm[sblock] = thmm;
                    }
                    for (var sblock = 0; sblock < 3; sblock++) {
                        gfc.thm[chn].s[sb][sblock] = new_thmm[sblock];
                    }
                }
            }
        }
        for (var chn = 0; chn < n_chn_psy; chn++) {
            gfc.nsPsy.lastAttacks[chn] = ns_attacks[chn][2];
        }

        /***************************************************************
         * determine final block type
         ***************************************************************/
        vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d);

        /*********************************************************************
         * compute the value of PE to return ... no delay and advance
         *********************************************************************/
        for (var chn = 0; chn < n_chn_psy; chn++) {
            var ppe;
            var ppePos;
            var type;
            var mr;

            if (chn > 1) {
                ppe = percep_MS_entropy;
                ppePos = -2;
                type = Encoder.NORM_TYPE;
                if (blocktype_d[0] == Encoder.SHORT_TYPE
                    || blocktype_d[1] == Encoder.SHORT_TYPE)
                    type = Encoder.SHORT_TYPE;
                mr = masking_MS_ratio[gr_out][chn - 2];
            } else {
                ppe = percep_entropy;
                ppePos = 0;
                type = blocktype_d[chn];
                mr = masking_ratio[gr_out][chn];
            }

            if (type == Encoder.SHORT_TYPE) {
                ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);
            } else {
                ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);
            }

            if (gfp.analysis) {
                gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];
            }
        }
        return 0;
    }

    function s3_func_x(bark, hf_slope) {
        var tempx = bark, tempy;

        if (tempx >= 0) {
            tempy = -tempx * 27;
        } else {
            tempy = tempx * hf_slope;
        }
        if (tempy <= -72.0) {
            return 0;
        }
        return Math.exp(tempy * LN_TO_LOG10);
    }

    function norm_s3_func_x(hf_slope) {
        var lim_a = 0, lim_b = 0;
        {
            var x = 0, l, h;
            for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x -= 1)
                ;
            l = x;
            h = 0;
            while (Math.abs(h - l) > 1e-12) {
                x = (h + l) / 2;
                if (s3_func_x(x, hf_slope) > 0) {
                    h = x;
                } else {
                    l = x;
                }
            }
            lim_a = l;
        }
        {
            var x = 0, l, h;
            for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x += 1)
                ;
            l = 0;
            h = x;
            while (Math.abs(h - l) > 1e-12) {
                x = (h + l) / 2;
                if (s3_func_x(x, hf_slope) > 0) {
                    l = x;
                } else {
                    h = x;
                }
            }
            lim_b = h;
        }
        {
            var sum = 0;
            var m = 1000;
            var i;
            for (i = 0; i <= m; ++i) {
                var x = lim_a + i * (lim_b - lim_a) / m;
                var y = s3_func_x(x, hf_slope);
                sum += y;
            }
            {
                var norm = (m + 1) / (sum * (lim_b - lim_a));
                /* printf( "norm = %lf\n",norm); */
                return norm;
            }
        }
    }

    /**
     *   The spreading function.  Values returned in units of energy
     */
    function s3_func(bark) {
        var tempx, x, tempy, temp;
        tempx = bark;
        if (tempx >= 0)
            tempx *= 3;
        else
            tempx *= 1.5;

        if (tempx >= 0.5 && tempx <= 2.5) {
            temp = tempx - 0.5;
            x = 8.0 * (temp * temp - 2.0 * temp);
        } else
            x = 0.0;
        tempx += 0.474;
        tempy = 15.811389 + 7.5 * tempx - 17.5
            * Math.sqrt(1.0 + tempx * tempx);

        if (tempy <= -60.0)
            return 0.0;

        tempx = Math.exp((x + tempy) * LN_TO_LOG10);

        /**
         * <PRE>
         * Normalization.  The spreading function should be normalized so that:
         * +inf
         * /
         * |  s3 [ bark ]  d(bark)   =  1
         * /
         * -inf
         * </PRE>
         */
        tempx /= .6609193;
        return tempx;
    }

    /**
     * see for example "Zwicker: Psychoakustik, 1982; ISBN 3-540-11401-7
     */
    function freq2bark(freq) {
        /* input: freq in hz output: barks */
        if (freq < 0)
            freq = 0;
        freq = freq * 0.001;
        return 13.0 * Math.atan(.76 * freq) + 3.5
            * Math.atan(freq * freq / (7.5 * 7.5));
    }

    function init_numline(numlines, bo, bm, bval, bval_width, mld, bo_w, sfreq, blksize, scalepos, deltafreq, sbmax) {
        var b_frq = new_float(Encoder.CBANDS + 1);
        var sample_freq_frac = sfreq / (sbmax > 15 ? 2 * 576 : 2 * 192);
        var partition = new_int(Encoder.HBLKSIZE);
        var i;
        sfreq /= blksize;
        var j = 0;
        var ni = 0;
        /* compute numlines, the number of spectral lines in each partition band */
        /* each partition band should be about DELBARK wide. */
        for (i = 0; i < Encoder.CBANDS; i++) {
            var bark1;
            var j2;
            bark1 = freq2bark(sfreq * j);

            b_frq[i] = sfreq * j;

            for (j2 = j; freq2bark(sfreq * j2) - bark1 < DELBARK
            && j2 <= blksize / 2; j2++)
                ;

            numlines[i] = j2 - j;
            ni = i + 1;

            while (j < j2) {
                assert(j < Encoder.HBLKSIZE);
                partition[j++] = i;
            }
            if (j > blksize / 2) {
                j = blksize / 2;
                ++i;
                break;
            }
        }
        assert(i < Encoder.CBANDS);
        b_frq[i] = sfreq * j;

        for (var sfb = 0; sfb < sbmax; sfb++) {
            var i1, i2, start, end;
            var arg;
            start = scalepos[sfb];
            end = scalepos[sfb + 1];

            i1 = 0 | Math.floor(.5 + deltafreq * (start - .5));
            if (i1 < 0)
                i1 = 0;
            i2 = 0 | Math.floor(.5 + deltafreq * (end - .5));

            if (i2 > blksize / 2)
                i2 = blksize / 2;

            bm[sfb] = (partition[i1] + partition[i2]) / 2;
            bo[sfb] = partition[i2];
            var f_tmp = sample_freq_frac * end;
            /*
             * calculate how much of this band belongs to current scalefactor
             * band
             */
            bo_w[sfb] = (f_tmp - b_frq[bo[sfb]])
                / (b_frq[bo[sfb] + 1] - b_frq[bo[sfb]]);
            if (bo_w[sfb] < 0) {
                bo_w[sfb] = 0;
            } else {
                if (bo_w[sfb] > 1) {
                    bo_w[sfb] = 1;
                }
            }
            /* setup stereo demasking thresholds */
            /* formula reverse enginerred from plot in paper */
            arg = freq2bark(sfreq * scalepos[sfb] * deltafreq);
            arg = ( Math.min(arg, 15.5) / 15.5);

            mld[sfb] = Math.pow(10.0,
                1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);
        }

        /* compute bark values of each critical band */
        j = 0;
        for (var k = 0; k < ni; k++) {
            var w = numlines[k];
            var bark1, bark2;

            bark1 = freq2bark(sfreq * (j));
            bark2 = freq2bark(sfreq * (j + w - 1));
            bval[k] = .5 * (bark1 + bark2);

            bark1 = freq2bark(sfreq * (j - .5));
            bark2 = freq2bark(sfreq * (j + w - .5));
            bval_width[k] = bark2 - bark1;
            j += w;
        }

        return ni;
    }

    function init_s3_values(s3ind, npart, bval, bval_width, norm, use_old_s3) {
        var s3 = new_float_n([Encoder.CBANDS, Encoder.CBANDS]);
        /*
         * The s3 array is not linear in the bark scale.
         *
         * bval[x] should be used to get the bark value.
         */
        var j;
        var numberOfNoneZero = 0;

        /**
         * <PRE>
         * s[i][j], the value of the spreading function,
         * centered at band j (masker), for band i (maskee)
         *
         * i.e.: sum over j to spread into signal barkval=i
         * NOTE: i and j are used opposite as in the ISO docs
         * </PRE>
         */
        if (use_old_s3) {
            for (var i = 0; i < npart; i++) {
                for (j = 0; j < npart; j++) {
                    var v = s3_func(bval[i] - bval[j]) * bval_width[j];
                    s3[i][j] = v * norm[i];
                }
            }
        } else {
            for (j = 0; j < npart; j++) {
                var hf_slope = 15 + Math.min(21 / bval[j], 12);
                var s3_x_norm = norm_s3_func_x(hf_slope);
                for (var i = 0; i < npart; i++) {
                    var v = s3_x_norm
                        * s3_func_x(bval[i] - bval[j], hf_slope)
                        * bval_width[j];
                    s3[i][j] = v * norm[i];
                }
            }
        }
        for (var i = 0; i < npart; i++) {
            for (j = 0; j < npart; j++) {
                if (s3[i][j] > 0.0)
                    break;
            }
            s3ind[i][0] = j;

            for (j = npart - 1; j > 0; j--) {
                if (s3[i][j] > 0.0)
                    break;
            }
            s3ind[i][1] = j;
            numberOfNoneZero += (s3ind[i][1] - s3ind[i][0] + 1);
        }

        var p = new_float(numberOfNoneZero);
        var k = 0;
        for (var i = 0; i < npart; i++)
            for (j = s3ind[i][0]; j <= s3ind[i][1]; j++)
                p[k++] = s3[i][j];

        return p;
    }

    function stereo_demask(f) {
        /* setup stereo demasking thresholds */
        /* formula reverse enginerred from plot in paper */
        var arg = freq2bark(f);
        arg = (Math.min(arg, 15.5) / 15.5);

        return Math.pow(10.0,
            1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);
    }

    /**
     * NOTE: the bitrate reduction from the inter-channel masking effect is low
     * compared to the chance of getting annyoing artefacts. L3psycho_anal_vbr
     * does not use this feature. (Robert 071216)
     */
    this.psymodel_init = function (gfp) {
        var gfc = gfp.internal_flags;
        var i;
        var useOldS3 = true;
        var bvl_a = 13, bvl_b = 24;
        var snr_l_a = 0, snr_l_b = 0;
        var snr_s_a = -8.25, snr_s_b = -4.5;
        var bval = new_float(Encoder.CBANDS);
        var bval_width = new_float(Encoder.CBANDS);
        var norm = new_float(Encoder.CBANDS);
        var sfreq = gfp.out_samplerate;

        switch (gfp.experimentalZ) {
            default:
            case 0:
                useOldS3 = true;
                break;
            case 1:
                useOldS3 = (gfp.VBR == VbrMode.vbr_mtrh || gfp.VBR == VbrMode.vbr_mt) ? false
                    : true;
                break;
            case 2:
                useOldS3 = false;
                break;
            case 3:
                bvl_a = 8;
                snr_l_a = -1.75;
                snr_l_b = -0.0125;
                snr_s_a = -8.25;
                snr_s_b = -2.25;
                break;
        }
        gfc.ms_ener_ratio_old = .25;
        gfc.blocktype_old[0] = gfc.blocktype_old[1] = Encoder.NORM_TYPE;
        // the vbr header is long blocks

        for (i = 0; i < 4; ++i) {
            for (var j = 0; j < Encoder.CBANDS; ++j) {
                gfc.nb_1[i][j] = 1e20;
                gfc.nb_2[i][j] = 1e20;
                gfc.nb_s1[i][j] = gfc.nb_s2[i][j] = 1.0;
            }
            for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {
                gfc.en[i].l[sb] = 1e20;
                gfc.thm[i].l[sb] = 1e20;
            }
            for (var j = 0; j < 3; ++j) {
                for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {
                    gfc.en[i].s[sb][j] = 1e20;
                    gfc.thm[i].s[sb][j] = 1e20;
                }
                gfc.nsPsy.lastAttacks[i] = 0;
            }
            for (var j = 0; j < 9; j++)
                gfc.nsPsy.last_en_subshort[i][j] = 10.;
        }

        /* init. for loudness approx. -jd 2001 mar 27 */
        gfc.loudness_sq_save[0] = gfc.loudness_sq_save[1] = 0.0;

        /*************************************************************************
         * now compute the psychoacoustic model specific constants
         ************************************************************************/
        /* compute numlines, bo, bm, bval, bval_width, mld */

        gfc.npart_l = init_numline(gfc.numlines_l, gfc.bo_l, gfc.bm_l, bval,
            bval_width, gfc.mld_l, gfc.PSY.bo_l_weight, sfreq,
            Encoder.BLKSIZE, gfc.scalefac_band.l, Encoder.BLKSIZE
            / (2.0 * 576), Encoder.SBMAX_l);
        assert(gfc.npart_l < Encoder.CBANDS);
        /* compute the spreading function */
        for (i = 0; i < gfc.npart_l; i++) {
            var snr = snr_l_a;
            if (bval[i] >= bvl_a) {
                snr = snr_l_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_l_a
                    * (bvl_b - bval[i]) / (bvl_b - bvl_a);
            }
            norm[i] = Math.pow(10.0, snr / 10.0);
            if (gfc.numlines_l[i] > 0) {
                gfc.rnumlines_l[i] = 1.0 / gfc.numlines_l[i];
            } else {
                gfc.rnumlines_l[i] = 0;
            }
        }
        gfc.s3_ll = init_s3_values(gfc.s3ind, gfc.npart_l, bval, bval_width,
            norm, useOldS3);

        /* compute long block specific values, ATH and MINVAL */
        var j = 0;
        for (i = 0; i < gfc.npart_l; i++) {
            var x;

            /* ATH */
            x = Float.MAX_VALUE;
            for (var k = 0; k < gfc.numlines_l[i]; k++, j++) {
                var freq = sfreq * j / (1000.0 * Encoder.BLKSIZE);
                var level;
                /*
                 * ATH below 100 Hz constant, not further climbing
                 */
                level = this.ATHformula(freq * 1000, gfp) - 20;
                // scale to FFT units; returned value is in dB
                level = Math.pow(10., 0.1 * level);
                // convert from dB . energy
                level *= gfc.numlines_l[i];
                if (x > level)
                    x = level;
            }
            gfc.ATH.cb_l[i] = x;

            /*
             * MINVAL. For low freq, the strength of the masking is limited by
             * minval this is an ISO MPEG1 thing, dont know if it is really
             * needed
             */
            /*
             * FIXME: it does work to reduce low-freq problems in S53-Wind-Sax
             * and lead-voice samples, but introduces some 3 kbps bit bloat too.
             * TODO: Further refinement of the shape of this hack.
             */
            x = -20 + bval[i] * 20 / 10;
            if (x > 6) {
                x = 100;
            }
            if (x < -15) {
                x = -15;
            }
            x -= 8.;
            gfc.minval_l[i] = (Math.pow(10.0, x / 10.) * gfc.numlines_l[i]);
        }

        /************************************************************************
         * do the same things for short blocks
         ************************************************************************/
        gfc.npart_s = init_numline(gfc.numlines_s, gfc.bo_s, gfc.bm_s, bval,
            bval_width, gfc.mld_s, gfc.PSY.bo_s_weight, sfreq,
            Encoder.BLKSIZE_s, gfc.scalefac_band.s, Encoder.BLKSIZE_s
            / (2.0 * 192), Encoder.SBMAX_s);
        assert(gfc.npart_s < Encoder.CBANDS);

        /* SNR formula. short block is normalized by SNR. is it still right ? */
        j = 0;
        for (i = 0; i < gfc.npart_s; i++) {
            var x;
            var snr = snr_s_a;
            if (bval[i] >= bvl_a) {
                snr = snr_s_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_s_a
                    * (bvl_b - bval[i]) / (bvl_b - bvl_a);
            }
            norm[i] = Math.pow(10.0, snr / 10.0);

            /* ATH */
            x = Float.MAX_VALUE;
            for (var k = 0; k < gfc.numlines_s[i]; k++, j++) {
                var freq = sfreq * j / (1000.0 * Encoder.BLKSIZE_s);
                var level;
                /* freq = Min(.1,freq); */
                /*
                 * ATH below 100 Hz constant, not
                 * further climbing
                 */
                level = this.ATHformula(freq * 1000, gfp) - 20;
                // scale to FFT units; returned value is in dB
                level = Math.pow(10., 0.1 * level);
                // convert from dB . energy
                level *= gfc.numlines_s[i];
                if (x > level)
                    x = level;
            }
            gfc.ATH.cb_s[i] = x;

            /*
             * MINVAL. For low freq, the strength of the masking is limited by
             * minval this is an ISO MPEG1 thing, dont know if it is really
             * needed
             */
            x = (-7.0 + bval[i] * 7.0 / 12.0);
            if (bval[i] > 12) {
                x *= 1 + Math.log(1 + x) * 3.1;
            }
            if (bval[i] < 12) {
                x *= 1 + Math.log(1 - x) * 2.3;
            }
            if (x < -15) {
                x = -15;
            }
            x -= 8;
            gfc.minval_s[i] = Math.pow(10.0, x / 10)
                * gfc.numlines_s[i];
        }

        gfc.s3_ss = init_s3_values(gfc.s3ind_s, gfc.npart_s, bval, bval_width,
            norm, useOldS3);

        init_mask_add_max_values();
        fft.init_fft(gfc);

        /* setup temporal masking */
        gfc.decay = Math.exp(-1.0 * LOG10
            / (temporalmask_sustain_sec * sfreq / 192.0));

        {
            var msfix;
            msfix = NS_MSFIX;
            if ((gfp.exp_nspsytune & 2) != 0)
                msfix = 1.0;
            if (Math.abs(gfp.msfix) > 0.0)
                msfix = gfp.msfix;
            gfp.msfix = msfix;

            /*
             * spread only from npart_l bands. Normally, we use the spreading
             * function to convolve from npart_l down to npart_l bands
             */
            for (var b = 0; b < gfc.npart_l; b++)
                if (gfc.s3ind[b][1] > gfc.npart_l - 1)
                    gfc.s3ind[b][1] = gfc.npart_l - 1;
        }

        /*
         * prepare for ATH auto adjustment: we want to decrease the ATH by 12 dB
         * per second
         */
        var frame_duration = (576. * gfc.mode_gr / sfreq);
        gfc.ATH.decay = Math.pow(10., -12. / 10. * frame_duration);
        gfc.ATH.adjust = 0.01;
        /* minimum, for leading low loudness */
        gfc.ATH.adjustLimit = 1.0;
        /* on lead, allow adjust up to maximum */

        assert(gfc.bo_l[Encoder.SBMAX_l - 1] <= gfc.npart_l);
        assert(gfc.bo_s[Encoder.SBMAX_s - 1] <= gfc.npart_s);

        if (gfp.ATHtype != -1) {
            /* compute equal loudness weights (eql_w) */
            var freq;
            var freq_inc = gfp.out_samplerate
                / (Encoder.BLKSIZE);
            var eql_balance = 0.0;
            freq = 0.0;
            for (i = 0; i < Encoder.BLKSIZE / 2; ++i) {
                /* convert ATH dB to relative power (not dB) */
                /* to determine eql_w */
                freq += freq_inc;
                gfc.ATH.eql_w[i] = 1. / Math.pow(10, this.ATHformula(freq, gfp) / 10);
                eql_balance += gfc.ATH.eql_w[i];
            }
            eql_balance = 1.0 / eql_balance;
            for (i = Encoder.BLKSIZE / 2; --i >= 0;) { /* scale weights */
                gfc.ATH.eql_w[i] *= eql_balance;
            }
        }
        {
            for (var b = j = 0; b < gfc.npart_s; ++b) {
                for (i = 0; i < gfc.numlines_s[b]; ++i) {
                    ++j;
                }
            }
            assert(j == 129);
            for (var b = j = 0; b < gfc.npart_l; ++b) {
                for (i = 0; i < gfc.numlines_l[b]; ++i) {
                    ++j;
                }
            }
            assert(j == 513);
        }
        j = 0;
        for (i = 0; i < gfc.npart_l; i++) {
            var freq = sfreq * (j + gfc.numlines_l[i] / 2) / (1.0 * Encoder.BLKSIZE);
            gfc.mld_cb_l[i] = stereo_demask(freq);
            j += gfc.numlines_l[i];
        }
        for (; i < Encoder.CBANDS; ++i) {
            gfc.mld_cb_l[i] = 1;
        }
        j = 0;
        for (i = 0; i < gfc.npart_s; i++) {
            var freq = sfreq * (j + gfc.numlines_s[i] / 2) / (1.0 * Encoder.BLKSIZE_s);
            gfc.mld_cb_s[i] = stereo_demask(freq);
            j += gfc.numlines_s[i];
        }
        for (; i < Encoder.CBANDS; ++i) {
            gfc.mld_cb_s[i] = 1;
        }
        return 0;
    }

    /**
     * Those ATH formulas are returning their minimum value for input = -1
     */
    function ATHformula_GB(f, value) {
        /**
         * <PRE>
         *  from Painter & Spanias
         *           modified by Gabriel Bouvigne to better fit the reality
         *           ath =    3.640 * pow(f,-0.8)
         *           - 6.800 * exp(-0.6*pow(f-3.4,2.0))
         *           + 6.000 * exp(-0.15*pow(f-8.7,2.0))
         *           + 0.6* 0.001 * pow(f,4.0);
         *
         *
         *           In the past LAME was using the Painter &Spanias formula.
         *           But we had some recurrent problems with HF content.
         *           We measured real ATH values, and found the older formula
         *           to be inaccurate in the higher part. So we made this new
         *           formula and this solved most of HF problematic test cases.
         *           The tradeoff is that in VBR mode it increases a lot the
         *           bitrate.
         * </PRE>
         */

        /*
         * This curve can be adjusted according to the VBR scale: it adjusts
         * from something close to Painter & Spanias on V9 up to Bouvigne's
         * formula for V0. This way the VBR bitrate is more balanced according
         * to the -V value.
         */

        // the following Hack allows to ask for the lowest value
        if (f < -.3)
            f = 3410;

        // convert to khz
        f /= 1000;
        f = Math.max(0.1, f);
        var ath = 3.640 * Math.pow(f, -0.8) - 6.800
            * Math.exp(-0.6 * Math.pow(f - 3.4, 2.0)) + 6.000
            * Math.exp(-0.15 * Math.pow(f - 8.7, 2.0))
            + (0.6 + 0.04 * value) * 0.001 * Math.pow(f, 4.0);
        return ath;
    }

    this.ATHformula = function (f, gfp) {
        var ath;
        switch (gfp.ATHtype) {
            case 0:
                ath = ATHformula_GB(f, 9);
                break;
            case 1:
                // over sensitive, should probably be removed
                ath = ATHformula_GB(f, -1);
                break;
            case 2:
                ath = ATHformula_GB(f, 0);
                break;
            case 3:
                // modification of GB formula by Roel
                ath = ATHformula_GB(f, 1) + 6;
                break;
            case 4:
                ath = ATHformula_GB(f, gfp.ATHcurve);
                break;
            default:
                ath = ATHformula_GB(f, 0);
                break;
        }
        return ath;
    }

}

module.exports = PsyModel;


/***/ }),

/***/ "./node_modules/lamejs/src/js/Quantize.js":
/*!************************************************!*\
  !*** ./node_modules/lamejs/src/js/Quantize.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/*
 * MP3 quantization
 *
 *      Copyright (c) 1999-2000 Mark Taylor
 *      Copyright (c) 1999-2003 Takehiro Tominaga
 *      Copyright (c) 2000-2007 Robert Hegemann
 *      Copyright (c) 2001-2005 Gabriel Bouvigne
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.     See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */

/* $Id: Quantize.java,v 1.24 2011/05/24 20:48:06 kenchis Exp $ */

//package mp3;

//import java.util.Arrays;
var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var VBRQuantize = __webpack_require__(/*! ./VBRQuantize.js */ "./node_modules/lamejs/src/js/VBRQuantize.js");
var CalcNoiseResult = __webpack_require__(/*! ./CalcNoiseResult.js */ "./node_modules/lamejs/src/js/CalcNoiseResult.js");
var CalcNoiseData = __webpack_require__(/*! ./CalcNoiseData.js */ "./node_modules/lamejs/src/js/CalcNoiseData.js");
var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");
var GrInfo = __webpack_require__(/*! ./GrInfo.js */ "./node_modules/lamejs/src/js/GrInfo.js");
var L3Side = __webpack_require__(/*! ./L3Side.js */ "./node_modules/lamejs/src/js/L3Side.js");

function Quantize() {
    var bs;
    this.rv = null;
    var rv;
    this.qupvt = null;
    var qupvt;

    var vbr = new VBRQuantize();
    var tk;

    this.setModules = function (_bs, _rv, _qupvt, _tk) {
        bs = _bs;
        rv = _rv;
        this.rv = _rv;
        qupvt = _qupvt;
        this.qupvt = _qupvt;
        tk = _tk;
        vbr.setModules(qupvt, tk);
    }

    /**
     * convert from L/R <. Mid/Side
     */
    this.ms_convert = function (l3_side, gr) {
        for (var i = 0; i < 576; ++i) {
            var l = l3_side.tt[gr][0].xr[i];
            var r = l3_side.tt[gr][1].xr[i];
            l3_side.tt[gr][0].xr[i] = (l + r) * (Util.SQRT2 * 0.5);
            l3_side.tt[gr][1].xr[i] = (l - r) * (Util.SQRT2 * 0.5);
        }
    };

    /**
     * mt 6/99
     *
     * initializes cod_info, scalefac and xrpow
     *
     * returns 0 if all energies in xr are zero, else 1
     */
    function init_xrpow_core(cod_info, xrpow, upper, sum) {
        sum = 0;
        for (var i = 0; i <= upper; ++i) {
            var tmp = Math.abs(cod_info.xr[i]);
            sum += tmp;
            xrpow[i] = Math.sqrt(tmp * Math.sqrt(tmp));

            if (xrpow[i] > cod_info.xrpow_max)
                cod_info.xrpow_max = xrpow[i];
        }
        return sum;
    }

    this.init_xrpow = function (gfc, cod_info, xrpow) {
        var sum = 0;
        var upper = 0 | cod_info.max_nonzero_coeff;

        assert(xrpow != null);
        cod_info.xrpow_max = 0;

        /*
         * check if there is some energy we have to quantize and calculate xrpow
         * matching our fresh scalefactors
         */
        assert(0 <= upper && upper <= 575);

        Arrays.fill(xrpow, upper, 576, 0);

        sum = init_xrpow_core(cod_info, xrpow, upper, sum);

        /*
         * return 1 if we have something to quantize, else 0
         */
        if (sum > 1E-20) {
            var j = 0;
            if ((gfc.substep_shaping & 2) != 0)
                j = 1;

            for (var i = 0; i < cod_info.psymax; i++)
                gfc.pseudohalf[i] = j;

            return true;
        }

        Arrays.fill(cod_info.l3_enc, 0, 576, 0);
        return false;
    }

    /**
     * Gabriel Bouvigne feb/apr 2003<BR>
     * Analog silence detection in partitionned sfb21 or sfb12 for short blocks
     *
     * From top to bottom of sfb, changes to 0 coeffs which are below ath. It
     * stops on the first coeff higher than ath.
     */
    function psfb21_analogsilence(gfc, cod_info) {
        var ath = gfc.ATH;
        var xr = cod_info.xr;

        if (cod_info.block_type != Encoder.SHORT_TYPE) {
            /* NORM, START or STOP type, but not SHORT blocks */
            var stop = false;
            for (var gsfb = Encoder.PSFB21 - 1; gsfb >= 0 && !stop; gsfb--) {
                var start = gfc.scalefac_band.psfb21[gsfb];
                var end = gfc.scalefac_band.psfb21[gsfb + 1];
                var ath21 = qupvt.athAdjust(ath.adjust, ath.psfb21[gsfb],
                    ath.floor);

                if (gfc.nsPsy.longfact[21] > 1e-12)
                    ath21 *= gfc.nsPsy.longfact[21];

                for (var j = end - 1; j >= start; j--) {
                    if (Math.abs(xr[j]) < ath21)
                        xr[j] = 0;
                    else {
                        stop = true;
                        break;
                    }
                }
            }
        } else {
            /* note: short blocks coeffs are reordered */
            for (var block = 0; block < 3; block++) {
                var stop = false;
                for (var gsfb = Encoder.PSFB12 - 1; gsfb >= 0 && !stop; gsfb--) {
                    var start = gfc.scalefac_band.s[12]
                        * 3
                        + (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12])
                        * block
                        + (gfc.scalefac_band.psfb12[gsfb] - gfc.scalefac_band.psfb12[0]);
                    var end = start
                        + (gfc.scalefac_band.psfb12[gsfb + 1] - gfc.scalefac_band.psfb12[gsfb]);
                    var ath12 = qupvt.athAdjust(ath.adjust, ath.psfb12[gsfb],
                        ath.floor);

                    if (gfc.nsPsy.shortfact[12] > 1e-12)
                        ath12 *= gfc.nsPsy.shortfact[12];

                    for (var j = end - 1; j >= start; j--) {
                        if (Math.abs(xr[j]) < ath12)
                            xr[j] = 0;
                        else {
                            stop = true;
                            break;
                        }
                    }
                }
            }
        }

    }

    this.init_outer_loop = function (gfc, cod_info) {
        /*
         * initialize fresh cod_info
         */
        cod_info.part2_3_length = 0;
        cod_info.big_values = 0;
        cod_info.count1 = 0;
        cod_info.global_gain = 210;
        cod_info.scalefac_compress = 0;
        /* mixed_block_flag, block_type was set in psymodel.c */
        cod_info.table_select[0] = 0;
        cod_info.table_select[1] = 0;
        cod_info.table_select[2] = 0;
        cod_info.subblock_gain[0] = 0;
        cod_info.subblock_gain[1] = 0;
        cod_info.subblock_gain[2] = 0;
        cod_info.subblock_gain[3] = 0;
        /* this one is always 0 */
        cod_info.region0_count = 0;
        cod_info.region1_count = 0;
        cod_info.preflag = 0;
        cod_info.scalefac_scale = 0;
        cod_info.count1table_select = 0;
        cod_info.part2_length = 0;
        cod_info.sfb_lmax = Encoder.SBPSY_l;
        cod_info.sfb_smin = Encoder.SBPSY_s;
        cod_info.psy_lmax = gfc.sfb21_extra ? Encoder.SBMAX_l : Encoder.SBPSY_l;
        cod_info.psymax = cod_info.psy_lmax;
        cod_info.sfbmax = cod_info.sfb_lmax;
        cod_info.sfbdivide = 11;
        for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {
            cod_info.width[sfb] = gfc.scalefac_band.l[sfb + 1]
                - gfc.scalefac_band.l[sfb];
            /* which is always 0. */
            cod_info.window[sfb] = 3;
        }
        if (cod_info.block_type == Encoder.SHORT_TYPE) {
            var ixwork = new_float(576);

            cod_info.sfb_smin = 0;
            cod_info.sfb_lmax = 0;
            if (cod_info.mixed_block_flag != 0) {
                /*
                 * MPEG-1: sfbs 0-7 long block, 3-12 short blocks MPEG-2(.5):
                 * sfbs 0-5 long block, 3-12 short blocks
                 */
                cod_info.sfb_smin = 3;
                cod_info.sfb_lmax = gfc.mode_gr * 2 + 4;
            }
            cod_info.psymax = cod_info.sfb_lmax
                + 3
                * ((gfc.sfb21_extra ? Encoder.SBMAX_s : Encoder.SBPSY_s) - cod_info.sfb_smin);
            cod_info.sfbmax = cod_info.sfb_lmax + 3
                * (Encoder.SBPSY_s - cod_info.sfb_smin);
            cod_info.sfbdivide = cod_info.sfbmax - 18;
            cod_info.psy_lmax = cod_info.sfb_lmax;
            /* re-order the short blocks, for more efficient encoding below */
            /* By Takehiro TOMINAGA */
            /*
             * Within each scalefactor band, data is given for successive time
             * windows, beginning with window 0 and ending with window 2. Within
             * each window, the quantized values are then arranged in order of
             * increasing frequency...
             */
            var ix = gfc.scalefac_band.l[cod_info.sfb_lmax];
            System.arraycopy(cod_info.xr, 0, ixwork, 0, 576);
            for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {
                var start = gfc.scalefac_band.s[sfb];
                var end = gfc.scalefac_band.s[sfb + 1];
                for (var window = 0; window < 3; window++) {
                    for (var l = start; l < end; l++) {
                        cod_info.xr[ix++] = ixwork[3 * l + window];
                    }
                }
            }

            var j = cod_info.sfb_lmax;
            for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {
                cod_info.width[j] = cod_info.width[j + 1] = cod_info.width[j + 2] = gfc.scalefac_band.s[sfb + 1]
                    - gfc.scalefac_band.s[sfb];
                cod_info.window[j] = 0;
                cod_info.window[j + 1] = 1;
                cod_info.window[j + 2] = 2;
                j += 3;
            }
        }

        cod_info.count1bits = 0;
        cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[0][0];
        cod_info.slen[0] = 0;
        cod_info.slen[1] = 0;
        cod_info.slen[2] = 0;
        cod_info.slen[3] = 0;

        cod_info.max_nonzero_coeff = 575;

        /*
         * fresh scalefactors are all zero
         */
        Arrays.fill(cod_info.scalefac, 0);

        psfb21_analogsilence(gfc, cod_info);
    };

    function BinSearchDirection(ordinal) {
        this.ordinal = ordinal;
    }

    BinSearchDirection.BINSEARCH_NONE = new BinSearchDirection(0);
    BinSearchDirection.BINSEARCH_UP = new BinSearchDirection(1);
    BinSearchDirection.BINSEARCH_DOWN = new BinSearchDirection(2);

    /**
     * author/date??
     *
     * binary step size search used by outer_loop to get a quantizer step size
     * to start with
     */
    function bin_search_StepSize(gfc, cod_info, desired_rate, ch, xrpow) {
        var nBits;
        var CurrentStep = gfc.CurrentStep[ch];
        var flagGoneOver = false;
        var start = gfc.OldValue[ch];
        var Direction = BinSearchDirection.BINSEARCH_NONE;
        cod_info.global_gain = start;
        desired_rate -= cod_info.part2_length;

        assert(CurrentStep != 0);
        for (; ;) {
            var step;
            nBits = tk.count_bits(gfc, xrpow, cod_info, null);

            if (CurrentStep == 1 || nBits == desired_rate)
                break;
            /* nothing to adjust anymore */

            if (nBits > desired_rate) {
                /* increase Quantize_StepSize */
                if (Direction == BinSearchDirection.BINSEARCH_DOWN)
                    flagGoneOver = true;

                if (flagGoneOver)
                    CurrentStep /= 2;
                Direction = BinSearchDirection.BINSEARCH_UP;
                step = CurrentStep;
            } else {
                /* decrease Quantize_StepSize */
                if (Direction == BinSearchDirection.BINSEARCH_UP)
                    flagGoneOver = true;

                if (flagGoneOver)
                    CurrentStep /= 2;
                Direction = BinSearchDirection.BINSEARCH_DOWN;
                step = -CurrentStep;
            }
            cod_info.global_gain += step;
            if (cod_info.global_gain < 0) {
                cod_info.global_gain = 0;
                flagGoneOver = true;
            }
            if (cod_info.global_gain > 255) {
                cod_info.global_gain = 255;
                flagGoneOver = true;
            }
        }

        assert(cod_info.global_gain >= 0);
        assert(cod_info.global_gain < 256);

        while (nBits > desired_rate && cod_info.global_gain < 255) {
            cod_info.global_gain++;
            nBits = tk.count_bits(gfc, xrpow, cod_info, null);
        }
        gfc.CurrentStep[ch] = (start - cod_info.global_gain >= 4) ? 4 : 2;
        gfc.OldValue[ch] = cod_info.global_gain;
        cod_info.part2_3_length = nBits;
        return nBits;
    }

    this.trancate_smallspectrums = function (gfc, gi, l3_xmin, work) {
        var distort = new_float(L3Side.SFBMAX);

        if ((0 == (gfc.substep_shaping & 4) && gi.block_type == Encoder.SHORT_TYPE)
            || (gfc.substep_shaping & 0x80) != 0)
            return;
        qupvt.calc_noise(gi, l3_xmin, distort, new CalcNoiseResult(), null);
        for (var j = 0; j < 576; j++) {
            var xr = 0.0;
            if (gi.l3_enc[j] != 0)
                xr = Math.abs(gi.xr[j]);
            work[j] = xr;
        }

        var j = 0;
        var sfb = 8;
        if (gi.block_type == Encoder.SHORT_TYPE)
            sfb = 6;
        do {
            var allowedNoise, trancateThreshold;
            var nsame, start;

            var width = gi.width[sfb];
            j += width;
            if (distort[sfb] >= 1.0)
                continue;

            Arrays.sort(work, j - width, width);
            if (BitStream.EQ(work[j - 1], 0.0))
                continue;
            /* all zero sfb */

            allowedNoise = (1.0 - distort[sfb]) * l3_xmin[sfb];
            trancateThreshold = 0.0;
            start = 0;
            do {
                var noise;
                for (nsame = 1; start + nsame < width; nsame++)
                    if (BitStream.NEQ(work[start + j - width], work[start + j
                        + nsame - width]))
                        break;

                noise = work[start + j - width] * work[start + j - width]
                    * nsame;
                if (allowedNoise < noise) {
                    if (start != 0)
                        trancateThreshold = work[start + j - width - 1];
                    break;
                }
                allowedNoise -= noise;
                start += nsame;
            } while (start < width);
            if (BitStream.EQ(trancateThreshold, 0.0))
                continue;

            do {
                if (Math.abs(gi.xr[j - width]) <= trancateThreshold)
                    gi.l3_enc[j - width] = 0;
            } while (--width > 0);
        } while (++sfb < gi.psymax);

        gi.part2_3_length = tk.noquant_count_bits(gfc, gi, null);
    };

    /**
     * author/date??
     *
     * Function: Returns zero if there is a scalefac which has not been
     * amplified. Otherwise it returns one.
     */
    function loop_break(cod_info) {
        for (var sfb = 0; sfb < cod_info.sfbmax; sfb++)
            if (cod_info.scalefac[sfb]
                + cod_info.subblock_gain[cod_info.window[sfb]] == 0)
                return false;

        return true;
    }

    /* mt 5/99: Function: Improved calc_noise for a single channel */

    function penalties(noise) {
        return Util.FAST_LOG10((0.368 + 0.632 * noise * noise * noise));
    }

    /**
     * author/date??
     *
     * several different codes to decide which quantization is better
     */
    function get_klemm_noise(distort, gi) {
        var klemm_noise = 1E-37;
        for (var sfb = 0; sfb < gi.psymax; sfb++)
            klemm_noise += penalties(distort[sfb]);

        return Math.max(1e-20, klemm_noise);
    }

    function quant_compare(quant_comp, best, calc, gi, distort) {
        /**
         * noise is given in decibels (dB) relative to masking thesholds.<BR>
         *
         * over_noise: ??? (the previous comment is fully wrong)<BR>
         * tot_noise: ??? (the previous comment is fully wrong)<BR>
         * max_noise: max quantization noise
         */
        var better;

        switch (quant_comp) {
            default:
            case 9:
            {
                if (best.over_count > 0) {
                    /* there are distorted sfb */
                    better = calc.over_SSD <= best.over_SSD;
                    if (calc.over_SSD == best.over_SSD)
                        better = calc.bits < best.bits;
                } else {
                    /* no distorted sfb */
                    better = ((calc.max_noise < 0) && ((calc.max_noise * 10 + calc.bits) <= (best.max_noise * 10 + best.bits)));
                }
                break;
            }

            case 0:
                better = calc.over_count < best.over_count
                    || (calc.over_count == best.over_count && calc.over_noise < best.over_noise)
                    || (calc.over_count == best.over_count
                    && BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise);
                break;

            case 8:
                calc.max_noise = get_klemm_noise(distort, gi);
            //$FALL-THROUGH$
            case 1:
                better = calc.max_noise < best.max_noise;
                break;
            case 2:
                better = calc.tot_noise < best.tot_noise;
                break;
            case 3:
                better = (calc.tot_noise < best.tot_noise)
                    && (calc.max_noise < best.max_noise);
                break;
            case 4:
                better = (calc.max_noise <= 0.0 && best.max_noise > 0.2)
                    || (calc.max_noise <= 0.0 && best.max_noise < 0.0
                    && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise)
                    || (calc.max_noise <= 0.0 && best.max_noise > 0.0
                    && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise
                    + best.over_noise)
                    || (calc.max_noise > 0.0 && best.max_noise > -0.05
                    && best.max_noise > calc.max_noise - 0.1 && calc.tot_noise
                    + calc.over_noise < best.tot_noise
                    + best.over_noise)
                    || (calc.max_noise > 0.0 && best.max_noise > -0.1
                    && best.max_noise > calc.max_noise - 0.15 && calc.tot_noise
                    + calc.over_noise + calc.over_noise < best.tot_noise
                    + best.over_noise + best.over_noise);
                break;
            case 5:
                better = calc.over_noise < best.over_noise
                    || (BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise);
                break;
            case 6:
                better = calc.over_noise < best.over_noise
                    || (BitStream.EQ(calc.over_noise, best.over_noise) && (calc.max_noise < best.max_noise || (BitStream
                        .EQ(calc.max_noise, best.max_noise) && calc.tot_noise <= best.tot_noise)));
                break;
            case 7:
                better = calc.over_count < best.over_count
                    || calc.over_noise < best.over_noise;
                break;
        }

        if (best.over_count == 0) {
            /*
             * If no distorted bands, only use this quantization if it is
             * better, and if it uses less bits. Unfortunately, part2_3_length
             * is sometimes a poor estimator of the final size at low bitrates.
             */
            better = better && calc.bits < best.bits;
        }

        return better;
    }

    /**
     * author/date??
     *
     * <PRE>
     *  Amplify the scalefactor bands that violate the masking threshold.
     *  See ISO 11172-3 Section C.1.5.4.3.5
     *
     *  distort[] = noise/masking
     *  distort[] > 1   ==> noise is not masked
     *  distort[] < 1   ==> noise is masked
     *  max_dist = maximum value of distort[]
     *
     *  Three algorithms:
     *  noise_shaping_amp
     *        0             Amplify all bands with distort[]>1.
     *
     *        1             Amplify all bands with distort[] >= max_dist^(.5);
     *                     ( 50% in the db scale)
     *
     *        2             Amplify first band with distort[] >= max_dist;
     *
     *
     *  For algorithms 0 and 1, if max_dist < 1, then amplify all bands
     *  with distort[] >= .95*max_dist.  This is to make sure we always
     *  amplify at least one band.
     * </PRE>
     */
    function amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine) {
        var gfc = gfp.internal_flags;
        var ifqstep34;

        if (cod_info.scalefac_scale == 0) {
            ifqstep34 = 1.29683955465100964055;
            /* 2**(.75*.5) */
        } else {
            ifqstep34 = 1.68179283050742922612;
            /* 2**(.75*1) */
        }

        /* compute maximum value of distort[] */
        var trigger = 0;
        for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {
            if (trigger < distort[sfb])
                trigger = distort[sfb];
        }

        var noise_shaping_amp = gfc.noise_shaping_amp;
        if (noise_shaping_amp == 3) {
            if (bRefine)
                noise_shaping_amp = 2;
            else
                noise_shaping_amp = 1;
        }
        switch (noise_shaping_amp) {
            case 2:
                /* amplify exactly 1 band */
                break;

            case 1:
                /* amplify bands within 50% of max (on db scale) */
                if (trigger > 1.0)
                    trigger = Math.pow(trigger, .5);
                else
                    trigger *= .95;
                break;

            case 0:
            default:
                /* ISO algorithm. amplify all bands with distort>1 */
                if (trigger > 1.0)
                    trigger = 1.0;
                else
                    trigger *= .95;
                break;
        }

        var j = 0;
        for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {
            var width = cod_info.width[sfb];
            var l;
            j += width;
            if (distort[sfb] < trigger)
                continue;

            if ((gfc.substep_shaping & 2) != 0) {
                gfc.pseudohalf[sfb] = (0 == gfc.pseudohalf[sfb]) ? 1 : 0;
                if (0 == gfc.pseudohalf[sfb] && gfc.noise_shaping_amp == 2)
                    return;
            }
            cod_info.scalefac[sfb]++;
            for (l = -width; l < 0; l++) {
                xrpow[j + l] *= ifqstep34;
                if (xrpow[j + l] > cod_info.xrpow_max)
                    cod_info.xrpow_max = xrpow[j + l];
            }

            if (gfc.noise_shaping_amp == 2)
                return;
        }
    }

    /**
     * Takehiro Tominaga 2000-xx-xx
     *
     * turns on scalefac scale and adjusts scalefactors
     */
    function inc_scalefac_scale(cod_info, xrpow) {
        var ifqstep34 = 1.29683955465100964055;

        var j = 0;
        for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {
            var width = cod_info.width[sfb];
            var s = cod_info.scalefac[sfb];
            if (cod_info.preflag != 0)
                s += qupvt.pretab[sfb];
            j += width;
            if ((s & 1) != 0) {
                s++;
                for (var l = -width; l < 0; l++) {
                    xrpow[j + l] *= ifqstep34;
                    if (xrpow[j + l] > cod_info.xrpow_max)
                        cod_info.xrpow_max = xrpow[j + l];
                }
            }
            cod_info.scalefac[sfb] = s >> 1;
        }
        cod_info.preflag = 0;
        cod_info.scalefac_scale = 1;
    }

    /**
     * Takehiro Tominaga 2000-xx-xx
     *
     * increases the subblock gain and adjusts scalefactors
     */
    function inc_subblock_gain(gfc, cod_info, xrpow) {
        var sfb;
        var scalefac = cod_info.scalefac;

        /* subbloc_gain can't do anything in the long block region */
        for (sfb = 0; sfb < cod_info.sfb_lmax; sfb++) {
            if (scalefac[sfb] >= 16)
                return true;
        }

        for (var window = 0; window < 3; window++) {
            var s1 = 0;
            var s2 = 0;

            for (sfb = cod_info.sfb_lmax + window; sfb < cod_info.sfbdivide; sfb += 3) {
                if (s1 < scalefac[sfb])
                    s1 = scalefac[sfb];
            }
            for (; sfb < cod_info.sfbmax; sfb += 3) {
                if (s2 < scalefac[sfb])
                    s2 = scalefac[sfb];
            }

            if (s1 < 16 && s2 < 8)
                continue;

            if (cod_info.subblock_gain[window] >= 7)
                return true;

            /*
             * even though there is no scalefactor for sfb12 subblock gain
             * affects upper frequencies too, that's why we have to go up to
             * SBMAX_s
             */
            cod_info.subblock_gain[window]++;
            var j = gfc.scalefac_band.l[cod_info.sfb_lmax];
            for (sfb = cod_info.sfb_lmax + window; sfb < cod_info.sfbmax; sfb += 3) {
                var amp;
                var width = cod_info.width[sfb];
                var s = scalefac[sfb];
                assert(s >= 0);
                s = s - (4 >> cod_info.scalefac_scale);
                if (s >= 0) {
                    scalefac[sfb] = s;
                    j += width * 3;
                    continue;
                }

                scalefac[sfb] = 0;
                {
                    var gain = 210 + (s << (cod_info.scalefac_scale + 1));
                    amp = qupvt.IPOW20(gain);
                }
                j += width * (window + 1);
                for (var l = -width; l < 0; l++) {
                    xrpow[j + l] *= amp;
                    if (xrpow[j + l] > cod_info.xrpow_max)
                        cod_info.xrpow_max = xrpow[j + l];
                }
                j += width * (3 - window - 1);
            }

            {
                var amp = qupvt.IPOW20(202);
                j += cod_info.width[sfb] * (window + 1);
                for (var l = -cod_info.width[sfb]; l < 0; l++) {
                    xrpow[j + l] *= amp;
                    if (xrpow[j + l] > cod_info.xrpow_max)
                        cod_info.xrpow_max = xrpow[j + l];
                }
            }
        }
        return false;
    }

    /**
     * <PRE>
     *  Takehiro Tominaga /date??
     *  Robert Hegemann 2000-09-06: made a function of it
     *
     *  amplifies scalefactor bands,
     *   - if all are already amplified returns 0
     *   - if some bands are amplified too much:
     *      * try to increase scalefac_scale
     *      * if already scalefac_scale was set
     *          try on short blocks to increase subblock gain
     * </PRE>
     */
    function balance_noise(gfp, cod_info, distort, xrpow, bRefine) {
        var gfc = gfp.internal_flags;

        amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine);

        /*
         * check to make sure we have not amplified too much loop_break returns
         * 0 if there is an unamplified scalefac scale_bitcount returns 0 if no
         * scalefactors are too large
         */

        var status = loop_break(cod_info);

        if (status)
            return false;
        /* all bands amplified */

        /*
         * not all scalefactors have been amplified. so these scalefacs are
         * possibly valid. encode them:
         */
        if (gfc.mode_gr == 2)
            status = tk.scale_bitcount(cod_info);
        else
            status = tk.scale_bitcount_lsf(gfc, cod_info);

        if (!status)
            return true;
        /* amplified some bands not exceeding limits */

        /*
         * some scalefactors are too large. lets try setting scalefac_scale=1
         */
        if (gfc.noise_shaping > 1) {
            Arrays.fill(gfc.pseudohalf, 0);
            if (0 == cod_info.scalefac_scale) {
                inc_scalefac_scale(cod_info, xrpow);
                status = false;
            } else {
                if (cod_info.block_type == Encoder.SHORT_TYPE
                    && gfc.subblock_gain > 0) {
                    status = (inc_subblock_gain(gfc, cod_info, xrpow) || loop_break(cod_info));
                }
            }
        }

        if (!status) {
            if (gfc.mode_gr == 2)
                status = tk.scale_bitcount(cod_info);
            else
                status = tk.scale_bitcount_lsf(gfc, cod_info);
        }
        return !status;
    }

    /**
     * <PRE>
     *  Function: The outer iteration loop controls the masking conditions
     *  of all scalefactorbands. It computes the best scalefac and
     *  global gain. This module calls the inner iteration loop
     *
     *  mt 5/99 completely rewritten to allow for bit reservoir control,
     *  mid/side channels with L/R or mid/side masking thresholds,
     *  and chooses best quantization instead of last quantization when
     *  no distortion free quantization can be found.
     *
     *  added VBR support mt 5/99
     *
     *  some code shuffle rh 9/00
     * </PRE>
     *
     * @param l3_xmin
     *            allowed distortion
     * @param xrpow
     *            coloured magnitudes of spectral
     * @param targ_bits
     *            maximum allowed bits
     */
    this.outer_loop = function (gfp, cod_info, l3_xmin, xrpow, ch, targ_bits) {
        var gfc = gfp.internal_flags;
        var cod_info_w = new GrInfo();
        var save_xrpow = new_float(576);
        var distort = new_float(L3Side.SFBMAX);
        var best_noise_info = new CalcNoiseResult();
        var better;
        var prev_noise = new CalcNoiseData();
        var best_part2_3_length = 9999999;
        var bEndOfSearch = false;
        var bRefine = false;
        var best_ggain_pass1 = 0;

        bin_search_StepSize(gfc, cod_info, targ_bits, ch, xrpow);

        if (0 == gfc.noise_shaping)
        /* fast mode, no noise shaping, we are ready */
            return 100;
        /* default noise_info.over_count */

        /* compute the distortion in this quantization */
        /* coefficients and thresholds both l/r (or both mid/side) */
        qupvt.calc_noise(cod_info, l3_xmin, distort, best_noise_info,
            prev_noise);
        best_noise_info.bits = cod_info.part2_3_length;

        cod_info_w.assign(cod_info);
        var age = 0;
        System.arraycopy(xrpow, 0, save_xrpow, 0, 576);

        while (!bEndOfSearch) {
            /* BEGIN MAIN LOOP */
            do {
                var noise_info = new CalcNoiseResult();
                var search_limit;
                var maxggain = 255;

                /*
                 * When quantization with no distorted bands is found, allow up
                 * to X new unsuccesful tries in serial. This gives us more
                 * possibilities for different quant_compare modes. Much more
                 * than 3 makes not a big difference, it is only slower.
                 */

                if ((gfc.substep_shaping & 2) != 0) {
                    search_limit = 20;
                } else {
                    search_limit = 3;
                }

                /*
                 * Check if the last scalefactor band is distorted. in VBR mode
                 * we can't get rid of the distortion, so quit now and VBR mode
                 * will try again with more bits. (makes a 10% speed increase,
                 * the files I tested were binary identical, 2000/05/20 Robert
                 * Hegemann) distort[] > 1 means noise > allowed noise
                 */
                if (gfc.sfb21_extra) {
                    if (distort[cod_info_w.sfbmax] > 1.0)
                        break;
                    if (cod_info_w.block_type == Encoder.SHORT_TYPE
                        && (distort[cod_info_w.sfbmax + 1] > 1.0 || distort[cod_info_w.sfbmax + 2] > 1.0))
                        break;
                }

                /* try a new scalefactor conbination on cod_info_w */
                if (!balance_noise(gfp, cod_info_w, distort, xrpow, bRefine))
                    break;
                if (cod_info_w.scalefac_scale != 0)
                    maxggain = 254;

                /*
                 * inner_loop starts with the initial quantization step computed
                 * above and slowly increases until the bits < huff_bits. Thus
                 * it is important not to start with too large of an inital
                 * quantization step. Too small is ok, but inner_loop will take
                 * longer
                 */
                var huff_bits = targ_bits - cod_info_w.part2_length;
                if (huff_bits <= 0)
                    break;

                /*
                 * increase quantizer stepsize until needed bits are below
                 * maximum
                 */
                while ((cod_info_w.part2_3_length = tk.count_bits(gfc, xrpow,
                    cod_info_w, prev_noise)) > huff_bits
                && cod_info_w.global_gain <= maxggain)
                    cod_info_w.global_gain++;

                if (cod_info_w.global_gain > maxggain)
                    break;

                if (best_noise_info.over_count == 0) {

                    while ((cod_info_w.part2_3_length = tk.count_bits(gfc,
                        xrpow, cod_info_w, prev_noise)) > best_part2_3_length
                    && cod_info_w.global_gain <= maxggain)
                        cod_info_w.global_gain++;

                    if (cod_info_w.global_gain > maxggain)
                        break;
                }

                /* compute the distortion in this quantization */
                qupvt.calc_noise(cod_info_w, l3_xmin, distort, noise_info,
                    prev_noise);
                noise_info.bits = cod_info_w.part2_3_length;

                /*
                 * check if this quantization is better than our saved
                 * quantization
                 */
                if (cod_info.block_type != Encoder.SHORT_TYPE) {
                    // NORM, START or STOP type
                    better = gfp.quant_comp;
                } else
                    better = gfp.quant_comp_short;

                better = quant_compare(better, best_noise_info, noise_info,
                    cod_info_w, distort) ? 1 : 0;

                /* save data so we can restore this quantization later */
                if (better != 0) {
                    best_part2_3_length = cod_info.part2_3_length;
                    best_noise_info = noise_info;
                    cod_info.assign(cod_info_w);
                    age = 0;
                    /* save data so we can restore this quantization later */
                    /* store for later reuse */
                    System.arraycopy(xrpow, 0, save_xrpow, 0, 576);
                } else {
                    /* early stop? */
                    if (gfc.full_outer_loop == 0) {
                        if (++age > search_limit
                            && best_noise_info.over_count == 0)
                            break;
                        if ((gfc.noise_shaping_amp == 3) && bRefine && age > 30)
                            break;
                        if ((gfc.noise_shaping_amp == 3)
                            && bRefine
                            && (cod_info_w.global_gain - best_ggain_pass1) > 15)
                            break;
                    }
                }
            } while ((cod_info_w.global_gain + cod_info_w.scalefac_scale) < 255);

            if (gfc.noise_shaping_amp == 3) {
                if (!bRefine) {
                    /* refine search */
                    cod_info_w.assign(cod_info);
                    System.arraycopy(save_xrpow, 0, xrpow, 0, 576);
                    age = 0;
                    best_ggain_pass1 = cod_info_w.global_gain;

                    bRefine = true;
                } else {
                    /* search already refined, stop */
                    bEndOfSearch = true;
                }

            } else {
                bEndOfSearch = true;
            }
        }

        assert((cod_info.global_gain + cod_info.scalefac_scale) <= 255);
        /*
         * finish up
         */
        if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh)
        /* restore for reuse on next try */
            System.arraycopy(save_xrpow, 0, xrpow, 0, 576);
        /*
         * do the 'substep shaping'
         */
        else if ((gfc.substep_shaping & 1) != 0)
            trancate_smallspectrums(gfc, cod_info, l3_xmin, xrpow);

        return best_noise_info.over_count;
    }

    /**
     * Robert Hegemann 2000-09-06
     *
     * update reservoir status after FINAL quantization/bitrate
     */
    this.iteration_finish_one = function (gfc, gr, ch) {
        var l3_side = gfc.l3_side;
        var cod_info = l3_side.tt[gr][ch];

        /*
         * try some better scalefac storage
         */
        tk.best_scalefac_store(gfc, gr, ch, l3_side);

        /*
         * best huffman_divide may save some bits too
         */
        if (gfc.use_best_huffman == 1)
            tk.best_huffman_divide(gfc, cod_info);

        /*
         * update reservoir status after FINAL quantization/bitrate
         */
        rv.ResvAdjust(gfc, cod_info);
    };

    /**
     *
     * 2000-09-04 Robert Hegemann
     *
     * @param l3_xmin
     *            allowed distortion of the scalefactor
     * @param xrpow
     *            coloured magnitudes of spectral values
     */
    this.VBR_encode_granule = function (gfp, cod_info, l3_xmin, xrpow, ch, min_bits, max_bits) {
        var gfc = gfp.internal_flags;
        var bst_cod_info = new GrInfo();
        var bst_xrpow = new_float(576);
        var Max_bits = max_bits;
        var real_bits = max_bits + 1;
        var this_bits = (max_bits + min_bits) / 2;
        var dbits, over, found = 0;
        var sfb21_extra = gfc.sfb21_extra;

        assert(Max_bits <= LameInternalFlags.MAX_BITS_PER_CHANNEL);
        Arrays.fill(bst_cod_info.l3_enc, 0);

        /*
         * search within round about 40 bits of optimal
         */
        do {
            assert(this_bits >= min_bits);
            assert(this_bits <= max_bits);
            assert(min_bits <= max_bits);

            if (this_bits > Max_bits - 42)
                gfc.sfb21_extra = false;
            else
                gfc.sfb21_extra = sfb21_extra;

            over = outer_loop(gfp, cod_info, l3_xmin, xrpow, ch, this_bits);

            /*
             * is quantization as good as we are looking for ? in this case: is
             * no scalefactor band distorted?
             */
            if (over <= 0) {
                found = 1;
                /*
                 * now we know it can be done with "real_bits" and maybe we can
                 * skip some iterations
                 */
                real_bits = cod_info.part2_3_length;

                /*
                 * store best quantization so far
                 */
                bst_cod_info.assign(cod_info);
                System.arraycopy(xrpow, 0, bst_xrpow, 0, 576);

                /*
                 * try with fewer bits
                 */
                max_bits = real_bits - 32;
                dbits = max_bits - min_bits;
                this_bits = (max_bits + min_bits) / 2;
            } else {
                /*
                 * try with more bits
                 */
                min_bits = this_bits + 32;
                dbits = max_bits - min_bits;
                this_bits = (max_bits + min_bits) / 2;

                if (found != 0) {
                    found = 2;
                    /*
                     * start again with best quantization so far
                     */
                    cod_info.assign(bst_cod_info);
                    System.arraycopy(bst_xrpow, 0, xrpow, 0, 576);
                }
            }
        } while (dbits > 12);

        gfc.sfb21_extra = sfb21_extra;

        /*
         * found=0 => nothing found, use last one found=1 => we just found the
         * best and left the loop found=2 => we restored a good one and have now
         * l3_enc to restore too
         */
        if (found == 2) {
            System.arraycopy(bst_cod_info.l3_enc, 0, cod_info.l3_enc, 0, 576);
        }
        assert(cod_info.part2_3_length <= Max_bits);
    }

    /**
     * Robert Hegemann 2000-09-05
     *
     * calculates * how many bits are available for analog silent granules * how
     * many bits to use for the lowest allowed bitrate * how many bits each
     * bitrate would provide
     */
    this.get_framebits = function (gfp, frameBits) {
        var gfc = gfp.internal_flags;

        /*
         * always use at least this many bits per granule per channel unless we
         * detect analog silence, see below
         */
        gfc.bitrate_index = gfc.VBR_min_bitrate;
        var bitsPerFrame = bs.getframebits(gfp);

        /*
         * bits for analog silence
         */
        gfc.bitrate_index = 1;
        bitsPerFrame = bs.getframebits(gfp);

        for (var i = 1; i <= gfc.VBR_max_bitrate; i++) {
            gfc.bitrate_index = i;
            var mb = new MeanBits(bitsPerFrame);
            frameBits[i] = rv.ResvFrameBegin(gfp, mb);
            bitsPerFrame = mb.bits;
        }
    };

    /* RH: this one needs to be overhauled sometime */

    /**
     * <PRE>
     *  2000-09-04 Robert Hegemann
     *
     *  * converts LR to MS coding when necessary
     *  * calculates allowed/adjusted quantization noise amounts
     *  * detects analog silent frames
     *
     *  some remarks:
     *  - lower masking depending on Quality setting
     *  - quality control together with adjusted ATH MDCT scaling
     *    on lower quality setting allocate more noise from
     *    ATH masking, and on higher quality setting allocate
     *    less noise from ATH masking.
     *  - experiments show that going more than 2dB over GPSYCHO's
     *    limits ends up in very annoying artefacts
     * </PRE>
     */
    this.VBR_old_prepare = function (gfp, pe, ms_ener_ratio, ratio, l3_xmin, frameBits, min_bits,
                                     max_bits, bands) {
        var gfc = gfp.internal_flags;

        var masking_lower_db, adjust = 0.0;
        var analog_silence = 1;
        var bits = 0;

        gfc.bitrate_index = gfc.VBR_max_bitrate;
        var avg = rv.ResvFrameBegin(gfp, new MeanBits(0)) / gfc.mode_gr;

        get_framebits(gfp, frameBits);

        for (var gr = 0; gr < gfc.mode_gr; gr++) {
            var mxb = qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);
            if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {
                ms_convert(gfc.l3_side, gr);
                qupvt.reduce_side(max_bits[gr], ms_ener_ratio[gr], avg, mxb);
            }
            for (var ch = 0; ch < gfc.channels_out; ++ch) {
                var cod_info = gfc.l3_side.tt[gr][ch];

                if (cod_info.block_type != Encoder.SHORT_TYPE) {
                    // NORM, START or STOP type
                    adjust = 1.28 / (1 + Math
                            .exp(3.5 - pe[gr][ch] / 300.)) - 0.05;
                    masking_lower_db = gfc.PSY.mask_adjust - adjust;
                } else {
                    adjust = 2.56 / (1 + Math
                            .exp(3.5 - pe[gr][ch] / 300.)) - 0.14;
                    masking_lower_db = gfc.PSY.mask_adjust_short - adjust;
                }
                gfc.masking_lower = Math.pow(10.0,
                    masking_lower_db * 0.1);

                init_outer_loop(gfc, cod_info);
                bands[gr][ch] = qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info,
                    l3_xmin[gr][ch]);
                if (bands[gr][ch] != 0)
                    analog_silence = 0;

                min_bits[gr][ch] = 126;

                bits += max_bits[gr][ch];
            }
        }
        for (var gr = 0; gr < gfc.mode_gr; gr++) {
            for (var ch = 0; ch < gfc.channels_out; ch++) {
                if (bits > frameBits[gfc.VBR_max_bitrate]) {
                    max_bits[gr][ch] *= frameBits[gfc.VBR_max_bitrate];
                    max_bits[gr][ch] /= bits;
                }
                if (min_bits[gr][ch] > max_bits[gr][ch])
                    min_bits[gr][ch] = max_bits[gr][ch];

            }
            /* for ch */
        }
        /* for gr */

        return analog_silence;
    };

    this.bitpressure_strategy = function (gfc, l3_xmin, min_bits, max_bits) {
        for (var gr = 0; gr < gfc.mode_gr; gr++) {
            for (var ch = 0; ch < gfc.channels_out; ch++) {
                var gi = gfc.l3_side.tt[gr][ch];
                var pxmin = l3_xmin[gr][ch];
                var pxminPos = 0;
                for (var sfb = 0; sfb < gi.psy_lmax; sfb++)
                    pxmin[pxminPos++] *= 1. + .029 * sfb * sfb
                        / Encoder.SBMAX_l / Encoder.SBMAX_l;

                if (gi.block_type == Encoder.SHORT_TYPE) {
                    for (var sfb = gi.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {
                        pxmin[pxminPos++] *= 1. + .029 * sfb * sfb
                            / Encoder.SBMAX_s / Encoder.SBMAX_s;
                        pxmin[pxminPos++] *= 1. + .029 * sfb * sfb
                            / Encoder.SBMAX_s / Encoder.SBMAX_s;
                        pxmin[pxminPos++] *= 1. + .029 * sfb * sfb
                            / Encoder.SBMAX_s / Encoder.SBMAX_s;
                    }
                }
                max_bits[gr][ch] = 0 | Math.max(min_bits[gr][ch],
                        0.9 * max_bits[gr][ch]);
            }
        }
    };

    this.VBR_new_prepare = function (gfp, pe, ratio, l3_xmin, frameBits, max_bits) {
        var gfc = gfp.internal_flags;

        var analog_silence = 1;
        var avg = 0, bits = 0;
        var maximum_framebits;

        if (!gfp.free_format) {
            gfc.bitrate_index = gfc.VBR_max_bitrate;

            var mb = new MeanBits(avg);
            rv.ResvFrameBegin(gfp, mb);
            avg = mb.bits;

            get_framebits(gfp, frameBits);
            maximum_framebits = frameBits[gfc.VBR_max_bitrate];
        } else {
            gfc.bitrate_index = 0;
            var mb = new MeanBits(avg);
            maximum_framebits = rv.ResvFrameBegin(gfp, mb);
            avg = mb.bits;
            frameBits[0] = maximum_framebits;
        }

        for (var gr = 0; gr < gfc.mode_gr; gr++) {
            qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);
            if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {
                ms_convert(gfc.l3_side, gr);
            }
            for (var ch = 0; ch < gfc.channels_out; ++ch) {
                var cod_info = gfc.l3_side.tt[gr][ch];

                gfc.masking_lower = Math.pow(10.0,
                    gfc.PSY.mask_adjust * 0.1);

                init_outer_loop(gfc, cod_info);
                if (0 != qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info,
                        l3_xmin[gr][ch]))
                    analog_silence = 0;

                bits += max_bits[gr][ch];
            }
        }
        for (var gr = 0; gr < gfc.mode_gr; gr++) {
            for (var ch = 0; ch < gfc.channels_out; ch++) {
                if (bits > maximum_framebits) {
                    max_bits[gr][ch] *= maximum_framebits;
                    max_bits[gr][ch] /= bits;
                }

            }
            /* for ch */
        }
        /* for gr */

        return analog_silence;
    };

    /**
     * calculates target bits for ABR encoding
     *
     * mt 2000/05/31
     */
    this.calc_target_bits = function (gfp, pe, ms_ener_ratio, targ_bits, analog_silence_bits, max_frame_bits) {
        var gfc = gfp.internal_flags;
        var l3_side = gfc.l3_side;
        var res_factor;
        var gr, ch, totbits, mean_bits = 0;

        gfc.bitrate_index = gfc.VBR_max_bitrate;
        var mb = new MeanBits(mean_bits);
        max_frame_bits[0] = rv.ResvFrameBegin(gfp, mb);
        mean_bits = mb.bits;

        gfc.bitrate_index = 1;
        mean_bits = bs.getframebits(gfp) - gfc.sideinfo_len * 8;
        analog_silence_bits[0] = mean_bits / (gfc.mode_gr * gfc.channels_out);

        mean_bits = gfp.VBR_mean_bitrate_kbps * gfp.framesize * 1000;
        if ((gfc.substep_shaping & 1) != 0)
            mean_bits *= 1.09;
        mean_bits /= gfp.out_samplerate;
        mean_bits -= gfc.sideinfo_len * 8;
        mean_bits /= (gfc.mode_gr * gfc.channels_out);

        /**
         * <PRE>
         *           res_factor is the percentage of the target bitrate that should
         *           be used on average.  the remaining bits are added to the
         *           bitreservoir and used for difficult to encode frames.
         *
         *           Since we are tracking the average bitrate, we should adjust
         *           res_factor "on the fly", increasing it if the average bitrate
         *           is greater than the requested bitrate, and decreasing it
         *           otherwise.  Reasonable ranges are from .9 to 1.0
         *
         *           Until we get the above suggestion working, we use the following
         *           tuning:
         *           compression ratio    res_factor
         *           5.5  (256kbps)         1.0      no need for bitreservoir
         *           11   (128kbps)         .93      7% held for reservoir
         *
         *           with linear interpolation for other values.
         * </PRE>
         */
        res_factor = .93 + .07 * (11.0 - gfp.compression_ratio)
            / (11.0 - 5.5);
        if (res_factor < .90)
            res_factor = .90;
        if (res_factor > 1.00)
            res_factor = 1.00;

        for (gr = 0; gr < gfc.mode_gr; gr++) {
            var sum = 0;
            for (ch = 0; ch < gfc.channels_out; ch++) {
                targ_bits[gr][ch] = (int)(res_factor * mean_bits);

                if (pe[gr][ch] > 700) {
                    var add_bits = (int)((pe[gr][ch] - 700) / 1.4);

                    var cod_info = l3_side.tt[gr][ch];
                    targ_bits[gr][ch] = (int)(res_factor * mean_bits);

                    /* short blocks use a little extra, no matter what the pe */
                    if (cod_info.block_type == Encoder.SHORT_TYPE) {
                        if (add_bits < mean_bits / 2)
                            add_bits = mean_bits / 2;
                    }
                    /* at most increase bits by 1.5*average */
                    if (add_bits > mean_bits * 3 / 2)
                        add_bits = mean_bits * 3 / 2;
                    else if (add_bits < 0)
                        add_bits = 0;

                    targ_bits[gr][ch] += add_bits;
                }
                if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL) {
                    targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;
                }
                sum += targ_bits[gr][ch];
            }
            /* for ch */
            if (sum > LameInternalFlags.MAX_BITS_PER_GRANULE) {
                for (ch = 0; ch < gfc.channels_out; ++ch) {
                    targ_bits[gr][ch] *= LameInternalFlags.MAX_BITS_PER_GRANULE;
                    targ_bits[gr][ch] /= sum;
                }
            }
        }
        /* for gr */

        if (gfc.mode_ext == Encoder.MPG_MD_MS_LR)
            for (gr = 0; gr < gfc.mode_gr; gr++) {
                qupvt.reduce_side(targ_bits[gr], ms_ener_ratio[gr], mean_bits
                    * gfc.channels_out,
                    LameInternalFlags.MAX_BITS_PER_GRANULE);
            }

        /*
         * sum target bits
         */
        totbits = 0;
        for (gr = 0; gr < gfc.mode_gr; gr++) {
            for (ch = 0; ch < gfc.channels_out; ch++) {
                if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL)
                    targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;
                totbits += targ_bits[gr][ch];
            }
        }

        /*
         * repartion target bits if needed
         */
        if (totbits > max_frame_bits[0]) {
            for (gr = 0; gr < gfc.mode_gr; gr++) {
                for (ch = 0; ch < gfc.channels_out; ch++) {
                    targ_bits[gr][ch] *= max_frame_bits[0];
                    targ_bits[gr][ch] /= totbits;
                }
            }
        }
    }

}

module.exports = Quantize;


/***/ }),

/***/ "./node_modules/lamejs/src/js/QuantizePVT.js":
/*!***************************************************!*\
  !*** ./node_modules/lamejs/src/js/QuantizePVT.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/*
 *      quantize_pvt source file
 *
 *      Copyright (c) 1999-2002 Takehiro Tominaga
 *      Copyright (c) 2000-2002 Robert Hegemann
 *      Copyright (c) 2001 Naoki Shibata
 *      Copyright (c) 2002-2005 Gabriel Bouvigne
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */

/* $Id: QuantizePVT.java,v 1.24 2011/05/24 20:48:06 kenchis Exp $ */
var ScaleFac = __webpack_require__(/*! ./ScaleFac.js */ "./node_modules/lamejs/src/js/ScaleFac.js");
var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");
var MeanBits = __webpack_require__(/*! ./MeanBits.js */ "./node_modules/lamejs/src/js/MeanBits.js");
var LameInternalFlags = __webpack_require__(/*! ./LameInternalFlags.js */ "./node_modules/lamejs/src/js/LameInternalFlags.js");

QuantizePVT.Q_MAX = (256 + 1);
QuantizePVT.Q_MAX2 = 116;
QuantizePVT.LARGE_BITS = 100000;
QuantizePVT.IXMAX_VAL = 8206;

function QuantizePVT() {

    var tak = null;
    var rv = null;
    var psy = null;

    this.setModules = function (_tk, _rv, _psy) {
        tak = _tk;
        rv = _rv;
        psy = _psy;
    };

    function POW20(x) {
        assert(0 <= (x + QuantizePVT.Q_MAX2) && x < QuantizePVT.Q_MAX);
        return pow20[x + QuantizePVT.Q_MAX2];
    }

    this.IPOW20 = function (x) {
        assert(0 <= x && x < QuantizePVT.Q_MAX);
        return ipow20[x];
    }

    /**
     * smallest such that 1.0+DBL_EPSILON != 1.0
     */
    var DBL_EPSILON = 2.2204460492503131e-016;

    /**
     * ix always <= 8191+15. see count_bits()
     */
    var IXMAX_VAL = QuantizePVT.IXMAX_VAL;

    var PRECALC_SIZE = (IXMAX_VAL + 2);

    var Q_MAX = QuantizePVT.Q_MAX;


    /**
     * <CODE>
     * minimum possible number of
     * -cod_info.global_gain + ((scalefac[] + (cod_info.preflag ? pretab[sfb] : 0))
     * << (cod_info.scalefac_scale + 1)) + cod_info.subblock_gain[cod_info.window[sfb]] * 8;
     *
     * for long block, 0+((15+3)<<2) = 18*4 = 72
     * for short block, 0+(15<<2)+7*8 = 15*4+56 = 116
     * </CODE>
     */
    var Q_MAX2 = QuantizePVT.Q_MAX2;

    var LARGE_BITS = QuantizePVT.LARGE_BITS;


    /**
     * Assuming dynamic range=96dB, this value should be 92
     */
    var NSATHSCALE = 100;

    /**
     * The following table is used to implement the scalefactor partitioning for
     * MPEG2 as described in section 2.4.3.2 of the IS. The indexing corresponds
     * to the way the tables are presented in the IS:
     *
     * [table_number][row_in_table][column of nr_of_sfb]
     */
    this.nr_of_sfb_block = [
        [[6, 5, 5, 5], [9, 9, 9, 9], [6, 9, 9, 9]],
        [[6, 5, 7, 3], [9, 9, 12, 6], [6, 9, 12, 6]],
        [[11, 10, 0, 0], [18, 18, 0, 0], [15, 18, 0, 0]],
        [[7, 7, 7, 0], [12, 12, 12, 0], [6, 15, 12, 0]],
        [[6, 6, 6, 3], [12, 9, 9, 6], [6, 12, 9, 6]],
        [[8, 8, 5, 0], [15, 12, 9, 0], [6, 18, 9, 0]]];

    /**
     * Table B.6: layer3 preemphasis
     */
    var pretab = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
        2, 2, 3, 3, 3, 2, 0];
    this.pretab = pretab;

    /**
     * Here are MPEG1 Table B.8 and MPEG2 Table B.1 -- Layer III scalefactor
     * bands. <BR>
     * Index into this using a method such as:<BR>
     * idx = fr_ps.header.sampling_frequency + (fr_ps.header.version * 3)
     */
    this.sfBandIndex = [
        // Table B.2.b: 22.05 kHz
        new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,
                522, 576],
            [0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192]
            , [0, 0, 0, 0, 0, 0, 0] //  sfb21 pseudo sub bands
            , [0, 0, 0, 0, 0, 0, 0] //  sfb12 pseudo sub bands
        ),
        /* Table B.2.c: 24 kHz */ /* docs: 332. mpg123(broken): 330 */
        new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 114, 136, 162, 194, 232, 278, 332, 394, 464,
                540, 576],
            [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192]
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */
        ),
        /* Table B.2.a: 16 kHz */
        new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,
                522, 576],
            [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192]
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */
        ),
        /* Table B.8.b: 44.1 kHz */
        new ScaleFac([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 52, 62, 74, 90, 110, 134, 162, 196, 238, 288, 342, 418,
                576],
            [0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192]
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */
        ),
        /* Table B.8.c: 48 kHz */
        new ScaleFac([0, 4, 8, 12, 16, 20, 24, 30, 36, 42, 50, 60, 72, 88, 106, 128, 156, 190, 230, 276, 330, 384,
                576],
            [0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192]
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */
        ),
        /* Table B.8.a: 32 kHz */
        new ScaleFac([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 54, 66, 82, 102, 126, 156, 194, 240, 296, 364, 448, 550,
                576],
            [0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192]
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */
        ),
        /* MPEG-2.5 11.025 kHz */
        new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,
                522, 576],
            [0 / 3, 12 / 3, 24 / 3, 36 / 3, 54 / 3, 78 / 3, 108 / 3, 144 / 3, 186 / 3, 240 / 3, 312 / 3,
                402 / 3, 522 / 3, 576 / 3]
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */
        ),
        /* MPEG-2.5 12 kHz */
        new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,
                522, 576],
            [0 / 3, 12 / 3, 24 / 3, 36 / 3, 54 / 3, 78 / 3, 108 / 3, 144 / 3, 186 / 3, 240 / 3, 312 / 3,
                402 / 3, 522 / 3, 576 / 3]
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */
        ),
        /* MPEG-2.5 8 kHz */
        new ScaleFac([0, 12, 24, 36, 48, 60, 72, 88, 108, 132, 160, 192, 232, 280, 336, 400, 476, 566, 568, 570,
                572, 574, 576],
            [0 / 3, 24 / 3, 48 / 3, 72 / 3, 108 / 3, 156 / 3, 216 / 3, 288 / 3, 372 / 3, 480 / 3, 486 / 3,
                492 / 3, 498 / 3, 576 / 3]
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb21 pseudo sub bands */
            , [0, 0, 0, 0, 0, 0, 0] /*  sfb12 pseudo sub bands */
        )
    ];

    var pow20 = new_float(Q_MAX + Q_MAX2 + 1);
    var ipow20 = new_float(Q_MAX);
    var pow43 = new_float(PRECALC_SIZE);

    var adj43 = new_float(PRECALC_SIZE);
    this.adj43 = adj43;

    /**
     * <PRE>
     * compute the ATH for each scalefactor band cd range: 0..96db
     *
     * Input: 3.3kHz signal 32767 amplitude (3.3kHz is where ATH is smallest =
     * -5db) longblocks: sfb=12 en0/bw=-11db max_en0 = 1.3db shortblocks: sfb=5
     * -9db 0db
     *
     * Input: 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 (repeated) longblocks: amp=1
     * sfb=12 en0/bw=-103 db max_en0 = -92db amp=32767 sfb=12 -12 db -1.4db
     *
     * Input: 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 (repeated) shortblocks: amp=1
     * sfb=5 en0/bw= -99 -86 amp=32767 sfb=5 -9 db 4db
     *
     *
     * MAX energy of largest wave at 3.3kHz = 1db AVE energy of largest wave at
     * 3.3kHz = -11db Let's take AVE: -11db = maximum signal in sfb=12. Dynamic
     * range of CD: 96db. Therefor energy of smallest audible wave in sfb=12 =
     * -11 - 96 = -107db = ATH at 3.3kHz.
     *
     * ATH formula for this wave: -5db. To adjust to LAME scaling, we need ATH =
     * ATH_formula - 103 (db) ATH = ATH * 2.5e-10 (ener)
     * </PRE>
     */
    function ATHmdct(gfp, f) {
        var ath = psy.ATHformula(f, gfp);

        ath -= NSATHSCALE;

        /* modify the MDCT scaling for the ATH and convert to energy */
        ath = Math.pow(10.0, ath / 10.0 + gfp.ATHlower);
        return ath;
    }

    function compute_ath(gfp) {
        var ATH_l = gfp.internal_flags.ATH.l;
        var ATH_psfb21 = gfp.internal_flags.ATH.psfb21;
        var ATH_s = gfp.internal_flags.ATH.s;
        var ATH_psfb12 = gfp.internal_flags.ATH.psfb12;
        var gfc = gfp.internal_flags;
        var samp_freq = gfp.out_samplerate;

        for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {
            var start = gfc.scalefac_band.l[sfb];
            var end = gfc.scalefac_band.l[sfb + 1];
            ATH_l[sfb] = Float.MAX_VALUE;
            for (var i = start; i < end; i++) {
                var freq = i * samp_freq / (2 * 576);
                var ATH_f = ATHmdct(gfp, freq);
                /* freq in kHz */
                ATH_l[sfb] = Math.min(ATH_l[sfb], ATH_f);
            }
        }

        for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {
            var start = gfc.scalefac_band.psfb21[sfb];
            var end = gfc.scalefac_band.psfb21[sfb + 1];
            ATH_psfb21[sfb] = Float.MAX_VALUE;
            for (var i = start; i < end; i++) {
                var freq = i * samp_freq / (2 * 576);
                var ATH_f = ATHmdct(gfp, freq);
                /* freq in kHz */
                ATH_psfb21[sfb] = Math.min(ATH_psfb21[sfb], ATH_f);
            }
        }

        for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {
            var start = gfc.scalefac_band.s[sfb];
            var end = gfc.scalefac_band.s[sfb + 1];
            ATH_s[sfb] = Float.MAX_VALUE;
            for (var i = start; i < end; i++) {
                var freq = i * samp_freq / (2 * 192);
                var ATH_f = ATHmdct(gfp, freq);
                /* freq in kHz */
                ATH_s[sfb] = Math.min(ATH_s[sfb], ATH_f);
            }
            ATH_s[sfb] *= (gfc.scalefac_band.s[sfb + 1] - gfc.scalefac_band.s[sfb]);
        }

        for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {
            var start = gfc.scalefac_band.psfb12[sfb];
            var end = gfc.scalefac_band.psfb12[sfb + 1];
            ATH_psfb12[sfb] = Float.MAX_VALUE;
            for (var i = start; i < end; i++) {
                var freq = i * samp_freq / (2 * 192);
                var ATH_f = ATHmdct(gfp, freq);
                /* freq in kHz */
                ATH_psfb12[sfb] = Math.min(ATH_psfb12[sfb], ATH_f);
            }
            /* not sure about the following */
            ATH_psfb12[sfb] *= (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12]);
        }

        /*
         * no-ATH mode: reduce ATH to -200 dB
         */
        if (gfp.noATH) {
            for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {
                ATH_l[sfb] = 1E-20;
            }
            for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {
                ATH_psfb21[sfb] = 1E-20;
            }
            for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {
                ATH_s[sfb] = 1E-20;
            }
            for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {
                ATH_psfb12[sfb] = 1E-20;
            }
        }

        /*
         * work in progress, don't rely on it too much
         */
        gfc.ATH.floor = 10. * Math.log10(ATHmdct(gfp, -1.));
    }

    /**
     * initialization for iteration_loop
     */
    this.iteration_init = function (gfp) {
        var gfc = gfp.internal_flags;
        var l3_side = gfc.l3_side;
        var i;

        if (gfc.iteration_init_init == 0) {
            gfc.iteration_init_init = 1;

            l3_side.main_data_begin = 0;
            compute_ath(gfp);

            pow43[0] = 0.0;
            for (i = 1; i < PRECALC_SIZE; i++)
                pow43[i] = Math.pow(i, 4.0 / 3.0);

            for (i = 0; i < PRECALC_SIZE - 1; i++)
                adj43[i] = ((i + 1) - Math.pow(
                    0.5 * (pow43[i] + pow43[i + 1]), 0.75));
            adj43[i] = 0.5;

            for (i = 0; i < Q_MAX; i++)
                ipow20[i] = Math.pow(2.0, (i - 210) * -0.1875);
            for (i = 0; i <= Q_MAX + Q_MAX2; i++)
                pow20[i] = Math.pow(2.0, (i - 210 - Q_MAX2) * 0.25);

            tak.huffman_init(gfc);

            {
                var bass, alto, treble, sfb21;

                i = (gfp.exp_nspsytune >> 2) & 63;
                if (i >= 32)
                    i -= 64;
                bass = Math.pow(10, i / 4.0 / 10.0);

                i = (gfp.exp_nspsytune >> 8) & 63;
                if (i >= 32)
                    i -= 64;
                alto = Math.pow(10, i / 4.0 / 10.0);

                i = (gfp.exp_nspsytune >> 14) & 63;
                if (i >= 32)
                    i -= 64;
                treble = Math.pow(10, i / 4.0 / 10.0);

                /*
                 * to be compatible with Naoki's original code, the next 6 bits
                 * define only the amount of changing treble for sfb21
                 */
                i = (gfp.exp_nspsytune >> 20) & 63;
                if (i >= 32)
                    i -= 64;
                sfb21 = treble * Math.pow(10, i / 4.0 / 10.0);
                for (i = 0; i < Encoder.SBMAX_l; i++) {
                    var f;
                    if (i <= 6)
                        f = bass;
                    else if (i <= 13)
                        f = alto;
                    else if (i <= 20)
                        f = treble;
                    else
                        f = sfb21;

                    gfc.nsPsy.longfact[i] = f;
                }
                for (i = 0; i < Encoder.SBMAX_s; i++) {
                    var f;
                    if (i <= 5)
                        f = bass;
                    else if (i <= 10)
                        f = alto;
                    else if (i <= 11)
                        f = treble;
                    else
                        f = sfb21;

                    gfc.nsPsy.shortfact[i] = f;
                }
            }
        }
    }

    /**
     * allocate bits among 2 channels based on PE<BR>
     * mt 6/99<BR>
     * bugfixes rh 8/01: often allocated more than the allowed 4095 bits
     */
    this.on_pe = function (gfp, pe,
                           targ_bits, mean_bits, gr, cbr) {
        var gfc = gfp.internal_flags;
        var tbits = 0, bits;
        var add_bits = new_int(2);
        var ch;

        /* allocate targ_bits for granule */
        var mb = new MeanBits(tbits);
        var extra_bits = rv.ResvMaxBits(gfp, mean_bits, mb, cbr);
        tbits = mb.bits;
        /* maximum allowed bits for this granule */
        var max_bits = tbits + extra_bits;
        if (max_bits > LameInternalFlags.MAX_BITS_PER_GRANULE) {
            // hard limit per granule
            max_bits = LameInternalFlags.MAX_BITS_PER_GRANULE;
        }
        for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {
            /******************************************************************
             * allocate bits for each channel
             ******************************************************************/
            targ_bits[ch] = Math.min(LameInternalFlags.MAX_BITS_PER_CHANNEL,
                tbits / gfc.channels_out);

            add_bits[ch] = 0 | (targ_bits[ch] * pe[gr][ch] / 700.0 - targ_bits[ch]);

            /* at most increase bits by 1.5*average */
            if (add_bits[ch] > mean_bits * 3 / 4)
                add_bits[ch] = mean_bits * 3 / 4;
            if (add_bits[ch] < 0)
                add_bits[ch] = 0;

            if (add_bits[ch] + targ_bits[ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL)
                add_bits[ch] = Math.max(0,
                    LameInternalFlags.MAX_BITS_PER_CHANNEL - targ_bits[ch]);

            bits += add_bits[ch];
        }
        if (bits > extra_bits) {
            for (ch = 0; ch < gfc.channels_out; ++ch) {
                add_bits[ch] = extra_bits * add_bits[ch] / bits;
            }
        }

        for (ch = 0; ch < gfc.channels_out; ++ch) {
            targ_bits[ch] += add_bits[ch];
            extra_bits -= add_bits[ch];
        }

        for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {
            bits += targ_bits[ch];
        }
        if (bits > LameInternalFlags.MAX_BITS_PER_GRANULE) {
            var sum = 0;
            for (ch = 0; ch < gfc.channels_out; ++ch) {
                targ_bits[ch] *= LameInternalFlags.MAX_BITS_PER_GRANULE;
                targ_bits[ch] /= bits;
                sum += targ_bits[ch];
            }
            assert(sum <= LameInternalFlags.MAX_BITS_PER_GRANULE);
        }

        return max_bits;
    }

    this.reduce_side = function (targ_bits, ms_ener_ratio, mean_bits, max_bits) {
        assert(max_bits <= LameInternalFlags.MAX_BITS_PER_GRANULE);
        assert(targ_bits[0] + targ_bits[1] <= LameInternalFlags.MAX_BITS_PER_GRANULE);

        /*
         * ms_ener_ratio = 0: allocate 66/33 mid/side fac=.33 ms_ener_ratio =.5:
         * allocate 50/50 mid/side fac= 0
         */
        /* 75/25 split is fac=.5 */
        var fac = .33 * (.5 - ms_ener_ratio) / .5;
        if (fac < 0)
            fac = 0;
        if (fac > .5)
            fac = .5;

        /* number of bits to move from side channel to mid channel */
        /* move_bits = fac*targ_bits[1]; */
        var move_bits = 0 | (fac * .5 * (targ_bits[0] + targ_bits[1]));

        if (move_bits > LameInternalFlags.MAX_BITS_PER_CHANNEL - targ_bits[0]) {
            move_bits = LameInternalFlags.MAX_BITS_PER_CHANNEL - targ_bits[0];
        }
        if (move_bits < 0)
            move_bits = 0;

        if (targ_bits[1] >= 125) {
            /* dont reduce side channel below 125 bits */
            if (targ_bits[1] - move_bits > 125) {

                /* if mid channel already has 2x more than average, dont bother */
                /* mean_bits = bits per granule (for both channels) */
                if (targ_bits[0] < mean_bits)
                    targ_bits[0] += move_bits;
                targ_bits[1] -= move_bits;
            } else {
                targ_bits[0] += targ_bits[1] - 125;
                targ_bits[1] = 125;
            }
        }

        move_bits = targ_bits[0] + targ_bits[1];
        if (move_bits > max_bits) {
            targ_bits[0] = (max_bits * targ_bits[0]) / move_bits;
            targ_bits[1] = (max_bits * targ_bits[1]) / move_bits;
        }
        assert(targ_bits[0] <= LameInternalFlags.MAX_BITS_PER_CHANNEL);
        assert(targ_bits[1] <= LameInternalFlags.MAX_BITS_PER_CHANNEL);
        assert(targ_bits[0] + targ_bits[1] <= LameInternalFlags.MAX_BITS_PER_GRANULE);
    };

    /**
     *  Robert Hegemann 2001-04-27:
     *  this adjusts the ATH, keeping the original noise floor
     *  affects the higher frequencies more than the lower ones
     */
    this.athAdjust = function (a, x, athFloor) {
        /*
         * work in progress
         */
        var o = 90.30873362;
        var p = 94.82444863;
        var u = Util.FAST_LOG10_X(x, 10.0);
        var v = a * a;
        var w = 0.0;
        u -= athFloor;
        /* undo scaling */
        if (v > 1E-20)
            w = 1. + Util.FAST_LOG10_X(v, 10.0 / o);
        if (w < 0)
            w = 0.;
        u *= w;
        u += athFloor + o - p;
        /* redo scaling */

        return Math.pow(10., 0.1 * u);
    };

    /**
     * Calculate the allowed distortion for each scalefactor band, as determined
     * by the psychoacoustic model. xmin(sb) = ratio(sb) * en(sb) / bw(sb)
     *
     * returns number of sfb's with energy > ATH
     */
    this.calc_xmin = function (gfp, ratio, cod_info, pxmin) {
        var pxminPos = 0;
        var gfc = gfp.internal_flags;
        var gsfb, j = 0, ath_over = 0;
        var ATH = gfc.ATH;
        var xr = cod_info.xr;
        var enable_athaa_fix = (gfp.VBR == VbrMode.vbr_mtrh) ? 1 : 0;
        var masking_lower = gfc.masking_lower;

        if (gfp.VBR == VbrMode.vbr_mtrh || gfp.VBR == VbrMode.vbr_mt) {
            /* was already done in PSY-Model */
            masking_lower = 1.0;
        }

        for (gsfb = 0; gsfb < cod_info.psy_lmax; gsfb++) {
            var en0, xmin;
            var rh1, rh2;
            var width, l;

            if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh)
                xmin = athAdjust(ATH.adjust, ATH.l[gsfb], ATH.floor);
            else
                xmin = ATH.adjust * ATH.l[gsfb];

            width = cod_info.width[gsfb];
            rh1 = xmin / width;
            rh2 = DBL_EPSILON;
            l = width >> 1;
            en0 = 0.0;
            do {
                var xa, xb;
                xa = xr[j] * xr[j];
                en0 += xa;
                rh2 += (xa < rh1) ? xa : rh1;
                j++;
                xb = xr[j] * xr[j];
                en0 += xb;
                rh2 += (xb < rh1) ? xb : rh1;
                j++;
            } while (--l > 0);
            if (en0 > xmin)
                ath_over++;

            if (gsfb == Encoder.SBPSY_l) {
                var x = xmin * gfc.nsPsy.longfact[gsfb];
                if (rh2 < x) {
                    rh2 = x;
                }
            }
            if (enable_athaa_fix != 0) {
                xmin = rh2;
            }
            if (!gfp.ATHonly) {
                var e = ratio.en.l[gsfb];
                if (e > 0.0) {
                    var x;
                    x = en0 * ratio.thm.l[gsfb] * masking_lower / e;
                    if (enable_athaa_fix != 0)
                        x *= gfc.nsPsy.longfact[gsfb];
                    if (xmin < x)
                        xmin = x;
                }
            }
            if (enable_athaa_fix != 0)
                pxmin[pxminPos++] = xmin;
            else
                pxmin[pxminPos++] = xmin * gfc.nsPsy.longfact[gsfb];
        }
        /* end of long block loop */

        /* use this function to determine the highest non-zero coeff */
        var max_nonzero = 575;
        if (cod_info.block_type != Encoder.SHORT_TYPE) {
            // NORM, START or STOP type, but not SHORT
            var k = 576;
            while (k-- != 0 && BitStream.EQ(xr[k], 0)) {
                max_nonzero = k;
            }
        }
        cod_info.max_nonzero_coeff = max_nonzero;

        for (var sfb = cod_info.sfb_smin; gsfb < cod_info.psymax; sfb++, gsfb += 3) {
            var width, b;
            var tmpATH;
            if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh)
                tmpATH = athAdjust(ATH.adjust, ATH.s[sfb], ATH.floor);
            else
                tmpATH = ATH.adjust * ATH.s[sfb];

            width = cod_info.width[gsfb];
            for (b = 0; b < 3; b++) {
                var en0 = 0.0, xmin;
                var rh1, rh2;
                var l = width >> 1;

                rh1 = tmpATH / width;
                rh2 = DBL_EPSILON;
                do {
                    var xa, xb;
                    xa = xr[j] * xr[j];
                    en0 += xa;
                    rh2 += (xa < rh1) ? xa : rh1;
                    j++;
                    xb = xr[j] * xr[j];
                    en0 += xb;
                    rh2 += (xb < rh1) ? xb : rh1;
                    j++;
                } while (--l > 0);
                if (en0 > tmpATH)
                    ath_over++;
                if (sfb == Encoder.SBPSY_s) {
                    var x = tmpATH * gfc.nsPsy.shortfact[sfb];
                    if (rh2 < x) {
                        rh2 = x;
                    }
                }
                if (enable_athaa_fix != 0)
                    xmin = rh2;
                else
                    xmin = tmpATH;

                if (!gfp.ATHonly && !gfp.ATHshort) {
                    var e = ratio.en.s[sfb][b];
                    if (e > 0.0) {
                        var x;
                        x = en0 * ratio.thm.s[sfb][b] * masking_lower / e;
                        if (enable_athaa_fix != 0)
                            x *= gfc.nsPsy.shortfact[sfb];
                        if (xmin < x)
                            xmin = x;
                    }
                }
                if (enable_athaa_fix != 0)
                    pxmin[pxminPos++] = xmin;
                else
                    pxmin[pxminPos++] = xmin * gfc.nsPsy.shortfact[sfb];
            }
            /* b */
            if (gfp.useTemporal) {
                if (pxmin[pxminPos - 3] > pxmin[pxminPos - 3 + 1])
                    pxmin[pxminPos - 3 + 1] += (pxmin[pxminPos - 3] - pxmin[pxminPos - 3 + 1])
                        * gfc.decay;
                if (pxmin[pxminPos - 3 + 1] > pxmin[pxminPos - 3 + 2])
                    pxmin[pxminPos - 3 + 2] += (pxmin[pxminPos - 3 + 1] - pxmin[pxminPos - 3 + 2])
                        * gfc.decay;
            }
        }
        /* end of short block sfb loop */

        return ath_over;
    };

    function StartLine(j) {
        this.s = j;
    }

    this.calc_noise_core = function (cod_info, startline, l, step) {
        var noise = 0;
        var j = startline.s;
        var ix = cod_info.l3_enc;

        if (j > cod_info.count1) {
            while ((l--) != 0) {
                var temp;
                temp = cod_info.xr[j];
                j++;
                noise += temp * temp;
                temp = cod_info.xr[j];
                j++;
                noise += temp * temp;
            }
        } else if (j > cod_info.big_values) {
            var ix01 = new_float(2);
            ix01[0] = 0;
            ix01[1] = step;
            while ((l--) != 0) {
                var temp;
                temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];
                j++;
                noise += temp * temp;
                temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];
                j++;
                noise += temp * temp;
            }
        } else {
            while ((l--) != 0) {
                var temp;
                temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;
                j++;
                noise += temp * temp;
                temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;
                j++;
                noise += temp * temp;
            }
        }

        startline.s = j;
        return noise;
    }

    /**
     * <PRE>
     * -oo dB  =>  -1.00
     * - 6 dB  =>  -0.97
     * - 3 dB  =>  -0.80
     * - 2 dB  =>  -0.64
     * - 1 dB  =>  -0.38
     *   0 dB  =>   0.00
     * + 1 dB  =>  +0.49
     * + 2 dB  =>  +1.06
     * + 3 dB  =>  +1.68
     * + 6 dB  =>  +3.69
     * +10 dB  =>  +6.45
     * </PRE>
     */
    this.calc_noise = function (cod_info, l3_xmin, distort, res, prev_noise) {
        var distortPos = 0;
        var l3_xminPos = 0;
        var sfb, l, over = 0;
        var over_noise_db = 0;
        /* 0 dB relative to masking */
        var tot_noise_db = 0;
        /* -200 dB relative to masking */
        var max_noise = -20.0;
        var j = 0;
        var scalefac = cod_info.scalefac;
        var scalefacPos = 0;

        res.over_SSD = 0;

        for (sfb = 0; sfb < cod_info.psymax; sfb++) {
            var s = cod_info.global_gain
                - (((scalefac[scalefacPos++]) + (cod_info.preflag != 0 ? pretab[sfb]
                    : 0)) << (cod_info.scalefac_scale + 1))
                - cod_info.subblock_gain[cod_info.window[sfb]] * 8;
            var noise = 0.0;

            if (prev_noise != null && (prev_noise.step[sfb] == s)) {

                /* use previously computed values */
                noise = prev_noise.noise[sfb];
                j += cod_info.width[sfb];
                distort[distortPos++] = noise / l3_xmin[l3_xminPos++];

                noise = prev_noise.noise_log[sfb];

            } else {
                var step = POW20(s);
                l = cod_info.width[sfb] >> 1;

                if ((j + cod_info.width[sfb]) > cod_info.max_nonzero_coeff) {
                    var usefullsize;
                    usefullsize = cod_info.max_nonzero_coeff - j + 1;

                    if (usefullsize > 0)
                        l = usefullsize >> 1;
                    else
                        l = 0;
                }

                var sl = new StartLine(j);
                noise = this.calc_noise_core(cod_info, sl, l, step);
                j = sl.s;

                if (prev_noise != null) {
                    /* save noise values */
                    prev_noise.step[sfb] = s;
                    prev_noise.noise[sfb] = noise;
                }

                noise = distort[distortPos++] = noise / l3_xmin[l3_xminPos++];

                /* multiplying here is adding in dB, but can overflow */
                noise = Util.FAST_LOG10(Math.max(noise, 1E-20));

                if (prev_noise != null) {
                    /* save noise values */
                    prev_noise.noise_log[sfb] = noise;
                }
            }

            if (prev_noise != null) {
                /* save noise values */
                prev_noise.global_gain = cod_info.global_gain;
            }

            tot_noise_db += noise;

            if (noise > 0.0) {
                var tmp;

                tmp = Math.max(0 | (noise * 10 + .5), 1);
                res.over_SSD += tmp * tmp;

                over++;
                /* multiplying here is adding in dB -but can overflow */
                /* over_noise *= noise; */
                over_noise_db += noise;
            }
            max_noise = Math.max(max_noise, noise);

        }

        res.over_count = over;
        res.tot_noise = tot_noise_db;
        res.over_noise = over_noise_db;
        res.max_noise = max_noise;

        return over;
    }

    /**
     * updates plotting data
     *
     * Mark Taylor 2000-??-??
     *
     * Robert Hegemann: moved noise/distortion calc into it
     */
    this.set_pinfo = function (gfp, cod_info, ratio, gr, ch) {
        var gfc = gfp.internal_flags;
        var sfb, sfb2;
        var l;
        var en0, en1;
        var ifqstep = (cod_info.scalefac_scale == 0) ? .5 : 1.0;
        var scalefac = cod_info.scalefac;

        var l3_xmin = new_float(L3Side.SFBMAX);
        var xfsf = new_float(L3Side.SFBMAX);
        var noise = new CalcNoiseResult();

        calc_xmin(gfp, ratio, cod_info, l3_xmin);
        calc_noise(cod_info, l3_xmin, xfsf, noise, null);

        var j = 0;
        sfb2 = cod_info.sfb_lmax;
        if (cod_info.block_type != Encoder.SHORT_TYPE
            && 0 == cod_info.mixed_block_flag)
            sfb2 = 22;
        for (sfb = 0; sfb < sfb2; sfb++) {
            var start = gfc.scalefac_band.l[sfb];
            var end = gfc.scalefac_band.l[sfb + 1];
            var bw = end - start;
            for (en0 = 0.0; j < end; j++)
                en0 += cod_info.xr[j] * cod_info.xr[j];
            en0 /= bw;
            /* convert to MDCT units */
            /* scaling so it shows up on FFT plot */
            en1 = 1e15;
            gfc.pinfo.en[gr][ch][sfb] = en1 * en0;
            gfc.pinfo.xfsf[gr][ch][sfb] = en1 * l3_xmin[sfb] * xfsf[sfb] / bw;

            if (ratio.en.l[sfb] > 0 && !gfp.ATHonly)
                en0 = en0 / ratio.en.l[sfb];
            else
                en0 = 0.0;

            gfc.pinfo.thr[gr][ch][sfb] = en1
                * Math.max(en0 * ratio.thm.l[sfb], gfc.ATH.l[sfb]);

            /* there is no scalefactor bands >= SBPSY_l */
            gfc.pinfo.LAMEsfb[gr][ch][sfb] = 0;
            if (cod_info.preflag != 0 && sfb >= 11)
                gfc.pinfo.LAMEsfb[gr][ch][sfb] = -ifqstep * pretab[sfb];

            if (sfb < Encoder.SBPSY_l) {
                /* scfsi should be decoded by caller side */
                assert(scalefac[sfb] >= 0);
                gfc.pinfo.LAMEsfb[gr][ch][sfb] -= ifqstep * scalefac[sfb];
            }
        }
        /* for sfb */

        if (cod_info.block_type == Encoder.SHORT_TYPE) {
            sfb2 = sfb;
            for (sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {
                var start = gfc.scalefac_band.s[sfb];
                var end = gfc.scalefac_band.s[sfb + 1];
                var bw = end - start;
                for (var i = 0; i < 3; i++) {
                    for (en0 = 0.0, l = start; l < end; l++) {
                        en0 += cod_info.xr[j] * cod_info.xr[j];
                        j++;
                    }
                    en0 = Math.max(en0 / bw, 1e-20);
                    /* convert to MDCT units */
                    /* scaling so it shows up on FFT plot */
                    en1 = 1e15;

                    gfc.pinfo.en_s[gr][ch][3 * sfb + i] = en1 * en0;
                    gfc.pinfo.xfsf_s[gr][ch][3 * sfb + i] = en1 * l3_xmin[sfb2]
                        * xfsf[sfb2] / bw;
                    if (ratio.en.s[sfb][i] > 0)
                        en0 = en0 / ratio.en.s[sfb][i];
                    else
                        en0 = 0.0;
                    if (gfp.ATHonly || gfp.ATHshort)
                        en0 = 0;

                    gfc.pinfo.thr_s[gr][ch][3 * sfb + i] = en1
                        * Math.max(en0 * ratio.thm.s[sfb][i],
                            gfc.ATH.s[sfb]);

                    /* there is no scalefactor bands >= SBPSY_s */
                    gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] = -2.0
                        * cod_info.subblock_gain[i];
                    if (sfb < Encoder.SBPSY_s) {
                        gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] -= ifqstep
                            * scalefac[sfb2];
                    }
                    sfb2++;
                }
            }
        }
        /* block type short */
        gfc.pinfo.LAMEqss[gr][ch] = cod_info.global_gain;
        gfc.pinfo.LAMEmainbits[gr][ch] = cod_info.part2_3_length
            + cod_info.part2_length;
        gfc.pinfo.LAMEsfbits[gr][ch] = cod_info.part2_length;

        gfc.pinfo.over[gr][ch] = noise.over_count;
        gfc.pinfo.max_noise[gr][ch] = noise.max_noise * 10.0;
        gfc.pinfo.over_noise[gr][ch] = noise.over_noise * 10.0;
        gfc.pinfo.tot_noise[gr][ch] = noise.tot_noise * 10.0;
        gfc.pinfo.over_SSD[gr][ch] = noise.over_SSD;
    }

    /**
     * updates plotting data for a whole frame
     *
     * Robert Hegemann 2000-10-21
     */
    function set_frame_pinfo(gfp, ratio) {
        var gfc = gfp.internal_flags;

        gfc.masking_lower = 1.0;

        /*
         * for every granule and channel patch l3_enc and set info
         */
        for (var gr = 0; gr < gfc.mode_gr; gr++) {
            for (var ch = 0; ch < gfc.channels_out; ch++) {
                var cod_info = gfc.l3_side.tt[gr][ch];
                var scalefac_sav = new_int(L3Side.SFBMAX);
                System.arraycopy(cod_info.scalefac, 0, scalefac_sav, 0,
                    scalefac_sav.length);

                /*
                 * reconstruct the scalefactors in case SCFSI was used
                 */
                if (gr == 1) {
                    var sfb;
                    for (sfb = 0; sfb < cod_info.sfb_lmax; sfb++) {
                        if (cod_info.scalefac[sfb] < 0) /* scfsi */
                            cod_info.scalefac[sfb] = gfc.l3_side.tt[0][ch].scalefac[sfb];
                    }
                }

                set_pinfo(gfp, cod_info, ratio[gr][ch], gr, ch);
                System.arraycopy(scalefac_sav, 0, cod_info.scalefac, 0,
                    scalefac_sav.length);
            }
            /* for ch */
        }
        /* for gr */
    }

}

module.exports = QuantizePVT;


/***/ }),

/***/ "./node_modules/lamejs/src/js/ReplayGain.js":
/*!**************************************************!*\
  !*** ./node_modules/lamejs/src/js/ReplayGain.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var GainAnalysis = __webpack_require__(/*! ./GainAnalysis.js */ "./node_modules/lamejs/src/js/GainAnalysis.js");

function ReplayGain() {
    this.linprebuf = new_float(GainAnalysis.MAX_ORDER * 2);
    /**
     * left input samples, with pre-buffer
     */
    this.linpre = 0;
    this.lstepbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);
    /**
     * left "first step" (i.e. post first filter) samples
     */
    this.lstep = 0;
    this.loutbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);
    /**
     * left "out" (i.e. post second filter) samples
     */
    this.lout = 0;
    this.rinprebuf = new_float(GainAnalysis.MAX_ORDER * 2);
    /**
     * right input samples ...
     */
    this.rinpre = 0;
    this.rstepbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);
    this.rstep = 0;
    this.routbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);
    this.rout = 0;
    /**
     * number of samples required to reach number of milliseconds required
     * for RMS window
     */
    this.sampleWindow = 0;
    this.totsamp = 0;
    this.lsum = 0.;
    this.rsum = 0.;
    this.freqindex = 0;
    this.first = 0;
    this.A = new_int(0 | (GainAnalysis.STEPS_per_dB * GainAnalysis.MAX_dB));
    this.B = new_int(0 | (GainAnalysis.STEPS_per_dB * GainAnalysis.MAX_dB));

}

module.exports = ReplayGain;


/***/ }),

/***/ "./node_modules/lamejs/src/js/Reservoir.js":
/*!*************************************************!*\
  !*** ./node_modules/lamejs/src/js/Reservoir.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/*
 *      bit reservoir source file
 *
 *      Copyright (c) 1999-2000 Mark Taylor
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */

/* $Id: Reservoir.java,v 1.9 2011/05/24 20:48:06 kenchis Exp $ */

//package mp3;

/**
 * ResvFrameBegin:<BR>
 * Called (repeatedly) at the beginning of a frame. Updates the maximum size of
 * the reservoir, and checks to make sure main_data_begin was set properly by
 * the formatter<BR>
 * Background information:
 * 
 * This is the original text from the ISO standard. Because of sooo many bugs
 * and irritations correcting comments are added in brackets []. A '^W' means
 * you should remove the last word.
 * 
 * <PRE>
 *  1. The following rule can be used to calculate the maximum
 *     number of bits used for one granule [^W frame]:<BR>
 *     At the highest possible bitrate of Layer III (320 kbps
 *     per stereo signal [^W^W^W], 48 kHz) the frames must be of
 *     [^W^W^W are designed to have] constant length, i.e.
 *     one buffer [^W^W the frame] length is:<BR>
 * 
 *         320 kbps * 1152/48 kHz = 7680 bit = 960 byte
 * 
 *     This value is used as the maximum buffer per channel [^W^W] at
 *     lower bitrates [than 320 kbps]. At 64 kbps mono or 128 kbps
 *     stereo the main granule length is 64 kbps * 576/48 kHz = 768 bit
 *     [per granule and channel] at 48 kHz sampling frequency.
 *     This means that there is a maximum deviation (short time buffer
 *     [= reservoir]) of 7680 - 2*2*768 = 4608 bits is allowed at 64 kbps.
 *     The actual deviation is equal to the number of bytes [with the
 *     meaning of octets] denoted by the main_data_end offset pointer.
 *     The actual maximum deviation is (2^9-1)*8 bit = 4088 bits
 *     [for MPEG-1 and (2^8-1)*8 bit for MPEG-2, both are hard limits].
 *     ... The xchange of buffer bits between the left and right channel
 *     is allowed without restrictions [exception: dual channel].
 *     Because of the [constructed] constraint on the buffer size
 *     main_data_end is always set to 0 in the case of bit_rate_index==14,
 *     i.e. data rate 320 kbps per stereo signal [^W^W^W]. In this case
 *     all data are allocated between adjacent header [^W sync] words
 *     [, i.e. there is no buffering at all].
 * </PRE>
 */

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var assert = common.assert;

function Reservoir() {
	var bs;

	this.setModules  = function(_bs) {
		bs = _bs;
	}

	this.ResvFrameBegin = function(gfp, mean_bits) {
		var gfc = gfp.internal_flags;
		var maxmp3buf;
		var l3_side = gfc.l3_side;

		var frameLength = bs.getframebits(gfp);
		mean_bits.bits = (frameLength - gfc.sideinfo_len * 8) / gfc.mode_gr;

		/**
		 * <PRE>
		 *  Meaning of the variables:
		 *      resvLimit: (0, 8, ..., 8*255 (MPEG-2), 8*511 (MPEG-1))
		 *          Number of bits can be stored in previous frame(s) due to
		 *          counter size constaints
		 *      maxmp3buf: ( ??? ... 8*1951 (MPEG-1 and 2), 8*2047 (MPEG-2.5))
		 *          Number of bits allowed to encode one frame (you can take 8*511 bit
		 *          from the bit reservoir and at most 8*1440 bit from the current
		 *          frame (320 kbps, 32 kHz), so 8*1951 bit is the largest possible
		 *          value for MPEG-1 and -2)
		 * 
		 *          maximum allowed granule/channel size times 4 = 8*2047 bits.,
		 *          so this is the absolute maximum supported by the format.
		 * 
		 * 
		 *      fullFrameBits:  maximum number of bits available for encoding
		 *                      the current frame.
		 * 
		 *      mean_bits:      target number of bits per granule.
		 * 
		 *      frameLength:
		 * 
		 *      gfc.ResvMax:   maximum allowed reservoir
		 * 
		 *      gfc.ResvSize:  current reservoir size
		 * 
		 *      l3_side.resvDrain_pre:
		 *         ancillary data to be added to previous frame:
		 *         (only usefull in VBR modes if it is possible to have
		 *         maxmp3buf < fullFrameBits)).  Currently disabled,
		 *         see #define NEW_DRAIN
		 *         2010-02-13: RH now enabled, it seems to be needed for CBR too,
		 *                     as there exists one example, where the FhG decoder
		 *                     can't decode a -b320 CBR file anymore.
		 * 
		 *      l3_side.resvDrain_post:
		 *         ancillary data to be added to this frame:
		 * 
		 * </PRE>
		 */

		/* main_data_begin has 9 bits in MPEG-1, 8 bits MPEG-2 */
		var resvLimit = (8 * 256) * gfc.mode_gr - 8;

		/*
		 * maximum allowed frame size. dont use more than this number of bits,
		 * even if the frame has the space for them:
		 */
		if (gfp.brate > 320) {
			/* in freeformat the buffer is constant */
			maxmp3buf = 8 * ((int) ((gfp.brate * 1000)
					/ (gfp.out_samplerate / 1152) / 8 + .5));
		} else {
			/*
			 * all mp3 decoders should have enough buffer to handle this value:
			 * size of a 320kbps 32kHz frame
			 */
			maxmp3buf = 8 * 1440;

			/*
			 * Bouvigne suggests this more lax interpretation of the ISO doc
			 * instead of using 8*960.
			 */

			if (gfp.strict_ISO) {
				maxmp3buf = 8 * ((int) (320000 / (gfp.out_samplerate / 1152) / 8 + .5));
			}
		}

		gfc.ResvMax = maxmp3buf - frameLength;
		if (gfc.ResvMax > resvLimit)
			gfc.ResvMax = resvLimit;
		if (gfc.ResvMax < 0 || gfp.disable_reservoir)
			gfc.ResvMax = 0;

		var fullFrameBits = mean_bits.bits * gfc.mode_gr
				+ Math.min(gfc.ResvSize, gfc.ResvMax);

		if (fullFrameBits > maxmp3buf)
			fullFrameBits = maxmp3buf;

		assert (0 == gfc.ResvMax % 8);
		assert (gfc.ResvMax >= 0);

		l3_side.resvDrain_pre = 0;

		// frame analyzer code
		if (gfc.pinfo != null) {
			/*
			 * expected bits per channel per granule [is this also right for
			 * mono/stereo, MPEG-1/2 ?]
			 */
			gfc.pinfo.mean_bits = mean_bits.bits / 2;
			gfc.pinfo.resvsize = gfc.ResvSize;
		}

		return fullFrameBits;
	}

	/**
	 * returns targ_bits: target number of bits to use for 1 granule<BR>
	 * extra_bits: amount extra available from reservoir<BR>
	 * Mark Taylor 4/99
	 */
	this.ResvMaxBits = function(gfp, mean_bits, targ_bits, cbr) {
		var gfc = gfp.internal_flags;
		var add_bits;
        var ResvSize = gfc.ResvSize, ResvMax = gfc.ResvMax;

		/* compensate the saved bits used in the 1st granule */
		if (cbr != 0)
			ResvSize += mean_bits;

		if ((gfc.substep_shaping & 1) != 0)
			ResvMax *= 0.9;

		targ_bits.bits = mean_bits;

		/* extra bits if the reservoir is almost full */
		if (ResvSize * 10 > ResvMax * 9) {
			add_bits = ResvSize - (ResvMax * 9) / 10;
			targ_bits.bits += add_bits;
			gfc.substep_shaping |= 0x80;
		} else {
			add_bits = 0;
			gfc.substep_shaping &= 0x7f;
			/*
			 * build up reservoir. this builds the reservoir a little slower
			 * than FhG. It could simple be mean_bits/15, but this was rigged to
			 * always produce 100 (the old value) at 128kbs
			 */
			if (!gfp.disable_reservoir && 0 == (gfc.substep_shaping & 1))
				targ_bits.bits -= .1 * mean_bits;
		}

		/* amount from the reservoir we are allowed to use. ISO says 6/10 */
		var extra_bits = (ResvSize < (gfc.ResvMax * 6) / 10 ? ResvSize
				: (gfc.ResvMax * 6) / 10);
		extra_bits -= add_bits;

		if (extra_bits < 0)
			extra_bits = 0;
		return extra_bits;
	}

	/**
	 * Called after a granule's bit allocation. Readjusts the size of the
	 * reservoir to reflect the granule's usage.
	 */
	this.ResvAdjust = function(gfc, gi) {
		gfc.ResvSize -= gi.part2_3_length + gi.part2_length;
	}

	/**
	 * Called after all granules in a frame have been allocated. Makes sure that
	 * the reservoir size is within limits, possibly by adding stuffing bits.
	 */
	this.ResvFrameEnd = function(gfc, mean_bits) {
		var over_bits;
		var l3_side = gfc.l3_side;

		gfc.ResvSize += mean_bits * gfc.mode_gr;
		var stuffingBits = 0;
		l3_side.resvDrain_post = 0;
		l3_side.resvDrain_pre = 0;

		/* we must be byte aligned */
		if ((over_bits = gfc.ResvSize % 8) != 0)
			stuffingBits += over_bits;

		over_bits = (gfc.ResvSize - stuffingBits) - gfc.ResvMax;
		if (over_bits > 0) {
			assert (0 == over_bits % 8);
			assert (over_bits >= 0);
			stuffingBits += over_bits;
		}

		/*
		 * NOTE: enabling the NEW_DRAIN code fixes some problems with FhG
		 * decoder shipped with MS Windows operating systems. Using this, it is
		 * even possible to use Gabriel's lax buffer consideration again, which
		 * assumes, any decoder should have a buffer large enough for a 320 kbps
		 * frame at 32 kHz sample rate.
		 * 
		 * old drain code: lame -b320 BlackBird.wav --. does not play with
		 * GraphEdit.exe using FhG decoder V1.5 Build 50
		 * 
		 * new drain code: lame -b320 BlackBird.wav --. plays fine with
		 * GraphEdit.exe using FhG decoder V1.5 Build 50
		 * 
		 * Robert Hegemann, 2010-02-13.
		 */
		/*
		 * drain as many bits as possible into previous frame ancillary data In
		 * particular, in VBR mode ResvMax may have changed, and we have to make
		 * sure main_data_begin does not create a reservoir bigger than ResvMax
		 * mt 4/00
		 */
		{
			var mdb_bytes = Math.min(l3_side.main_data_begin * 8, stuffingBits) / 8;
			l3_side.resvDrain_pre += 8 * mdb_bytes;
			stuffingBits -= 8 * mdb_bytes;
			gfc.ResvSize -= 8 * mdb_bytes;
			l3_side.main_data_begin -= mdb_bytes;
		}
		/* drain the rest into this frames ancillary data */
		l3_side.resvDrain_post += stuffingBits;
		gfc.ResvSize -= stuffingBits;
	}
}

module.exports = Reservoir;


/***/ }),

/***/ "./node_modules/lamejs/src/js/ScaleFac.js":
/*!************************************************!*\
  !*** ./node_modules/lamejs/src/js/ScaleFac.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

//package mp3;

/**
 * Layer III side information.
 *
 * @author Ken
 *
 */

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");

function ScaleFac(arrL, arrS, arr21, arr12) {

    this.l = new_int(1 + Encoder.SBMAX_l);
    this.s = new_int(1 + Encoder.SBMAX_s);
    this.psfb21 = new_int(1 + Encoder.PSFB21);
    this.psfb12 = new_int(1 + Encoder.PSFB12);
    var l = this.l;
    var s = this.s;

    if (arguments.length == 4) {
        //public ScaleFac(final int[] arrL, final int[] arrS, final int[] arr21,
        //    final int[] arr12) {
        this.arrL = arguments[0];
        this.arrS = arguments[1];
        this.arr21 = arguments[2];
        this.arr12 = arguments[3];

        System.arraycopy(this.arrL, 0, l, 0, Math.min(this.arrL.length, this.l.length));
        System.arraycopy(this.arrS, 0, s, 0, Math.min(this.arrS.length, this.s.length));
        System.arraycopy(this.arr21, 0, this.psfb21, 0, Math.min(this.arr21.length, this.psfb21.length));
        System.arraycopy(this.arr12, 0, this.psfb12, 0, Math.min(this.arr12.length, this.psfb12.length));
    }
}

module.exports = ScaleFac;


/***/ }),

/***/ "./node_modules/lamejs/src/js/Tables.js":
/*!**********************************************!*\
  !*** ./node_modules/lamejs/src/js/Tables.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

function HuffCodeTab(len, max, tab, hl) {
    this.xlen = len;
    this.linmax = max;
    this.table = tab;
    this.hlen = hl;
}

var Tables = {};


Tables.t1HB = [
    1, 1,
    1, 0
];

Tables.t2HB = [
    1, 2, 1,
    3, 1, 1,
    3, 2, 0
];

Tables.t3HB = [
    3, 2, 1,
    1, 1, 1,
    3, 2, 0
];

Tables.t5HB = [
    1, 2, 6, 5,
    3, 1, 4, 4,
    7, 5, 7, 1,
    6, 1, 1, 0
];

Tables.t6HB = [
    7, 3, 5, 1,
    6, 2, 3, 2,
    5, 4, 4, 1,
    3, 3, 2, 0
];

Tables.t7HB = [
    1, 2, 10, 19, 16, 10,
    3, 3, 7, 10, 5, 3,
    11, 4, 13, 17, 8, 4,
    12, 11, 18, 15, 11, 2,
    7, 6, 9, 14, 3, 1,
    6, 4, 5, 3, 2, 0
];

Tables.t8HB = [
    3, 4, 6, 18, 12, 5,
    5, 1, 2, 16, 9, 3,
    7, 3, 5, 14, 7, 3,
    19, 17, 15, 13, 10, 4,
    13, 5, 8, 11, 5, 1,
    12, 4, 4, 1, 1, 0
];

Tables.t9HB = [
    7, 5, 9, 14, 15, 7,
    6, 4, 5, 5, 6, 7,
    7, 6, 8, 8, 8, 5,
    15, 6, 9, 10, 5, 1,
    11, 7, 9, 6, 4, 1,
    14, 4, 6, 2, 6, 0
];

Tables.t10HB = [
    1, 2, 10, 23, 35, 30, 12, 17,
    3, 3, 8, 12, 18, 21, 12, 7,
    11, 9, 15, 21, 32, 40, 19, 6,
    14, 13, 22, 34, 46, 23, 18, 7,
    20, 19, 33, 47, 27, 22, 9, 3,
    31, 22, 41, 26, 21, 20, 5, 3,
    14, 13, 10, 11, 16, 6, 5, 1,
    9, 8, 7, 8, 4, 4, 2, 0
];

Tables.t11HB = [
    3, 4, 10, 24, 34, 33, 21, 15,
    5, 3, 4, 10, 32, 17, 11, 10,
    11, 7, 13, 18, 30, 31, 20, 5,
    25, 11, 19, 59, 27, 18, 12, 5,
    35, 33, 31, 58, 30, 16, 7, 5,
    28, 26, 32, 19, 17, 15, 8, 14,
    14, 12, 9, 13, 14, 9, 4, 1,
    11, 4, 6, 6, 6, 3, 2, 0
];

Tables.t12HB = [
    9, 6, 16, 33, 41, 39, 38, 26,
    7, 5, 6, 9, 23, 16, 26, 11,
    17, 7, 11, 14, 21, 30, 10, 7,
    17, 10, 15, 12, 18, 28, 14, 5,
    32, 13, 22, 19, 18, 16, 9, 5,
    40, 17, 31, 29, 17, 13, 4, 2,
    27, 12, 11, 15, 10, 7, 4, 1,
    27, 12, 8, 12, 6, 3, 1, 0
];

Tables.t13HB = [
    1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19,
    3, 4, 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14,
    15, 13, 23, 36, 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16,
    22, 20, 37, 61, 56, 79, 73, 64, 43, 76, 56, 37, 26, 31, 25, 14,
    35, 16, 60, 57, 97, 75, 114, 91, 54, 73, 55, 41, 48, 53, 23, 24,
    58, 27, 50, 96, 76, 70, 93, 84, 77, 58, 79, 29, 74, 49, 41, 17,
    47, 45, 78, 74, 115, 94, 90, 79, 69, 83, 71, 50, 59, 38, 36, 15,
    72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44, 43, 42,
    43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16,
    53, 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11,
    35, 33, 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22,
    53, 25, 23, 38, 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7,
    34, 32, 28, 39, 49, 75, 30, 52, 48, 40, 52, 28, 18, 17, 9, 5,
    45, 21, 34, 64, 56, 50, 49, 45, 31, 19, 12, 15, 10, 7, 6, 3,
    48, 23, 20, 39, 36, 35, 53, 21, 16, 23, 13, 10, 6, 1, 4, 2,
    16, 15, 17, 27, 25, 20, 29, 11, 17, 12, 16, 8, 1, 1, 0, 1
];

Tables.t15HB = [
    7, 12, 18, 53, 47, 76, 124, 108, 89, 123, 108, 119, 107, 81, 122, 63,
    13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36,
    19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56, 33,
    29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29,
    52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27,
    77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38,
    125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30,
    109, 53, 49, 94, 88, 75, 66, 122, 91, 73, 56, 42, 64, 44, 21, 25,
    90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20,
    71, 34, 67, 60, 58, 49, 88, 76, 67, 106, 71, 54, 38, 39, 23, 15,
    109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9,
    86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11,
    118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7,
    91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3,
    123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1,
    71, 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0
];

Tables.t16HB = [
    1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195, 376, 17,
    3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119, 201, 107, 207, 9,
    15, 13, 23, 38, 67, 58, 103, 90, 161, 72, 127, 117, 110, 209, 206, 16,
    45, 21, 39, 69, 64, 114, 99, 87, 158, 140, 252, 212, 199, 387, 365, 26,
    75, 36, 68, 65, 115, 101, 179, 164, 155, 264, 246, 226, 395, 382, 362, 9,
    66, 30, 59, 56, 102, 185, 173, 265, 142, 253, 232, 400, 388, 378, 445, 16,
    111, 54, 52, 100, 184, 178, 160, 133, 257, 244, 228, 217, 385, 366, 715, 10,
    98, 48, 91, 88, 165, 157, 148, 261, 248, 407, 397, 372, 380, 889, 884, 8,
    85, 84, 81, 159, 156, 143, 260, 249, 427, 401, 392, 383, 727, 713, 708, 7,
    154, 76, 73, 141, 131, 256, 245, 426, 406, 394, 384, 735, 359, 710, 352, 11,
    139, 129, 67, 125, 247, 233, 229, 219, 393, 743, 737, 720, 885, 882, 439, 4,
    243, 120, 118, 115, 227, 223, 396, 746, 742, 736, 721, 712, 706, 223, 436, 6,
    202, 224, 222, 218, 216, 389, 386, 381, 364, 888, 443, 707, 440, 437, 1728, 4,
    747, 211, 210, 208, 370, 379, 734, 723, 714, 1735, 883, 877, 876, 3459, 865, 2,
    377, 369, 102, 187, 726, 722, 358, 711, 709, 866, 1734, 871, 3458, 870, 434, 0,
    12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7, 5, 3, 1, 3
];

Tables.t24HB = [
    15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032, 88,
    14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297, 279, 42,
    47, 22, 41, 74, 68, 128, 120, 221, 207, 194, 182, 340, 315, 295, 541, 18,
    81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325, 311, 293, 271, 16,
    147, 72, 69, 135, 127, 118, 112, 210, 200, 188, 352, 323, 306, 285, 540, 14,
    263, 66, 129, 126, 119, 114, 214, 202, 192, 180, 341, 317, 301, 281, 262, 12,
    249, 123, 121, 117, 113, 215, 206, 195, 185, 347, 330, 308, 291, 272, 520, 10,
    435, 115, 111, 109, 211, 203, 196, 187, 353, 332, 313, 298, 283, 531, 381, 17,
    427, 212, 208, 205, 201, 193, 186, 177, 169, 320, 303, 286, 268, 514, 377, 16,
    335, 199, 197, 191, 189, 181, 174, 333, 321, 305, 289, 275, 521, 379, 371, 11,
    668, 184, 183, 179, 175, 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10,
    652, 346, 171, 168, 164, 318, 309, 299, 287, 276, 263, 513, 375, 368, 362, 6,
    648, 322, 316, 312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4,
    620, 300, 296, 294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2,
    1033, 280, 278, 274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0,
    43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1, 3
];

Tables.t32HB = [
    1 << 0, 5 << 1, 4 << 1, 5 << 2, 6 << 1, 5 << 2, 4 << 2, 4 << 3,
    7 << 1, 3 << 2, 6 << 2, 0 << 3, 7 << 2, 2 << 3, 3 << 3, 1 << 4
];

Tables.t33HB = [
    15 << 0, 14 << 1, 13 << 1, 12 << 2, 11 << 1, 10 << 2, 9 << 2, 8 << 3,
    7 << 1, 6 << 2, 5 << 2, 4 << 3, 3 << 2, 2 << 3, 1 << 3, 0 << 4
];

Tables.t1l = [
    1, 4,
    3, 5
];

Tables.t2l = [
    1, 4, 7,
    4, 5, 7,
    6, 7, 8
];

Tables.t3l = [
    2, 3, 7,
    4, 4, 7,
    6, 7, 8
];

Tables.t5l = [
    1, 4, 7, 8,
    4, 5, 8, 9,
    7, 8, 9, 10,
    8, 8, 9, 10
];

Tables.t6l = [
    3, 4, 6, 8,
    4, 4, 6, 7,
    5, 6, 7, 8,
    7, 7, 8, 9
];

Tables.t7l = [
    1, 4, 7, 9, 9, 10,
    4, 6, 8, 9, 9, 10,
    7, 7, 9, 10, 10, 11,
    8, 9, 10, 11, 11, 11,
    8, 9, 10, 11, 11, 12,
    9, 10, 11, 12, 12, 12
];

Tables.t8l = [
    2, 4, 7, 9, 9, 10,
    4, 4, 6, 10, 10, 10,
    7, 6, 8, 10, 10, 11,
    9, 10, 10, 11, 11, 12,
    9, 9, 10, 11, 12, 12,
    10, 10, 11, 11, 13, 13
];

Tables.t9l = [
    3, 4, 6, 7, 9, 10,
    4, 5, 6, 7, 8, 10,
    5, 6, 7, 8, 9, 10,
    7, 7, 8, 9, 9, 10,
    8, 8, 9, 9, 10, 11,
    9, 9, 10, 10, 11, 11
];

Tables.t10l = [
    1, 4, 7, 9, 10, 10, 10, 11,
    4, 6, 8, 9, 10, 11, 10, 10,
    7, 8, 9, 10, 11, 12, 11, 11,
    8, 9, 10, 11, 12, 12, 11, 12,
    9, 10, 11, 12, 12, 12, 12, 12,
    10, 11, 12, 12, 13, 13, 12, 13,
    9, 10, 11, 12, 12, 12, 13, 13,
    10, 10, 11, 12, 12, 13, 13, 13
];

Tables.t11l = [
    2, 4, 6, 8, 9, 10, 9, 10,
    4, 5, 6, 8, 10, 10, 9, 10,
    6, 7, 8, 9, 10, 11, 10, 10,
    8, 8, 9, 11, 10, 12, 10, 11,
    9, 10, 10, 11, 11, 12, 11, 12,
    9, 10, 11, 12, 12, 13, 12, 13,
    9, 9, 9, 10, 11, 12, 12, 12,
    9, 9, 10, 11, 12, 12, 12, 12
];

Tables.t12l = [
    4, 4, 6, 8, 9, 10, 10, 10,
    4, 5, 6, 7, 9, 9, 10, 10,
    6, 6, 7, 8, 9, 10, 9, 10,
    7, 7, 8, 8, 9, 10, 10, 10,
    8, 8, 9, 9, 10, 10, 10, 11,
    9, 9, 10, 10, 10, 11, 10, 11,
    9, 9, 9, 10, 10, 11, 11, 12,
    10, 10, 10, 11, 11, 11, 11, 12
];

Tables.t13l = [
    1, 5, 7, 8, 9, 10, 10, 11, 10, 11, 12, 12, 13, 13, 14, 14,
    4, 6, 8, 9, 10, 10, 11, 11, 11, 11, 12, 12, 13, 14, 14, 14,
    7, 8, 9, 10, 11, 11, 12, 12, 11, 12, 12, 13, 13, 14, 15, 15,
    8, 9, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 15,
    9, 9, 11, 11, 12, 12, 13, 13, 12, 13, 13, 14, 14, 15, 15, 16,
    10, 10, 11, 12, 12, 12, 13, 13, 13, 13, 14, 13, 15, 15, 16, 16,
    10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16,
    11, 11, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 18, 18,
    10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 15, 15, 16, 17, 17,
    11, 11, 12, 12, 13, 13, 13, 15, 14, 15, 15, 16, 16, 16, 18, 17,
    11, 12, 12, 13, 13, 14, 14, 15, 14, 15, 16, 15, 16, 17, 18, 19,
    12, 12, 12, 13, 14, 14, 14, 14, 15, 15, 15, 16, 17, 17, 17, 18,
    12, 13, 13, 14, 14, 15, 14, 15, 16, 16, 17, 17, 17, 18, 18, 18,
    13, 13, 14, 15, 15, 15, 16, 16, 16, 16, 16, 17, 18, 17, 18, 18,
    14, 14, 14, 15, 15, 15, 17, 16, 16, 19, 17, 17, 17, 19, 18, 18,
    13, 14, 15, 16, 16, 16, 17, 16, 17, 17, 18, 18, 21, 20, 21, 18
];

Tables.t15l = [
    3, 5, 6, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 14,
    5, 5, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13,
    6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13,
    7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13,
    8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13,
    9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 13, 13, 13, 14,
    10, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14,
    10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14,
    10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 14, 14,
    10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14,
    11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 14,
    11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15,
    12, 12, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 15, 15,
    12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15,
    13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 14, 15,
    13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15
];

Tables.t16_5l = [
    1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 11,
    4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 11,
    7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 12,
    9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 13,
    10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 12,
    10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 13,
    11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 13,
    11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 13,
    11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 13,
    12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 14,
    12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 13,
    13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 14,
    13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 14,
    15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 14,
    14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 14,
    11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 12
];

Tables.t16l = [
    1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 10,
    4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 10,
    7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 11,
    9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 12,
    10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 11,
    10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 12,
    11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 12,
    11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 12,
    11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 12,
    12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 13,
    12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 12,
    13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 13,
    13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 13,
    15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 13,
    14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 13,
    10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10
];

Tables.t24l = [
    4, 5, 7, 8, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 13, 10,
    5, 6, 7, 8, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 10,
    7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 9,
    8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 9,
    9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 9,
    10, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 9,
    10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 9,
    11, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 10,
    11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 10,
    11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 10,
    12, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10,
    12, 12, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10,
    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 10,
    12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10,
    13, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 10,
    9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 6
];

Tables.t32l = [
    1 + 0, 4 + 1, 4 + 1, 5 + 2, 4 + 1, 6 + 2, 5 + 2, 6 + 3,
    4 + 1, 5 + 2, 5 + 2, 6 + 3, 5 + 2, 6 + 3, 6 + 3, 6 + 4
];

Tables.t33l = [
    4 + 0, 4 + 1, 4 + 1, 4 + 2, 4 + 1, 4 + 2, 4 + 2, 4 + 3,
    4 + 1, 4 + 2, 4 + 2, 4 + 3, 4 + 2, 4 + 3, 4 + 3, 4 + 4
];

Tables.ht = [
    /* xlen, linmax, table, hlen */
    new HuffCodeTab(0, 0, null, null),
    new HuffCodeTab(2, 0, Tables.t1HB, Tables.t1l),
    new HuffCodeTab(3, 0, Tables.t2HB, Tables.t2l),
    new HuffCodeTab(3, 0, Tables.t3HB, Tables.t3l),
    new HuffCodeTab(0, 0, null, null), /* Apparently not used */
    new HuffCodeTab(4, 0, Tables.t5HB, Tables.t5l),
    new HuffCodeTab(4, 0, Tables.t6HB, Tables.t6l),
    new HuffCodeTab(6, 0, Tables.t7HB, Tables.t7l),
    new HuffCodeTab(6, 0, Tables.t8HB, Tables.t8l),
    new HuffCodeTab(6, 0, Tables.t9HB, Tables.t9l),
    new HuffCodeTab(8, 0, Tables.t10HB, Tables.t10l),
    new HuffCodeTab(8, 0, Tables.t11HB, Tables.t11l),
    new HuffCodeTab(8, 0, Tables.t12HB, Tables.t12l),
    new HuffCodeTab(16, 0, Tables.t13HB, Tables.t13l),
    new HuffCodeTab(0, 0, null, Tables.t16_5l), /* Apparently not used */
    new HuffCodeTab(16, 0, Tables.t15HB, Tables.t15l),

    new HuffCodeTab(1, 1, Tables.t16HB, Tables.t16l),
    new HuffCodeTab(2, 3, Tables.t16HB, Tables.t16l),
    new HuffCodeTab(3, 7, Tables.t16HB, Tables.t16l),
    new HuffCodeTab(4, 15, Tables.t16HB, Tables.t16l),
    new HuffCodeTab(6, 63, Tables.t16HB, Tables.t16l),
    new HuffCodeTab(8, 255, Tables.t16HB, Tables.t16l),
    new HuffCodeTab(10, 1023, Tables.t16HB, Tables.t16l),
    new HuffCodeTab(13, 8191, Tables.t16HB, Tables.t16l),

    new HuffCodeTab(4, 15, Tables.t24HB, Tables.t24l),
    new HuffCodeTab(5, 31, Tables.t24HB, Tables.t24l),
    new HuffCodeTab(6, 63, Tables.t24HB, Tables.t24l),
    new HuffCodeTab(7, 127, Tables.t24HB, Tables.t24l),
    new HuffCodeTab(8, 255, Tables.t24HB, Tables.t24l),
    new HuffCodeTab(9, 511, Tables.t24HB, Tables.t24l),
    new HuffCodeTab(11, 2047, Tables.t24HB, Tables.t24l),
    new HuffCodeTab(13, 8191, Tables.t24HB, Tables.t24l),

    new HuffCodeTab(0, 0, Tables.t32HB, Tables.t32l),
    new HuffCodeTab(0, 0, Tables.t33HB, Tables.t33l),
];

/**
 * <CODE>
 *  for (i = 0; i < 16*16; i++) [
 *      largetbl[i] = ((ht[16].hlen[i]) << 16) + ht[24].hlen[i];
 *  ]
 * </CODE>
 *
 */
Tables.largetbl = [
    0x010004, 0x050005, 0x070007, 0x090008, 0x0a0009, 0x0a000a, 0x0b000a, 0x0b000b,
    0x0c000b, 0x0c000c, 0x0c000c, 0x0d000c, 0x0d000c, 0x0d000c, 0x0e000d, 0x0a000a,
    0x040005, 0x060006, 0x080007, 0x090008, 0x0a0009, 0x0b000a, 0x0b000a, 0x0b000b,
    0x0c000b, 0x0c000b, 0x0c000c, 0x0d000c, 0x0e000c, 0x0d000c, 0x0e000c, 0x0a000a,
    0x070007, 0x080007, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000b,
    0x0d000b, 0x0c000b, 0x0d000b, 0x0d000c, 0x0d000c, 0x0e000c, 0x0e000d, 0x0b0009,
    0x090008, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0c000b,
    0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0c0009,
    0x0a0009, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000a, 0x0d000b,
    0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000d, 0x0b0009,
    0x0a000a, 0x0a0009, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0e000b,
    0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0c0009,
    0x0b000a, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0d000b, 0x0d000b,
    0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000d, 0x0c0009,
    0x0b000b, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b,
    0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x11000d, 0x11000d, 0x0c000a,
    0x0b000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b,
    0x0f000b, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000d, 0x10000d, 0x0c000a,
    0x0c000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b, 0x0f000c,
    0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0f000d, 0x10000d, 0x0f000d, 0x0d000a,
    0x0c000c, 0x0d000b, 0x0c000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c,
    0x0f000c, 0x10000c, 0x10000c, 0x10000d, 0x11000d, 0x11000d, 0x10000d, 0x0c000a,
    0x0d000c, 0x0d000c, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x10000c,
    0x10000c, 0x10000c, 0x10000c, 0x10000d, 0x10000d, 0x0f000d, 0x10000d, 0x0d000a,
    0x0d000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c,
    0x0f000c, 0x11000c, 0x10000d, 0x10000d, 0x10000d, 0x10000d, 0x12000d, 0x0d000a,
    0x0f000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000c,
    0x10000d, 0x12000d, 0x11000d, 0x11000d, 0x11000d, 0x13000d, 0x11000d, 0x0d000a,
    0x0e000d, 0x0f000c, 0x0d000c, 0x0e000c, 0x10000c, 0x10000c, 0x0f000c, 0x10000d,
    0x10000d, 0x11000d, 0x12000d, 0x11000d, 0x13000d, 0x11000d, 0x10000d, 0x0d000a,
    0x0a0009, 0x0a0009, 0x0a0009, 0x0b0009, 0x0b0009, 0x0c0009, 0x0c0009, 0x0c0009,
    0x0d0009, 0x0d0009, 0x0d0009, 0x0d000a, 0x0d000a, 0x0d000a, 0x0d000a, 0x0a0006
];
/**
 * <CODE>
 *  for (i = 0; i < 3*3; i++) [
 *      table23[i] = ((ht[2].hlen[i]) << 16) + ht[3].hlen[i];
 *  ]
 * </CODE>
 *
 */
Tables.table23 = [
    0x010002, 0x040003, 0x070007,
    0x040004, 0x050004, 0x070007,
    0x060006, 0x070007, 0x080008
];

/**
 * <CODE>
 *  for (i = 0; i < 4*4; i++) [
 *       table56[i] = ((ht[5].hlen[i]) << 16) + ht[6].hlen[i];
 *   ]
 * </CODE>
 *
 */
Tables.table56 = [
    0x010003, 0x040004, 0x070006, 0x080008, 0x040004, 0x050004, 0x080006, 0x090007,
    0x070005, 0x080006, 0x090007, 0x0a0008, 0x080007, 0x080007, 0x090008, 0x0a0009
];

Tables.bitrate_table = [
    [0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1], /* MPEG 2 */
    [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1], /* MPEG 1 */
    [0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1], /* MPEG 2.5 */
];

/**
 * MPEG 2, MPEG 1, MPEG 2.5.
 */
Tables.samplerate_table = [
    [22050, 24000, 16000, -1],
    [44100, 48000, 32000, -1],
    [11025, 12000, 8000, -1],
];

/**
 * This is the scfsi_band table from 2.4.2.7 of the IS.
 */
Tables.scfsi_band = [0, 6, 11, 16, 21];

module.exports = Tables;


/***/ }),

/***/ "./node_modules/lamejs/src/js/Takehiro.js":
/*!************************************************!*\
  !*** ./node_modules/lamejs/src/js/Takehiro.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/*
 *	MP3 huffman table selecting and bit counting
 *
 *	Copyright (c) 1999-2005 Takehiro TOMINAGA
 *	Copyright (c) 2002-2005 Gabriel Bouvigne
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */

/* $Id: Takehiro.java,v 1.26 2011/05/24 20:48:06 kenchis Exp $ */

//package mp3;

//import java.util.Arrays;
var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");
var Tables = __webpack_require__(/*! ./Tables.js */ "./node_modules/lamejs/src/js/Tables.js");
var GrInfo = __webpack_require__(/*! ./GrInfo.js */ "./node_modules/lamejs/src/js/GrInfo.js");
var QuantizePVT = __webpack_require__(/*! ./QuantizePVT.js */ "./node_modules/lamejs/src/js/QuantizePVT.js");


function Takehiro() {

    var qupvt = null;
    this.qupvt = null;

    this.setModules = function (_qupvt) {
        this.qupvt = _qupvt;
        qupvt = _qupvt;
    }

    function Bits(b) {
        this.bits = 0 | b;
    }

    var subdv_table = [[0, 0], /* 0 bands */
        [0, 0], /* 1 bands */
        [0, 0], /* 2 bands */
        [0, 0], /* 3 bands */
        [0, 0], /* 4 bands */
        [0, 1], /* 5 bands */
        [1, 1], /* 6 bands */
        [1, 1], /* 7 bands */
        [1, 2], /* 8 bands */
        [2, 2], /* 9 bands */
        [2, 3], /* 10 bands */
        [2, 3], /* 11 bands */
        [3, 4], /* 12 bands */
        [3, 4], /* 13 bands */
        [3, 4], /* 14 bands */
        [4, 5], /* 15 bands */
        [4, 5], /* 16 bands */
        [4, 6], /* 17 bands */
        [5, 6], /* 18 bands */
        [5, 6], /* 19 bands */
        [5, 7], /* 20 bands */
        [6, 7], /* 21 bands */
        [6, 7], /* 22 bands */
    ];

    /**
     * nonlinear quantization of xr More accurate formula than the ISO formula.
     * Takes into account the fact that we are quantizing xr . ix, but we want
     * ix^4/3 to be as close as possible to x^4/3. (taking the nearest int would
     * mean ix is as close as possible to xr, which is different.)
     *
     * From Segher Boessenkool <segher@eastsite.nl> 11/1999
     *
     * 09/2000: ASM code removed in favor of IEEE754 hack by Takehiro Tominaga.
     * If you need the ASM code, check CVS circa Aug 2000.
     *
     * 01/2004: Optimizations by Gabriel Bouvigne
     */
    function quantize_lines_xrpow_01(l, istep, xr, xrPos, ix, ixPos) {
        var compareval0 = (1.0 - 0.4054) / istep;

        assert(l > 0);
        l = l >> 1;
        while ((l--) != 0) {
            ix[ixPos++] = (compareval0 > xr[xrPos++]) ? 0 : 1;
            ix[ixPos++] = (compareval0 > xr[xrPos++]) ? 0 : 1;
        }
    }

    /**
     * XRPOW_FTOI is a macro to convert floats to ints.<BR>
     * if XRPOW_FTOI(x) = nearest_int(x), then QUANTFAC(x)=adj43asm[x]<BR>
     * ROUNDFAC= -0.0946<BR>
     *
     * if XRPOW_FTOI(x) = floor(x), then QUANTFAC(x)=asj43[x]<BR>
     * ROUNDFAC=0.4054<BR>
     *
     * Note: using floor() or 0| is extremely slow. On machines where the
     * TAKEHIRO_IEEE754_HACK code above does not work, it is worthwile to write
     * some ASM for XRPOW_FTOI().
     */
    function quantize_lines_xrpow(l, istep, xr, xrPos, ix, ixPos) {
        assert(l > 0);

        l = l >> 1;
        var remaining = l % 2;
        l = l >> 1;
        while (l-- != 0) {
            var x0, x1, x2, x3;
            var rx0, rx1, rx2, rx3;

            x0 = xr[xrPos++] * istep;
            x1 = xr[xrPos++] * istep;
            rx0 = 0 | x0;
            x2 = xr[xrPos++] * istep;
            rx1 = 0 | x1;
            x3 = xr[xrPos++] * istep;
            rx2 = 0 | x2;
            x0 += qupvt.adj43[rx0];
            rx3 = 0 | x3;
            x1 += qupvt.adj43[rx1];
            ix[ixPos++] = 0 | x0;
            x2 += qupvt.adj43[rx2];
            ix[ixPos++] = 0 | x1;
            x3 += qupvt.adj43[rx3];
            ix[ixPos++] = 0 | x2;
            ix[ixPos++] = 0 | x3;
        }
        if (remaining != 0) {
            var x0, x1;
            var rx0, rx1;

            x0 = xr[xrPos++] * istep;
            x1 = xr[xrPos++] * istep;
            rx0 = 0 | x0;
            rx1 = 0 | x1;
            x0 += qupvt.adj43[rx0];
            x1 += qupvt.adj43[rx1];
            ix[ixPos++] = 0 | x0;
            ix[ixPos++] = 0 | x1;
        }
    }

    /**
     * Quantization function This function will select which lines to quantize
     * and call the proper quantization function
     */
    function quantize_xrpow(xp, pi, istep, codInfo, prevNoise) {
        /* quantize on xr^(3/4) instead of xr */
        var sfb;
        var sfbmax;
        var j = 0;
        var prev_data_use;
        var accumulate = 0;
        var accumulate01 = 0;
        var xpPos = 0;
        var iData = pi;
        var iDataPos = 0;
        var acc_iData = iData;
        var acc_iDataPos = 0;
        var acc_xp = xp;
        var acc_xpPos = 0;

        /*
         * Reusing previously computed data does not seems to work if global
         * gain is changed. Finding why it behaves this way would allow to use a
         * cache of previously computed values (let's 10 cached values per sfb)
         * that would probably provide a noticeable speedup
         */
        prev_data_use = (prevNoise != null && (codInfo.global_gain == prevNoise.global_gain));

        if (codInfo.block_type == Encoder.SHORT_TYPE)
            sfbmax = 38;
        else
            sfbmax = 21;

        for (sfb = 0; sfb <= sfbmax; sfb++) {
            var step = -1;

            if (prev_data_use || codInfo.block_type == Encoder.NORM_TYPE) {
                step = codInfo.global_gain
                    - ((codInfo.scalefac[sfb] + (codInfo.preflag != 0 ? qupvt.pretab[sfb]
                        : 0)) << (codInfo.scalefac_scale + 1))
                    - codInfo.subblock_gain[codInfo.window[sfb]] * 8;
            }
            assert(codInfo.width[sfb] >= 0);
            if (prev_data_use && (prevNoise.step[sfb] == step)) {
                /*
                 * do not recompute this part, but compute accumulated lines
                 */
                if (accumulate != 0) {
                    quantize_lines_xrpow(accumulate, istep, acc_xp, acc_xpPos,
                        acc_iData, acc_iDataPos);
                    accumulate = 0;
                }
                if (accumulate01 != 0) {
                    quantize_lines_xrpow_01(accumulate01, istep, acc_xp,
                        acc_xpPos, acc_iData, acc_iDataPos);
                    accumulate01 = 0;
                }
            } else { /* should compute this part */
                var l = codInfo.width[sfb];

                if ((j + codInfo.width[sfb]) > codInfo.max_nonzero_coeff) {
                    /* do not compute upper zero part */
                    var usefullsize;
                    usefullsize = codInfo.max_nonzero_coeff - j + 1;
                    Arrays.fill(pi, codInfo.max_nonzero_coeff, 576, 0);
                    l = usefullsize;

                    if (l < 0) {
                        l = 0;
                    }

                    /* no need to compute higher sfb values */
                    sfb = sfbmax + 1;
                }

                /* accumulate lines to quantize */
                if (0 == accumulate && 0 == accumulate01) {
                    acc_iData = iData;
                    acc_iDataPos = iDataPos;
                    acc_xp = xp;
                    acc_xpPos = xpPos;
                }
                if (prevNoise != null && prevNoise.sfb_count1 > 0
                    && sfb >= prevNoise.sfb_count1
                    && prevNoise.step[sfb] > 0
                    && step >= prevNoise.step[sfb]) {

                    if (accumulate != 0) {
                        quantize_lines_xrpow(accumulate, istep, acc_xp,
                            acc_xpPos, acc_iData, acc_iDataPos);
                        accumulate = 0;
                        acc_iData = iData;
                        acc_iDataPos = iDataPos;
                        acc_xp = xp;
                        acc_xpPos = xpPos;
                    }
                    accumulate01 += l;
                } else {
                    if (accumulate01 != 0) {
                        quantize_lines_xrpow_01(accumulate01, istep, acc_xp,
                            acc_xpPos, acc_iData, acc_iDataPos);
                        accumulate01 = 0;
                        acc_iData = iData;
                        acc_iDataPos = iDataPos;
                        acc_xp = xp;
                        acc_xpPos = xpPos;
                    }
                    accumulate += l;
                }

                if (l <= 0) {
                    /*
                     * rh: 20040215 may happen due to "prev_data_use"
                     * optimization
                     */
                    if (accumulate01 != 0) {
                        quantize_lines_xrpow_01(accumulate01, istep, acc_xp,
                            acc_xpPos, acc_iData, acc_iDataPos);
                        accumulate01 = 0;
                    }
                    if (accumulate != 0) {
                        quantize_lines_xrpow(accumulate, istep, acc_xp,
                            acc_xpPos, acc_iData, acc_iDataPos);
                        accumulate = 0;
                    }

                    break;
                    /* ends for-loop */
                }
            }
            if (sfb <= sfbmax) {
                iDataPos += codInfo.width[sfb];
                xpPos += codInfo.width[sfb];
                j += codInfo.width[sfb];
            }
        }
        if (accumulate != 0) { /* last data part */
            quantize_lines_xrpow(accumulate, istep, acc_xp, acc_xpPos,
                acc_iData, acc_iDataPos);
            accumulate = 0;
        }
        if (accumulate01 != 0) { /* last data part */
            quantize_lines_xrpow_01(accumulate01, istep, acc_xp, acc_xpPos,
                acc_iData, acc_iDataPos);
            accumulate01 = 0;
        }

    }

    /**
     * ix_max
     */
    function ix_max(ix, ixPos, endPos) {
        var max1 = 0, max2 = 0;

        do {
            var x1 = ix[ixPos++];
            var x2 = ix[ixPos++];
            if (max1 < x1)
                max1 = x1;

            if (max2 < x2)
                max2 = x2;
        } while (ixPos < endPos);
        if (max1 < max2)
            max1 = max2;
        return max1;
    }

    function count_bit_ESC(ix, ixPos, end, t1, t2, s) {
        /* ESC-table is used */
        var linbits = Tables.ht[t1].xlen * 65536 + Tables.ht[t2].xlen;
        var sum = 0, sum2;

        do {
            var x = ix[ixPos++];
            var y = ix[ixPos++];

            if (x != 0) {
                if (x > 14) {
                    x = 15;
                    sum += linbits;
                }
                x *= 16;
            }

            if (y != 0) {
                if (y > 14) {
                    y = 15;
                    sum += linbits;
                }
                x += y;
            }

            sum += Tables.largetbl[x];
        } while (ixPos < end);

        sum2 = sum & 0xffff;
        sum >>= 16;

        if (sum > sum2) {
            sum = sum2;
            t1 = t2;
        }

        s.bits += sum;
        return t1;
    }

    function count_bit_noESC(ix, ixPos, end, s) {
        /* No ESC-words */
        var sum1 = 0;
        var hlen1 = Tables.ht[1].hlen;

        do {
            var x = ix[ixPos + 0] * 2 + ix[ixPos + 1];
            ixPos += 2;
            sum1 += hlen1[x];
        } while (ixPos < end);

        s.bits += sum1;
        return 1;
    }

    function count_bit_noESC_from2(ix, ixPos, end, t1, s) {
        /* No ESC-words */
        var sum = 0, sum2;
        var xlen = Tables.ht[t1].xlen;
        var hlen;
        if (t1 == 2)
            hlen = Tables.table23;
        else
            hlen = Tables.table56;

        do {
            var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];
            ixPos += 2;
            sum += hlen[x];
        } while (ixPos < end);

        sum2 = sum & 0xffff;
        sum >>= 16;

        if (sum > sum2) {
            sum = sum2;
            t1++;
        }

        s.bits += sum;
        return t1;
    }

    function count_bit_noESC_from3(ix, ixPos, end, t1, s) {
        /* No ESC-words */
        var sum1 = 0;
        var sum2 = 0;
        var sum3 = 0;
        var xlen = Tables.ht[t1].xlen;
        var hlen1 = Tables.ht[t1].hlen;
        var hlen2 = Tables.ht[t1 + 1].hlen;
        var hlen3 = Tables.ht[t1 + 2].hlen;

        do {
            var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];
            ixPos += 2;
            sum1 += hlen1[x];
            sum2 += hlen2[x];
            sum3 += hlen3[x];
        } while (ixPos < end);
        var t = t1;
        if (sum1 > sum2) {
            sum1 = sum2;
            t++;
        }
        if (sum1 > sum3) {
            sum1 = sum3;
            t = t1 + 2;
        }
        s.bits += sum1;

        return t;
    }

    /*************************************************************************/
    /* choose table */
    /*************************************************************************/

    var huf_tbl_noESC = [1, 2, 5, 7, 7, 10, 10, 13, 13,
        13, 13, 13, 13, 13, 13];

    /**
     * Choose the Huffman table that will encode ix[begin..end] with the fewest
     * bits.
     *
     * Note: This code contains knowledge about the sizes and characteristics of
     * the Huffman tables as defined in the IS (Table B.7), and will not work
     * with any arbitrary tables.
     */
    function choose_table(ix, ixPos, endPos, s) {
        var max = ix_max(ix, ixPos, endPos);

        switch (max) {
            case 0:
                return max;

            case 1:
                return count_bit_noESC(ix, ixPos, endPos, s);

            case 2:
            case 3:
                return count_bit_noESC_from2(ix, ixPos, endPos,
                    huf_tbl_noESC[max - 1], s);

            case 4:
            case 5:
            case 6:
            case 7:
            case 8:
            case 9:
            case 10:
            case 11:
            case 12:
            case 13:
            case 14:
            case 15:
                return count_bit_noESC_from3(ix, ixPos, endPos,
                    huf_tbl_noESC[max - 1], s);

            default:
                /* try tables with linbits */
                if (max > QuantizePVT.IXMAX_VAL) {
                    s.bits = QuantizePVT.LARGE_BITS;
                    return -1;
                }
                max -= 15;
                var choice2;
                for (choice2 = 24; choice2 < 32; choice2++) {
                    if (Tables.ht[choice2].linmax >= max) {
                        break;
                    }
                }
                var choice;
                for (choice = choice2 - 8; choice < 24; choice++) {
                    if (Tables.ht[choice].linmax >= max) {
                        break;
                    }
                }
                return count_bit_ESC(ix, ixPos, endPos, choice, choice2, s);
        }
    }

    /**
     * count_bit
     */
    this.noquant_count_bits = function (gfc, gi, prev_noise) {
        var ix = gi.l3_enc;
        var i = Math.min(576, ((gi.max_nonzero_coeff + 2) >> 1) << 1);

        if (prev_noise != null)
            prev_noise.sfb_count1 = 0;

        /* Determine count1 region */
        for (; i > 1; i -= 2)
            if ((ix[i - 1] | ix[i - 2]) != 0)
                break;
        gi.count1 = i;

        /* Determines the number of bits to encode the quadruples. */
        var a1 = 0;
        var a2 = 0;
        for (; i > 3; i -= 4) {
            var p;
            /* hack to check if all values <= 1 */
            //throw "TODO: HACK         if ((((long) ix[i - 1] | (long) ix[i - 2] | (long) ix[i - 3] | (long) ix[i - 4]) & 0xffffffffL) > 1L        "
            //if (true) {
            if (((ix[i - 1] | ix[i - 2] | ix[i - 3] | ix[i - 4]) & 0x7fffffff) > 1) {
                break;
            }
            p = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2 + ix[i - 1];
            a1 += Tables.t32l[p];
            a2 += Tables.t33l[p];
        }
        var bits = a1;
        gi.count1table_select = 0;
        if (a1 > a2) {
            bits = a2;
            gi.count1table_select = 1;
        }

        gi.count1bits = bits;
        gi.big_values = i;
        if (i == 0)
            return bits;

        if (gi.block_type == Encoder.SHORT_TYPE) {
            a1 = 3 * gfc.scalefac_band.s[3];
            if (a1 > gi.big_values)
                a1 = gi.big_values;
            a2 = gi.big_values;

        } else if (gi.block_type == Encoder.NORM_TYPE) {
            assert(i <= 576);
            /* bv_scf has 576 entries (0..575) */
            a1 = gi.region0_count = gfc.bv_scf[i - 2];
            a2 = gi.region1_count = gfc.bv_scf[i - 1];

            assert(a1 + a2 + 2 < Encoder.SBPSY_l);
            a2 = gfc.scalefac_band.l[a1 + a2 + 2];
            a1 = gfc.scalefac_band.l[a1 + 1];
            if (a2 < i) {
                var bi = new Bits(bits);
                gi.table_select[2] = choose_table(ix, a2, i, bi);
                bits = bi.bits;
            }
        } else {
            gi.region0_count = 7;
            /* gi.region1_count = SBPSY_l - 7 - 1; */
            gi.region1_count = Encoder.SBMAX_l - 1 - 7 - 1;
            a1 = gfc.scalefac_band.l[7 + 1];
            a2 = i;
            if (a1 > a2) {
                a1 = a2;
            }
        }

        /* have to allow for the case when bigvalues < region0 < region1 */
        /* (and region0, region1 are ignored) */
        a1 = Math.min(a1, i);
        a2 = Math.min(a2, i);

        assert(a1 >= 0);
        assert(a2 >= 0);

        /* Count the number of bits necessary to code the bigvalues region. */
        if (0 < a1) {
            var bi = new Bits(bits);
            gi.table_select[0] = choose_table(ix, 0, a1, bi);
            bits = bi.bits;
        }
        if (a1 < a2) {
            var bi = new Bits(bits);
            gi.table_select[1] = choose_table(ix, a1, a2, bi);
            bits = bi.bits;
        }
        if (gfc.use_best_huffman == 2) {
            gi.part2_3_length = bits;
            best_huffman_divide(gfc, gi);
            bits = gi.part2_3_length;
        }

        if (prev_noise != null) {
            if (gi.block_type == Encoder.NORM_TYPE) {
                var sfb = 0;
                while (gfc.scalefac_band.l[sfb] < gi.big_values) {
                    sfb++;
                }
                prev_noise.sfb_count1 = sfb;
            }
        }

        return bits;
    }

    this.count_bits = function (gfc, xr, gi, prev_noise) {
        var ix = gi.l3_enc;

        /* since quantize_xrpow uses table lookup, we need to check this first: */
        var w = (QuantizePVT.IXMAX_VAL) / qupvt.IPOW20(gi.global_gain);

        if (gi.xrpow_max > w)
            return QuantizePVT.LARGE_BITS;

        quantize_xrpow(xr, ix, qupvt.IPOW20(gi.global_gain), gi, prev_noise);

        if ((gfc.substep_shaping & 2) != 0) {
            var j = 0;
            /* 0.634521682242439 = 0.5946*2**(.5*0.1875) */
            var gain = gi.global_gain + gi.scalefac_scale;
            var roundfac = 0.634521682242439 / qupvt.IPOW20(gain);
            for (var sfb = 0; sfb < gi.sfbmax; sfb++) {
                var width = gi.width[sfb];
                assert(width >= 0);
                if (0 == gfc.pseudohalf[sfb]) {
                    j += width;
                } else {
                    var k;
                    for (k = j, j += width; k < j; ++k) {
                        ix[k] = (xr[k] >= roundfac) ? ix[k] : 0;
                    }
                }
            }
        }
        return this.noquant_count_bits(gfc, gi, prev_noise);
    }

    /**
     * re-calculate the best scalefac_compress using scfsi the saved bits are
     * kept in the bit reservoir.
     */
    function recalc_divide_init(gfc, cod_info, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {
        var bigv = cod_info.big_values;

        for (var r0 = 0; r0 <= 7 + 15; r0++) {
            r01_bits[r0] = QuantizePVT.LARGE_BITS;
        }

        for (var r0 = 0; r0 < 16; r0++) {
            var a1 = gfc.scalefac_band.l[r0 + 1];
            if (a1 >= bigv)
                break;
            var r0bits = 0;
            var bi = new Bits(r0bits);
            var r0t = choose_table(ix, 0, a1, bi);
            r0bits = bi.bits;

            for (var r1 = 0; r1 < 8; r1++) {
                var a2 = gfc.scalefac_band.l[r0 + r1 + 2];
                if (a2 >= bigv)
                    break;
                var bits = r0bits;
                bi = new Bits(bits);
                var r1t = choose_table(ix, a1, a2, bi);
                bits = bi.bits;
                if (r01_bits[r0 + r1] > bits) {
                    r01_bits[r0 + r1] = bits;
                    r01_div[r0 + r1] = r0;
                    r0_tbl[r0 + r1] = r0t;
                    r1_tbl[r0 + r1] = r1t;
                }
            }
        }
    }

    function recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {
        var bigv = cod_info2.big_values;

        for (var r2 = 2; r2 < Encoder.SBMAX_l + 1; r2++) {
            var a2 = gfc.scalefac_band.l[r2];
            if (a2 >= bigv)
                break;
            var bits = r01_bits[r2 - 2] + cod_info2.count1bits;
            if (gi.part2_3_length <= bits)
                break;

            var bi = new Bits(bits);
            var r2t = choose_table(ix, a2, bigv, bi);
            bits = bi.bits;
            if (gi.part2_3_length <= bits)
                continue;

            gi.assign(cod_info2);
            gi.part2_3_length = bits;
            gi.region0_count = r01_div[r2 - 2];
            gi.region1_count = r2 - 2 - r01_div[r2 - 2];
            gi.table_select[0] = r0_tbl[r2 - 2];
            gi.table_select[1] = r1_tbl[r2 - 2];
            gi.table_select[2] = r2t;
        }
    }

    this.best_huffman_divide = function (gfc, gi) {
        var cod_info2 = new GrInfo();
        var ix = gi.l3_enc;
        var r01_bits = new_int(7 + 15 + 1);
        var r01_div = new_int(7 + 15 + 1);
        var r0_tbl = new_int(7 + 15 + 1);
        var r1_tbl = new_int(7 + 15 + 1);

        /* SHORT BLOCK stuff fails for MPEG2 */
        if (gi.block_type == Encoder.SHORT_TYPE && gfc.mode_gr == 1)
            return;

        cod_info2.assign(gi);
        if (gi.block_type == Encoder.NORM_TYPE) {
            recalc_divide_init(gfc, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl);
            recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div,
                r0_tbl, r1_tbl);
        }
        var i = cod_info2.big_values;
        if (i == 0 || (ix[i - 2] | ix[i - 1]) > 1)
            return;

        i = gi.count1 + 2;
        if (i > 576)
            return;

        /* Determines the number of bits to encode the quadruples. */
        cod_info2.assign(gi);
        cod_info2.count1 = i;
        var a1 = 0;
        var a2 = 0;

        assert(i <= 576);

        for (; i > cod_info2.big_values; i -= 4) {
            var p = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2
                + ix[i - 1];
            a1 += Tables.t32l[p];
            a2 += Tables.t33l[p];
        }
        cod_info2.big_values = i;

        cod_info2.count1table_select = 0;
        if (a1 > a2) {
            a1 = a2;
            cod_info2.count1table_select = 1;
        }

        cod_info2.count1bits = a1;

        if (cod_info2.block_type == Encoder.NORM_TYPE)
            recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div,
                r0_tbl, r1_tbl);
        else {
            /* Count the number of bits necessary to code the bigvalues region. */
            cod_info2.part2_3_length = a1;
            a1 = gfc.scalefac_band.l[7 + 1];
            if (a1 > i) {
                a1 = i;
            }
            if (a1 > 0) {
                var bi = new Bits(cod_info2.part2_3_length);
                cod_info2.table_select[0] = choose_table(ix, 0, a1, bi);
                cod_info2.part2_3_length = bi.bits;
            }
            if (i > a1) {
                var bi = new Bits(cod_info2.part2_3_length);
                cod_info2.table_select[1] = choose_table(ix, a1, i, bi);
                cod_info2.part2_3_length = bi.bits;
            }
            if (gi.part2_3_length > cod_info2.part2_3_length)
                gi.assign(cod_info2);
        }
    }

    var slen1_n = [1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 4, 8, 8, 8, 16, 16];
    var slen2_n = [1, 2, 4, 8, 1, 2, 4, 8, 2, 4, 8, 2, 4, 8, 4, 8];
    var slen1_tab = [0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4];
    var slen2_tab = [0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3];
    Takehiro.slen1_tab = slen1_tab;
    Takehiro.slen2_tab = slen2_tab;

    function scfsi_calc(ch, l3_side) {
        var sfb;
        var gi = l3_side.tt[1][ch];
        var g0 = l3_side.tt[0][ch];

        for (var i = 0; i < Tables.scfsi_band.length - 1; i++) {
            for (sfb = Tables.scfsi_band[i]; sfb < Tables.scfsi_band[i + 1]; sfb++) {
                if (g0.scalefac[sfb] != gi.scalefac[sfb]
                    && gi.scalefac[sfb] >= 0)
                    break;
            }
            if (sfb == Tables.scfsi_band[i + 1]) {
                for (sfb = Tables.scfsi_band[i]; sfb < Tables.scfsi_band[i + 1]; sfb++) {
                    gi.scalefac[sfb] = -1;
                }
                l3_side.scfsi[ch][i] = 1;
            }
        }
        var s1 = 0;
        var c1 = 0;
        for (sfb = 0; sfb < 11; sfb++) {
            if (gi.scalefac[sfb] == -1)
                continue;
            c1++;
            if (s1 < gi.scalefac[sfb])
                s1 = gi.scalefac[sfb];
        }
        var s2 = 0;
        var c2 = 0;
        for (; sfb < Encoder.SBPSY_l; sfb++) {
            if (gi.scalefac[sfb] == -1)
                continue;
            c2++;
            if (s2 < gi.scalefac[sfb])
                s2 = gi.scalefac[sfb];
        }

        for (var i = 0; i < 16; i++) {
            if (s1 < slen1_n[i] && s2 < slen2_n[i]) {
                var c = slen1_tab[i] * c1 + slen2_tab[i] * c2;
                if (gi.part2_length > c) {
                    gi.part2_length = c;
                    gi.scalefac_compress = i;
                }
            }
        }
    }

    /**
     * Find the optimal way to store the scalefactors. Only call this routine
     * after final scalefactors have been chosen and the channel/granule will
     * not be re-encoded.
     */
    this.best_scalefac_store = function (gfc, gr, ch, l3_side) {
        /* use scalefac_scale if we can */
        var gi = l3_side.tt[gr][ch];
        var sfb, i, j, l;
        var recalc = 0;

        /*
         * remove scalefacs from bands with ix=0. This idea comes from the AAC
         * ISO docs. added mt 3/00
         */
        /* check if l3_enc=0 */
        j = 0;
        for (sfb = 0; sfb < gi.sfbmax; sfb++) {
            var width = gi.width[sfb];
            assert(width >= 0);
            j += width;
            for (l = -width; l < 0; l++) {
                if (gi.l3_enc[l + j] != 0)
                    break;
            }
            if (l == 0)
                gi.scalefac[sfb] = recalc = -2;
            /* anything goes. */
            /*
             * only best_scalefac_store and calc_scfsi know--and only they
             * should know--about the magic number -2.
             */
        }

        if (0 == gi.scalefac_scale && 0 == gi.preflag) {
            var s = 0;
            for (sfb = 0; sfb < gi.sfbmax; sfb++)
                if (gi.scalefac[sfb] > 0)
                    s |= gi.scalefac[sfb];

            if (0 == (s & 1) && s != 0) {
                for (sfb = 0; sfb < gi.sfbmax; sfb++)
                    if (gi.scalefac[sfb] > 0)
                        gi.scalefac[sfb] >>= 1;

                gi.scalefac_scale = recalc = 1;
            }
        }

        if (0 == gi.preflag && gi.block_type != Encoder.SHORT_TYPE
            && gfc.mode_gr == 2) {
            for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)
                if (gi.scalefac[sfb] < qupvt.pretab[sfb]
                    && gi.scalefac[sfb] != -2)
                    break;
            if (sfb == Encoder.SBPSY_l) {
                for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)
                    if (gi.scalefac[sfb] > 0)
                        gi.scalefac[sfb] -= qupvt.pretab[sfb];

                gi.preflag = recalc = 1;
            }
        }

        for (i = 0; i < 4; i++)
            l3_side.scfsi[ch][i] = 0;

        if (gfc.mode_gr == 2 && gr == 1
            && l3_side.tt[0][ch].block_type != Encoder.SHORT_TYPE
            && l3_side.tt[1][ch].block_type != Encoder.SHORT_TYPE) {
            scfsi_calc(ch, l3_side);
            recalc = 0;
        }
        for (sfb = 0; sfb < gi.sfbmax; sfb++) {
            if (gi.scalefac[sfb] == -2) {
                gi.scalefac[sfb] = 0;
                /* if anything goes, then 0 is a good choice */
            }
        }
        if (recalc != 0) {
            if (gfc.mode_gr == 2) {
                this.scale_bitcount(gi);
            } else {
                this.scale_bitcount_lsf(gfc, gi);
            }
        }
    }

    function all_scalefactors_not_negative(scalefac, n) {
        for (var i = 0; i < n; ++i) {
            if (scalefac[i] < 0)
                return false;
        }
        return true;
    }

    /**
     * number of bits used to encode scalefacs.
     *
     * 18*slen1_tab[i] + 18*slen2_tab[i]
     */
    var scale_short = [0, 18, 36, 54, 54, 36, 54, 72,
        54, 72, 90, 72, 90, 108, 108, 126];

    /**
     * number of bits used to encode scalefacs.
     *
     * 17*slen1_tab[i] + 18*slen2_tab[i]
     */
    var scale_mixed = [0, 18, 36, 54, 51, 35, 53, 71,
        52, 70, 88, 69, 87, 105, 104, 122];

    /**
     * number of bits used to encode scalefacs.
     *
     * 11*slen1_tab[i] + 10*slen2_tab[i]
     */
    var scale_long = [0, 10, 20, 30, 33, 21, 31, 41, 32, 42,
        52, 43, 53, 63, 64, 74];

    /**
     * Also calculates the number of bits necessary to code the scalefactors.
     */
    this.scale_bitcount = function (cod_info) {
        var k, sfb, max_slen1 = 0, max_slen2 = 0;

        /* maximum values */
        var tab;
        var scalefac = cod_info.scalefac;

        assert(all_scalefactors_not_negative(scalefac, cod_info.sfbmax));

        if (cod_info.block_type == Encoder.SHORT_TYPE) {
            tab = scale_short;
            if (cod_info.mixed_block_flag != 0)
                tab = scale_mixed;
        } else { /* block_type == 1,2,or 3 */
            tab = scale_long;
            if (0 == cod_info.preflag) {
                for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)
                    if (scalefac[sfb] < qupvt.pretab[sfb])
                        break;

                if (sfb == Encoder.SBPSY_l) {
                    cod_info.preflag = 1;
                    for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)
                        scalefac[sfb] -= qupvt.pretab[sfb];
                }
            }
        }

        for (sfb = 0; sfb < cod_info.sfbdivide; sfb++)
            if (max_slen1 < scalefac[sfb])
                max_slen1 = scalefac[sfb];

        for (; sfb < cod_info.sfbmax; sfb++)
            if (max_slen2 < scalefac[sfb])
                max_slen2 = scalefac[sfb];

        /*
         * from Takehiro TOMINAGA <tominaga@isoternet.org> 10/99 loop over *all*
         * posible values of scalefac_compress to find the one which uses the
         * smallest number of bits. ISO would stop at first valid index
         */
        cod_info.part2_length = QuantizePVT.LARGE_BITS;
        for (k = 0; k < 16; k++) {
            if (max_slen1 < slen1_n[k] && max_slen2 < slen2_n[k]
                && cod_info.part2_length > tab[k]) {
                cod_info.part2_length = tab[k];
                cod_info.scalefac_compress = k;
            }
        }
        return cod_info.part2_length == QuantizePVT.LARGE_BITS;
    }

    /**
     * table of largest scalefactor values for MPEG2
     */
    var max_range_sfac_tab = [[15, 15, 7, 7],
        [15, 15, 7, 0], [7, 3, 0, 0], [15, 31, 31, 0],
        [7, 7, 7, 0], [3, 3, 0, 0]];

    /**
     * Also counts the number of bits to encode the scalefacs but for MPEG 2
     * Lower sampling frequencies (24, 22.05 and 16 kHz.)
     *
     * This is reverse-engineered from section 2.4.3.2 of the MPEG2 IS,
     * "Audio Decoding Layer III"
     */
    this.scale_bitcount_lsf = function (gfc, cod_info) {
        var table_number, row_in_table, partition, nr_sfb, window;
        var over;
        var i, sfb;
        var max_sfac = new_int(4);
//var partition_table;
        var scalefac = cod_info.scalefac;

        /*
         * Set partition table. Note that should try to use table one, but do
         * not yet...
         */
        if (cod_info.preflag != 0)
            table_number = 2;
        else
            table_number = 0;

        for (i = 0; i < 4; i++)
            max_sfac[i] = 0;

        if (cod_info.block_type == Encoder.SHORT_TYPE) {
            row_in_table = 1;
            var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];
            for (sfb = 0, partition = 0; partition < 4; partition++) {
                nr_sfb = partition_table[partition] / 3;
                for (i = 0; i < nr_sfb; i++, sfb++)
                    for (window = 0; window < 3; window++)
                        if (scalefac[sfb * 3 + window] > max_sfac[partition])
                            max_sfac[partition] = scalefac[sfb * 3 + window];
            }
        } else {
            row_in_table = 0;
            var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];
            for (sfb = 0, partition = 0; partition < 4; partition++) {
                nr_sfb = partition_table[partition];
                for (i = 0; i < nr_sfb; i++, sfb++)
                    if (scalefac[sfb] > max_sfac[partition])
                        max_sfac[partition] = scalefac[sfb];
            }
        }

        for (over = false, partition = 0; partition < 4; partition++) {
            if (max_sfac[partition] > max_range_sfac_tab[table_number][partition])
                over = true;
        }
        if (!over) {
            var slen1, slen2, slen3, slen4;

            cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];
            for (partition = 0; partition < 4; partition++)
                cod_info.slen[partition] = log2tab[max_sfac[partition]];

            /* set scalefac_compress */
            slen1 = cod_info.slen[0];
            slen2 = cod_info.slen[1];
            slen3 = cod_info.slen[2];
            slen4 = cod_info.slen[3];

            switch (table_number) {
                case 0:
                    cod_info.scalefac_compress = (((slen1 * 5) + slen2) << 4)
                        + (slen3 << 2) + slen4;
                    break;

                case 1:
                    cod_info.scalefac_compress = 400 + (((slen1 * 5) + slen2) << 2)
                        + slen3;
                    break;

                case 2:
                    cod_info.scalefac_compress = 500 + (slen1 * 3) + slen2;
                    break;

                default:
                    System.err.printf("intensity stereo not implemented yet\n");
                    break;
            }
        }
        if (!over) {
            assert(cod_info.sfb_partition_table != null);
            cod_info.part2_length = 0;
            for (partition = 0; partition < 4; partition++)
                cod_info.part2_length += cod_info.slen[partition]
                    * cod_info.sfb_partition_table[partition];
        }
        return over;
    }

    /*
     * Since no bands have been over-amplified, we can set scalefac_compress and
     * slen[] for the formatter
     */
    var log2tab = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4,
        4, 4, 4, 4];

    this.huffman_init = function (gfc) {
        for (var i = 2; i <= 576; i += 2) {
            var scfb_anz = 0, bv_index;
            while (gfc.scalefac_band.l[++scfb_anz] < i)
                ;

            bv_index = subdv_table[scfb_anz][0]; // .region0_count
            while (gfc.scalefac_band.l[bv_index + 1] > i)
                bv_index--;

            if (bv_index < 0) {
                /*
                 * this is an indication that everything is going to be encoded
                 * as region0: bigvalues < region0 < region1 so lets set
                 * region0, region1 to some value larger than bigvalues
                 */
                bv_index = subdv_table[scfb_anz][0]; // .region0_count
            }

            gfc.bv_scf[i - 2] = bv_index;

            bv_index = subdv_table[scfb_anz][1]; // .region1_count
            while (gfc.scalefac_band.l[bv_index + gfc.bv_scf[i - 2] + 2] > i)
                bv_index--;

            if (bv_index < 0) {
                bv_index = subdv_table[scfb_anz][1]; // .region1_count
            }

            gfc.bv_scf[i - 1] = bv_index;
        }
    }
}

module.exports = Takehiro;


/***/ }),

/***/ "./node_modules/lamejs/src/js/VBRQuantize.js":
/*!***************************************************!*\
  !*** ./node_modules/lamejs/src/js/VBRQuantize.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

function VBRQuantize() {
    var qupvt;
    var tak;

    this.setModules = function (_qupvt, _tk) {
        qupvt = _qupvt;
        tak = _tk;
    }
    //TODO

}

module.exports = VBRQuantize;


/***/ }),

/***/ "./node_modules/lamejs/src/js/VBRSeekInfo.js":
/*!***************************************************!*\
  !*** ./node_modules/lamejs/src/js/VBRSeekInfo.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

//package mp3;

function VBRSeekInfo() {
    /**
     * What we have seen so far.
     */
    this.sum = 0;
    /**
     * How many frames we have seen in this chunk.
     */
    this.seen = 0;
    /**
     * How many frames we want to collect into one chunk.
     */
    this.want = 0;
    /**
     * Actual position in our bag.
     */
    this.pos = 0;
    /**
     * Size of our bag.
     */
    this.size = 0;
    /**
     * Pointer to our bag.
     */
    this.bag = null;
    this.nVbrNumFrames = 0;
    this.nBytesWritten = 0;
    /* VBR tag data */
    this.TotalFrameSize = 0;
}

module.exports = VBRSeekInfo;


/***/ }),

/***/ "./node_modules/lamejs/src/js/VBRTag.js":
/*!**********************************************!*\
  !*** ./node_modules/lamejs/src/js/VBRTag.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

/**
 * A Vbr header may be present in the ancillary data field of the first frame of
 * an mp3 bitstream<BR>
 * The Vbr header (optionally) contains
 * <UL>
 * <LI>frames total number of audio frames in the bitstream
 * <LI>bytes total number of bytes in the bitstream
 * <LI>toc table of contents
 * </UL>
 *
 * toc (table of contents) gives seek points for random access.<BR>
 * The ith entry determines the seek point for i-percent duration.<BR>
 * seek point in bytes = (toc[i]/256.0) * total_bitstream_bytes<BR>
 * e.g. half duration seek point = (toc[50]/256.0) * total_bitstream_bytes
 */
VBRTag.NUMTOCENTRIES = 100;
VBRTag.MAXFRAMESIZE = 2880;

function VBRTag() {

    var lame;
    var bs;
    var v;

    this.setModules = function (_lame, _bs, _v) {
        lame = _lame;
        bs = _bs;
        v = _v;
    };

    var FRAMES_FLAG = 0x0001;
    var BYTES_FLAG = 0x0002;
    var TOC_FLAG = 0x0004;
    var VBR_SCALE_FLAG = 0x0008;

    var NUMTOCENTRIES = VBRTag.NUMTOCENTRIES;

    /**
     * (0xB40) the max freeformat 640 32kHz framesize.
     */
    var MAXFRAMESIZE = VBRTag.MAXFRAMESIZE;

    /**
     * <PRE>
     *    4 bytes for Header Tag
     *    4 bytes for Header Flags
     *  100 bytes for entry (toc)
     *    4 bytes for frame size
     *    4 bytes for stream size
     *    4 bytes for VBR scale. a VBR quality indicator: 0=best 100=worst
     *   20 bytes for LAME tag.  for example, "LAME3.12 (beta 6)"
     * ___________
     *  140 bytes
     * </PRE>
     */
    var VBRHEADERSIZE = (NUMTOCENTRIES + 4 + 4 + 4 + 4 + 4);

    var LAMEHEADERSIZE = (VBRHEADERSIZE + 9 + 1 + 1 + 8
    + 1 + 1 + 3 + 1 + 1 + 2 + 4 + 2 + 2);

    /**
     * The size of the Xing header MPEG-1, bit rate in kbps.
     */
    var XING_BITRATE1 = 128;
    /**
     * The size of the Xing header MPEG-2, bit rate in kbps.
     */
    var XING_BITRATE2 = 64;
    /**
     * The size of the Xing header MPEG-2.5, bit rate in kbps.
     */
    var XING_BITRATE25 = 32;

    /**
     * ISO-8859-1 charset for byte to string operations.
     */
    var ISO_8859_1 = null; //Charset.forName("ISO-8859-1");

    /**
     * VBR header magic string.
     */
    var VBRTag0 = "Xing";
    /**
     * VBR header magic string (VBR == VBRMode.vbr_off).
     */
    var VBRTag1 = "Info";

    /**
     * Lookup table for fast CRC-16 computation. Uses the polynomial
     * x^16+x^15+x^2+1
     */
    var crc16Lookup = [0x0000, 0xC0C1, 0xC181, 0x0140,
        0xC301, 0x03C0, 0x0280, 0xC241, 0xC601, 0x06C0, 0x0780, 0xC741,
        0x0500, 0xC5C1, 0xC481, 0x0440, 0xCC01, 0x0CC0, 0x0D80, 0xCD41,
        0x0F00, 0xCFC1, 0xCE81, 0x0E40, 0x0A00, 0xCAC1, 0xCB81, 0x0B40,
        0xC901, 0x09C0, 0x0880, 0xC841, 0xD801, 0x18C0, 0x1980, 0xD941,
        0x1B00, 0xDBC1, 0xDA81, 0x1A40, 0x1E00, 0xDEC1, 0xDF81, 0x1F40,
        0xDD01, 0x1DC0, 0x1C80, 0xDC41, 0x1400, 0xD4C1, 0xD581, 0x1540,
        0xD701, 0x17C0, 0x1680, 0xD641, 0xD201, 0x12C0, 0x1380, 0xD341,
        0x1100, 0xD1C1, 0xD081, 0x1040, 0xF001, 0x30C0, 0x3180, 0xF141,
        0x3300, 0xF3C1, 0xF281, 0x3240, 0x3600, 0xF6C1, 0xF781, 0x3740,
        0xF501, 0x35C0, 0x3480, 0xF441, 0x3C00, 0xFCC1, 0xFD81, 0x3D40,
        0xFF01, 0x3FC0, 0x3E80, 0xFE41, 0xFA01, 0x3AC0, 0x3B80, 0xFB41,
        0x3900, 0xF9C1, 0xF881, 0x3840, 0x2800, 0xE8C1, 0xE981, 0x2940,
        0xEB01, 0x2BC0, 0x2A80, 0xEA41, 0xEE01, 0x2EC0, 0x2F80, 0xEF41,
        0x2D00, 0xEDC1, 0xEC81, 0x2C40, 0xE401, 0x24C0, 0x2580, 0xE541,
        0x2700, 0xE7C1, 0xE681, 0x2640, 0x2200, 0xE2C1, 0xE381, 0x2340,
        0xE101, 0x21C0, 0x2080, 0xE041, 0xA001, 0x60C0, 0x6180, 0xA141,
        0x6300, 0xA3C1, 0xA281, 0x6240, 0x6600, 0xA6C1, 0xA781, 0x6740,
        0xA501, 0x65C0, 0x6480, 0xA441, 0x6C00, 0xACC1, 0xAD81, 0x6D40,
        0xAF01, 0x6FC0, 0x6E80, 0xAE41, 0xAA01, 0x6AC0, 0x6B80, 0xAB41,
        0x6900, 0xA9C1, 0xA881, 0x6840, 0x7800, 0xB8C1, 0xB981, 0x7940,
        0xBB01, 0x7BC0, 0x7A80, 0xBA41, 0xBE01, 0x7EC0, 0x7F80, 0xBF41,
        0x7D00, 0xBDC1, 0xBC81, 0x7C40, 0xB401, 0x74C0, 0x7580, 0xB541,
        0x7700, 0xB7C1, 0xB681, 0x7640, 0x7200, 0xB2C1, 0xB381, 0x7340,
        0xB101, 0x71C0, 0x7080, 0xB041, 0x5000, 0x90C1, 0x9181, 0x5140,
        0x9301, 0x53C0, 0x5280, 0x9241, 0x9601, 0x56C0, 0x5780, 0x9741,
        0x5500, 0x95C1, 0x9481, 0x5440, 0x9C01, 0x5CC0, 0x5D80, 0x9D41,
        0x5F00, 0x9FC1, 0x9E81, 0x5E40, 0x5A00, 0x9AC1, 0x9B81, 0x5B40,
        0x9901, 0x59C0, 0x5880, 0x9841, 0x8801, 0x48C0, 0x4980, 0x8941,
        0x4B00, 0x8BC1, 0x8A81, 0x4A40, 0x4E00, 0x8EC1, 0x8F81, 0x4F40,
        0x8D01, 0x4DC0, 0x4C80, 0x8C41, 0x4400, 0x84C1, 0x8581, 0x4540,
        0x8701, 0x47C0, 0x4680, 0x8641, 0x8201, 0x42C0, 0x4380, 0x8341,
        0x4100, 0x81C1, 0x8081, 0x4040];

    /***********************************************************************
     * Robert Hegemann 2001-01-17
     ***********************************************************************/

    function addVbr(v, bitrate) {
        v.nVbrNumFrames++;
        v.sum += bitrate;
        v.seen++;

        if (v.seen < v.want) {
            return;
        }

        if (v.pos < v.size) {
            v.bag[v.pos] = v.sum;
            v.pos++;
            v.seen = 0;
        }
        if (v.pos == v.size) {
            for (var i = 1; i < v.size; i += 2) {
                v.bag[i / 2] = v.bag[i];
            }
            v.want *= 2;
            v.pos /= 2;
        }
    }

    function xingSeekTable(v, t) {
        if (v.pos <= 0)
            return;

        for (var i = 1; i < NUMTOCENTRIES; ++i) {
            var j = i / NUMTOCENTRIES, act, sum;
            var indx = 0 | (Math.floor(j * v.pos));
            if (indx > v.pos - 1)
                indx = v.pos - 1;
            act = v.bag[indx];
            sum = v.sum;
            var seek_point = 0 | (256. * act / sum);
            if (seek_point > 255)
                seek_point = 255;
            t[i] = 0xff & seek_point;
        }
    }

    /**
     * Add VBR entry, used to fill the VBR TOC entries.
     *
     * @param gfp
     *            global flags
     */
    this.addVbrFrame = function (gfp) {
        var gfc = gfp.internal_flags;
        var kbps = Tables.bitrate_table[gfp.version][gfc.bitrate_index];
        assert(gfc.VBR_seek_table.bag != null);
        addVbr(gfc.VBR_seek_table, kbps);
    }

    /**
     * Read big endian integer (4-bytes) from header.
     *
     * @param buf
     *            header containing the integer
     * @param bufPos
     *            offset into the header
     * @return extracted integer
     */
    function extractInteger(buf, bufPos) {
        var x = buf[bufPos + 0] & 0xff;
        x <<= 8;
        x |= buf[bufPos + 1] & 0xff;
        x <<= 8;
        x |= buf[bufPos + 2] & 0xff;
        x <<= 8;
        x |= buf[bufPos + 3] & 0xff;
        return x;
    }

    /**
     * Write big endian integer (4-bytes) in the header.
     *
     * @param buf
     *            header to write the integer into
     * @param bufPos
     *            offset into the header
     * @param value
     *            integer value to write
     */
    function createInteger(buf, bufPos, value) {
        buf[bufPos + 0] = 0xff & ((value >> 24) & 0xff);
        buf[bufPos + 1] = 0xff & ((value >> 16) & 0xff);
        buf[bufPos + 2] = 0xff & ((value >> 8) & 0xff);
        buf[bufPos + 3] = 0xff & (value & 0xff);
    }

    /**
     * Write big endian short (2-bytes) in the header.
     *
     * @param buf
     *            header to write the integer into
     * @param bufPos
     *            offset into the header
     * @param value
     *            integer value to write
     */
    function createShort(buf, bufPos, value) {
        buf[bufPos + 0] = 0xff & ((value >> 8) & 0xff);
        buf[bufPos + 1] = 0xff & (value & 0xff);
    }

    /**
     * Check for magic strings (Xing/Info).
     *
     * @param buf
     *            header to check
     * @param bufPos
     *            header offset to check
     * @return magic string found
     */
    function isVbrTag(buf, bufPos) {
        return new String(buf, bufPos, VBRTag0.length(), ISO_8859_1)
                .equals(VBRTag0)
            || new String(buf, bufPos, VBRTag1.length(), ISO_8859_1)
                .equals(VBRTag1);
    }

    function shiftInBitsValue(x, n, v) {
        return 0xff & ((x << n) | (v & ~(-1 << n)));
    }

    /**
     * Construct the MP3 header using the settings of the global flags.
     *
     * <img src="1000px-Mp3filestructure.svg.png">
     *
     * @param gfp
     *            global flags
     * @param buffer
     *            header
     */
    function setLameTagFrameHeader(gfp, buffer) {
        var gfc = gfp.internal_flags;

        // MP3 Sync Word
        buffer[0] = shiftInBitsValue(buffer[0], 8, 0xff);

        buffer[1] = shiftInBitsValue(buffer[1], 3, 7);
        buffer[1] = shiftInBitsValue(buffer[1], 1,
            (gfp.out_samplerate < 16000) ? 0 : 1);
        // Version
        buffer[1] = shiftInBitsValue(buffer[1], 1, gfp.version);
        // 01 == Layer 3
        buffer[1] = shiftInBitsValue(buffer[1], 2, 4 - 3);
        // Error protection
        buffer[1] = shiftInBitsValue(buffer[1], 1, (!gfp.error_protection) ? 1
            : 0);

        // Bit rate
        buffer[2] = shiftInBitsValue(buffer[2], 4, gfc.bitrate_index);
        // Frequency
        buffer[2] = shiftInBitsValue(buffer[2], 2, gfc.samplerate_index);
        // Pad. Bit
        buffer[2] = shiftInBitsValue(buffer[2], 1, 0);
        // Priv. Bit
        buffer[2] = shiftInBitsValue(buffer[2], 1, gfp.extension);

        // Mode
        buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.mode.ordinal());
        // Mode extension (Used with Joint Stereo)
        buffer[3] = shiftInBitsValue(buffer[3], 2, gfc.mode_ext);
        // Copy
        buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.copyright);
        // Original
        buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.original);
        // Emphasis
        buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.emphasis);

        /* the default VBR header. 48 kbps layer III, no padding, no crc */
        /* but sampling freq, mode and copyright/copy protection taken */
        /* from first valid frame */
        buffer[0] = 0xff;
        var abyte = 0xff & (buffer[1] & 0xf1);
        var bitrate;
        if (1 == gfp.version) {
            bitrate = XING_BITRATE1;
        } else {
            if (gfp.out_samplerate < 16000)
                bitrate = XING_BITRATE25;
            else
                bitrate = XING_BITRATE2;
        }

        if (gfp.VBR == VbrMode.vbr_off)
            bitrate = gfp.brate;

        var bbyte;
        if (gfp.free_format)
            bbyte = 0x00;
        else
            bbyte = 0xff & (16 * lame.BitrateIndex(bitrate, gfp.version,
                    gfp.out_samplerate));

        /*
         * Use as much of the info from the real frames in the Xing header:
         * samplerate, channels, crc, etc...
         */
        if (gfp.version == 1) {
            /* MPEG1 */
            buffer[1] = 0xff & (abyte | 0x0a);
            /* was 0x0b; */
            abyte = 0xff & (buffer[2] & 0x0d);
            /* AF keep also private bit */
            buffer[2] = 0xff & (bbyte | abyte);
            /* 64kbs MPEG1 frame */
        } else {
            /* MPEG2 */
            buffer[1] = 0xff & (abyte | 0x02);
            /* was 0x03; */
            abyte = 0xff & (buffer[2] & 0x0d);
            /* AF keep also private bit */
            buffer[2] = 0xff & (bbyte | abyte);
            /* 64kbs MPEG2 frame */
        }
    }

    /**
     * Get VBR tag information
     *
     * @param buf
     *            header to analyze
     * @param bufPos
     *            offset into the header
     * @return VBR tag data
     */
    this.getVbrTag = function (buf) {
        var pTagData = new VBRTagData();
        var bufPos = 0;

        /* get Vbr header data */
        pTagData.flags = 0;

        /* get selected MPEG header data */
        var hId = (buf[bufPos + 1] >> 3) & 1;
        var hSrIndex = (buf[bufPos + 2] >> 2) & 3;
        var hMode = (buf[bufPos + 3] >> 6) & 3;
        var hBitrate = ((buf[bufPos + 2] >> 4) & 0xf);
        hBitrate = Tables.bitrate_table[hId][hBitrate];

        /* check for FFE syncword */
        if ((buf[bufPos + 1] >> 4) == 0xE)
            pTagData.samprate = Tables.samplerate_table[2][hSrIndex];
        else
            pTagData.samprate = Tables.samplerate_table[hId][hSrIndex];

        /* determine offset of header */
        if (hId != 0) {
            /* mpeg1 */
            if (hMode != 3)
                bufPos += (32 + 4);
            else
                bufPos += (17 + 4);
        } else {
            /* mpeg2 */
            if (hMode != 3)
                bufPos += (17 + 4);
            else
                bufPos += (9 + 4);
        }

        if (!isVbrTag(buf, bufPos))
            return null;

        bufPos += 4;

        pTagData.hId = hId;

        /* get flags */
        var head_flags = pTagData.flags = extractInteger(buf, bufPos);
        bufPos += 4;

        if ((head_flags & FRAMES_FLAG) != 0) {
            pTagData.frames = extractInteger(buf, bufPos);
            bufPos += 4;
        }

        if ((head_flags & BYTES_FLAG) != 0) {
            pTagData.bytes = extractInteger(buf, bufPos);
            bufPos += 4;
        }

        if ((head_flags & TOC_FLAG) != 0) {
            if (pTagData.toc != null) {
                for (var i = 0; i < NUMTOCENTRIES; i++)
                    pTagData.toc[i] = buf[bufPos + i];
            }
            bufPos += NUMTOCENTRIES;
        }

        pTagData.vbrScale = -1;

        if ((head_flags & VBR_SCALE_FLAG) != 0) {
            pTagData.vbrScale = extractInteger(buf, bufPos);
            bufPos += 4;
        }

        pTagData.headersize = ((hId + 1) * 72000 * hBitrate)
            / pTagData.samprate;

        bufPos += 21;
        var encDelay = buf[bufPos + 0] << 4;
        encDelay += buf[bufPos + 1] >> 4;
        var encPadding = (buf[bufPos + 1] & 0x0F) << 8;
        encPadding += buf[bufPos + 2] & 0xff;
        /* check for reasonable values (this may be an old Xing header, */
        /* not a INFO tag) */
        if (encDelay < 0 || encDelay > 3000)
            encDelay = -1;
        if (encPadding < 0 || encPadding > 3000)
            encPadding = -1;

        pTagData.encDelay = encDelay;
        pTagData.encPadding = encPadding;

        /* success */
        return pTagData;
    }

    /**
     * Initializes the header
     *
     * @param gfp
     *            global flags
     */
    this.InitVbrTag = function (gfp) {
        var gfc = gfp.internal_flags;

        /**
         * <PRE>
         * Xing VBR pretends to be a 48kbs layer III frame.  (at 44.1kHz).
         * (at 48kHz they use 56kbs since 48kbs frame not big enough for
         * table of contents)
         * let's always embed Xing header inside a 64kbs layer III frame.
         * this gives us enough room for a LAME version string too.
         * size determined by sampling frequency (MPEG1)
         * 32kHz:    216 bytes@48kbs    288bytes@ 64kbs
         * 44.1kHz:  156 bytes          208bytes@64kbs     (+1 if padding = 1)
         * 48kHz:    144 bytes          192
         *
         * MPEG 2 values are the same since the framesize and samplerate
         * are each reduced by a factor of 2.
         * </PRE>
         */
        var kbps_header;
        if (1 == gfp.version) {
            kbps_header = XING_BITRATE1;
        } else {
            if (gfp.out_samplerate < 16000)
                kbps_header = XING_BITRATE25;
            else
                kbps_header = XING_BITRATE2;
        }

        if (gfp.VBR == VbrMode.vbr_off)
            kbps_header = gfp.brate;

        // make sure LAME Header fits into Frame
        var totalFrameSize = ((gfp.version + 1) * 72000 * kbps_header)
            / gfp.out_samplerate;
        var headerSize = (gfc.sideinfo_len + LAMEHEADERSIZE);
        gfc.VBR_seek_table.TotalFrameSize = totalFrameSize;
        if (totalFrameSize < headerSize || totalFrameSize > MAXFRAMESIZE) {
            /* disable tag, it wont fit */
            gfp.bWriteVbrTag = false;
            return;
        }

        gfc.VBR_seek_table.nVbrNumFrames = 0;
        gfc.VBR_seek_table.nBytesWritten = 0;
        gfc.VBR_seek_table.sum = 0;

        gfc.VBR_seek_table.seen = 0;
        gfc.VBR_seek_table.want = 1;
        gfc.VBR_seek_table.pos = 0;

        if (gfc.VBR_seek_table.bag == null) {
            gfc.VBR_seek_table.bag = new int[400];
            gfc.VBR_seek_table.size = 400;
        }

        // write dummy VBR tag of all 0's into bitstream
        var buffer = new_byte(MAXFRAMESIZE);

        setLameTagFrameHeader(gfp, buffer);
        var n = gfc.VBR_seek_table.TotalFrameSize;
        for (var i = 0; i < n; ++i) {
            bs.add_dummy_byte(gfp, buffer[i] & 0xff, 1);
        }
    }

    /**
     * Fast CRC-16 computation (uses table crc16Lookup).
     *
     * @param value
     * @param crc
     * @return
     */
    function crcUpdateLookup(value, crc) {
        var tmp = crc ^ value;
        crc = (crc >> 8) ^ crc16Lookup[tmp & 0xff];
        return crc;
    }

    this.updateMusicCRC = function (crc, buffer, bufferPos, size) {
        for (var i = 0; i < size; ++i)
            crc[0] = crcUpdateLookup(buffer[bufferPos + i], crc[0]);
    }

    /**
     * Write LAME info: mini version + info on various switches used (Jonathan
     * Dee 2001/08/31).
     *
     * @param gfp
     *            global flags
     * @param musicLength
     *            music length
     * @param streamBuffer
     *            pointer to output buffer
     * @param streamBufferPos
     *            offset into the output buffer
     * @param crc
     *            computation of CRC-16 of Lame Tag so far (starting at frame
     *            sync)
     * @return number of bytes written to the stream
     */
    function putLameVBR(gfp, musicLength, streamBuffer, streamBufferPos, crc) {
        var gfc = gfp.internal_flags;
        var bytesWritten = 0;

        /* encoder delay */
        var encDelay = gfp.encoder_delay;
        /* encoder padding */
        var encPadding = gfp.encoder_padding;

        /* recall: gfp.VBR_q is for example set by the switch -V */
        /* gfp.quality by -q, -h, -f, etc */
        var quality = (100 - 10 * gfp.VBR_q - gfp.quality);

        var version = v.getLameVeryShortVersion();
        var vbr;
        var revision = 0x00;
        var revMethod;
        // numbering different in vbr_mode vs. Lame tag
        var vbrTypeTranslator = [1, 5, 3, 2, 4, 0, 3];
        var lowpass = 0 | (((gfp.lowpassfreq / 100.0) + .5) > 255 ? 255
                : (gfp.lowpassfreq / 100.0) + .5);
        var peakSignalAmplitude = 0;
        var radioReplayGain = 0;
        var audiophileReplayGain = 0;
        var noiseShaping = gfp.internal_flags.noise_shaping;
        var stereoMode = 0;
        var nonOptimal = 0;
        var sourceFreq = 0;
        var misc = 0;
        var musicCRC = 0;

        // psy model type: Gpsycho or NsPsytune
        var expNPsyTune = (gfp.exp_nspsytune & 1) != 0;
        var safeJoint = (gfp.exp_nspsytune & 2) != 0;
        var noGapMore = false;
        var noGapPrevious = false;
        var noGapCount = gfp.internal_flags.nogap_total;
        var noGapCurr = gfp.internal_flags.nogap_current;

        // 4 bits
        var athType = gfp.ATHtype;
        var flags = 0;

        // vbr modes
        var abrBitrate;
        switch (gfp.VBR) {
            case vbr_abr:
                abrBitrate = gfp.VBR_mean_bitrate_kbps;
                break;
            case vbr_off:
                abrBitrate = gfp.brate;
                break;
            default:
                abrBitrate = gfp.VBR_min_bitrate_kbps;
        }

        // revision and vbr method
        if (gfp.VBR.ordinal() < vbrTypeTranslator.length)
            vbr = vbrTypeTranslator[gfp.VBR.ordinal()];
        else
            vbr = 0x00; // unknown

        revMethod = 0x10 * revision + vbr;

        // ReplayGain
        if (gfc.findReplayGain) {
            if (gfc.RadioGain > 0x1FE)
                gfc.RadioGain = 0x1FE;
            if (gfc.RadioGain < -0x1FE)
                gfc.RadioGain = -0x1FE;

            // set name code
            radioReplayGain = 0x2000;
            // set originator code to `determined automatically'
            radioReplayGain |= 0xC00;

            if (gfc.RadioGain >= 0) {
                // set gain adjustment
                radioReplayGain |= gfc.RadioGain;
            } else {
                // set the sign bit
                radioReplayGain |= 0x200;
                // set gain adjustment
                radioReplayGain |= -gfc.RadioGain;
            }
        }

        // peak sample
        if (gfc.findPeakSample)
            peakSignalAmplitude = Math
                .abs(0 | ((( gfc.PeakSample) / 32767.0) * Math.pow(2, 23) + .5));

        // nogap
        if (noGapCount != -1) {
            if (noGapCurr > 0)
                noGapPrevious = true;

            if (noGapCurr < noGapCount - 1)
                noGapMore = true;
        }

        // flags
        flags = athType + ((expNPsyTune ? 1 : 0) << 4)
            + ((safeJoint ? 1 : 0) << 5) + ((noGapMore ? 1 : 0) << 6)
            + ((noGapPrevious ? 1 : 0) << 7);

        if (quality < 0)
            quality = 0;

        // stereo mode field (Intensity stereo is not implemented)
        switch (gfp.mode) {
            case MONO:
                stereoMode = 0;
                break;
            case STEREO:
                stereoMode = 1;
                break;
            case DUAL_CHANNEL:
                stereoMode = 2;
                break;
            case JOINT_STEREO:
                if (gfp.force_ms)
                    stereoMode = 4;
                else
                    stereoMode = 3;
                break;
            case NOT_SET:
            //$FALL-THROUGH$
            default:
                stereoMode = 7;
                break;
        }

        if (gfp.in_samplerate <= 32000)
            sourceFreq = 0x00;
        else if (gfp.in_samplerate == 48000)
            sourceFreq = 0x02;
        else if (gfp.in_samplerate > 48000)
            sourceFreq = 0x03;
        else {
            // default is 44100Hz
            sourceFreq = 0x01;
        }

        // Check if the user overrided the default LAME behavior with some
        // nasty options
        if (gfp.short_blocks == ShortBlock.short_block_forced
            || gfp.short_blocks == ShortBlock.short_block_dispensed
            || ((gfp.lowpassfreq == -1) && (gfp.highpassfreq == -1)) || /* "-k" */
            (gfp.scale_left < gfp.scale_right)
            || (gfp.scale_left > gfp.scale_right)
            || (gfp.disable_reservoir && gfp.brate < 320) || gfp.noATH
            || gfp.ATHonly || (athType == 0) || gfp.in_samplerate <= 32000)
            nonOptimal = 1;

        misc = noiseShaping + (stereoMode << 2) + (nonOptimal << 5)
            + (sourceFreq << 6);

        musicCRC = gfc.nMusicCRC;

        // Write all this information into the stream

        createInteger(streamBuffer, streamBufferPos + bytesWritten, quality);
        bytesWritten += 4;

        for (var j = 0; j < 9; j++) {
            streamBuffer[streamBufferPos + bytesWritten + j] = 0xff & version .charAt(j);
        }
        bytesWritten += 9;

        streamBuffer[streamBufferPos + bytesWritten] = 0xff & revMethod;
        bytesWritten++;

        streamBuffer[streamBufferPos + bytesWritten] = 0xff & lowpass;
        bytesWritten++;

        createInteger(streamBuffer, streamBufferPos + bytesWritten,
            peakSignalAmplitude);
        bytesWritten += 4;

        createShort(streamBuffer, streamBufferPos + bytesWritten,
            radioReplayGain);
        bytesWritten += 2;

        createShort(streamBuffer, streamBufferPos + bytesWritten,
            audiophileReplayGain);
        bytesWritten += 2;

        streamBuffer[streamBufferPos + bytesWritten] = 0xff & flags;
        bytesWritten++;

        if (abrBitrate >= 255)
            streamBuffer[streamBufferPos + bytesWritten] = 0xFF;
        else
            streamBuffer[streamBufferPos + bytesWritten] = 0xff & abrBitrate;
        bytesWritten++;

        streamBuffer[streamBufferPos + bytesWritten] = 0xff & (encDelay >> 4);
        streamBuffer[streamBufferPos + bytesWritten + 1] = 0xff & ((encDelay << 4) + (encPadding >> 8));
        streamBuffer[streamBufferPos + bytesWritten + 2] = 0xff & encPadding;

        bytesWritten += 3;

        streamBuffer[streamBufferPos + bytesWritten] = 0xff & misc;
        bytesWritten++;

        // unused in rev0
        streamBuffer[streamBufferPos + bytesWritten++] = 0;

        createShort(streamBuffer, streamBufferPos + bytesWritten, gfp.preset);
        bytesWritten += 2;

        createInteger(streamBuffer, streamBufferPos + bytesWritten, musicLength);
        bytesWritten += 4;

        createShort(streamBuffer, streamBufferPos + bytesWritten, musicCRC);
        bytesWritten += 2;

        // Calculate tag CRC.... must be done here, since it includes previous
        // information

        for (var i = 0; i < bytesWritten; i++)
            crc = crcUpdateLookup(streamBuffer[streamBufferPos + i], crc);

        createShort(streamBuffer, streamBufferPos + bytesWritten, crc);
        bytesWritten += 2;

        return bytesWritten;
    }

    function skipId3v2(fpStream) {
        // seek to the beginning of the stream
        fpStream.seek(0);
        // read 10 bytes in case there's an ID3 version 2 header here
        var id3v2Header = new_byte(10);
        fpStream.readFully(id3v2Header);
        /* does the stream begin with the ID3 version 2 file identifier? */
        var id3v2TagSize;
        if (!new String(id3v2Header, "ISO-8859-1").startsWith("ID3")) {
            /*
             * the tag size (minus the 10-byte header) is encoded into four
             * bytes where the most significant bit is clear in each byte
             */
            id3v2TagSize = (((id3v2Header[6] & 0x7f) << 21)
                | ((id3v2Header[7] & 0x7f) << 14)
                | ((id3v2Header[8] & 0x7f) << 7) | (id3v2Header[9] & 0x7f))
                + id3v2Header.length;
        } else {
            /* no ID3 version 2 tag in this stream */
            id3v2TagSize = 0;
        }
        return id3v2TagSize;
    }

    this.getLameTagFrame = function (gfp, buffer) {
        var gfc = gfp.internal_flags;

        if (!gfp.bWriteVbrTag) {
            return 0;
        }
        if (gfc.Class_ID != Lame.LAME_ID) {
            return 0;
        }
        if (gfc.VBR_seek_table.pos <= 0) {
            return 0;
        }
        if (buffer.length < gfc.VBR_seek_table.TotalFrameSize) {
            return gfc.VBR_seek_table.TotalFrameSize;
        }

        Arrays.fill(buffer, 0, gfc.VBR_seek_table.TotalFrameSize, 0);

        // 4 bytes frame header
        setLameTagFrameHeader(gfp, buffer);

        // Create TOC entries
        var toc = new_byte(NUMTOCENTRIES);

        if (gfp.free_format) {
            for (var i = 1; i < NUMTOCENTRIES; ++i)
                toc[i] = 0xff & (255 * i / 100);
        } else {
            xingSeekTable(gfc.VBR_seek_table, toc);
        }

        // Start writing the tag after the zero frame
        var streamIndex = gfc.sideinfo_len;
        /**
         * Note: Xing header specifies that Xing data goes in the ancillary data
         * with NO ERROR PROTECTION. If error protecton in enabled, the Xing
         * data still starts at the same offset, and now it is in sideinfo data
         * block, and thus will not decode correctly by non-Xing tag aware
         * players
         */
        if (gfp.error_protection)
            streamIndex -= 2;

        // Put Vbr tag
        if (gfp.VBR == VbrMode.vbr_off) {
            buffer[streamIndex++] = 0xff & VBRTag1.charAt(0);
            buffer[streamIndex++] = 0xff & VBRTag1.charAt(1);
            buffer[streamIndex++] = 0xff & VBRTag1.charAt(2);
            buffer[streamIndex++] = 0xff & VBRTag1.charAt(3);

        } else {
            buffer[streamIndex++] = 0xff & VBRTag0.charAt(0);
            buffer[streamIndex++] = 0xff & VBRTag0.charAt(1);
            buffer[streamIndex++] = 0xff & VBRTag0.charAt(2);
            buffer[streamIndex++] = 0xff & VBRTag0.charAt(3);
        }

        // Put header flags
        createInteger(buffer, streamIndex, FRAMES_FLAG + BYTES_FLAG + TOC_FLAG
            + VBR_SCALE_FLAG);
        streamIndex += 4;

        // Put Total Number of frames
        createInteger(buffer, streamIndex, gfc.VBR_seek_table.nVbrNumFrames);
        streamIndex += 4;

        // Put total audio stream size, including Xing/LAME Header
        var streamSize = (gfc.VBR_seek_table.nBytesWritten + gfc.VBR_seek_table.TotalFrameSize);
        createInteger(buffer, streamIndex, 0 | streamSize);
        streamIndex += 4;

        /* Put TOC */
        System.arraycopy(toc, 0, buffer, streamIndex, toc.length);
        streamIndex += toc.length;

        if (gfp.error_protection) {
            // (jo) error_protection: add crc16 information to header
            bs.CRC_writeheader(gfc, buffer);
        }

        // work out CRC so far: initially crc = 0
        var crc = 0x00;
        for (var i = 0; i < streamIndex; i++)
            crc = crcUpdateLookup(buffer[i], crc);
        // Put LAME VBR info
        streamIndex += putLameVBR(gfp, streamSize, buffer, streamIndex, crc);

        return gfc.VBR_seek_table.TotalFrameSize;
    }

    /**
     * Write final VBR tag to the file.
     *
     * @param gfp
     *            global flags
     * @param stream
     *            stream to add the VBR tag to
     * @return 0 (OK), -1 else
     * @throws IOException
     *             I/O error
     */
    this.putVbrTag = function (gfp, stream) {
        var gfc = gfp.internal_flags;

        if (gfc.VBR_seek_table.pos <= 0)
            return -1;

        // Seek to end of file
        stream.seek(stream.length());

        // Get file size, abort if file has zero length.
        if (stream.length() == 0)
            return -1;

        // The VBR tag may NOT be located at the beginning of the stream. If an
        // ID3 version 2 tag was added, then it must be skipped to write the VBR
        // tag data.
        var id3v2TagSize = skipId3v2(stream);

        // Seek to the beginning of the stream
        stream.seek(id3v2TagSize);

        var buffer = new_byte(MAXFRAMESIZE);
        var bytes = getLameTagFrame(gfp, buffer);
        if (bytes > buffer.length) {
            return -1;
        }

        if (bytes < 1) {
            return 0;
        }

        // Put it all to disk again
        stream.write(buffer, 0, bytes);
        // success
        return 0;
    }

}

module.exports = VBRTag;


/***/ }),

/***/ "./node_modules/lamejs/src/js/Version.js":
/*!***********************************************!*\
  !*** ./node_modules/lamejs/src/js/Version.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

function Version() {

    /**
     * URL for the LAME website.
     */
    var LAME_URL = "http://www.mp3dev.org/";

    /**
     * Major version number.
     */
    var LAME_MAJOR_VERSION = 3;
    /**
     * Minor version number.
     */
    var LAME_MINOR_VERSION = 98;
    /**
     * Patch level.
     */
    var LAME_PATCH_VERSION = 4;

    /**
     * Major version number.
     */
    var PSY_MAJOR_VERSION = 0;
    /**
     * Minor version number.
     */
    var PSY_MINOR_VERSION = 93;

    /**
     * A string which describes the version of LAME.
     *
     * @return string which describes the version of LAME
     */
    this.getLameVersion = function () {
        // primary to write screen reports
        return (LAME_MAJOR_VERSION + "." + LAME_MINOR_VERSION + "." + LAME_PATCH_VERSION);
    }

    /**
     * The short version of the LAME version string.
     *
     * @return short version of the LAME version string
     */
    this.getLameShortVersion = function () {
        // Adding date and time to version string makes it harder for output
        // validation
        return (LAME_MAJOR_VERSION + "." + LAME_MINOR_VERSION + "." + LAME_PATCH_VERSION);
    }

    /**
     * The shortest version of the LAME version string.
     *
     * @return shortest version of the LAME version string
     */
    this.getLameVeryShortVersion = function () {
        // Adding date and time to version string makes it harder for output
        return ("LAME" + LAME_MAJOR_VERSION + "." + LAME_MINOR_VERSION + "r");
    }

    /**
     * String which describes the version of GPSYCHO
     *
     * @return string which describes the version of GPSYCHO
     */
    this.getPsyVersion = function () {
        return (PSY_MAJOR_VERSION + "." + PSY_MINOR_VERSION);
    }

    /**
     * String which is a URL for the LAME website.
     *
     * @return string which is a URL for the LAME website
     */
    this.getLameUrl = function () {
        return LAME_URL;
    }

    /**
     * Quite useless for a java version, however we are compatible ;-)
     *
     * @return "32bits"
     */
    this.getLameOsBitness = function () {
        return "32bits";
    }

}

module.exports = Version;


/***/ }),

/***/ "./node_modules/lamejs/src/js/common.js":
/*!**********************************************!*\
  !*** ./node_modules/lamejs/src/js/common.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

function new_byte(count) {
    return new Int8Array(count);
}

function new_short(count) {
    return new Int16Array(count);
}

function new_int(count) {
    return new Int32Array(count);
}

function new_float(count) {
    return new Float32Array(count);
}

function new_double(count) {
    return new Float64Array(count);
}

function new_float_n(args) {
    if (args.length == 1) {
        return new_float(args[0]);
    }
    var sz = args[0];
    args = args.slice(1);
    var A = [];
    for (var i = 0; i < sz; i++) {
        A.push(new_float_n(args));
    }
    return A;
}
function new_int_n(args) {
    if (args.length == 1) {
        return new_int(args[0]);
    }
    var sz = args[0];
    args = args.slice(1);
    var A = [];
    for (var i = 0; i < sz; i++) {
        A.push(new_int_n(args));
    }
    return A;
}

function new_short_n(args) {
    if (args.length == 1) {
        return new_short(args[0]);
    }
    var sz = args[0];
    args = args.slice(1);
    var A = [];
    for (var i = 0; i < sz; i++) {
        A.push(new_short_n(args));
    }
    return A;
}

function new_array_n(args) {
    if (args.length == 1) {
        return new Array(args[0]);
    }
    var sz = args[0];
    args = args.slice(1);
    var A = [];
    for (var i = 0; i < sz; i++) {
        A.push(new_array_n(args));
    }
    return A;
}


var Arrays = {};

Arrays.fill = function (a, fromIndex, toIndex, val) {
    if (arguments.length == 2) {
        for (var i = 0; i < a.length; i++) {
            a[i] = arguments[1];
        }
    } else {
        for (var i = fromIndex; i < toIndex; i++) {
            a[i] = val;
        }
    }
};

var System = {};

System.arraycopy = function (src, srcPos, dest, destPos, length) {
    var srcEnd = srcPos + length;
    while (srcPos < srcEnd)
        dest[destPos++] = src[srcPos++];
};


var Util = {};
Util.SQRT2 = 1.41421356237309504880;
Util.FAST_LOG10 = function (x) {
    return Math.log10(x);
};

Util.FAST_LOG10_X = function (x, y) {
    return Math.log10(x) * y;
};

function ShortBlock(ordinal) {
    this.ordinal = ordinal;
}
/**
 * LAME may use them, even different block types for L/R.
 */
ShortBlock.short_block_allowed = new ShortBlock(0);
/**
 * LAME may use them, but always same block types in L/R.
 */
ShortBlock.short_block_coupled = new ShortBlock(1);
/**
 * LAME will not use short blocks, long blocks only.
 */
ShortBlock.short_block_dispensed = new ShortBlock(2);
/**
 * LAME will not use long blocks, short blocks only.
 */
ShortBlock.short_block_forced = new ShortBlock(3);

var Float = {};
Float.MAX_VALUE = 3.4028235e+38;

function VbrMode(ordinal) {
    this.ordinal = ordinal;
}
VbrMode.vbr_off = new VbrMode(0);
VbrMode.vbr_mt = new VbrMode(1);
VbrMode.vbr_rh = new VbrMode(2);
VbrMode.vbr_abr = new VbrMode(3);
VbrMode.vbr_mtrh = new VbrMode(4);
VbrMode.vbr_default = VbrMode.vbr_mtrh;

var assert = function (x) {
    //console.assert(x);
};

module.exports = {
    "System": System,
    "VbrMode": VbrMode,
    "Float": Float,
    "ShortBlock": ShortBlock,
    "Util": Util,
    "Arrays": Arrays,
    "new_array_n": new_array_n,
    "new_byte": new_byte,
    "new_double": new_double,
    "new_float": new_float,
    "new_float_n": new_float_n,
    "new_int": new_int,
    "new_int_n": new_int_n,
    "new_short": new_short,
    "new_short_n": new_short_n,
    "assert": assert
};


/***/ }),

/***/ "./node_modules/lamejs/src/js/index.js":
/*!*********************************************!*\
  !*** ./node_modules/lamejs/src/js/index.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var common = __webpack_require__(/*! ./common.js */ "./node_modules/lamejs/src/js/common.js");
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;

Lame = __webpack_require__(/*! ./Lame.js */ "./node_modules/lamejs/src/js/Lame.js");
Presets = __webpack_require__(/*! ./Presets.js */ "./node_modules/lamejs/src/js/Presets.js");
GainAnalysis = __webpack_require__(/*! ./GainAnalysis.js */ "./node_modules/lamejs/src/js/GainAnalysis.js");
QuantizePVT = __webpack_require__(/*! ./QuantizePVT.js */ "./node_modules/lamejs/src/js/QuantizePVT.js");
Quantize = __webpack_require__(/*! ./Quantize.js */ "./node_modules/lamejs/src/js/Quantize.js");
Takehiro = __webpack_require__(/*! ./Takehiro.js */ "./node_modules/lamejs/src/js/Takehiro.js");
Reservoir = __webpack_require__(/*! ./Reservoir.js */ "./node_modules/lamejs/src/js/Reservoir.js");
MPEGMode = __webpack_require__(/*! ./MPEGMode.js */ "./node_modules/lamejs/src/js/MPEGMode.js");
BitStream = __webpack_require__(/*! ./BitStream.js */ "./node_modules/lamejs/src/js/BitStream.js");
var Encoder = __webpack_require__(/*! ./Encoder.js */ "./node_modules/lamejs/src/js/Encoder.js");
var Version = __webpack_require__(/*! ./Version.js */ "./node_modules/lamejs/src/js/Version.js");
var VBRTag = __webpack_require__(/*! ./VBRTag.js */ "./node_modules/lamejs/src/js/VBRTag.js");

function GetAudio() {
    var parse;
    var mpg;

    this.setModules = function (parse2, mpg2) {
        parse = parse2;
        mpg = mpg2;
    }
}


function Parse() {
    var ver;
    var id3;
    var pre;

    this.setModules = function (ver2, id32, pre2) {
        ver = ver2;
        id3 = id32;
        pre = pre2;
    }
}

function MPGLib() {
}

function ID3Tag() {
    var bits;
    var ver;

    this.setModules = function (_bits, _ver) {
        bits = _bits;
        ver = _ver;
    }
}

function Mp3Encoder(channels, samplerate, kbps) {
    if (arguments.length != 3) {
        console.error('WARN: Mp3Encoder(channels, samplerate, kbps) not specified');
        channels = 1;
        samplerate = 44100;
        kbps = 128;
    }
    var lame = new Lame();
    var gaud = new GetAudio();
    var ga = new GainAnalysis();
    var bs = new BitStream();
    var p = new Presets();
    var qupvt = new QuantizePVT();
    var qu = new Quantize();
    var vbr = new VBRTag();
    var ver = new Version();
    var id3 = new ID3Tag();
    var rv = new Reservoir();
    var tak = new Takehiro();
    var parse = new Parse();
    var mpg = new MPGLib();

    lame.setModules(ga, bs, p, qupvt, qu, vbr, ver, id3, mpg);
    bs.setModules(ga, mpg, ver, vbr);
    id3.setModules(bs, ver);
    p.setModules(lame);
    qu.setModules(bs, rv, qupvt, tak);
    qupvt.setModules(tak, rv, lame.enc.psy);
    rv.setModules(bs);
    tak.setModules(qupvt);
    vbr.setModules(lame, bs, ver);
    gaud.setModules(parse, mpg);
    parse.setModules(ver, id3, p);

    var gfp = lame.lame_init();

    gfp.num_channels = channels;
    gfp.in_samplerate = samplerate;
    gfp.brate = kbps;
    gfp.mode = MPEGMode.STEREO;
    gfp.quality = 3;
    gfp.bWriteVbrTag = false;
    gfp.disable_reservoir = true;
    gfp.write_id3tag_automatic = false;

    var retcode = lame.lame_init_params(gfp);
    assert(0 == retcode);
    var maxSamples = 1152;
    var mp3buf_size = 0 | (1.25 * maxSamples + 7200);
    var mp3buf = new_byte(mp3buf_size);

    this.encodeBuffer = function (left, right) {
        if (channels == 1) {
            right = left;
        }
        assert(left.length == right.length);
        if (left.length > maxSamples) {
            maxSamples = left.length;
            mp3buf_size = 0 | (1.25 * maxSamples + 7200);
            mp3buf = new_byte(mp3buf_size);
        }

        var _sz = lame.lame_encode_buffer(gfp, left, right, left.length, mp3buf, 0, mp3buf_size);
        return new Int8Array(mp3buf.subarray(0, _sz));
    };

    this.flush = function () {
        var _sz = lame.lame_encode_flush(gfp, mp3buf, 0, mp3buf_size);
        return new Int8Array(mp3buf.subarray(0, _sz));
    };
}

function WavHeader() {
    this.dataOffset = 0;
    this.dataLen = 0;
    this.channels = 0;
    this.sampleRate = 0;
}

function fourccToInt(fourcc) {
    return fourcc.charCodeAt(0) << 24 | fourcc.charCodeAt(1) << 16 | fourcc.charCodeAt(2) << 8 | fourcc.charCodeAt(3);
}

WavHeader.RIFF = fourccToInt("RIFF");
WavHeader.WAVE = fourccToInt("WAVE");
WavHeader.fmt_ = fourccToInt("fmt ");
WavHeader.data = fourccToInt("data");

WavHeader.readHeader = function (dataView) {
    var w = new WavHeader();

    var header = dataView.getUint32(0, false);
    if (WavHeader.RIFF != header) {
        return;
    }
    var fileLen = dataView.getUint32(4, true);
    if (WavHeader.WAVE != dataView.getUint32(8, false)) {
        return;
    }
    if (WavHeader.fmt_ != dataView.getUint32(12, false)) {
        return;
    }
    var fmtLen = dataView.getUint32(16, true);
    var pos = 16 + 4;
    switch (fmtLen) {
        case 16:
        case 18:
            w.channels = dataView.getUint16(pos + 2, true);
            w.sampleRate = dataView.getUint32(pos + 4, true);
            break;
        default:
            throw 'extended fmt chunk not implemented';
    }
    pos += fmtLen;
    var data = WavHeader.data;
    var len = 0;
    while (data != header) {
        header = dataView.getUint32(pos, false);
        len = dataView.getUint32(pos + 4, true);
        if (data == header) {
            break;
        }
        pos += (len + 8);
    }
    w.dataLen = len;
    w.dataOffset = pos + 8;
    return w;
};

module.exports.Mp3Encoder = Mp3Encoder;
module.exports.WavHeader = WavHeader;


/***/ }),

/***/ "./node_modules/laravel-vue-pagination/dist/laravel-vue-pagination.common.js":
/*!***********************************************************************************!*\
  !*** ./node_modules/laravel-vue-pagination/dist/laravel-vue-pagination.common.js ***!
  \***********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = "fb15");
/******/ })
/************************************************************************/
/******/ ({

/***/ "f6fd":
/***/ (function(module, exports) {

// document.currentScript polyfill by Adam Miller

// MIT license

(function(document){
  var currentScript = "currentScript",
      scripts = document.getElementsByTagName('script'); // Live NodeList collection

  // If browser needs currentScript polyfill, add get currentScript() to the document object
  if (!(currentScript in document)) {
    Object.defineProperty(document, currentScript, {
      get: function(){

        // IE 6-10 supports script readyState
        // IE 10+ support stack trace
        try { throw new Error(); }
        catch (err) {

          // Find the second match for the "at" string to get file src url from stack.
          // Specifically works with the format of stack traces in IE.
          var i, res = ((/.*at [^\(]*\((.*):.+:.+\)$/ig).exec(err.stack) || [false])[1];

          // For all scripts on the page, if src matches or if ready state is interactive, return the script tag
          for(i in scripts){
            if(scripts[i].src == res || scripts[i].readyState == "interactive"){
              return scripts[i];
            }
          }

          // If no match, return null
          return null;
        }
      }
    });
  }
})(document);


/***/ }),

/***/ "fb15":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
// This file is imported into lib/wc client bundles.

if (typeof window !== 'undefined') {
  if (true) {
    __webpack_require__("f6fd")
  }

  var i
  if ((i = window.document.currentScript) && (i = i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))) {
    __webpack_require__.p = i[1] // eslint-disable-line
  }
}

// Indicate to webpack that this file can be concatenated
/* harmony default export */ var setPublicPath = (null);

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"604a59b1-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/LaravelVuePagination.vue?vue&type=template&id=7f71b5a7&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('renderless-laravel-vue-pagination',{attrs:{"data":_vm.data,"limit":_vm.limit,"show-disabled":_vm.showDisabled,"size":_vm.size,"align":_vm.align},on:{"pagination-change-page":_vm.onPaginationChangePage},scopedSlots:_vm._u([{key:"default",fn:function(ref){
var data = ref.data;
var limit = ref.limit;
var showDisabled = ref.showDisabled;
var size = ref.size;
var align = ref.align;
var computed = ref.computed;
var prevButtonEvents = ref.prevButtonEvents;
var nextButtonEvents = ref.nextButtonEvents;
var pageButtonEvents = ref.pageButtonEvents;
return (computed.total > computed.perPage)?_c('ul',{staticClass:"pagination",class:{
            'pagination-sm': size == 'small',
            'pagination-lg': size == 'large',
            'justify-content-center': align == 'center',
            'justify-content-end': align == 'right'
        }},[(computed.prevPageUrl || showDisabled)?_c('li',{staticClass:"page-item pagination-prev-nav",class:{'disabled': !computed.prevPageUrl}},[_c('a',_vm._g({staticClass:"page-link",attrs:{"href":"#","aria-label":"Previous","tabindex":!computed.prevPageUrl && -1}},prevButtonEvents),[_vm._t("prev-nav",[_c('span',{attrs:{"aria-hidden":"true"}},[_vm._v("«")]),_c('span',{staticClass:"sr-only"},[_vm._v("Previous")])])],2)]):_vm._e(),_vm._l((computed.pageRange),function(page,key){return _c('li',{key:key,staticClass:"page-item pagination-page-nav",class:{ 'active': page == computed.currentPage }},[_c('a',_vm._g({staticClass:"page-link",attrs:{"href":"#"}},pageButtonEvents(page)),[_vm._v("\n                "+_vm._s(page)+"\n                "),(page == computed.currentPage)?_c('span',{staticClass:"sr-only"},[_vm._v("(current)")]):_vm._e()])])}),(computed.nextPageUrl || showDisabled)?_c('li',{staticClass:"page-item pagination-next-nav",class:{'disabled': !computed.nextPageUrl}},[_c('a',_vm._g({staticClass:"page-link",attrs:{"href":"#","aria-label":"Next","tabindex":!computed.nextPageUrl && -1}},nextButtonEvents),[_vm._t("next-nav",[_c('span',{attrs:{"aria-hidden":"true"}},[_vm._v("»")]),_c('span',{staticClass:"sr-only"},[_vm._v("Next")])])],2)]):_vm._e()],2):_vm._e()}}],null,true)})}
var staticRenderFns = []


// CONCATENATED MODULE: ./src/LaravelVuePagination.vue?vue&type=template&id=7f71b5a7&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/RenderlessLaravelVuePagination.vue?vue&type=script&lang=js&
/* harmony default export */ var RenderlessLaravelVuePaginationvue_type_script_lang_js_ = ({
  props: {
    data: {
      type: Object,
      default: function _default() {}
    },
    limit: {
      type: Number,
      default: 0
    },
    showDisabled: {
      type: Boolean,
      default: false
    },
    size: {
      type: String,
      default: 'default',
      validator: function validator(value) {
        return ['small', 'default', 'large'].indexOf(value) !== -1;
      }
    },
    align: {
      type: String,
      default: 'left',
      validator: function validator(value) {
        return ['left', 'center', 'right'].indexOf(value) !== -1;
      }
    }
  },
  computed: {
    isApiResource: function isApiResource() {
      return !!this.data.meta;
    },
    currentPage: function currentPage() {
      return this.isApiResource ? this.data.meta.current_page : this.data.current_page;
    },
    firstPageUrl: function firstPageUrl() {
      return this.isApiResource ? this.data.links.first : null;
    },
    from: function from() {
      return this.isApiResource ? this.data.meta.from : this.data.from;
    },
    lastPage: function lastPage() {
      return this.isApiResource ? this.data.meta.last_page : this.data.last_page;
    },
    lastPageUrl: function lastPageUrl() {
      return this.isApiResource ? this.data.links.last : null;
    },
    nextPageUrl: function nextPageUrl() {
      return this.isApiResource ? this.data.links.next : this.data.next_page_url;
    },
    perPage: function perPage() {
      return this.isApiResource ? this.data.meta.per_page : this.data.per_page;
    },
    prevPageUrl: function prevPageUrl() {
      return this.isApiResource ? this.data.links.prev : this.data.prev_page_url;
    },
    to: function to() {
      return this.isApiResource ? this.data.meta.to : this.data.to;
    },
    total: function total() {
      return this.isApiResource ? this.data.meta.total : this.data.total;
    },
    pageRange: function pageRange() {
      if (this.limit === -1) {
        return 0;
      }

      if (this.limit === 0) {
        return this.lastPage;
      }

      var current = this.currentPage;
      var last = this.lastPage;
      var delta = this.limit;
      var left = current - delta;
      var right = current + delta + 1;
      var range = [];
      var pages = [];
      var l;

      for (var i = 1; i <= last; i++) {
        if (i === 1 || i === last || i >= left && i < right) {
          range.push(i);
        }
      }

      range.forEach(function (i) {
        if (l) {
          if (i - l === 2) {
            pages.push(l + 1);
          } else if (i - l !== 1) {
            pages.push('...');
          }
        }

        pages.push(i);
        l = i;
      });
      return pages;
    }
  },
  methods: {
    previousPage: function previousPage() {
      this.selectPage(this.currentPage - 1);
    },
    nextPage: function nextPage() {
      this.selectPage(this.currentPage + 1);
    },
    selectPage: function selectPage(page) {
      if (page === '...') {
        return;
      }

      this.$emit('pagination-change-page', page);
    }
  },
  render: function render() {
    var _this = this;

    return this.$scopedSlots.default({
      data: this.data,
      limit: this.limit,
      showDisabled: this.showDisabled,
      size: this.size,
      align: this.align,
      computed: {
        isApiResource: this.isApiResource,
        currentPage: this.currentPage,
        firstPageUrl: this.firstPageUrl,
        from: this.from,
        lastPage: this.lastPage,
        lastPageUrl: this.lastPageUrl,
        nextPageUrl: this.nextPageUrl,
        perPage: this.perPage,
        prevPageUrl: this.prevPageUrl,
        to: this.to,
        total: this.total,
        pageRange: this.pageRange
      },
      prevButtonEvents: {
        click: function click(e) {
          e.preventDefault();

          _this.previousPage();
        }
      },
      nextButtonEvents: {
        click: function click(e) {
          e.preventDefault();

          _this.nextPage();
        }
      },
      pageButtonEvents: function pageButtonEvents(page) {
        return {
          click: function click(e) {
            e.preventDefault();

            _this.selectPage(page);
          }
        };
      }
    });
  }
});
// CONCATENATED MODULE: ./src/RenderlessLaravelVuePagination.vue?vue&type=script&lang=js&
 /* harmony default export */ var src_RenderlessLaravelVuePaginationvue_type_script_lang_js_ = (RenderlessLaravelVuePaginationvue_type_script_lang_js_); 
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
/* globals __VUE_SSR_CONTEXT__ */

// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.

function normalizeComponent (
  scriptExports,
  render,
  staticRenderFns,
  functionalTemplate,
  injectStyles,
  scopeId,
  moduleIdentifier, /* server only */
  shadowMode /* vue-cli only */
) {
  // Vue.extend constructor export interop
  var options = typeof scriptExports === 'function'
    ? scriptExports.options
    : scriptExports

  // render functions
  if (render) {
    options.render = render
    options.staticRenderFns = staticRenderFns
    options._compiled = true
  }

  // functional template
  if (functionalTemplate) {
    options.functional = true
  }

  // scopedId
  if (scopeId) {
    options._scopeId = 'data-v-' + scopeId
  }

  var hook
  if (moduleIdentifier) { // server build
    hook = function (context) {
      // 2.3 injection
      context =
        context || // cached call
        (this.$vnode && this.$vnode.ssrContext) || // stateful
        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
      // 2.2 with runInNewContext: true
      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
        context = __VUE_SSR_CONTEXT__
      }
      // inject component styles
      if (injectStyles) {
        injectStyles.call(this, context)
      }
      // register component module identifier for async chunk inferrence
      if (context && context._registeredComponents) {
        context._registeredComponents.add(moduleIdentifier)
      }
    }
    // used by ssr in case component is cached and beforeCreate
    // never gets called
    options._ssrRegister = hook
  } else if (injectStyles) {
    hook = shadowMode
      ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
      : injectStyles
  }

  if (hook) {
    if (options.functional) {
      // for template-only hot-reload because in that case the render fn doesn't
      // go through the normalizer
      options._injectStyles = hook
      // register for functioal component in vue file
      var originalRender = options.render
      options.render = function renderWithStyleInjection (h, context) {
        hook.call(context)
        return originalRender(h, context)
      }
    } else {
      // inject component registration as beforeCreate hook
      var existing = options.beforeCreate
      options.beforeCreate = existing
        ? [].concat(existing, hook)
        : [hook]
    }
  }

  return {
    exports: scriptExports,
    options: options
  }
}

// CONCATENATED MODULE: ./src/RenderlessLaravelVuePagination.vue
var RenderlessLaravelVuePagination_render, RenderlessLaravelVuePagination_staticRenderFns




/* normalize component */

var component = normalizeComponent(
  src_RenderlessLaravelVuePaginationvue_type_script_lang_js_,
  RenderlessLaravelVuePagination_render,
  RenderlessLaravelVuePagination_staticRenderFns,
  false,
  null,
  null,
  null
  
)

/* harmony default export */ var RenderlessLaravelVuePagination = (component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/LaravelVuePagination.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

/* harmony default export */ var LaravelVuePaginationvue_type_script_lang_js_ = ({
  props: {
    data: {
      type: Object,
      default: function _default() {}
    },
    limit: {
      type: Number,
      default: 0
    },
    showDisabled: {
      type: Boolean,
      default: false
    },
    size: {
      type: String,
      default: 'default',
      validator: function validator(value) {
        return ['small', 'default', 'large'].indexOf(value) !== -1;
      }
    },
    align: {
      type: String,
      default: 'left',
      validator: function validator(value) {
        return ['left', 'center', 'right'].indexOf(value) !== -1;
      }
    }
  },
  methods: {
    onPaginationChangePage: function onPaginationChangePage(page) {
      this.$emit('pagination-change-page', page);
    }
  },
  components: {
    RenderlessLaravelVuePagination: RenderlessLaravelVuePagination
  }
});
// CONCATENATED MODULE: ./src/LaravelVuePagination.vue?vue&type=script&lang=js&
 /* harmony default export */ var src_LaravelVuePaginationvue_type_script_lang_js_ = (LaravelVuePaginationvue_type_script_lang_js_); 
// CONCATENATED MODULE: ./src/LaravelVuePagination.vue





/* normalize component */

var LaravelVuePagination_component = normalizeComponent(
  src_LaravelVuePaginationvue_type_script_lang_js_,
  render,
  staticRenderFns,
  false,
  null,
  null,
  null
  
)

/* harmony default export */ var LaravelVuePagination = (LaravelVuePagination_component.exports);
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js


/* harmony default export */ var entry_lib = __webpack_exports__["default"] = (LaravelVuePagination);



/***/ })

/******/ })["default"];
//# sourceMappingURL=laravel-vue-pagination.common.js.map

/***/ }),

/***/ "./node_modules/nanoscroller/bin/css/nanoscroller.css":
/*!************************************************************!*\
  !*** ./node_modules/nanoscroller/bin/css/nanoscroller.css ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../css-loader??ref--6-1!../../../postcss-loader/src??ref--6-2!./nanoscroller.css */ "./node_modules/css-loader/index.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/nanoscroller/bin/css/nanoscroller.css");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/nanoscroller/bin/javascripts/jquery.nanoscroller.js":
/*!**************************************************************************!*\
  !*** ./node_modules/nanoscroller/bin/javascripts/jquery.nanoscroller.js ***!
  \**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! nanoScrollerJS - v0.8.7 - 2015
* http://jamesflorentino.github.com/nanoScrollerJS/
* Copyright (c) 2015 James Florentino; Licensed MIT */
(function(factory) {
  if (true) {
    return !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function($) {
      return factory($, window, document);
    }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  } else {}
})(function($, window, document) {
  "use strict";
  var BROWSER_IS_IE7, BROWSER_SCROLLBAR_WIDTH, DOMSCROLL, DOWN, DRAG, ENTER, KEYDOWN, KEYUP, MOUSEDOWN, MOUSEENTER, MOUSEMOVE, MOUSEUP, MOUSEWHEEL, NanoScroll, PANEDOWN, RESIZE, SCROLL, SCROLLBAR, TOUCHMOVE, UP, WHEEL, cAF, defaults, getBrowserScrollbarWidth, hasTransform, isFFWithBuggyScrollbar, rAF, transform, _elementStyle, _prefixStyle, _vendor;
  defaults = {

    /**
      a classname for the pane element.
      @property paneClass
      @type String
      @default 'nano-pane'
     */
    paneClass: 'nano-pane',

    /**
      a classname for the slider element.
      @property sliderClass
      @type String
      @default 'nano-slider'
     */
    sliderClass: 'nano-slider',

    /**
      a classname for the content element.
      @property contentClass
      @type String
      @default 'nano-content'
     */
    contentClass: 'nano-content',

    /**
      a setting to enable native scrolling in iOS devices.
      @property iOSNativeScrolling
      @type Boolean
      @default false
     */
    iOSNativeScrolling: false,

    /**
      a setting to prevent the rest of the page being
      scrolled when user scrolls the `.content` element.
      @property preventPageScrolling
      @type Boolean
      @default false
     */
    preventPageScrolling: false,

    /**
      a setting to disable binding to the resize event.
      @property disableResize
      @type Boolean
      @default false
     */
    disableResize: false,

    /**
      a setting to make the scrollbar always visible.
      @property alwaysVisible
      @type Boolean
      @default false
     */
    alwaysVisible: false,

    /**
      a default timeout for the `flash()` method.
      @property flashDelay
      @type Number
      @default 1500
     */
    flashDelay: 1500,

    /**
      a minimum height for the `.slider` element.
      @property sliderMinHeight
      @type Number
      @default 20
     */
    sliderMinHeight: 20,

    /**
      a maximum height for the `.slider` element.
      @property sliderMaxHeight
      @type Number
      @default null
     */
    sliderMaxHeight: null,

    /**
      an alternate document context.
      @property documentContext
      @type Document
      @default null
     */
    documentContext: null,

    /**
      an alternate window context.
      @property windowContext
      @type Window
      @default null
     */
    windowContext: null
  };

  /**
    @property SCROLLBAR
    @type String
    @static
    @final
    @private
   */
  SCROLLBAR = 'scrollbar';

  /**
    @property SCROLL
    @type String
    @static
    @final
    @private
   */
  SCROLL = 'scroll';

  /**
    @property MOUSEDOWN
    @type String
    @final
    @private
   */
  MOUSEDOWN = 'mousedown';

  /**
    @property MOUSEENTER
    @type String
    @final
    @private
   */
  MOUSEENTER = 'mouseenter';

  /**
    @property MOUSEMOVE
    @type String
    @static
    @final
    @private
   */
  MOUSEMOVE = 'mousemove';

  /**
    @property MOUSEWHEEL
    @type String
    @final
    @private
   */
  MOUSEWHEEL = 'mousewheel';

  /**
    @property MOUSEUP
    @type String
    @static
    @final
    @private
   */
  MOUSEUP = 'mouseup';

  /**
    @property RESIZE
    @type String
    @final
    @private
   */
  RESIZE = 'resize';

  /**
    @property DRAG
    @type String
    @static
    @final
    @private
   */
  DRAG = 'drag';

  /**
    @property ENTER
    @type String
    @static
    @final
    @private
   */
  ENTER = 'enter';

  /**
    @property UP
    @type String
    @static
    @final
    @private
   */
  UP = 'up';

  /**
    @property PANEDOWN
    @type String
    @static
    @final
    @private
   */
  PANEDOWN = 'panedown';

  /**
    @property DOMSCROLL
    @type String
    @static
    @final
    @private
   */
  DOMSCROLL = 'DOMMouseScroll';

  /**
    @property DOWN
    @type String
    @static
    @final
    @private
   */
  DOWN = 'down';

  /**
    @property WHEEL
    @type String
    @static
    @final
    @private
   */
  WHEEL = 'wheel';

  /**
    @property KEYDOWN
    @type String
    @static
    @final
    @private
   */
  KEYDOWN = 'keydown';

  /**
    @property KEYUP
    @type String
    @static
    @final
    @private
   */
  KEYUP = 'keyup';

  /**
    @property TOUCHMOVE
    @type String
    @static
    @final
    @private
   */
  TOUCHMOVE = 'touchmove';

  /**
    @property BROWSER_IS_IE7
    @type Boolean
    @static
    @final
    @private
   */
  BROWSER_IS_IE7 = window.navigator.appName === 'Microsoft Internet Explorer' && /msie 7./i.test(window.navigator.appVersion) && window.ActiveXObject;

  /**
    @property BROWSER_SCROLLBAR_WIDTH
    @type Number
    @static
    @default null
    @private
   */
  BROWSER_SCROLLBAR_WIDTH = null;
  rAF = window.requestAnimationFrame;
  cAF = window.cancelAnimationFrame;
  _elementStyle = document.createElement('div').style;
  _vendor = (function() {
    var i, transform, vendor, vendors, _i, _len;
    vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'];
    for (i = _i = 0, _len = vendors.length; _i < _len; i = ++_i) {
      vendor = vendors[i];
      transform = vendors[i] + 'ransform';
      if (transform in _elementStyle) {
        return vendors[i].substr(0, vendors[i].length - 1);
      }
    }
    return false;
  })();
  _prefixStyle = function(style) {
    if (_vendor === false) {
      return false;
    }
    if (_vendor === '') {
      return style;
    }
    return _vendor + style.charAt(0).toUpperCase() + style.substr(1);
  };
  transform = _prefixStyle('transform');
  hasTransform = transform !== false;

  /**
    Returns browser's native scrollbar width
    @method getBrowserScrollbarWidth
    @return {Number} the scrollbar width in pixels
    @static
    @private
   */
  getBrowserScrollbarWidth = function() {
    var outer, outerStyle, scrollbarWidth;
    outer = document.createElement('div');
    outerStyle = outer.style;
    outerStyle.position = 'absolute';
    outerStyle.width = '100px';
    outerStyle.height = '100px';
    outerStyle.overflow = SCROLL;
    outerStyle.top = '-9999px';
    document.body.appendChild(outer);
    scrollbarWidth = outer.offsetWidth - outer.clientWidth;
    document.body.removeChild(outer);
    return scrollbarWidth;
  };
  isFFWithBuggyScrollbar = function() {
    var isOSXFF, ua, version;
    ua = window.navigator.userAgent;
    isOSXFF = /(?=.+Mac OS X)(?=.+Firefox)/.test(ua);
    if (!isOSXFF) {
      return false;
    }
    version = /Firefox\/\d{2}\./.exec(ua);
    if (version) {
      version = version[0].replace(/\D+/g, '');
    }
    return isOSXFF && +version > 23;
  };

  /**
    @class NanoScroll
    @param element {HTMLElement|Node} the main element
    @param options {Object} nanoScroller's options
    @constructor
   */
  NanoScroll = (function() {
    function NanoScroll(el, options) {
      this.el = el;
      this.options = options;
      BROWSER_SCROLLBAR_WIDTH || (BROWSER_SCROLLBAR_WIDTH = getBrowserScrollbarWidth());
      this.$el = $(this.el);
      this.doc = $(this.options.documentContext || document);
      this.win = $(this.options.windowContext || window);
      this.body = this.doc.find('body');
      this.$content = this.$el.children("." + this.options.contentClass);
      this.$content.attr('tabindex', this.options.tabIndex || 0);
      this.content = this.$content[0];
      this.previousPosition = 0;
      if (this.options.iOSNativeScrolling && (this.el.style.WebkitOverflowScrolling != null)) {
        this.nativeScrolling();
      } else {
        this.generate();
      }
      this.createEvents();
      this.addEvents();
      this.reset();
    }


    /**
      Prevents the rest of the page being scrolled
      when user scrolls the `.nano-content` element.
      @method preventScrolling
      @param event {Event}
      @param direction {String} Scroll direction (up or down)
      @private
     */

    NanoScroll.prototype.preventScrolling = function(e, direction) {
      if (!this.isActive) {
        return;
      }
      if (e.type === DOMSCROLL) {
        if (direction === DOWN && e.originalEvent.detail > 0 || direction === UP && e.originalEvent.detail < 0) {
          e.preventDefault();
        }
      } else if (e.type === MOUSEWHEEL) {
        if (!e.originalEvent || !e.originalEvent.wheelDelta) {
          return;
        }
        if (direction === DOWN && e.originalEvent.wheelDelta < 0 || direction === UP && e.originalEvent.wheelDelta > 0) {
          e.preventDefault();
        }
      }
    };


    /**
      Enable iOS native scrolling
      @method nativeScrolling
      @private
     */

    NanoScroll.prototype.nativeScrolling = function() {
      this.$content.css({
        WebkitOverflowScrolling: 'touch'
      });
      this.iOSNativeScrolling = true;
      this.isActive = true;
    };


    /**
      Updates those nanoScroller properties that
      are related to current scrollbar position.
      @method updateScrollValues
      @private
     */

    NanoScroll.prototype.updateScrollValues = function() {
      var content, direction;
      content = this.content;
      this.maxScrollTop = content.scrollHeight - content.clientHeight;
      this.prevScrollTop = this.contentScrollTop || 0;
      this.contentScrollTop = content.scrollTop;
      direction = this.contentScrollTop > this.previousPosition ? "down" : this.contentScrollTop < this.previousPosition ? "up" : "same";
      this.previousPosition = this.contentScrollTop;
      if (direction !== "same") {
        this.$el.trigger('update', {
          position: this.contentScrollTop,
          maximum: this.maxScrollTop,
          direction: direction
        });
      }
      if (!this.iOSNativeScrolling) {
        this.maxSliderTop = this.paneHeight - this.sliderHeight;
        this.sliderTop = this.maxScrollTop === 0 ? 0 : this.contentScrollTop * this.maxSliderTop / this.maxScrollTop;
      }
    };


    /**
      Updates CSS styles for current scroll position.
      Uses CSS 2d transfroms and `window.requestAnimationFrame` if available.
      @method setOnScrollStyles
      @private
     */

    NanoScroll.prototype.setOnScrollStyles = function() {
      var cssValue;
      if (hasTransform) {
        cssValue = {};
        cssValue[transform] = "translate(0, " + this.sliderTop + "px)";
      } else {
        cssValue = {
          top: this.sliderTop
        };
      }
      if (rAF) {
        if (cAF && this.scrollRAF) {
          cAF(this.scrollRAF);
        }
        this.scrollRAF = rAF((function(_this) {
          return function() {
            _this.scrollRAF = null;
            return _this.slider.css(cssValue);
          };
        })(this));
      } else {
        this.slider.css(cssValue);
      }
    };


    /**
      Creates event related methods
      @method createEvents
      @private
     */

    NanoScroll.prototype.createEvents = function() {
      this.events = {
        down: (function(_this) {
          return function(e) {
            _this.isBeingDragged = true;
            _this.offsetY = e.pageY - _this.slider.offset().top;
            if (!_this.slider.is(e.target)) {
              _this.offsetY = 0;
            }
            _this.pane.addClass('active');
            _this.doc.bind(MOUSEMOVE, _this.events[DRAG]).bind(MOUSEUP, _this.events[UP]);
            _this.body.bind(MOUSEENTER, _this.events[ENTER]);
            return false;
          };
        })(this),
        drag: (function(_this) {
          return function(e) {
            _this.sliderY = e.pageY - _this.$el.offset().top - _this.paneTop - (_this.offsetY || _this.sliderHeight * 0.5);
            _this.scroll();
            if (_this.contentScrollTop >= _this.maxScrollTop && _this.prevScrollTop !== _this.maxScrollTop) {
              _this.$el.trigger('scrollend');
            } else if (_this.contentScrollTop === 0 && _this.prevScrollTop !== 0) {
              _this.$el.trigger('scrolltop');
            }
            return false;
          };
        })(this),
        up: (function(_this) {
          return function(e) {
            _this.isBeingDragged = false;
            _this.pane.removeClass('active');
            _this.doc.unbind(MOUSEMOVE, _this.events[DRAG]).unbind(MOUSEUP, _this.events[UP]);
            _this.body.unbind(MOUSEENTER, _this.events[ENTER]);
            return false;
          };
        })(this),
        resize: (function(_this) {
          return function(e) {
            _this.reset();
          };
        })(this),
        panedown: (function(_this) {
          return function(e) {
            _this.sliderY = (e.offsetY || e.originalEvent.layerY) - (_this.sliderHeight * 0.5);
            _this.scroll();
            _this.events.down(e);
            return false;
          };
        })(this),
        scroll: (function(_this) {
          return function(e) {
            _this.updateScrollValues();
            if (_this.isBeingDragged) {
              return;
            }
            if (!_this.iOSNativeScrolling) {
              _this.sliderY = _this.sliderTop;
              _this.setOnScrollStyles();
            }
            if (e == null) {
              return;
            }
            if (_this.contentScrollTop >= _this.maxScrollTop) {
              if (_this.options.preventPageScrolling) {
                _this.preventScrolling(e, DOWN);
              }
              if (_this.prevScrollTop !== _this.maxScrollTop) {
                _this.$el.trigger('scrollend');
              }
            } else if (_this.contentScrollTop === 0) {
              if (_this.options.preventPageScrolling) {
                _this.preventScrolling(e, UP);
              }
              if (_this.prevScrollTop !== 0) {
                _this.$el.trigger('scrolltop');
              }
            }
          };
        })(this),
        wheel: (function(_this) {
          return function(e) {
            var delta;
            if (e == null) {
              return;
            }
            delta = e.delta || e.wheelDelta || (e.originalEvent && e.originalEvent.wheelDelta) || -e.detail || (e.originalEvent && -e.originalEvent.detail);
            if (delta) {
              _this.sliderY += -delta / 3;
            }
            _this.scroll();
            return false;
          };
        })(this),
        enter: (function(_this) {
          return function(e) {
            var _ref;
            if (!_this.isBeingDragged) {
              return;
            }
            if ((e.buttons || e.which) !== 1) {
              return (_ref = _this.events)[UP].apply(_ref, arguments);
            }
          };
        })(this)
      };
    };


    /**
      Adds event listeners with jQuery.
      @method addEvents
      @private
     */

    NanoScroll.prototype.addEvents = function() {
      var events;
      this.removeEvents();
      events = this.events;
      if (!this.options.disableResize) {
        this.win.bind(RESIZE, events[RESIZE]);
      }
      if (!this.iOSNativeScrolling) {
        this.slider.bind(MOUSEDOWN, events[DOWN]);
        this.pane.bind(MOUSEDOWN, events[PANEDOWN]).bind("" + MOUSEWHEEL + " " + DOMSCROLL, events[WHEEL]);
      }
      this.$content.bind("" + SCROLL + " " + MOUSEWHEEL + " " + DOMSCROLL + " " + TOUCHMOVE, events[SCROLL]);
    };


    /**
      Removes event listeners with jQuery.
      @method removeEvents
      @private
     */

    NanoScroll.prototype.removeEvents = function() {
      var events;
      events = this.events;
      this.win.unbind(RESIZE, events[RESIZE]);
      if (!this.iOSNativeScrolling) {
        this.slider.unbind();
        this.pane.unbind();
      }
      this.$content.unbind("" + SCROLL + " " + MOUSEWHEEL + " " + DOMSCROLL + " " + TOUCHMOVE, events[SCROLL]);
    };


    /**
      Generates nanoScroller's scrollbar and elements for it.
      @method generate
      @chainable
      @private
     */

    NanoScroll.prototype.generate = function() {
      var contentClass, cssRule, currentPadding, options, pane, paneClass, sliderClass;
      options = this.options;
      paneClass = options.paneClass, sliderClass = options.sliderClass, contentClass = options.contentClass;
      if (!(pane = this.$el.children("." + paneClass)).length && !pane.children("." + sliderClass).length) {
        this.$el.append("<div class=\"" + paneClass + "\"><div class=\"" + sliderClass + "\" /></div>");
      }
      this.pane = this.$el.children("." + paneClass);
      this.slider = this.pane.find("." + sliderClass);
      if (BROWSER_SCROLLBAR_WIDTH === 0 && isFFWithBuggyScrollbar()) {
        currentPadding = window.getComputedStyle(this.content, null).getPropertyValue('padding-right').replace(/[^0-9.]+/g, '');
        cssRule = {
          right: -14,
          paddingRight: +currentPadding + 14
        };
      } else if (BROWSER_SCROLLBAR_WIDTH) {
        cssRule = {
          right: -BROWSER_SCROLLBAR_WIDTH
        };
        this.$el.addClass('has-scrollbar');
      }
      if (cssRule != null) {
        this.$content.css(cssRule);
      }
      return this;
    };


    /**
      @method restore
      @private
     */

    NanoScroll.prototype.restore = function() {
      this.stopped = false;
      if (!this.iOSNativeScrolling) {
        this.pane.show();
      }
      this.addEvents();
    };


    /**
      Resets nanoScroller's scrollbar.
      @method reset
      @chainable
      @example
          $(".nano").nanoScroller();
     */

    NanoScroll.prototype.reset = function() {
      var content, contentHeight, contentPosition, contentStyle, contentStyleOverflowY, paneBottom, paneHeight, paneOuterHeight, paneTop, parentMaxHeight, right, sliderHeight;
      if (this.iOSNativeScrolling) {
        this.contentHeight = this.content.scrollHeight;
        return;
      }
      if (!this.$el.find("." + this.options.paneClass).length) {
        this.generate().stop();
      }
      if (this.stopped) {
        this.restore();
      }
      content = this.content;
      contentStyle = content.style;
      contentStyleOverflowY = contentStyle.overflowY;
      if (BROWSER_IS_IE7) {
        this.$content.css({
          height: this.$content.height()
        });
      }
      contentHeight = content.scrollHeight + BROWSER_SCROLLBAR_WIDTH;
      parentMaxHeight = parseInt(this.$el.css("max-height"), 10);
      if (parentMaxHeight > 0) {
        this.$el.height("");
        this.$el.height(content.scrollHeight > parentMaxHeight ? parentMaxHeight : content.scrollHeight);
      }
      paneHeight = this.pane.outerHeight(false);
      paneTop = parseInt(this.pane.css('top'), 10);
      paneBottom = parseInt(this.pane.css('bottom'), 10);
      paneOuterHeight = paneHeight + paneTop + paneBottom;
      sliderHeight = Math.round(paneOuterHeight / contentHeight * paneHeight);
      if (sliderHeight < this.options.sliderMinHeight) {
        sliderHeight = this.options.sliderMinHeight;
      } else if ((this.options.sliderMaxHeight != null) && sliderHeight > this.options.sliderMaxHeight) {
        sliderHeight = this.options.sliderMaxHeight;
      }
      if (contentStyleOverflowY === SCROLL && contentStyle.overflowX !== SCROLL) {
        sliderHeight += BROWSER_SCROLLBAR_WIDTH;
      }
      this.maxSliderTop = paneOuterHeight - sliderHeight;
      this.contentHeight = contentHeight;
      this.paneHeight = paneHeight;
      this.paneOuterHeight = paneOuterHeight;
      this.sliderHeight = sliderHeight;
      this.paneTop = paneTop;
      this.slider.height(sliderHeight);
      this.events.scroll();
      this.pane.show();
      this.isActive = true;
      if ((content.scrollHeight === content.clientHeight) || (this.pane.outerHeight(true) >= content.scrollHeight && contentStyleOverflowY !== SCROLL)) {
        this.pane.hide();
        this.isActive = false;
      } else if (this.el.clientHeight === content.scrollHeight && contentStyleOverflowY === SCROLL) {
        this.slider.hide();
      } else {
        this.slider.show();
      }
      this.pane.css({
        opacity: (this.options.alwaysVisible ? 1 : ''),
        visibility: (this.options.alwaysVisible ? 'visible' : '')
      });
      contentPosition = this.$content.css('position');
      if (contentPosition === 'static' || contentPosition === 'relative') {
        right = parseInt(this.$content.css('right'), 10);
        if (right) {
          this.$content.css({
            right: '',
            marginRight: right
          });
        }
      }
      return this;
    };


    /**
      @method scroll
      @private
      @example
          $(".nano").nanoScroller({ scroll: 'top' });
     */

    NanoScroll.prototype.scroll = function() {
      if (!this.isActive) {
        return;
      }
      this.sliderY = Math.max(0, this.sliderY);
      this.sliderY = Math.min(this.maxSliderTop, this.sliderY);
      this.$content.scrollTop(this.maxScrollTop * this.sliderY / this.maxSliderTop);
      if (!this.iOSNativeScrolling) {
        this.updateScrollValues();
        this.setOnScrollStyles();
      }
      return this;
    };


    /**
      Scroll at the bottom with an offset value
      @method scrollBottom
      @param offsetY {Number}
      @chainable
      @example
          $(".nano").nanoScroller({ scrollBottom: value });
     */

    NanoScroll.prototype.scrollBottom = function(offsetY) {
      if (!this.isActive) {
        return;
      }
      this.$content.scrollTop(this.contentHeight - this.$content.height() - offsetY).trigger(MOUSEWHEEL);
      this.stop().restore();
      return this;
    };


    /**
      Scroll at the top with an offset value
      @method scrollTop
      @param offsetY {Number}
      @chainable
      @example
          $(".nano").nanoScroller({ scrollTop: value });
     */

    NanoScroll.prototype.scrollTop = function(offsetY) {
      if (!this.isActive) {
        return;
      }
      this.$content.scrollTop(+offsetY).trigger(MOUSEWHEEL);
      this.stop().restore();
      return this;
    };


    /**
      Scroll to an element
      @method scrollTo
      @param node {Node} A node to scroll to.
      @chainable
      @example
          $(".nano").nanoScroller({ scrollTo: $('#a_node') });
     */

    NanoScroll.prototype.scrollTo = function(node) {
      if (!this.isActive) {
        return;
      }
      this.scrollTop(this.$el.find(node).get(0).offsetTop);
      return this;
    };


    /**
      To stop the operation.
      This option will tell the plugin to disable all event bindings and hide the gadget scrollbar from the UI.
      @method stop
      @chainable
      @example
          $(".nano").nanoScroller({ stop: true });
     */

    NanoScroll.prototype.stop = function() {
      if (cAF && this.scrollRAF) {
        cAF(this.scrollRAF);
        this.scrollRAF = null;
      }
      this.stopped = true;
      this.removeEvents();
      if (!this.iOSNativeScrolling) {
        this.pane.hide();
      }
      return this;
    };


    /**
      Destroys nanoScroller and restores browser's native scrollbar.
      @method destroy
      @chainable
      @example
          $(".nano").nanoScroller({ destroy: true });
     */

    NanoScroll.prototype.destroy = function() {
      if (!this.stopped) {
        this.stop();
      }
      if (!this.iOSNativeScrolling && this.pane.length) {
        this.pane.remove();
      }
      if (BROWSER_IS_IE7) {
        this.$content.height('');
      }
      this.$content.removeAttr('tabindex');
      if (this.$el.hasClass('has-scrollbar')) {
        this.$el.removeClass('has-scrollbar');
        this.$content.css({
          right: ''
        });
      }
      return this;
    };


    /**
      To flash the scrollbar gadget for an amount of time defined in plugin settings (defaults to 1,5s).
      Useful if you want to show the user (e.g. on pageload) that there is more content waiting for him.
      @method flash
      @chainable
      @example
          $(".nano").nanoScroller({ flash: true });
     */

    NanoScroll.prototype.flash = function() {
      if (this.iOSNativeScrolling) {
        return;
      }
      if (!this.isActive) {
        return;
      }
      this.reset();
      this.pane.addClass('flashed');
      setTimeout((function(_this) {
        return function() {
          _this.pane.removeClass('flashed');
        };
      })(this), this.options.flashDelay);
      return this;
    };

    return NanoScroll;

  })();
  $.fn.nanoScroller = function(settings) {
    return this.each(function() {
      var options, scrollbar;
      if (!(scrollbar = this.nanoscroller)) {
        options = $.extend({}, defaults, settings);
        this.nanoscroller = scrollbar = new NanoScroll(this, options);
      }
      if (settings && typeof settings === "object") {
        $.extend(scrollbar.options, settings);
        if (settings.scrollBottom != null) {
          return scrollbar.scrollBottom(settings.scrollBottom);
        }
        if (settings.scrollTop != null) {
          return scrollbar.scrollTop(settings.scrollTop);
        }
        if (settings.scrollTo) {
          return scrollbar.scrollTo(settings.scrollTo);
        }
        if (settings.scroll === 'bottom') {
          return scrollbar.scrollBottom(0);
        }
        if (settings.scroll === 'top') {
          return scrollbar.scrollTop(0);
        }
        if (settings.scroll && settings.scroll instanceof $) {
          return scrollbar.scrollTo(settings.scroll);
        }
        if (settings.stop) {
          return scrollbar.stop();
        }
        if (settings.destroy) {
          return scrollbar.destroy();
        }
        if (settings.flash) {
          return scrollbar.flash();
        }
      }
      return scrollbar.reset();
    });
  };
  $.fn.nanoScroller.Constructor = NanoScroll;
});

//# sourceMappingURL=jquery.nanoscroller.js.map


/***/ }),

/***/ "./node_modules/paypal-checkout/dist/checkout.lib.js":
/*!***********************************************************!*\
  !*** ./node_modules/paypal-checkout/dist/checkout.lib.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(process, Buffer) {/*! For license information please see checkout.lib.js.LICENSE.txt */
!function(root, factory) {
     true ? module.exports = factory() : undefined;
}("undefined" != typeof self ? self : this, (function() {
    return function(modules) {
        var installedModules = {};
        function __webpack_require__(moduleId) {
            if (installedModules[moduleId]) return installedModules[moduleId].exports;
            var module = installedModules[moduleId] = {
                i: moduleId,
                l: !1,
                exports: {}
            };
            modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
            module.l = !0;
            return module.exports;
        }
        __webpack_require__.m = modules;
        __webpack_require__.c = installedModules;
        __webpack_require__.d = function(exports, name, getter) {
            __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {
                enumerable: !0,
                get: getter
            });
        };
        __webpack_require__.r = function(exports) {
            "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {
                value: "Module"
            });
            Object.defineProperty(exports, "__esModule", {
                value: !0
            });
        };
        __webpack_require__.t = function(value, mode) {
            1 & mode && (value = __webpack_require__(value));
            if (8 & mode) return value;
            if (4 & mode && "object" == typeof value && value && value.__esModule) return value;
            var ns = Object.create(null);
            __webpack_require__.r(ns);
            Object.defineProperty(ns, "default", {
                enumerable: !0,
                value: value
            });
            if (2 & mode && "string" != typeof value) for (var key in value) __webpack_require__.d(ns, key, function(key) {
                return value[key];
            }.bind(null, key));
            return ns;
        };
        __webpack_require__.n = function(module) {
            var getter = module && module.__esModule ? function() {
                return module.default;
            } : function() {
                return module;
            };
            __webpack_require__.d(getter, "a", getter);
            return getter;
        };
        __webpack_require__.o = function(object, property) {
            return {}.hasOwnProperty.call(object, property);
        };
        __webpack_require__.p = "";
        return __webpack_require__(__webpack_require__.s = 44);
    }([ function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "m", (function() {
            return BUTTON_STYLE_OPTIONS;
        }));
        __webpack_require__.d(__webpack_exports__, "f", (function() {
            return BUTTON_LABEL;
        }));
        __webpack_require__.d(__webpack_exports__, "e", (function() {
            return BUTTON_COLOR;
        }));
        __webpack_require__.d(__webpack_exports__, "i", (function() {
            return BUTTON_LOGO_COLOR;
        }));
        __webpack_require__.d(__webpack_exports__, "l", (function() {
            return BUTTON_SIZE;
        }));
        __webpack_require__.d(__webpack_exports__, "n", (function() {
            return BUTTON_TAGLINE_COLOR;
        }));
        __webpack_require__.d(__webpack_exports__, "k", (function() {
            return BUTTON_SHAPE;
        }));
        __webpack_require__.d(__webpack_exports__, "d", (function() {
            return BUTTON_BRANDING;
        }));
        __webpack_require__.d(__webpack_exports__, "g", (function() {
            return BUTTON_LAYOUT;
        }));
        __webpack_require__.d(__webpack_exports__, "j", (function() {
            return BUTTON_NUMBER;
        }));
        __webpack_require__.d(__webpack_exports__, "h", (function() {
            return BUTTON_LOGO;
        }));
        __webpack_require__.d(__webpack_exports__, "q", (function() {
            return CHECKOUT_OVERLAY_COLOR;
        }));
        __webpack_require__.d(__webpack_exports__, "v", (function() {
            return FUNDING;
        }));
        __webpack_require__.d(__webpack_exports__, "w", (function() {
            return FUNDING_BRAND_LABEL;
        }));
        __webpack_require__.d(__webpack_exports__, "o", (function() {
            return CARD;
        }));
        __webpack_require__.d(__webpack_exports__, "x", (function() {
            return FUNDING_ELIGIBILITY_REASON;
        }));
        __webpack_require__.d(__webpack_exports__, "p", (function() {
            return CARD_PRIORITY;
        }));
        __webpack_require__.d(__webpack_exports__, "u", (function() {
            return FPTI;
        }));
        __webpack_require__.d(__webpack_exports__, "r", (function() {
            return COUNTRY;
        }));
        __webpack_require__.d(__webpack_exports__, "y", (function() {
            return LANG;
        }));
        __webpack_require__.d(__webpack_exports__, "z", (function() {
            return LANG_TO_DEFAULT_COUNTRY;
        }));
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return ALLOWED_INSTALLMENT_COUNTRIES;
        }));
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return ALLOWED_INSTALLMENT_PERIOD;
        }));
        __webpack_require__.d(__webpack_exports__, "t", (function() {
            return ENV;
        }));
        __webpack_require__.d(__webpack_exports__, "G", (function() {
            return USERS;
        }));
        __webpack_require__.d(__webpack_exports__, "F", (function() {
            return SOURCE;
        }));
        __webpack_require__.d(__webpack_exports__, "B", (function() {
            return LOG_LEVEL;
        }));
        __webpack_require__.d(__webpack_exports__, "C", (function() {
            return PAYMENT_TYPE;
        }));
        __webpack_require__.d(__webpack_exports__, "E", (function() {
            return PPTM_ID;
        }));
        __webpack_require__.d(__webpack_exports__, "c", (function() {
            return ATTRIBUTE;
        }));
        __webpack_require__.d(__webpack_exports__, "D", (function() {
            return PLATFORM;
        }));
        __webpack_require__.d(__webpack_exports__, "s", (function() {
            return DEFAULT;
        }));
        __webpack_require__.d(__webpack_exports__, "A", (function() {
            return LOCALE;
        }));
        var BUTTON_STYLE_OPTIONS = {
            LABEL: "label",
            SIZE: "size",
            SHAPE: "shape",
            COLOR: "color",
            LAYOUT: "layout",
            MAXBUTTONS: "maxbuttons",
            FUNDINGICONS: "fundingicons",
            BRANDING: "branding",
            TAGLINE: "tagline",
            HEIGHT: "height",
            INSTALLMENTPERIOD: "installmentperiod"
        };
        var BUTTON_LABEL = {
            PAYPAL: "paypal",
            CHECKOUT: "checkout",
            PAY: "pay",
            CREDIT: "credit",
            CARD: "card",
            BUYNOW: "buynow",
            INSTALLMENT: "installment",
            VENMO: "venmo",
            ITAU: "itau",
            IDEAL: "ideal",
            ELV: "elv",
            BANCONTACT: "bancontact",
            GIROPAY: "giropay",
            SOFORT: "sofort",
            EPS: "eps",
            MYBANK: "mybank",
            P24: "p24",
            BLIK: "blik",
            MAXIMA: "maxima",
            BOLETO: "boleto",
            OXXO: "oxxo",
            MERCADOPAGO: "mercadopago"
        };
        var BUTTON_COLOR = {
            GOLD: "gold",
            BLUE: "blue",
            SILVER: "silver",
            BLACK: "black",
            DARKBLUE: "darkblue",
            WHITE: "white",
            TRANSPARENT: "transparent"
        };
        var BUTTON_LOGO_COLOR = {
            BLUE: "blue",
            WHITE: "white",
            BLACK: "black",
            ANY: "any"
        };
        var BUTTON_SIZE = {
            TINY: "tiny",
            SMALL: "small",
            MEDIUM: "medium",
            LARGE: "large",
            HUGE: "huge",
            RESPONSIVE: "responsive"
        };
        var BUTTON_TAGLINE_COLOR = {
            BLACK: "black",
            BLUE: "blue"
        };
        var BUTTON_SHAPE = {
            PILL: "pill",
            RECT: "rect"
        };
        var BUTTON_BRANDING = {
            BRANDED: "branded",
            UNBRANDED: "unbranded"
        };
        var BUTTON_LAYOUT = {
            HORIZONTAL: "horizontal",
            VERTICAL: "vertical"
        };
        var BUTTON_NUMBER = {
            SINGLE: "single",
            MULTIPLE: "multiple"
        };
        var BUTTON_LOGO = {
            PP: "pp",
            PAYPAL: "paypal",
            VENMO: "venmo",
            ITAU: "itau",
            CREDIT: "credit",
            IDEAL: "ideal",
            ELV: "elv",
            BANCONTACT: "bancontact",
            GIROPAY: "giropay",
            SOFORT: "sofort",
            EPS: "eps",
            MYBANK: "mybank",
            P24: "p24",
            BLIK: "blik",
            MAXIMA: "maxima",
            BOLETO: "boleto",
            OXXO: "oxxo",
            MERCADOPAGO: "mercadopago"
        };
        var CHECKOUT_OVERLAY_COLOR = {
            BLACK: "black",
            WHITE: "white"
        };
        var FUNDING = {
            PAYPAL: "paypal",
            VENMO: "venmo",
            ITAU: "itau",
            CREDIT: "credit",
            CARD: "card",
            IDEAL: "ideal",
            ELV: "elv",
            BANCONTACT: "bancontact",
            GIROPAY: "giropay",
            SOFORT: "sofort",
            EPS: "eps",
            MYBANK: "mybank",
            P24: "p24",
            ZIMPLER: "zimpler",
            BLIK: "blik",
            MAXIMA: "maxima",
            BOLETO: "boleto",
            OXXO: "oxxo",
            MERCADOPAGO: "mercadopago"
        };
        var FUNDING_BRAND_LABEL = {
            PAYPAL: "PayPal",
            CREDIT: "PayPal Credit",
            CARD: "Debit or Credit Card"
        };
        var CARD = {
            VISA: "visa",
            MASTERCARD: "mastercard",
            AMEX: "amex",
            DISCOVER: "discover",
            SWITCH: "switch",
            MAESTRO: "maestro",
            HIPER: "hiper",
            ELO: "elo",
            JCB: "jcb",
            CUP: "cup",
            COFINOGA: "cofinoga",
            COFIDIS: "cofidis",
            CETELEM: "cetelem",
            CBNATIONALE: "cbnationale"
        };
        var FUNDING_ELIGIBILITY_REASON = {
            PRIMARY: "The funding source is the primary source",
            NOT_ENABLED: "The funding source is not currently enabled for use",
            SECONDARY_DISALLOWED: "The funding source is disallowed as a secondary button",
            OPT_OUT: "The funding source was disallowed in funding.disallowed",
            OPT_IN: "The funding source was allowed in funding.allowed",
            DISALLOWED_COUNTRY: "The funding source is not enabled for the current locale",
            DEFAULT_COUNTRY: "The funding source is enabled by default for the current locale",
            DEFAULT: "The funding source is enabled by default for all users",
            REMEMBERED: "The funding source was remembered for the current user",
            NEED_OPT_IN: "The funding source needs to be allowed in funding.allowed",
            COMMIT_NOT_SET: "The funding source is not enabled when commit is not set as true",
            INVALID_ENV: "The funding source is not supported in this environment"
        };
        var CARD_PRIORITY = [ CARD.VISA, CARD.MASTERCARD, CARD.AMEX, CARD.DISCOVER, CARD.SWITCH, CARD.MAESTRO, CARD.HIPER, CARD.ELO, CARD.JCB, CARD.CUP, CARD.COFINOGA, CARD.COFIDIS, CARD.CETELEM, CARD.CBNATIONALE ];
        var ENV = {
            LOCAL: "local",
            STAGE: "stage",
            SANDBOX: "sandbox",
            PRODUCTION: "production",
            TEST: "test",
            DEMO: "demo"
        };
        var USERS = {
            ALL: "all",
            REMEMBERED: "remembered"
        };
        var SOURCE = {
            MANUAL: "manual",
            BUTTON_FACTORY: "button_factory"
        };
        var LOG_LEVEL = {
            DEBUG: "debug",
            INFO: "info",
            WARN: "warn",
            ERROR: "error"
        };
        var PAYMENT_TYPE = {
            EC_TOKEN: "ec_token",
            BA_TOKEN: "ba_token",
            PAY_ID: "pay_id"
        };
        var PPTM_ID = "xo-pptm";
        var ATTRIBUTE = {
            BUTTON: "data-button",
            FUNDING_SOURCE: "data-funding-source",
            CARD: "data-card",
            VERSION: "data-version",
            LAYOUT: "data-layout",
            SIZE: "data-size",
            SMART_BUTTON_VERSION: "data-paypal-smart-button-version"
        };
        var PLATFORM = {
            DESKTOP: "desktop",
            MOBILE: "mobile"
        };
        var DEFAULT = "default";
        var _CONTEXT_TYPE;
        var FPTI = {
            KEY: {
                FEED: "feed_name",
                STATE: "state_name",
                TRANSITION: "transition_name",
                BUTTON_TYPE: "button_type",
                SESSION_UID: "page_session_id",
                BUTTON_SESSION_UID: "button_session_id",
                TOKEN: "token",
                CONTEXT_ID: "context_id",
                CONTEXT_TYPE: "context_type",
                REFERER: "referer_url",
                PAY_ID: "pay_id",
                SELLER_ID: "seller_id",
                DATA_SOURCE: "serverside_data_source",
                BUTTON_SOURCE: "button_source",
                ERROR_CODE: "ext_error_code",
                ERROR_DESC: "ext_error_desc",
                PAGE_LOAD_TIME: "page_load_time",
                EXPERIMENT_NAME: "pxp_exp_id",
                TREATMENT_NAME: "pxp_trtmnt_id",
                TRANSITION_TIME: "transition_time",
                FUNDING_LIST: "eligible_payment_methods",
                FUNDING_COUNT: "eligible_payment_count",
                CHOSEN_FUNDING: "selected_payment_method",
                BUTTON_LAYOUT: "button_layout",
                BUTTON_COLOR: "button_color",
                BUTTON_SIZE: "button_size",
                BUTTON_SHAPE: "button_shape",
                BUTTON_LABEL: "button_label",
                BUTTON_WIDTH: "button_width",
                VERSION: "checkoutjs_version",
                MAX_BUTTONS: "max_buttons",
                FUNDING_REMEMBERED: "funding_remembered",
                BUTTON_TAGLINE_ENABLED: "button_tagline_enabled",
                RESPONSE_DURATION: "response_duration",
                PAYMENT_FLOW: "payment_flow",
                BUTTON_VERSION: "button_version",
                PAGE_TYPE: "pp_placement",
                TIMESTAMP: "t"
            },
            BUTTON_TYPE: {
                IFRAME: "iframe",
                HTML: "html",
                CUSTOM: "custom"
            },
            DATA_SOURCE: {
                CHECKOUT: "checkout"
            },
            CONTEXT_TYPE: (_CONTEXT_TYPE = {
                BUTTON_SESSION_ID: "button_session_id"
            }, _CONTEXT_TYPE[PAYMENT_TYPE.PAY_ID] = "Pay-ID", _CONTEXT_TYPE[PAYMENT_TYPE.EC_TOKEN] = "EC-Token", 
            _CONTEXT_TYPE[PAYMENT_TYPE.BA_TOKEN] = "EC-Token", _CONTEXT_TYPE),
            FEED: {
                CHECKOUTJS: "checkoutjs"
            },
            STATE: {
                LOAD: "checkoutjs_load",
                BUTTON: "checkoutjs_button",
                CHECKOUT: "checkoutjs_checkout",
                PPTM: "checkoutjs_pptm"
            },
            TRANSITION: {
                SCRIPT_LOAD: "process_script_load",
                BUTTON_RENDER: "process_button_render",
                BUTTON_LOAD: "process_button_load",
                BUTTON_CLICK: "process_button_click",
                BUTTON_RENDER_INTRANET_MODE: "process_button_render_intranet_mode",
                BUTTON_CLICK_INTRANET_MODE: "process_button_click_intranet_mode",
                CREATE_PAYMENT: "process_create_payment",
                RECIEVE_PAYMENT: "process_recieve_payment",
                CHECKOUT_INIT: "process_checkout_init",
                CHECKOUT_APPROVE: "process_checkout_approve",
                CHECKOUT_SHIPPING_CHANGE: "process_checkout_shipping_change",
                CHECKOUT_CANCEL: "process_checkout_cancel",
                CHECKOUT_ERROR: "process_checkout_error",
                EXTERNAL_EXPERIMENT: "process_external_experiment",
                EXTERNAL_EXPERIMENT_COMPLETE: "process_external_experiment_complete",
                PPTM_LOAD: "process_pptm_load",
                PPTM_LOADED: "process_pptm_loaded"
            }
        };
        var _LANG_TO_DEFAULT_COUN;
        var COUNTRY = {
            AD: "AD",
            AE: "AE",
            AG: "AG",
            AI: "AI",
            AL: "AL",
            AM: "AM",
            AN: "AN",
            AO: "AO",
            AR: "AR",
            AT: "AT",
            AU: "AU",
            AW: "AW",
            AZ: "AZ",
            BA: "BA",
            BB: "BB",
            BE: "BE",
            BF: "BF",
            BG: "BG",
            BH: "BH",
            BI: "BI",
            BJ: "BJ",
            BM: "BM",
            BN: "BN",
            BO: "BO",
            BR: "BR",
            BS: "BS",
            BT: "BT",
            BW: "BW",
            BY: "BY",
            BZ: "BZ",
            C2: "C2",
            CA: "CA",
            CD: "CD",
            CG: "CG",
            CH: "CH",
            CI: "CI",
            CK: "CK",
            CL: "CL",
            CM: "CM",
            CN: "CN",
            CO: "CO",
            CR: "CR",
            CV: "CV",
            CY: "CY",
            CZ: "CZ",
            DE: "DE",
            DJ: "DJ",
            DK: "DK",
            DM: "DM",
            DO: "DO",
            DZ: "DZ",
            EC: "EC",
            EE: "EE",
            EG: "EG",
            ER: "ER",
            ES: "ES",
            ET: "ET",
            FI: "FI",
            FJ: "FJ",
            FK: "FK",
            FM: "FM",
            FO: "FO",
            FR: "FR",
            GA: "GA",
            GB: "GB",
            GD: "GD",
            GE: "GE",
            GF: "GF",
            GI: "GI",
            GL: "GL",
            GM: "GM",
            GN: "GN",
            GP: "GP",
            GR: "GR",
            GT: "GT",
            GW: "GW",
            GY: "GY",
            HK: "HK",
            HN: "HN",
            HR: "HR",
            HU: "HU",
            ID: "ID",
            IE: "IE",
            IL: "IL",
            IN: "IN",
            IS: "IS",
            IT: "IT",
            JM: "JM",
            JO: "JO",
            JP: "JP",
            KE: "KE",
            KG: "KG",
            KH: "KH",
            KI: "KI",
            KM: "KM",
            KN: "KN",
            KR: "KR",
            KW: "KW",
            KY: "KY",
            KZ: "KZ",
            LA: "LA",
            LC: "LC",
            LI: "LI",
            LK: "LK",
            LS: "LS",
            LT: "LT",
            LU: "LU",
            LV: "LV",
            MA: "MA",
            MC: "MC",
            MD: "MD",
            ME: "ME",
            MG: "MG",
            MH: "MH",
            MK: "MK",
            ML: "ML",
            MN: "MN",
            MQ: "MQ",
            MR: "MR",
            MS: "MS",
            MT: "MT",
            MU: "MU",
            MV: "MV",
            MW: "MW",
            MX: "MX",
            MY: "MY",
            MZ: "MZ",
            NA: "NA",
            NC: "NC",
            NE: "NE",
            NF: "NF",
            NG: "NG",
            NI: "NI",
            NL: "NL",
            NO: "NO",
            NP: "NP",
            NR: "NR",
            NU: "NU",
            NZ: "NZ",
            OM: "OM",
            PA: "PA",
            PE: "PE",
            PF: "PF",
            PG: "PG",
            PH: "PH",
            PL: "PL",
            PM: "PM",
            PN: "PN",
            PT: "PT",
            PW: "PW",
            PY: "PY",
            QA: "QA",
            RE: "RE",
            RO: "RO",
            RS: "RS",
            RU: "RU",
            RW: "RW",
            SA: "SA",
            SB: "SB",
            SC: "SC",
            SE: "SE",
            SG: "SG",
            SH: "SH",
            SI: "SI",
            SJ: "SJ",
            SK: "SK",
            SL: "SL",
            SM: "SM",
            SN: "SN",
            SO: "SO",
            SR: "SR",
            ST: "ST",
            SV: "SV",
            SZ: "SZ",
            TC: "TC",
            TD: "TD",
            TG: "TG",
            TH: "TH",
            TJ: "TJ",
            TM: "TM",
            TN: "TN",
            TO: "TO",
            TR: "TR",
            TT: "TT",
            TV: "TV",
            TW: "TW",
            TZ: "TZ",
            UA: "UA",
            UG: "UG",
            US: "US",
            UY: "UY",
            VA: "VA",
            VC: "VC",
            VE: "VE",
            VG: "VG",
            VN: "VN",
            VU: "VU",
            WF: "WF",
            WS: "WS",
            YE: "YE",
            YT: "YT",
            ZA: "ZA",
            ZM: "ZM",
            ZW: "ZW"
        };
        var LANG = {
            AR: "ar",
            CS: "cs",
            DA: "da",
            DE: "de",
            EL: "el",
            EN: "en",
            ES: "es",
            FI: "fi",
            FR: "fr",
            HE: "he",
            HU: "hu",
            ID: "id",
            IT: "it",
            JA: "ja",
            KO: "ko",
            NL: "nl",
            NO: "no",
            PL: "pl",
            PT: "pt",
            RU: "ru",
            SK: "sk",
            SV: "sv",
            TH: "th",
            TR: "tr",
            ZH: "zh"
        };
        var LANG_TO_DEFAULT_COUNTRY = ((_LANG_TO_DEFAULT_COUN = {})[LANG.AR] = COUNTRY.SA, 
        _LANG_TO_DEFAULT_COUN[LANG.CS] = COUNTRY.CZ, _LANG_TO_DEFAULT_COUN[LANG.DA] = COUNTRY.DK, 
        _LANG_TO_DEFAULT_COUN[LANG.DE] = COUNTRY.DE, _LANG_TO_DEFAULT_COUN[LANG.EL] = COUNTRY.GR, 
        _LANG_TO_DEFAULT_COUN[LANG.EN] = COUNTRY.US, _LANG_TO_DEFAULT_COUN[LANG.ES] = COUNTRY.ES, 
        _LANG_TO_DEFAULT_COUN[LANG.FI] = COUNTRY.FI, _LANG_TO_DEFAULT_COUN[LANG.FR] = COUNTRY.FR, 
        _LANG_TO_DEFAULT_COUN[LANG.HE] = COUNTRY.IL, _LANG_TO_DEFAULT_COUN[LANG.HU] = COUNTRY.HU, 
        _LANG_TO_DEFAULT_COUN[LANG.ID] = COUNTRY.ID, _LANG_TO_DEFAULT_COUN[LANG.IT] = COUNTRY.IT, 
        _LANG_TO_DEFAULT_COUN[LANG.JA] = COUNTRY.JP, _LANG_TO_DEFAULT_COUN[LANG.KO] = COUNTRY.KR, 
        _LANG_TO_DEFAULT_COUN[LANG.NL] = COUNTRY.NL, _LANG_TO_DEFAULT_COUN[LANG.NO] = COUNTRY.NO, 
        _LANG_TO_DEFAULT_COUN[LANG.PL] = COUNTRY.PL, _LANG_TO_DEFAULT_COUN[LANG.PT] = COUNTRY.PT, 
        _LANG_TO_DEFAULT_COUN[LANG.RU] = COUNTRY.RU, _LANG_TO_DEFAULT_COUN[LANG.SK] = COUNTRY.SK, 
        _LANG_TO_DEFAULT_COUN[LANG.SV] = COUNTRY.SE, _LANG_TO_DEFAULT_COUN[LANG.TH] = COUNTRY.TH, 
        _LANG_TO_DEFAULT_COUN[LANG.TR] = COUNTRY.TR, _LANG_TO_DEFAULT_COUN[LANG.ZH] = COUNTRY.CN, 
        _LANG_TO_DEFAULT_COUN);
        var ALLOWED_INSTALLMENT_COUNTRIES = [ COUNTRY.BR, COUNTRY.MX ];
        var ALLOWED_INSTALLMENT_PERIOD = {
            BR: [ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ],
            MX: [ 3, 6, 9, 12 ]
        };
        var _LOCALE;
        var LOCALE = ((_LOCALE = {})[COUNTRY.AD] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.AE] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH, LANG.AR ], _LOCALE[COUNTRY.AG] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.AI] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.AL] = [ LANG.EN ], 
        _LOCALE[COUNTRY.AM] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.AN] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.AO] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.AR] = [ LANG.ES, LANG.EN ], 
        _LOCALE[COUNTRY.AT] = [ LANG.DE, LANG.EN ], _LOCALE[COUNTRY.AU] = [ LANG.EN ], _LOCALE[COUNTRY.AW] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.AZ] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.BA] = [ LANG.EN ], 
        _LOCALE[COUNTRY.BB] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.BE] = [ LANG.EN, LANG.NL, LANG.FR ], 
        _LOCALE[COUNTRY.BF] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.BG] = [ LANG.EN ], 
        _LOCALE[COUNTRY.BH] = [ LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.BI] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.BJ] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.BM] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.BN] = [ LANG.EN ], _LOCALE[COUNTRY.BO] = [ LANG.ES, LANG.EN, LANG.FR, LANG.ZH ], 
        _LOCALE[COUNTRY.BR] = [ LANG.PT, LANG.EN ], _LOCALE[COUNTRY.BS] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.BT] = [ LANG.EN ], _LOCALE[COUNTRY.BW] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.BY] = [ LANG.EN ], _LOCALE[COUNTRY.BZ] = [ LANG.EN, LANG.ES, LANG.FR, LANG.ZH ], 
        _LOCALE[COUNTRY.C2] = [ LANG.ZH, LANG.EN ], _LOCALE[COUNTRY.CA] = [ LANG.EN, LANG.FR ], 
        _LOCALE[COUNTRY.CD] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.CG] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.CH] = [ LANG.DE, LANG.FR, LANG.EN ], _LOCALE[COUNTRY.CI] = [ LANG.FR, LANG.EN ], 
        _LOCALE[COUNTRY.CK] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.CL] = [ LANG.ES, LANG.EN, LANG.FR, LANG.ZH ], 
        _LOCALE[COUNTRY.CM] = [ LANG.FR, LANG.EN ], _LOCALE[COUNTRY.CN] = [ LANG.ZH ], _LOCALE[COUNTRY.CO] = [ LANG.ES, LANG.EN, LANG.FR, LANG.ZH ], 
        _LOCALE[COUNTRY.CR] = [ LANG.ES, LANG.EN, LANG.FR, LANG.ZH ], _LOCALE[COUNTRY.CV] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.CY] = [ LANG.EN ], _LOCALE[COUNTRY.CZ] = [ LANG.CS, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.DE] = [ LANG.DE, LANG.EN ], _LOCALE[COUNTRY.DJ] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.DK] = [ LANG.DA, LANG.EN ], _LOCALE[COUNTRY.DM] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.DO] = [ LANG.ES, LANG.EN, LANG.FR, LANG.ZH ], _LOCALE[COUNTRY.DZ] = [ LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.EC] = [ LANG.ES, LANG.EN, LANG.FR, LANG.ZH ], _LOCALE[COUNTRY.EE] = [ LANG.EN, LANG.RU, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.EG] = [ LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.ER] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.ES] = [ LANG.ES, LANG.EN ], _LOCALE[COUNTRY.ET] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.FI] = [ LANG.FI, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.FJ] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.FK] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.FM] = [ LANG.EN ], 
        _LOCALE[COUNTRY.FO] = [ LANG.DA, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.FR] = [ LANG.FR, LANG.EN ], 
        _LOCALE[COUNTRY.GA] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.GB] = [ LANG.EN ], 
        _LOCALE[COUNTRY.GD] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.GE] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.GF] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.GI] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.GL] = [ LANG.DA, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.GM] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.GN] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.GP] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.GR] = [ LANG.EL, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.GT] = [ LANG.ES, LANG.EN, LANG.FR, LANG.ZH ], 
        _LOCALE[COUNTRY.GW] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.GY] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.HK] = [ LANG.EN, LANG.ZH ], _LOCALE[COUNTRY.HN] = [ LANG.ES, LANG.EN, LANG.FR, LANG.ZH ], 
        _LOCALE[COUNTRY.HR] = [ LANG.EN ], _LOCALE[COUNTRY.HU] = [ LANG.HU, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.ID] = [ LANG.ID, LANG.EN ], _LOCALE[COUNTRY.IE] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.IL] = [ LANG.HE, LANG.EN ], _LOCALE[COUNTRY.IN] = [ LANG.EN ], _LOCALE[COUNTRY.IS] = [ LANG.EN ], 
        _LOCALE[COUNTRY.IT] = [ LANG.IT, LANG.EN ], _LOCALE[COUNTRY.JM] = [ LANG.EN, LANG.ES, LANG.FR, LANG.ZH ], 
        _LOCALE[COUNTRY.JO] = [ LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.JP] = [ LANG.JA, LANG.EN ], 
        _LOCALE[COUNTRY.KE] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.KG] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.KH] = [ LANG.EN ], _LOCALE[COUNTRY.KI] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.KM] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.KN] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.KR] = [ LANG.KO, LANG.EN ], _LOCALE[COUNTRY.KW] = [ LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.KY] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.KZ] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.LA] = [ LANG.EN ], _LOCALE[COUNTRY.LC] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.LI] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.LK] = [ LANG.EN ], 
        _LOCALE[COUNTRY.LS] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.LT] = [ LANG.EN, LANG.RU, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.LU] = [ LANG.EN, LANG.DE, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.LV] = [ LANG.EN, LANG.RU, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.MA] = [ LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.MC] = [ LANG.FR, LANG.EN ], 
        _LOCALE[COUNTRY.MD] = [ LANG.EN ], _LOCALE[COUNTRY.ME] = [ LANG.EN ], _LOCALE[COUNTRY.MG] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.MH] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.MK] = [ LANG.EN ], 
        _LOCALE[COUNTRY.ML] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.MN] = [ LANG.EN ], 
        _LOCALE[COUNTRY.MQ] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.MR] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.MS] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.MT] = [ LANG.EN ], 
        _LOCALE[COUNTRY.MU] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.MV] = [ LANG.EN ], 
        _LOCALE[COUNTRY.MW] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.MX] = [ LANG.ES, LANG.EN ], 
        _LOCALE[COUNTRY.MY] = [ LANG.EN ], _LOCALE[COUNTRY.MZ] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.NA] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.NC] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.NE] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.NF] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.NG] = [ LANG.EN ], _LOCALE[COUNTRY.NI] = [ LANG.ES, LANG.EN, LANG.FR, LANG.ZH ], 
        _LOCALE[COUNTRY.NL] = [ LANG.NL, LANG.EN ], _LOCALE[COUNTRY.NO] = [ LANG.NO, LANG.EN ], 
        _LOCALE[COUNTRY.NP] = [ LANG.EN ], _LOCALE[COUNTRY.NR] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.NU] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.NZ] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.OM] = [ LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.PA] = [ LANG.ES, LANG.EN, LANG.FR, LANG.ZH ], 
        _LOCALE[COUNTRY.PE] = [ LANG.ES, LANG.EN, LANG.FR, LANG.ZH ], _LOCALE[COUNTRY.PF] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.PG] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.PH] = [ LANG.EN ], 
        _LOCALE[COUNTRY.PL] = [ LANG.PL, LANG.EN ], _LOCALE[COUNTRY.PM] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.PN] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.PT] = [ LANG.PT, LANG.EN ], 
        _LOCALE[COUNTRY.PW] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.PY] = [ LANG.ES, LANG.EN ], 
        _LOCALE[COUNTRY.QA] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH, LANG.AR ], _LOCALE[COUNTRY.RE] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.RO] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.RS] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.RU] = [ LANG.RU, LANG.EN ], _LOCALE[COUNTRY.RW] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.SA] = [ LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.SB] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.SC] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.SE] = [ LANG.SV, LANG.EN ], 
        _LOCALE[COUNTRY.SG] = [ LANG.EN ], _LOCALE[COUNTRY.SH] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.SI] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.SJ] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.SK] = [ LANG.SK, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.SL] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.SM] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.SN] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.SO] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.SR] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.ST] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.SV] = [ LANG.ES, LANG.EN, LANG.FR, LANG.ZH ], 
        _LOCALE[COUNTRY.SZ] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.TC] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.TD] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.TG] = [ LANG.FR, LANG.EN, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.TH] = [ LANG.TH, LANG.EN ], _LOCALE[COUNTRY.TJ] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.TM] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.TN] = [ LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.TO] = [ LANG.EN ], _LOCALE[COUNTRY.TR] = [ LANG.TR, LANG.EN ], _LOCALE[COUNTRY.TT] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.TV] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.TW] = [ LANG.ZH, LANG.EN ], 
        _LOCALE[COUNTRY.TZ] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.UA] = [ LANG.EN, LANG.RU, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.UG] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.US] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.UY] = [ LANG.ES, LANG.EN, LANG.FR, LANG.ZH ], _LOCALE[COUNTRY.VA] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.VC] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.VE] = [ LANG.ES, LANG.EN, LANG.FR, LANG.ZH ], 
        _LOCALE[COUNTRY.VG] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.VN] = [ LANG.EN ], 
        _LOCALE[COUNTRY.VU] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.WF] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.WS] = [ LANG.EN ], _LOCALE[COUNTRY.YE] = [ LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.YT] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.ZA] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], 
        _LOCALE[COUNTRY.ZM] = [ LANG.EN, LANG.FR, LANG.ES, LANG.ZH ], _LOCALE[COUNTRY.ZW] = [ LANG.EN ], 
        _LOCALE);
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return JsxHTMLNodeContainer;
        }));
        __webpack_require__.d(__webpack_exports__, "c", (function() {
            return jsxToHTML;
        }));
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return jsxRender;
        }));
        var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
        var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
        function htmlEncode(html) {
            void 0 === html && (html = "");
            return html.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;").replace(/\//g, "&#x2F;");
        }
        var JsxHTMLNode = function() {
            function JsxHTMLNode(name, props, children) {
                this.name = void 0;
                this.props = void 0;
                this.children = void 0;
                this.name = name;
                this.props = props;
                this.children = children;
            }
            var _proto = JsxHTMLNode.prototype;
            _proto.toString = function() {
                return "<" + this.name + (this.props ? " " : "") + (this.props ? this.propsToString() : "") + ">" + this.childrenToString() + "</" + this.name + ">";
            };
            _proto.propsToString = function() {
                var props = this.props;
                return props ? Object.keys(props).filter((function(key) {
                    return "innerHTML" !== key && props && !1 !== props[key];
                })).map((function(key) {
                    return props && !0 === props[key] ? "" + htmlEncode(key) : props ? htmlEncode(key) + '="' + htmlEncode(props[key]) + '"' : "";
                })).join(" ") : "";
            };
            _proto.childrenToString = function() {
                if (this.props && this.props.innerHTML) return this.props.innerHTML;
                if (!this.children) return "";
                var result = "";
                !function iterate(children) {
                    for (var _i2 = 0; _i2 < children.length; _i2++) {
                        var child = children[_i2];
                        null != child && (Array.isArray(child) ? iterate(child) : result += child instanceof JsxHTMLNode ? child.toString() : htmlEncode(child));
                    }
                }(this.children);
                return result;
            };
            return JsxHTMLNode;
        }();
        var JsxHTMLNodeContainer = function(_JsxHTMLNode) {
            Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__.a)(JsxHTMLNodeContainer, _JsxHTMLNode);
            function JsxHTMLNodeContainer(children) {
                return _JsxHTMLNode.call(this, "", {}, children) || this;
            }
            JsxHTMLNodeContainer.prototype.toString = function() {
                return this.childrenToString();
            };
            return JsxHTMLNodeContainer;
        }(JsxHTMLNode);
        function jsxToHTML(name, props) {
            for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) children[_key - 2] = arguments[_key];
            return new JsxHTMLNode(name, props, children);
        }
        function jsxRender(template, renderers) {
            var nodes = Object(_util__WEBPACK_IMPORTED_MODULE_1__.n)(template, /\{\s*([a-z]+)(?::\s*([^} ]+))?\s*\}|([^${}]+)/g, (function(match, type, value, text) {
                if (type) {
                    if (!renderers[type]) throw new Error("Can not render type: " + type);
                    return renderers[type](value);
                }
                return text && text.trim() && renderers.text ? /<br>/.test(text) ? renderers.break(text) : renderers.text(text) : text;
            }));
            return new JsxHTMLNodeContainer(nodes);
        }
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return promise_ZalgoPromise;
        }));
        function utils_isPromise(item) {
            try {
                if (!item) return !1;
                if ("undefined" != typeof Promise && item instanceof Promise) return !0;
                if ("undefined" != typeof window && "function" == typeof window.Window && item instanceof window.Window) return !1;
                if ("undefined" != typeof window && "function" == typeof window.constructor && item instanceof window.constructor) return !1;
                var _toString = {}.toString;
                if (_toString) {
                    var name = _toString.call(item);
                    if ("[object Window]" === name || "[object global]" === name || "[object DOMWindow]" === name) return !1;
                }
                if ("function" == typeof item.then) return !0;
            } catch (err) {
                return !1;
            }
            return !1;
        }
        var dispatchedErrors = [];
        var possiblyUnhandledPromiseHandlers = [];
        var activeCount = 0;
        var flushPromise;
        function flushActive() {
            if (!activeCount && flushPromise) {
                var promise = flushPromise;
                flushPromise = null;
                promise.resolve();
            }
        }
        function startActive() {
            activeCount += 1;
        }
        function endActive() {
            activeCount -= 1;
            flushActive();
        }
        var promise_ZalgoPromise = function() {
            function ZalgoPromise(handler) {
                var _this = this;
                this.resolved = void 0;
                this.rejected = void 0;
                this.errorHandled = void 0;
                this.value = void 0;
                this.error = void 0;
                this.handlers = void 0;
                this.dispatching = void 0;
                this.stack = void 0;
                this.resolved = !1;
                this.rejected = !1;
                this.errorHandled = !1;
                this.handlers = [];
                if (handler) {
                    var _result;
                    var _error;
                    var resolved = !1;
                    var rejected = !1;
                    var isAsync = !1;
                    startActive();
                    try {
                        handler((function(res) {
                            if (isAsync) _this.resolve(res); else {
                                resolved = !0;
                                _result = res;
                            }
                        }), (function(err) {
                            if (isAsync) _this.reject(err); else {
                                rejected = !0;
                                _error = err;
                            }
                        }));
                    } catch (err) {
                        endActive();
                        this.reject(err);
                        return;
                    }
                    endActive();
                    isAsync = !0;
                    resolved ? this.resolve(_result) : rejected && this.reject(_error);
                }
            }
            var _proto = ZalgoPromise.prototype;
            _proto.resolve = function(result) {
                if (this.resolved || this.rejected) return this;
                if (utils_isPromise(result)) throw new Error("Can not resolve promise with another promise");
                this.resolved = !0;
                this.value = result;
                this.dispatch();
                return this;
            };
            _proto.reject = function(error) {
                var _this2 = this;
                if (this.resolved || this.rejected) return this;
                if (utils_isPromise(error)) throw new Error("Can not reject promise with another promise");
                if (!error) {
                    var _err = error && "function" == typeof error.toString ? error.toString() : {}.toString.call(error);
                    error = new Error("Expected reject to be called with Error, got " + _err);
                }
                this.rejected = !0;
                this.error = error;
                this.errorHandled || setTimeout((function() {
                    _this2.errorHandled || function(err, promise) {
                        if (-1 === dispatchedErrors.indexOf(err)) {
                            dispatchedErrors.push(err);
                            setTimeout((function() {
                                throw err;
                            }), 1);
                            for (var j = 0; j < possiblyUnhandledPromiseHandlers.length; j++) possiblyUnhandledPromiseHandlers[j](err, promise);
                        }
                    }(error, _this2);
                }), 1);
                this.dispatch();
                return this;
            };
            _proto.asyncReject = function(error) {
                this.errorHandled = !0;
                this.reject(error);
                return this;
            };
            _proto.dispatch = function() {
                var resolved = this.resolved, rejected = this.rejected, handlers = this.handlers;
                if (!this.dispatching && (resolved || rejected)) {
                    this.dispatching = !0;
                    startActive();
                    var chain = function(firstPromise, secondPromise) {
                        return firstPromise.then((function(res) {
                            secondPromise.resolve(res);
                        }), (function(err) {
                            secondPromise.reject(err);
                        }));
                    };
                    for (var i = 0; i < handlers.length; i++) {
                        var _handlers$i = handlers[i], onSuccess = _handlers$i.onSuccess, onError = _handlers$i.onError, promise = _handlers$i.promise;
                        var _result2 = void 0;
                        if (resolved) try {
                            _result2 = onSuccess ? onSuccess(this.value) : this.value;
                        } catch (err) {
                            promise.reject(err);
                            continue;
                        } else if (rejected) {
                            if (!onError) {
                                promise.reject(this.error);
                                continue;
                            }
                            try {
                                _result2 = onError(this.error);
                            } catch (err) {
                                promise.reject(err);
                                continue;
                            }
                        }
                        if (_result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected)) {
                            _result2.resolved ? promise.resolve(_result2.value) : promise.reject(_result2.error);
                            _result2.errorHandled = !0;
                        } else utils_isPromise(_result2) ? _result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected) ? _result2.resolved ? promise.resolve(_result2.value) : promise.reject(_result2.error) : chain(_result2, promise) : promise.resolve(_result2);
                    }
                    handlers.length = 0;
                    this.dispatching = !1;
                    endActive();
                }
            };
            _proto.then = function(onSuccess, onError) {
                if (onSuccess && "function" != typeof onSuccess && !onSuccess.call) throw new Error("Promise.then expected a function for success handler");
                if (onError && "function" != typeof onError && !onError.call) throw new Error("Promise.then expected a function for error handler");
                var promise = new ZalgoPromise;
                this.handlers.push({
                    promise: promise,
                    onSuccess: onSuccess,
                    onError: onError
                });
                this.errorHandled = !0;
                this.dispatch();
                return promise;
            };
            _proto.catch = function(onError) {
                return this.then(void 0, onError);
            };
            _proto.finally = function(onFinally) {
                if (onFinally && "function" != typeof onFinally && !onFinally.call) throw new Error("Promise.finally expected a function");
                return this.then((function(result) {
                    return ZalgoPromise.try(onFinally).then((function() {
                        return result;
                    }));
                }), (function(err) {
                    return ZalgoPromise.try(onFinally).then((function() {
                        throw err;
                    }));
                }));
            };
            _proto.timeout = function(time, err) {
                var _this3 = this;
                if (this.resolved || this.rejected) return this;
                var timeout = setTimeout((function() {
                    _this3.resolved || _this3.rejected || _this3.reject(err || new Error("Promise timed out after " + time + "ms"));
                }), time);
                return this.then((function(result) {
                    clearTimeout(timeout);
                    return result;
                }));
            };
            _proto.toPromise = function() {
                if ("undefined" == typeof Promise) throw new TypeError("Could not find Promise");
                return Promise.resolve(this);
            };
            ZalgoPromise.resolve = function(value) {
                return value instanceof ZalgoPromise ? value : utils_isPromise(value) ? new ZalgoPromise((function(resolve, reject) {
                    return value.then(resolve, reject);
                })) : (new ZalgoPromise).resolve(value);
            };
            ZalgoPromise.reject = function(error) {
                return (new ZalgoPromise).reject(error);
            };
            ZalgoPromise.asyncReject = function(error) {
                return (new ZalgoPromise).asyncReject(error);
            };
            ZalgoPromise.all = function(promises) {
                var promise = new ZalgoPromise;
                var count = promises.length;
                var results = [];
                if (!count) {
                    promise.resolve(results);
                    return promise;
                }
                var chain = function(i, firstPromise, secondPromise) {
                    return firstPromise.then((function(res) {
                        results[i] = res;
                        0 == (count -= 1) && promise.resolve(results);
                    }), (function(err) {
                        secondPromise.reject(err);
                    }));
                };
                for (var i = 0; i < promises.length; i++) {
                    var prom = promises[i];
                    if (prom instanceof ZalgoPromise) {
                        if (prom.resolved) {
                            results[i] = prom.value;
                            count -= 1;
                            continue;
                        }
                    } else if (!utils_isPromise(prom)) {
                        results[i] = prom;
                        count -= 1;
                        continue;
                    }
                    chain(i, ZalgoPromise.resolve(prom), promise);
                }
                0 === count && promise.resolve(results);
                return promise;
            };
            ZalgoPromise.hash = function(promises) {
                var result = {};
                var awaitPromises = [];
                var _loop = function(key) {
                    if (promises.hasOwnProperty(key)) {
                        var value = promises[key];
                        utils_isPromise(value) ? awaitPromises.push(value.then((function(res) {
                            result[key] = res;
                        }))) : result[key] = value;
                    }
                };
                for (var key in promises) _loop(key);
                return ZalgoPromise.all(awaitPromises).then((function() {
                    return result;
                }));
            };
            ZalgoPromise.map = function(items, method) {
                return ZalgoPromise.all(items.map(method));
            };
            ZalgoPromise.onPossiblyUnhandledException = function(handler) {
                return function(handler) {
                    possiblyUnhandledPromiseHandlers.push(handler);
                    return {
                        cancel: function() {
                            possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1);
                        }
                    };
                }(handler);
            };
            ZalgoPromise.try = function(method, context, args) {
                if (method && "function" != typeof method && !method.call) throw new Error("Promise.try expected a function");
                var result;
                startActive();
                try {
                    result = method.apply(context, args || []);
                } catch (err) {
                    endActive();
                    return ZalgoPromise.reject(err);
                }
                endActive();
                return ZalgoPromise.resolve(result);
            };
            ZalgoPromise.delay = function(_delay) {
                return new ZalgoPromise((function(resolve) {
                    setTimeout(resolve, _delay);
                }));
            };
            ZalgoPromise.isPromise = function(value) {
                return !!(value && value instanceof ZalgoPromise) || utils_isPromise(value);
            };
            ZalgoPromise.flush = function() {
                return function(Zalgo) {
                    var promise = flushPromise = flushPromise || new Zalgo;
                    flushActive();
                    return promise;
                }(ZalgoPromise);
            };
            return ZalgoPromise;
        }();
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "A", (function() {
            return isDevice;
        }));
        __webpack_require__.d(__webpack_exports__, "G", (function() {
            return isIos;
        }));
        __webpack_require__.d(__webpack_exports__, "E", (function() {
            return isIE;
        }));
        __webpack_require__.d(__webpack_exports__, "F", (function() {
            return isIEIntranet;
        }));
        __webpack_require__.d(__webpack_exports__, "X", (function() {
            return supportsPopups;
        }));
        __webpack_require__.d(__webpack_exports__, "K", (function() {
            return util.j;
        }));
        __webpack_require__.d(__webpack_exports__, "M", (function() {
            return util.k;
        }));
        __webpack_require__.d(__webpack_exports__, "Y", (function() {
            return util.s;
        }));
        __webpack_require__.d(__webpack_exports__, "J", (function() {
            return util.i;
        }));
        __webpack_require__.d(__webpack_exports__, "T", (function() {
            return util.o;
        }));
        __webpack_require__.d(__webpack_exports__, "e", (function() {
            return util.c;
        }));
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return util.a;
        }));
        __webpack_require__.d(__webpack_exports__, "V", (function() {
            return util.q;
        }));
        __webpack_require__.d(__webpack_exports__, "W", (function() {
            return util.r;
        }));
        __webpack_require__.d(__webpack_exports__, "O", (function() {
            return util.l;
        }));
        __webpack_require__.d(__webpack_exports__, "f", (function() {
            return util.d;
        }));
        __webpack_require__.d(__webpack_exports__, "z", (function() {
            return initLogger;
        }));
        __webpack_require__.d(__webpack_exports__, "U", (function() {
            return setLogLevel;
        }));
        __webpack_require__.d(__webpack_exports__, "h", (function() {
            return getBrowser;
        }));
        __webpack_require__.d(__webpack_exports__, "C", (function() {
            return isEligible;
        }));
        __webpack_require__.d(__webpack_exports__, "d", (function() {
            return checkRecognizedBrowser;
        }));
        __webpack_require__.d(__webpack_exports__, "c", (function() {
            return checkForCommonErrors;
        }));
        __webpack_require__.d(__webpack_exports__, "I", (function() {
            return loadScript;
        }));
        __webpack_require__.d(__webpack_exports__, "n", (function() {
            return getElement;
        }));
        __webpack_require__.d(__webpack_exports__, "o", (function() {
            return getElements;
        }));
        __webpack_require__.d(__webpack_exports__, "L", (function() {
            return onDocumentReady;
        }));
        __webpack_require__.d(__webpack_exports__, "q", (function() {
            return getQueryParam;
        }));
        __webpack_require__.d(__webpack_exports__, "Z", (function() {
            return urlWillRedirectPage;
        }));
        __webpack_require__.d(__webpack_exports__, "g", (function() {
            return extendUrl;
        }));
        __webpack_require__.d(__webpack_exports__, "Q", (function() {
            return redirect;
        }));
        __webpack_require__.d(__webpack_exports__, "i", (function() {
            return getBrowserLocale;
        }));
        __webpack_require__.d(__webpack_exports__, "B", (function() {
            return isElementVisible;
        }));
        __webpack_require__.d(__webpack_exports__, "p", (function() {
            return getPageRenderTime;
        }));
        __webpack_require__.d(__webpack_exports__, "s", (function() {
            return getResourceLoadTime;
        }));
        __webpack_require__.d(__webpack_exports__, "S", (function() {
            return request;
        }));
        __webpack_require__.d(__webpack_exports__, "y", (function() {
            return getThrottle;
        }));
        __webpack_require__.d(__webpack_exports__, "t", (function() {
            return getReturnToken;
        }));
        __webpack_require__.d(__webpack_exports__, "x", (function() {
            return getStorageID;
        }));
        __webpack_require__.d(__webpack_exports__, "w", (function() {
            return getSessionState;
        }));
        __webpack_require__.d(__webpack_exports__, "v", (function() {
            return getSessionID;
        }));
        __webpack_require__.d(__webpack_exports__, "j", (function() {
            return getButtonSessionID;
        }));
        __webpack_require__.d(__webpack_exports__, "N", (function() {
            return openMetaFrame;
        }));
        __webpack_require__.d(__webpack_exports__, "r", (function() {
            return getRememberedFunding;
        }));
        __webpack_require__.d(__webpack_exports__, "R", (function() {
            return rememberFunding;
        }));
        __webpack_require__.d(__webpack_exports__, "D", (function() {
            return isFundingRemembered;
        }));
        __webpack_require__.d(__webpack_exports__, "P", (function() {
            return precacheRememberedFunding;
        }));
        __webpack_require__.d(__webpack_exports__, "k", (function() {
            return getCurrentScript;
        }));
        __webpack_require__.d(__webpack_exports__, "u", (function() {
            return getScriptVersion;
        }));
        __webpack_require__.d(__webpack_exports__, "l", (function() {
            return getCurrentScriptUrl;
        }));
        __webpack_require__.d(__webpack_exports__, "m", (function() {
            return getDomainSetting;
        }));
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return allowIframe;
        }));
        __webpack_require__.d(__webpack_exports__, "H", (function() {
            return isPayPalDomain;
        }));
        var cross_domain_utils_src = __webpack_require__(7);
        function getUserAgent() {
            return window.navigator.mockUserAgent || window.navigator.userAgent;
        }
        function isDevice() {
            return !!getUserAgent().match(/Android|webOS|iPhone|iPad|iPod|bada|Symbian|Palm|CriOS|BlackBerry|IEMobile|WindowsMobile|Opera Mini/i);
        }
        function isOperaMini(ua) {
            void 0 === ua && (ua = getUserAgent());
            return ua.indexOf("Opera Mini") > -1;
        }
        function isIos(ua) {
            void 0 === ua && (ua = getUserAgent());
            return /iPhone|iPod|iPad/.test(ua);
        }
        function isIE() {
            return !!window.document.documentMode || !(!window.navigator || "string" != typeof window.navigator.userAgent || !/Edge|MSIE/i.test(window.navigator.userAgent));
        }
        function isIEIntranet() {
            if (!function() {
                if (!isIE()) return !1;
                if (window.navigator && "string" == typeof window.navigator.userAgent) {
                    if (/MSIE 11\.0/i.test(window.navigator.userAgent)) return !0;
                    if (/Trident/i.test(window.navigator.userAgent) && /rv:11\.0/i.test(window.navigator.userAgent)) return !0;
                }
                return !1;
            }()) return !1;
            if (window.document.documentMode) try {
                var status = window.status;
                window.status = "testIntranetMode";
                if ("testIntranetMode" === window.status) {
                    window.status = status;
                    return !0;
                }
                return !1;
            } catch (err) {
                return !1;
            }
            return !1;
        }
        function supportsPopups(ua) {
            void 0 === ua && (ua = getUserAgent());
            return !(function(ua) {
                void 0 === ua && (ua = getUserAgent());
                return !!isIos(ua) && (!!function(ua) {
                    void 0 === ua && (ua = getUserAgent());
                    return /\bGSA\b/.test(ua);
                }(ua) || /.+AppleWebKit(?!.*Safari)/.test(ua));
            }(ua) || function(ua) {
                void 0 === ua && (ua = getUserAgent());
                return !!function(ua) {
                    void 0 === ua && (ua = getUserAgent());
                    return /Android/.test(ua);
                }(ua) && /Version\/[\d.]+/.test(ua) && !isOperaMini(ua);
            }(ua) || isOperaMini(ua) || function(ua) {
                void 0 === ua && (ua = getUserAgent());
                return /FxiOS/i.test(ua);
            }(ua) || function(ua) {
                void 0 === ua && (ua = getUserAgent());
                return /EdgiOS/i.test(ua);
            }(ua) || function(ua) {
                void 0 === ua && (ua = getUserAgent());
                return -1 !== ua.indexOf("FBAN") || -1 !== ua.indexOf("FBAV");
            }(ua) || function(ua) {
                void 0 === ua && (ua = getUserAgent());
                return /QQBrowser/.test(ua);
            }(ua) || (userAgent = getUserAgent(), /\belectron\b/i.test(userAgent)) || function() {
                var userAgent = getUserAgent();
                return /Macintosh.*AppleWebKit(?!.*Safari)/i.test(userAgent);
            }() || !Boolean(Object(cross_domain_utils_src.m)(Object(cross_domain_utils_src.o)(window) || window)) && (!0 === window.navigator.standalone || window.matchMedia("(display-mode: standalone)").matches));
            var userAgent;
        }
        var util = __webpack_require__(12);
        var post_robot_src = __webpack_require__(13);
        var client = __webpack_require__(5);
        var config = __webpack_require__(4);
        var constants = __webpack_require__(0);
        var zalgo_promise_src = __webpack_require__(2);
        function isDocumentReady() {
            return Boolean(document.body) && "complete" === document.readyState;
        }
        var documentReady = new zalgo_promise_src.a((function(resolve) {
            if (isDocumentReady()) return resolve();
            var interval = setInterval((function() {
                if (isDocumentReady()) {
                    clearInterval(interval);
                    return resolve();
                }
            }), 10);
        }));
        documentReady.then((function() {
            if (document.body) return document.body;
            throw new Error("Document ready but document.body not present");
        }));
        function loadScript(src, timeout, attrs) {
            void 0 === timeout && (timeout = 0);
            void 0 === attrs && (attrs = {});
            return new zalgo_promise_src.a((function(resolve, reject) {
                var script = document.createElement("script");
                script.addEventListener("load", (function() {
                    resolve();
                }));
                script.onreadystatechange = function() {
                    "complete" !== this.readyState && "loaded" !== this.readyState || resolve();
                };
                var scriptLoadError = new Error("script_loading_error");
                script.addEventListener("error", (function() {
                    return reject(scriptLoadError);
                }));
                timeout && setTimeout((function() {
                    return reject(new Error("script_loading_timed_out"));
                }), timeout);
                for (var _i2 = 0, _Object$keys2 = Object.keys(attrs); _i2 < _Object$keys2.length; _i2++) {
                    var attr = _Object$keys2[_i2];
                    script.setAttribute(attr, attrs[attr]);
                }
                script.setAttribute("src", src);
                document.getElementsByTagName("head")[0].appendChild(script);
            }));
        }
        function getElement(item) {
            if (item) {
                if (item instanceof HTMLElement) return item;
                if ("string" == typeof item) {
                    if (document.querySelector) {
                        var result = document.querySelector(item);
                        if (result) return result;
                    }
                    return document.getElementById(item);
                }
            }
        }
        function getElements(collection) {
            if (!collection) return [];
            if (collection instanceof HTMLElement || "string" == typeof collection) {
                var element = getElement(collection);
                return element ? [ element ] : [];
            }
            if (Array.isArray(collection) || collection instanceof NodeList || collection instanceof HTMLCollection) {
                var result = [];
                for (var i = 0; i < collection.length; i++) {
                    var el = getElement(collection[i]);
                    el && result.push(el);
                }
                return result;
            }
            return [];
        }
        function onDocumentReady(method) {
            return documentReady.then(method);
        }
        var parseQuery = Object(util.i)((function(queryString) {
            var params = {};
            if (!queryString) return params;
            if (-1 === queryString.indexOf("=")) return params;
            for (var _i4 = 0, _queryString$split2 = queryString.split("&"); _i4 < _queryString$split2.length; _i4++) {
                var pair = _queryString$split2[_i4];
                (pair = pair.split("="))[0] && pair[1] && (params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]));
            }
            return params;
        }));
        function getQueryParam(name) {
            return parseQuery(window.location.search.slice(1))[name];
        }
        function urlWillRedirectPage(url) {
            return -1 === url.indexOf("#") || 0 !== url.indexOf("#") && url.split("#")[0] !== window.location.href.split("#")[0];
        }
        function extendUrl(url, params) {
            void 0 === params && (params = {});
            var hasHash = url.indexOf("#") > 0;
            var _url$split = url.split("#"), serverUrl = _url$split[0], hash = _url$split[1];
            if (hash && !serverUrl) {
                var _ref = [ "#" + hash, "" ];
                serverUrl = _ref[0];
                hash = _ref[1];
            }
            var _serverUrl$split = serverUrl.split("?"), originalUrl = _serverUrl$split[0], originalQueryString = _serverUrl$split[1];
            if (originalQueryString) {
                var originalQuery = parseQuery(originalQueryString);
                for (var _key in originalQuery) params.hasOwnProperty(_key) || (params[_key] = originalQuery[_key]);
            }
            var newQueryString = Object.keys(params).filter((function(key) {
                return key && params[key];
            })).sort().map((function(key) {
                return encodeURIComponent(key) + "=" + encodeURIComponent(params[key]);
            })).join("&");
            var newUrl = originalUrl;
            newQueryString && (newUrl = newUrl + "?" + newQueryString);
            hasHash && (newUrl = newUrl + "#" + (hash || ""));
            return newUrl;
        }
        function redirect(win, url) {
            void 0 === win && (win = window);
            return new zalgo_promise_src.a((function(resolve) {
                Object(client.k)("redirect", {
                    url: url
                });
                setTimeout((function() {
                    win.location = url;
                    urlWillRedirectPage(url) || resolve();
                }), 1);
            }));
        }
        function normalizeLocale(locale) {
            if (locale && locale.match(/^[a-z]{2}[-_][A-Z]{2}$/)) {
                var _locale$split = locale.split(/[-_]/), lang = _locale$split[0], country = _locale$split[1];
                if (constants.A[country] && -1 !== constants.A[country].indexOf(lang)) return {
                    country: country,
                    lang: lang
                };
            }
        }
        function normalizeLang(lang) {
            if (lang && lang.match(/^[a-z]{2}$/) && constants.z[lang]) return {
                country: constants.z[lang],
                lang: lang
            };
        }
        var getBrowserLocale = Object(util.i)((function() {
            var locales = function() {
                var nav = window.navigator;
                var locales = nav.languages ? [].slice.apply(nav.languages) : [];
                nav.language && locales.push(nav.language);
                nav.userLanguage && locales.push(nav.userLanguage);
                return locales;
            }();
            for (var _i6 = 0; _i6 < locales.length; _i6++) {
                var locale = locales[_i6];
                var loc = normalizeLocale(locale);
                if (loc) {
                    Object(client.k)("better_browser_locale_full");
                    return loc;
                }
                if (loc = normalizeLang(locale)) {
                    Object(client.k)("better_browser_locale_lang");
                    return loc;
                }
            }
            return config.a.defaultLocale;
        }));
        function isElementVisible(el) {
            return Boolean(el.offsetWidth || el.offsetHeight || el.getClientRects().length);
        }
        var enablePerformance = Object(util.i)((function() {
            return Boolean(window.performance && performance.now && performance.timing && performance.timing.connectEnd && performance.timing.navigationStart && Math.abs(performance.now() - Date.now()) > 1e3 && performance.now() - (performance.timing.connectEnd - performance.timing.navigationStart) > 0);
        }));
        function getPageRenderTime() {
            return documentReady.then((function() {
                if (enablePerformance()) {
                    var timing = window.performance.timing;
                    return timing.connectEnd && timing.domInteractive ? timing.domInteractive - timing.connectEnd : void 0;
                }
            }));
        }
        function getResourceLoadTime(url) {
            if (enablePerformance() && window.performance && "function" == typeof window.performance.getEntries) {
                var entries = window.performance.getEntries();
                for (var i = 0; i < entries.length; i++) {
                    var entry = entries[i];
                    if (entry && entry.name === url && entry.duration && entry.duration >= 0 && entry.duration <= 6e4) return Math.floor(entry.duration);
                }
            }
        }
        function allowIframe() {
            if (!supportsPopups()) return !0;
            var parentWindow = Object(cross_domain_utils_src.n)(window);
            if (parentWindow && Object(cross_domain_utils_src.v)(parentWindow)) return !0;
            var parentComponentWindow = window.xchild && window.xchild.getParentComponentWindow();
            return !(!parentComponentWindow || !Object(cross_domain_utils_src.v)(parentComponentWindow));
        }
        function isPayPalDomain() {
            return Boolean((window.location.protocol + "//" + window.location.host).match(config.a.paypal_domain_regex)) || "mock://www.paypal.com" === window.mockDomain;
        }
        var accessedStorage;
        function getStorageState(handler) {
            var localStorageEnabled = Object(util.f)();
            var storage;
            accessedStorage && (storage = accessedStorage);
            if (!storage && localStorageEnabled) {
                var rawStorage = window.localStorage.getItem("__paypal_storage__");
                rawStorage && (storage = JSON.parse(rawStorage));
            }
            storage || (storage = window.__paypal_storage__);
            storage || (storage = {
                id: Object(util.s)()
            });
            storage.id || (storage.id = Object(util.s)());
            accessedStorage = storage;
            var result = handler(storage);
            localStorageEnabled ? window.localStorage.setItem("__paypal_storage__", JSON.stringify(storage)) : window.__paypal_storage__ = storage;
            accessedStorage = null;
            return result;
        }
        function getStorageID() {
            return getStorageState((function(storage) {
                return storage.id;
            }));
        }
        function getSession(handler) {
            return getStorageState((function(storage) {
                var session = storage.__paypal_session__;
                var now = Date.now();
                session && now - session.created > config.a.session_uid_lifetime && (session = null);
                session || (session = {
                    guid: Object(util.s)(),
                    created: now
                });
                storage.__paypal_session__ = session;
                return handler(session);
            }));
        }
        function getSessionState(handler) {
            return getSession((function(session) {
                session.state = session.state || {};
                return handler(session.state);
            }));
        }
        function getSessionID() {
            var xprops = window.xprops;
            if (xprops && xprops.sessionID) return xprops.sessionID;
            var querySessionID = getQueryParam("sessionID");
            return isPayPalDomain() && querySessionID ? querySessionID : getSession((function(session) {
                return session.guid;
            }));
        }
        function getButtonSessionID() {
            if (window.xprops && window.xprops.buttonSessionID) return window.xprops.buttonSessionID;
            var querySessionID = getQueryParam("buttonSessionID");
            return isPayPalDomain() && querySessionID ? querySessionID : void 0;
        }
        var PAGE_TYPES = {
            HOME: "home",
            PRODUCT: "product",
            CART: "cart",
            CHECKOUT: "checkout",
            PRODUCT_LISTING: "product-listing",
            SEARCH_RESULTS: "search-results",
            PRODUCT_DETAILS: "product-details",
            MINI_CART: "mini-cart"
        };
        var belter_src = __webpack_require__(14);
        var getCurrentScript = Object(util.i)((function() {
            var scripts = [].slice.call(document.getElementsByTagName("script"));
            for (var _i2 = 0; _i2 < scripts.length; _i2++) {
                var script = scripts[_i2];
                if (script.src && (script.src.replace(/^https?:/, "").split("?")[0] === config.a.scriptUrl || script.hasAttribute("data-paypal-checkout"))) return script;
                if (script.src && -1 !== script.src.indexOf("paypal.checkout.v4.js")) return script;
            }
            document.currentScript && Object(client.f)("current_script_not_recognized", {
                src: document.currentScript.src
            });
        }));
        function getScriptVersion() {
            return "4.0.328";
        }
        function getCurrentScriptUrl() {
            var script = getCurrentScript();
            if (script && "string" == typeof script.src) {
                var scriptUrl = script.src;
                0 === scriptUrl.indexOf("http://www.paypalobjects.com") && (scriptUrl = scriptUrl.replace("http://", "https://"));
                0 === scriptUrl.indexOf("//www.paypalobjects.com") && (scriptUrl = "https:" + scriptUrl);
                return scriptUrl;
            }
            return "https://www.paypalobjects.com/api/checkout.4.0.328.js";
        }
        function getDomainSetting(name, def) {
            var hostname = window.xchild ? window.xchild.getParentDomain() : Object(cross_domain_utils_src.h)();
            if (config.a.domain_settings) for (var _i4 = 0, _Object$keys2 = Object.keys(config.a.domain_settings); _i4 < _Object$keys2.length; _i4++) {
                var domain = _Object$keys2[_i4];
                if (Object(util.b)(hostname, domain)) return config.a.domain_settings[domain][name];
            }
            return def;
        }
        function getRefererDomain() {
            return window.xchild && window.xchild.getParentDomain ? window.xchild.getParentDomain() : window.location.host;
        }
        var setupProxyLogTransport = Object(util.k)((function() {
            Object(client.o)(function(name, win, originalMethod) {
                if (win && Object(cross_domain_utils_src.h)() === config.a.paypalDomain && !Object(cross_domain_utils_src.v)(win)) {
                    win && Object(post_robot_src.send)(win, "proxy_log", {
                        originalMethod: originalMethod
                    }).catch(util.j);
                    return originalMethod;
                }
                var methods = [];
                Object(post_robot_src.on)("proxy_log", {
                    domain: config.a.paypal_domain_regex
                }, (function(_ref) {
                    methods.push(_ref.data.originalMethod);
                }));
                return function() {
                    var _arguments = arguments, _this = this;
                    return (methods = methods.filter((function(method) {
                        return !Object(cross_domain_utils_src.z)(method.source);
                    }))).length ? methods[methods.length - 1].apply(this, arguments).catch((function() {
                        return originalMethod.apply(_this, _arguments);
                    })) : originalMethod.apply(this, arguments);
                };
            }(0, Object(cross_domain_utils_src.n)(window), Object(client.i)()));
        }));
        function initLogger() {
            setupProxyLogTransport();
            Object(client.c)((function() {
                return {
                    referer: getRefererDomain(),
                    host: window.location.host,
                    path: window.location.pathname,
                    env: config.a.env,
                    country: config.a.locale.country,
                    lang: config.a.locale.lang,
                    uid: getSessionID(),
                    ver: "4.0.328"
                };
            }));
            Object(client.a)((function() {
                return {
                    "x-app-name": "checkoutjs"
                };
            }));
            Object(client.b)((function() {
                return {
                    state: config.a.state
                };
            }));
            Object(client.d)((function(payload) {
                var _ref;
                void 0 === payload && (payload = {});
                var sessionID = getSessionID();
                var paymentToken = function() {
                    if (window.root && window.root.token) return window.root.token;
                    if (isPayPalDomain()) {
                        var queryToken = getQueryParam("token");
                        if (queryToken) return queryToken;
                    }
                }();
                var buttonSessionID = payload[constants.u.KEY.BUTTON_SESSION_UID] || getButtonSessionID();
                var contextType;
                var contextID;
                if (paymentToken) {
                    contextType = constants.u.CONTEXT_TYPE[constants.C.EC_TOKEN];
                    contextID = paymentToken;
                } else if (buttonSessionID) {
                    contextType = constants.u.CONTEXT_TYPE.BUTTON_SESSION_ID;
                    contextID = buttonSessionID;
                } else {
                    contextType = payload[constants.u.KEY.CONTEXT_TYPE];
                    contextID = payload[constants.u.KEY.CONTEXT_ID];
                }
                return (_ref = {})[constants.u.KEY.FEED] = constants.u.FEED.CHECKOUTJS, _ref[constants.u.KEY.DATA_SOURCE] = constants.u.DATA_SOURCE.CHECKOUT, 
                _ref[constants.u.KEY.CONTEXT_TYPE] = contextType, _ref[constants.u.KEY.CONTEXT_ID] = contextID, 
                _ref[constants.u.KEY.SELLER_ID] = config.a.merchantID, _ref[constants.u.KEY.SESSION_UID] = sessionID, 
                _ref[constants.u.KEY.BUTTON_SESSION_UID] = buttonSessionID, _ref[constants.u.KEY.VERSION] = config.a.version, 
                _ref[constants.u.KEY.TOKEN] = paymentToken, _ref[constants.u.KEY.PAGE_TYPE] = function() {
                    var script = getCurrentScript();
                    if (script && script.hasAttribute("data-page-type")) {
                        var pageType = script.getAttribute("data-page-type").toLowerCase();
                        if (-1 === Object(belter_src.l)(PAGE_TYPES).indexOf(pageType) && pageType.length) throw new Error("Invalid page type, '" + pageType + "'");
                        return pageType;
                    }
                    return "";
                }(), _ref[constants.u.KEY.REFERER] = getRefererDomain(), _ref[constants.u.KEY.TIMESTAMP] = Date.now().toString(), 
                _ref;
            }));
            window.location.protocol !== cross_domain_utils_src.a.FILE && Object(client.l)({
                uri: config.a.loggerUrl,
                heartbeat: !1,
                logPerformance: !1,
                prefix: "ppxo",
                logLevel: "warn"
            });
        }
        function setLogLevel(logLevel) {
            if (-1 === client.m.indexOf(logLevel)) throw new Error("Invalid logLevel: " + logLevel);
            config.a.logLevel = logLevel;
            client.e.logLevel = logLevel;
            post_robot_src.CONFIG.LOG_LEVEL = logLevel;
            window.LOG_LEVEL = logLevel;
        }
        var bowserCache = {};
        function getBowser() {
            var userAgent = getUserAgent();
            if (bowserCache[userAgent]) return bowserCache[userAgent];
            delete __webpack_require__.c[38];
            var bowser = __webpack_require__(38);
            bowserCache[userAgent] = bowser;
            return bowser;
        }
        function getBrowser() {
            var bowser = getBowser();
            for (var _i2 = 0, _Object$keys2 = Object.keys(config.a.SUPPORTED_BROWSERS); _i2 < _Object$keys2.length; _i2++) {
                var browser = _Object$keys2[_i2];
                if (bowser[browser]) return {
                    browser: browser,
                    version: bowser.version
                };
            }
            return {};
        }
        var eligibilityResults = {};
        function isEligible() {
            if (isIEIntranet()) return !1;
            var userAgent = window.navigator.userAgent;
            if (userAgent && eligibilityResults.hasOwnProperty(userAgent)) return eligibilityResults[userAgent];
            var result = function() {
                if (isIEIntranet()) return !1;
                var bowser = getBowser();
                var _getBrowser = getBrowser(), browser = _getBrowser.browser, version = _getBrowser.version;
                return !browser || !version || -1 !== bowser.compareVersions([ version, config.a.SUPPORTED_BROWSERS[browser] ]);
            }();
            eligibilityResults[userAgent] = result;
            return result;
        }
        var checkRecognizedBrowser = Object(util.k)((function(state) {
            if (!getBrowser().browser) {
                var _getBowser = getBowser(), name = _getBowser.name, version = _getBowser.version, mobile = _getBowser.mobile, android = _getBowser.android, ios = _getBowser.ios;
                Object(client.k)("unrecognized_browser_" + state, {
                    name: name,
                    version: version,
                    mobile: mobile,
                    android: android,
                    ios: ios
                });
                Object(client.h)();
            }
        }));
        function logWarn(err) {
            if (window.console) {
                if (window.console.warn) return window.console.warn(err);
                if (window.console.log) return window.console.log(err);
            }
        }
        function checkForCommonErrors() {
            if ("[]" !== JSON.stringify([])) {
                logWarn([].toJSON ? "Custom Array.prototype.toJSON is causing incorrect json serialization of arrays. This is likely to cause issues. Probable cause is Prototype.js" : "JSON.stringify is doing incorrect serialization of arrays. This is likely to cause issues.");
                Object(client.q)("json_stringify_array_broken");
            }
            if ("{}" !== JSON.stringify({})) {
                logWarn("JSON.stringify is doing incorrect serialization of objects. This is likely to cause issues.");
                Object(client.q)("json_stringify_object_broken");
            }
            isIEIntranet() && Object(client.q)("ie_intranet_mode");
            isIE() && !(mHttp = window.document.querySelector('meta[http-equiv="X-UA-Compatible"]'), 
            mContent = window.document.querySelector('meta[content="IE=edge"]'), mHttp && mContent) && Object(client.q)("ie_meta_compatibility_header_missing", {
                message: 'Drop tag: <meta http-equiv="X-UA-Compatible" content="IE=edge">'
            });
            var mHttp, mContent;
            3 !== function(bar, baz, zomg) {}.bind({
                a: 1
            }).length && Object(client.q)("function_bind_arrity_overwritten");
            window.opener && window.parent !== window && Object(client.q)("window_has_opener_and_parent");
            window.name && 0 === window.name.indexOf("__prerender") && Object(client.q)("prerender_running_checkoutjs");
            var context = {};
            (function() {
                return this;
            }).bind(context)() !== context && Object(client.q)("function_bind_broken");
            window.Window && window.constructor && window.Window !== window.constructor && Object(client.q)("window_constructor_does_not_match_window");
            Object.assign && JSON.stringify({
                a: 1,
                b: 2,
                c: 3
            }) != JSON.stringify({
                a: 1,
                b: 2,
                c: 3
            }) && Object(client.q)("object_assign_broken");
        }
        var esm_extends = __webpack_require__(11);
        var headerBuilders = [];
        var corrids = [];
        Object(client.c)((function() {
            return {
                prev_corr_ids: corrids.join(",")
            };
        }));
        function request(_ref) {
            var url = _ref.url, _ref$method = _ref.method, method = void 0 === _ref$method ? "get" : _ref$method, _ref$headers = _ref.headers, headers = void 0 === _ref$headers ? {} : _ref$headers, json = _ref.json, data = _ref.data, body = _ref.body, _ref$win = _ref.win, win = void 0 === _ref$win ? window : _ref$win, _ref$timeout = _ref.timeout, timeout = void 0 === _ref$timeout ? 0 : _ref$timeout;
            return "/demo/checkout/api/braintree/client-token/" === url ? zalgo_promise_src.a.resolve("eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiJjMDFhZmRkM2Y1OTJmNWVhNTNlMzE5MWQwYmIyMWVjYjM5NzNlZGM1MzkwNDZiMjJmNTA2ODEyNzIzZmRlMTJifGNsaWVudF9pZD1jbGllbnRfaWQkc2FuZGJveCQ0ZHByYmZjNnBoNTk1Y2NqXHUwMDI2Y3JlYXRlZF9hdD0yMDE3LTA0LTI2VDIzOjI2OjU5Ljg3OTA3ODYwNiswMDAwXHUwMDI2bWVyY2hhbnRfaWQ9M3cydHR2d2QyNDY1NDhoZCIsImNvbmZpZ1VybCI6Imh0dHBzOi8vYXBpLnNhbmRib3guYnJhaW50cmVlZ2F0ZXdheS5jb206NDQzL21lcmNoYW50cy8zdzJ0dHZ3ZDI0NjU0OGhkL2NsaWVudF9hcGkvdjEvY29uZmlndXJhdGlvbiIsImNoYWxsZW5nZXMiOltdLCJlbnZpcm9ubWVudCI6InNhbmRib3giLCJjbGllbnRBcGlVcmwiOiJodHRwczovL2FwaS5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tOjQ0My9tZXJjaGFudHMvM3cydHR2d2QyNDY1NDhoZC9jbGllbnRfYXBpIiwiYXNzZXRzVXJsIjoiaHR0cHM6Ly9hc3NldHMuYnJhaW50cmVlZ2F0ZXdheS5jb20iLCJhdXRoVXJsIjoiaHR0cHM6Ly9hdXRoLnZlbm1vLnNhbmRib3guYnJhaW50cmVlZ2F0ZXdheS5jb20iLCJhbmFseXRpY3MiOnsidXJsIjoiaHR0cHM6Ly9jbGllbnQtYW5hbHl0aWNzLnNhbmRib3guYnJhaW50cmVlZ2F0ZXdheS5jb20vM3cydHR2d2QyNDY1NDhoZCJ9LCJ0aHJlZURTZWN1cmVFbmFibGVkIjpmYWxzZSwicGF5cGFsRW5hYmxlZCI6dHJ1ZSwicGF5cGFsIjp7ImRpc3BsYXlOYW1lIjoiYmFyY28uMDMtZmFjaWxpdGF0b3JAZ21haWwuY29tIiwiY2xpZW50SWQiOiJBV3VZdnFnMGtaN2Y5S0V4TVpqZU53T3RjQV8yZVhnOWpMZy1QSnBGX0pnYk44M0YyVml5aEdnV2JCNDg4RGU3MFpucGRBZEI2TUNqekNqSyIsInByaXZhY3lVcmwiOiJodHRwczovL2V4YW1wbGUuY29tIiwidXNlckFncmVlbWVudFVybCI6Imh0dHBzOi8vZXhhbXBsZS5jb20iLCJiYXNlVXJsIjoiaHR0cHM6Ly9hc3NldHMuYnJhaW50cmVlZ2F0ZXdheS5jb20iLCJhc3NldHNVcmwiOiJodHRwczovL2NoZWNrb3V0LnBheXBhbC5jb20iLCJkaXJlY3RCYXNlVXJsIjpudWxsLCJhbGxvd0h0dHAiOnRydWUsImVudmlyb25tZW50Tm9OZXR3b3JrIjpmYWxzZSwiZW52aXJvbm1lbnQiOiJvZmZsaW5lIiwidW52ZXR0ZWRNZXJjaGFudCI6ZmFsc2UsImJyYWludHJlZUNsaWVudElkIjoibWFzdGVyY2xpZW50MyIsImJpbGxpbmdBZ3JlZW1lbnRzRW5hYmxlZCI6dHJ1ZSwibWVyY2hhbnRBY2NvdW50SWQiOiJVU0QiLCJjdXJyZW5jeUlzb0NvZGUiOiJVU0QifSwiY29pbmJhc2VFbmFibGVkIjpmYWxzZSwibWVyY2hhbnRJZCI6IjN3MnR0dndkMjQ2NTQ4aGQiLCJ2ZW5tbyI6Im9mZiJ9") : new zalgo_promise_src.a((function(resolve, reject) {
                if (json && data || json && body || data && json) throw new Error("Only options.json or options.data or options.body should be passed");
                var normalizedHeaders = {};
                for (var _i4 = 0, _Object$keys2 = Object.keys(headers); _i4 < _Object$keys2.length; _i4++) {
                    var _key2 = _Object$keys2[_i4];
                    normalizedHeaders[_key2.toLowerCase()] = headers[_key2];
                }
                json ? normalizedHeaders["content-type"] = normalizedHeaders["content-type"] || "application/json" : (data || body) && (normalizedHeaders["content-type"] = normalizedHeaders["content-type"] || "application/x-www-form-urlencoded; charset=utf-8");
                normalizedHeaders.accept = normalizedHeaders.accept || "application/json";
                for (var _i6 = 0; _i6 < headerBuilders.length; _i6++) {
                    var builtHeaders = (0, headerBuilders[_i6])();
                    for (var _i8 = 0, _Object$keys4 = Object.keys(builtHeaders); _i8 < _Object$keys4.length; _i8++) {
                        var _key3 = _Object$keys4[_i8];
                        normalizedHeaders[_key3.toLowerCase()] = builtHeaders[_key3];
                    }
                }
                var xhr = new win.XMLHttpRequest;
                xhr.addEventListener("load", (function() {
                    var responseHeaders = function(rawHeaders) {
                        void 0 === rawHeaders && (rawHeaders = "");
                        var result = {};
                        for (var _i2 = 0, _rawHeaders$trim$spli2 = rawHeaders.trim().split("\n"); _i2 < _rawHeaders$trim$spli2.length; _i2++) {
                            var _line$split = _rawHeaders$trim$spli2[_i2].split(":"), _key = _line$split[0], values = _line$split.slice(1);
                            result[_key.toLowerCase()] = values.join(":").trim();
                        }
                        return result;
                    }(this.getAllResponseHeaders());
                    var corrID = responseHeaders["paypal-debug-id"] || "unknown";
                    responseHeaders["paypal-debug-id"] && corrids.push(responseHeaders["paypal-debug-id"]);
                    if (!this.status) return reject(new Error("Request to " + method.toLowerCase() + " " + url + " failed: no response status code. Correlation id: " + corrID));
                    var contentType = responseHeaders["content-type"];
                    var isJSON = contentType && (0 === contentType.indexOf("application/json") || 0 === contentType.indexOf("text/json"));
                    var res = this.responseText;
                    try {
                        res = JSON.parse(this.responseText);
                    } catch (err) {
                        if (isJSON) return reject(new Error("Invalid json: " + this.responseText + ". Correlation id: " + corrID));
                    }
                    if (this.status >= 400) {
                        var message = "Request to " + method.toLowerCase() + " " + url + " failed with " + this.status + " error. Correlation id: " + corrID;
                        if (res) {
                            "object" == typeof res && null !== res && (res = JSON.stringify(res, null, 4));
                            message = message + "\n\n" + res + "\n";
                        }
                        return reject(new Error(message));
                    }
                    return resolve(res);
                }), !1);
                xhr.addEventListener("error", (function(evt) {
                    var corrID = this.getResponseHeader("paypal-debug-id");
                    reject(new Error("Request to " + method.toLowerCase() + " " + url + " failed: " + evt.toString() + ". Correlation id: " + corrID));
                }), !1);
                xhr.open(method, url, !0);
                for (var _key4 in normalizedHeaders) normalizedHeaders.hasOwnProperty(_key4) && xhr.setRequestHeader(_key4, normalizedHeaders[_key4]);
                json ? body = JSON.stringify(json) : data && (body = Object.keys(data).map((function(key) {
                    return encodeURIComponent(key) + "=" + (data ? encodeURIComponent(data[key]) : "");
                })).join("&"));
                xhr.timeout = timeout;
                xhr.ontimeout = function() {
                    reject(new Error("Request to " + method.toLowerCase() + " " + url + " has timed out"));
                };
                xhr.send(body);
            }));
        }
        request.get = function(url, options) {
            void 0 === options && (options = {});
            return request(Object(esm_extends.a)({
                method: "get",
                url: url
            }, options));
        };
        request.post = function(url, data, options) {
            void 0 === options && (options = {});
            return request(Object(esm_extends.a)({
                method: "post",
                url: url,
                data: data
            }, options));
        };
        request.addHeaderBuilder = function(method) {
            headerBuilders.push(method);
        };
        function getThrottle(name, sample, sticky) {
            void 0 === sticky && (sticky = !0);
            var uid = getStorageID();
            var percentile = sticky ? function(name) {
                return getStorageState((function(storage) {
                    storage.throttlePercentiles = storage.throttlePercentiles || {};
                    storage.throttlePercentiles[name] = storage.throttlePercentiles[name] || Math.floor(100 * Math.random());
                    return storage.throttlePercentiles[name];
                }));
            }(name) : Math.floor(100 * Math.random());
            var group;
            var treatment = name + "_" + (group = percentile < sample ? "test" : sample >= 50 || sample <= percentile && percentile < 2 * sample ? "control" : "throttle");
            var started = !1;
            var forced = !1;
            try {
                window.localStorage && window.localStorage.getItem(name) && (forced = !0);
            } catch (err) {}
            return {
                isEnabled: function() {
                    return "test" === group || forced;
                },
                isDisabled: function() {
                    return "test" !== group && !forced;
                },
                getTreatment: function() {
                    return treatment;
                },
                log: function(checkpointName, payload) {
                    var _extends2;
                    void 0 === payload && (payload = {});
                    if (!started) return this;
                    var checkpoint = name + "_" + treatment + "_" + checkpointName;
                    Object(client.k)(checkpoint, Object(esm_extends.a)({}, payload, {
                        expuid: uid
                    }));
                    Object(client.p)(Object(esm_extends.a)(((_extends2 = {})[constants.u.KEY.EXPERIMENT_NAME] = name, 
                    _extends2[constants.u.KEY.TREATMENT_NAME] = treatment, _extends2), payload));
                    Object(client.h)();
                    return this;
                },
                logStart: function(payload) {
                    void 0 === payload && (payload = {});
                    started = !0;
                    return this.log("start", payload);
                },
                logComplete: function(payload) {
                    void 0 === payload && (payload = {});
                    return started ? this.log("complete", payload) : this;
                }
            };
        }
        function getReturnToken() {
            var token = Object(util.g)(window.location.href, /token=((EC-)?[A-Z0-9]+)/);
            var payer = Object(util.g)(window.location.href, /PayerID=([A-Z0-9]+)/);
            if (token && payer) return token;
        }
        var openMetaFrame = Object(util.i)((function(env) {
            void 0 === env && (env = config.a.env);
            return zalgo_promise_src.a.try((function() {
                if (isIEIntranet()) return {
                    iframeEligible: !1,
                    iframeEligibleReason: "ie_intranet",
                    rememberedFunding: []
                };
                var metaFrameUrl = config.a.metaFrameUrls[env];
                var metaFrameDomain = config.a.paypalDomains[env];
                return zalgo_promise_src.a.try((function() {
                    if (!post_robot_src.bridge) throw new Error("Opening meta window without bridge support is not currently supported");
                    var metaListener = Object(post_robot_src.once)("meta", {
                        domain: metaFrameDomain
                    });
                    return post_robot_src.bridge.openBridge(extendUrl(metaFrameUrl, {
                        version: "4.0.328"
                    }), metaFrameDomain).then((function() {
                        return metaListener;
                    })).then((function(_ref) {
                        return _ref.data;
                    }));
                }));
            }));
        }));
        function getRememberedFunding(handler) {
            void 0 === handler && (handler = util.e);
            return getStorageState((function(storage) {
                storage.rememberedFunding = storage.rememberedFunding || [];
                return handler(storage.rememberedFunding);
            }));
        }
        function hasRememberedFunding(source) {
            return !!getRememberedFunding((function(rememberedFunding) {
                return -1 !== rememberedFunding.indexOf(source);
            })) || !!getSessionState((function(session) {
                return session.recentlyCheckedRemembered;
            }));
        }
        function getRememberedFundingPromises() {
            return function(handler) {
                window.__paypal_global__ = window.__paypal_global__ || {};
                return function(global) {
                    global.rememberFundingPromises = global.rememberFundingPromises || {};
                    return global.rememberFundingPromises;
                }(window.__paypal_global__);
            }();
        }
        function getRememberedFundingPromise(source) {
            var promises = getRememberedFundingPromises();
            var promise = promises[source] = promises[source] || new zalgo_promise_src.a;
            hasRememberedFunding(source) && promise.resolve(function(source) {
                if (getRememberedFunding((function(rememberedFunding) {
                    return -1 !== rememberedFunding.indexOf(source);
                }))) return !0;
                if (getSessionState((function(session) {
                    return session.recentlyCheckedRemembered;
                }))) return !1;
                throw new Error("Can not find remembered funding result");
            }(source));
            return promise;
        }
        function rememberFunding(sources) {
            getRememberedFunding((function(rememberedFunding) {
                for (var _i4 = 0; _i4 < sources.length; _i4++) {
                    var source = sources[_i4];
                    source !== constants.v.VENMO && -1 === rememberedFunding.indexOf(source) && rememberedFunding.push(source);
                }
                !function() {
                    var promises = getRememberedFundingPromises();
                    var rememberedFunding = getRememberedFunding((function(sources) {
                        return sources;
                    }));
                    for (var _i2 = 0, _Object$keys2 = Object.keys(promises); _i2 < _Object$keys2.length; _i2++) {
                        var source = _Object$keys2[_i2];
                        promises[source].resolve(-1 !== rememberedFunding.indexOf(source));
                    }
                }();
            }));
            getSessionState((function(session) {
                session.recentlyCheckedRemembered = !0;
            }));
        }
        function loadMeta() {
            return openMetaFrame().then((function(_ref) {
                rememberFunding(_ref.rememberedFunding || []);
            }));
        }
        function isFundingRemembered(source) {
            void 0 === source && (source = constants.v.PAYPAL);
            return hasRememberedFunding(source) ? getRememberedFundingPromise(source) : loadMeta().then((function() {
                return getRememberedFundingPromise(source);
            }));
        }
        function precacheRememberedFunding() {
            return getSessionState((function(session) {
                return session.recentlyCheckedRemembered;
            })) ? zalgo_promise_src.a.resolve() : loadMeta();
        }
        __webpack_require__(1);
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return config;
        }));
        var constants = __webpack_require__(0);
        var _altpayUris, _guestUris, _billingUris, _buttonUris, _inlinedCardFieldUris, _postBridgeUris, _legacyCheckoutUris, _buttonJSUrls;
        var config = {
            locales: constants.A,
            scriptUrl: "//www.paypalobjects.com/api/checkout.lib.js",
            paypal_domain_regex: /^(https?|mock):\/\/[a-zA-Z0-9_.-]+\.paypal\.com(:\d+)?$/,
            version: "4.0.328",
            cors: !0,
            env: "undefined" == typeof window || void 0 === window.location ? constants.t.PRODUCTION : -1 !== window.location.host.indexOf("localhost.paypal.com") ? constants.t.LOCAL : -1 !== window.location.host.indexOf("qa.paypal.com") ? constants.t.STAGE : -1 !== window.location.host.indexOf("sandbox.paypal.com") ? constants.t.SANDBOX : constants.t.PRODUCTION,
            state: "checkoutjs",
            locale: {
                country: constants.r.US,
                lang: constants.y.EN
            },
            stage: "msmaster",
            stageDomain: "qa.paypal.com",
            get stageUrl() {
                return config.stage + "." + config.stageDomain;
            },
            get apiStageUrl() {
                return config.apiStage + "." + config.stageDomain;
            },
            get localhostUrl() {
                return "http://localhost.paypal.com:" + config.ports.default;
            },
            set localhostUrl(val) {
                delete this.localhostUrl;
                this.localhostUrl = val;
            },
            merchantID: "",
            authCode: "",
            logLevel: "warn",
            throttles: {
                v4_mobile_device: 0
            },
            domain_settings: {
                "walmart.com": {
                    ie_full_page: !1,
                    allow_full_page_fallback: !0,
                    memoize_payment: !0,
                    force_bridge: !0,
                    log_authorize: !0
                },
                "ulta.com": {
                    disable_venmo: !0
                },
                "barnesandnoble.com": {
                    disable_venmo: !0
                },
                "bn.com": {
                    disable_venmo: !0
                },
                "agoratix.com": {
                    disable_venmo: !0
                },
                "tractorsupply.com": {
                    disable_venmo: !0
                },
                "etsy.com": {
                    ie_full_page: !1,
                    allow_full_page_fallback: !0,
                    memoize_payment: !0,
                    force_bridge: !0,
                    log_authorize: !0
                },
                "ticketmaster.com": {
                    disable_venmo: !0
                },
                "livenation.com": {
                    disable_venmo: !0
                },
                "frontgatetickets.com": {
                    disable_venmo: !0
                },
                "williams-sonoma.com": {
                    disable_venmo: !0
                },
                "westelm.com": {
                    disable_venmo: !0
                },
                "markandgraham.com": {
                    disable_venmo: !0
                },
                "potterybarn.com": {
                    disable_venmo: !0
                },
                "potterybarnkids.com": {
                    disable_venmo: !0
                },
                "pbteen.com": {
                    disable_venmo: !0
                },
                "beallsflorida.com": {
                    disable_venmo: !0
                },
                "therealreal.com": {
                    disable_venmo: !0
                },
                "liveaquaria.com": {
                    disable_venmo: !0
                },
                "drsfostersmith.com": {
                    disable_venmo: !0
                },
                "boxed.com": {
                    disable_venmo: !0
                },
                "bevisible.com": {
                    disable_venmo: !0
                },
                "moeller.org": {
                    disable_venmo: !0
                },
                "searshometownstores.com": {
                    disable_venmo: !0
                },
                "searshardwarestores.com": {
                    disable_venmo: !0
                },
                "searshomeapplianceshowroom.com": {
                    disable_venmo: !0
                },
                "barkshop.com": {
                    disable_venmo: !0
                },
                "vividseats.com": {
                    disable_venmo: !0
                },
                "getcargo.today": {
                    disable_venmo: !0
                },
                "smartdestinations.com": {
                    disable_venmo: !0
                },
                "philadelphiapass.com": {
                    disable_venmo: !0
                },
                "thesydneypass.com": {
                    disable_venmo: !0
                },
                "3secondlash.com": {
                    disable_venmo: !0
                },
                "newyorkpass.com": {
                    disable_venmo: !0
                },
                "dndbeyond.com": {
                    disable_venmo: !0
                },
                "app.zapbuy.it": {
                    disable_venmo: !0
                },
                "gamersaloon.com": {
                    disable_venmo: !0
                },
                "1800contacts.com": {
                    disable_venmo: !0
                },
                "shopchatters.ca": {
                    disable_venmo: !0
                },
                "shopguyswin.ca": {
                    disable_venmo: !0
                },
                "jjill.com": {
                    disable_venmo: !0
                },
                "qvc.com": {
                    disable_venmo: !0
                },
                "stelladot.com": {
                    disable_venmo: !0
                },
                "keepcollective.com": {
                    disable_venmo: !0
                },
                "everskin.com": {
                    disable_venmo: !0
                },
                "zulily.com": {
                    disable_venmo: !0
                },
                "freshly.com": {
                    disable_venmo: !0
                },
                "buypeticare.com": {
                    disable_venmo: !0
                },
                "getownzone.com": {
                    disable_venmo: !0
                },
                "uncommongoods.com": {
                    disable_venmo: !0
                },
                "onegold.com": {
                    disable_venmo: !0
                },
                "universitytees.com": {
                    disable_venmo: !0
                },
                "revolve.com": {
                    disable_venmo: !0
                },
                "functionofbeauty.com": {
                    disable_venmo: !0
                },
                "givebutter.com": {
                    disable_venmo: !0
                },
                "hausmart.com": {
                    disable_venmo: !0
                },
                "derbyjackpot.com": {
                    disable_venmo: !0
                },
                "ancestry.com": {
                    disable_venmo: !0
                },
                "boats.net": {
                    disable_venmo: !0
                },
                "partzilla.com": {
                    disable_venmo: !0
                },
                "firedog.com": {
                    disable_venmo: !0
                },
                "chick-fil-a.com": {
                    disable_venmo: !0
                },
                "roku.com": {
                    disable_venmo: !0
                },
                "barkbox.com": {
                    disable_venmo: !0
                },
                "neimanmarcus.com": {
                    disable_venmo: !0
                },
                "lastcall.com": {
                    disable_venmo: !0
                },
                "horchow.com": {
                    disable_venmo: !0
                },
                "bergdorfgoodman.com": {
                    disable_venmo: !0
                },
                "fwrd.com": {
                    disable_venmo: !0
                },
                "plunderdesign.com": {
                    disable_venmo: !0
                },
                "stitchfix.com": {
                    disable_venmo: !0
                },
                "revzilla.com": {
                    disable_venmo: !0
                },
                "cyclegear.com": {
                    disable_venmo: !0
                },
                "chegg.com": {
                    disable_venmo: !0
                },
                "youniqueproducts.com": {
                    disable_venmo: !0
                },
                "archives.com": {
                    disable_venmo: !0
                },
                "hautelook.com": {
                    disable_venmo: !0
                },
                "nordstromrack.com": {
                    disable_venmo: !0
                },
                "motherhoodcanada.ca": {
                    disable_venmo: !0
                },
                "atomtickets.com": {
                    disable_venmo: !0
                },
                "trademore.com": {
                    disable_venmo: !0
                },
                "lasheaseoffer.com": {
                    disable_venmo: !0
                },
                "rookie.paypalsixthman.com": {
                    disable_venmo: !0
                },
                "1800Contacts.com": {
                    disable_venmo: !0
                },
                "hulu.com": {
                    disable_venmo: !0
                },
                "grubhub.com": {
                    disable_venmo: !0
                },
                "eat24.com": {
                    disable_venmo: !0
                },
                "seamless.com": {
                    disable_venmo: !0
                },
                "freshfeetscrubber.com": {
                    disable_venmo: !0
                },
                "opensky.com": {
                    disable_venmo: !0
                },
                "dotandbo.com": {
                    disable_venmo: !0
                },
                "storenvy.com": {
                    disable_venmo: !0
                },
                "gemafina.com": {
                    disable_venmo: !0
                },
                "pickperfect.com": {
                    disable_venmo: !0
                },
                "55mulberry.com": {
                    disable_venmo: !0
                },
                "hollar.com": {
                    disable_venmo: !0
                },
                "bjs.com": {
                    disable_venmo: !0
                },
                "playsugarhouse.com": {
                    disable_venmo: !0
                },
                "lakeshorelearning.com": {
                    disable_venmo: !0
                },
                "llmhq.com": {
                    disable_venmo: !0
                },
                "gainful.com": {
                    disable_venmo: !0
                },
                "modaoperandi.com": {
                    disable_venmo: !0
                },
                "play.jackpocket.com": {
                    disable_venmo: !0
                },
                "crepeerase.com": {
                    disable_venmo: !0
                },
                "specificbeauty.com": {
                    disable_venmo: !0
                },
                "meaningfulbeauty.com": {
                    disable_venmo: !0
                },
                "smileactives.com ": {
                    disable_venmo: !0
                },
                "mally.com": {
                    disable_venmo: !0
                },
                "westmorebeauty.com": {
                    disable_venmo: !0
                },
                "subd.com": {
                    disable_venmo: !0
                },
                "seacalmskin.com": {
                    disable_venmo: !0
                },
                "whittier.edu": {
                    disable_venmo: !0
                },
                "curology.com": {
                    disable_venmo: !0
                },
                "monoprice.com": {
                    disable_venmo: !0
                },
                "dominos.com": {
                    disable_venmo: !0
                },
                "audiobooks.com": {
                    disable_venmo: !0
                },
                "1aauto.com": {
                    disable_venmo: !0
                },
                "greatwolf.com": {
                    disable_venmo: !0
                },
                "cvs.com": {
                    disable_venmo: !0
                },
                "gilt.com": {
                    disable_venmo: !0
                },
                "ruelala.com": {
                    disable_venmo: !0
                },
                "shopdisney.com": {
                    disable_venmo: !0
                },
                "disneyland.disney.go.com": {
                    disable_venmo: !0
                },
                "disneyworld.disney.go.com": {
                    disable_venmo: !0
                },
                "disneyaulani.com": {
                    disable_venmo: !0
                },
                "6abc.com": {
                    disable_venmo: !0
                },
                "abc30.com": {
                    disable_venmo: !0
                },
                "abc7.com": {
                    disable_venmo: !0
                },
                "abc7chicago.com": {
                    disable_venmo: !0
                },
                "abcnewsvideosource.com": {
                    disable_venmo: !0
                },
                "aetndigital.com": {
                    disable_venmo: !0
                },
                "araca.com.au": {
                    disable_venmo: !0
                },
                "disney.com": {
                    disable_venmo: !0
                },
                "espncustomercare.com": {
                    disable_venmo: !0
                },
                "makerstudios.com": {
                    disable_venmo: !0
                },
                "abc.org": {
                    disable_venmo: !0
                },
                "dclnews.com": {
                    disable_venmo: !0
                },
                "disneyanimation.com": {
                    disable_venmo: !0
                },
                "espncricinfo.com": {
                    disable_venmo: !0
                },
                "fort-pierce.net": {
                    disable_venmo: !0
                },
                "nationalgeographic.com": {
                    disable_venmo: !0
                },
                "nhl.tv": {
                    disable_venmo: !0
                },
                "pixar.com": {
                    disable_venmo: !0
                },
                "xgames.com": {
                    disable_venmo: !0
                },
                "espnwsummit.com": {
                    disable_venmo: !0
                },
                "plus.espn.com": {
                    disable_venmo: !0
                },
                "disneyplus.com": {
                    disable_venmo: !0
                }
            },
            creditTestDomains: [ "bluesuncorp.co.uk", "nationsphotolab.com", "plexusworldwide.com", "nshss.org", "bissell.com", "mobstub.com", "vuoriclothing.com", "tape4backup.com", "avivamiento.com", "rhododendron.org", "whiterabbitjapan.com", "atsracing.net", "thehilltopgallery.com", "weedtraqr.com", "worldpantry.com", "ciraconnect.com", "mymalls.com", "prowinch.com", "zodiacpoolsystems.com", "everlywell.com", "candlewarmers.com", "chop.edu", "incruises.com", "flikn.com", "didforsale.com", "mcc.org", "sygu.net", "merchbar.com", "eduinconline.com", "us.livebetterwith.com", "bakemeawish.com", "judolaunch.com", "eventcartel.com", "tapatalk.com", "telescope.com", "covenant.edu", "aquatruwater.com", "spingo.com", "usu.edu", "getcelerity.com", "brandless.com", "saberigniter.com", "euromodeltrains.com", "gofasttrader.com", "megamodzplanet.com", "draftanalyzer.com", "lovewithoutboundaries.com", "filterpop.com", "seekverify.com", "photoandgo.com", "sightseeingpass.com", "bigoanddukes.com", "thethirstyduck.com", "thebrushguys.com", "907delivery.com", "mauisails.com", "drive.net", "channelmax.net", "modernrebelco.com", "enchanteddiamonds.com", "ibabbleon.com", "fullgenomes.com", "conn-comp.com", "wingware.com", "paradigmgoods.com", "theneptunegroup.com", "kidzartworks.com", "unirealm.com", "ncfarmsinc.com", "oneofakindantiques.com", "servers4less.com", "stumpthespread.com", "marketwagon.com", "monsterhouseplans.com", "canterburychoral.org", "teacupnordic.org", "thethirstyduck.com", "medialoot.com", "theartistunion.com", "yourglamourzone.com", "breckstables.com", "mackephotography.com", "dsaj.org", "massluminosity.com", "tespa.org", "versatilearts.net", "yecup.org", "divinebusinessmanagement.com", "captivatebeautyservices.com", "class4me.com", "wcsonlineuniversity.com", "pvplive.com", "kyneteks.com", "rare-paper.com", "bpg.bpgsim.biz", "geodegallery.com", "way.com", "kringle.com", "talentedmrsalas.ph", "litcharts.com", "purpletreephotography.com", "apache.org", "neopackage.com", "globaldance.tv", "integral.studio", "airdoctorpro.com", "ivoryandiron.com", "yuengling.com", "averysbranchfarms.com", "amberreinink.com", "skinnymechocolate.com", "bmbl.net", "ncwatercolor.net", "astrograph.com", "localadventures.mx", "ripcurl.com", "worldfootbrakechallenge.com", "shespeakssales.com", "obrienguitars.com", "jadenikkolephoto.com", "americavoice.com", "cassiexie.com", "aamastateconvention.org", "rellesflorist.com", "passionnobby.com", "bodybyheidi.com", "roqos.com", "prijector.com", "maryswanson.net", "tsghobbies.com", "erinlaytonphotography.com", "darter.org", "fountainpenhospital.com", "myzestfullife.com", "pcog.org", "alisabethdesigns.com", "katiemathisphoto.com", "strictlybellaphotography.com", "maptools.com", "sites.google.com", "gallerr.com", "southfloridatrikke.com", "caviar.tv", "mintingmasters.com", "prospectorsguild.com", "inktale.com", "prettygirlgoods.com", "laceycahill.com", "daniellenowak.com", "t212.org", "scmsinc.com", "babypaloozanc.com", "tetrisonline.com", "grdd.net", "cdspg.info", "airshipapparel.com", "waft.com", "extendpets.com", "supplyhub.com", "hlbsusa.com", "jaderollerbeauty.com", "theparentingjunkie.com", "schagringas.com", "yourscribemate.com", "sportscollectibles.com", "thedivinenoise.com", "hometeamsonline.com", "trademarkpress.com", "destinationenglish.us", "jacquesflowers.com", "aliszhatchphotography.com", "rusticfoundry.com", "ahhhmassage.net", "frezzor.com", "mandelininc.com", "kayleejackson.com", "monkinstitute.org", "eddiebsbbq.com", "morningstarmediaservices.com", "kinevative.com", "orivet.com", "digitalprinthouse.net", "dynamicgenius.com", "allpartsusa.com", "flowersbydavid.net", "nwvoices.org", "leaptrade.com", "tulsaschoolpics.com", "alioth.io", "windowflair.com", "vitcom.net", "simplybeautifulfashions.com", "christinabenton.com", "fromthedaughter.com", "hometowngraphics.net", "fibanalysis.com", "creativejobscentral.com", "sandbox.gg", "jt-digitalmedia.com", "kodable.com", "birthingstone.com", "taranicholephoto.com", "hillyfieldsflorist.com", "charitynoelphoto.com", "auxdelicesfoods.com", "terilynnphotography.com", "folieadeuxevents.com", "karensfloral.com", "montgomerydiveclub.com", "rainbowplastics.com", "confettionthedancefloor.com", "vomozmedia.com", "neatmod.com", "getnaturafled.com", "callingpost.com", "iamfamily.org", "pedigreeonline.com", "typeboost.io", "in-n-outpetdoor.com", "nerdstockgc.com", "keiadmin.com", "createdbykaui.com", "aikophoto.com", "lonestar.ink", "stlfurs.com", "treasurelistings.com", "thecubicle.us", "redclaypaper.com", "blushhousemedia.com", "documentsanddesigns.com", "whitneyleighphotography.shootproof.com", "amaryllisday.com", "hermanproav.com", "felicemedia.com", "withloveplacenta.com", "store.brgadgets.co", "klowephoto.com", "spenceraustinconsulting.com", "sno-eagles.org", "dsatallahassee.org", "bakupages.com", "neswc.com", "josiebrooksphotography.com", "brisksale.com", "legalwhoosh.com", "jasmineeaster.com", "swatstudios.com", "facebook.com", "shakershell.com", "alexiswinslow.com", "mixeddimensions.com", "sweetpproductions.com", "lbeaphotography.com", "otlseatfillers.com", "jdtickets.com", "catholicar.com", "masque.com", "smalltownstudio.net", "goherbalife.com", "itzyourz.com", "magazinespeedloader.com", "dreammachines.io", "dallasdieteticalliance.org", "http:", "medair.org", "unbridledambition.com", "sarasprints.com", "wiperecord.com", "showmyrabbit.com", "cctrendsshop.com", "rachelalessandra.com", "otherworld-apothecary.com", "melissaannphoto.com", "girlceo.co", "seasidemexico.com", "telosid.com", "instin.com", "marinecorpsmustang.org", "lancityconnect.com", "hps1.org", "karenware.com", "livecurriculum.com", "spellingstars.com", "vektorfootball.com", "zaltv.com", "nebraskamayflower.org", "ethiopianspices.com", "immitranslate.com", "rafaelmagic.com.com", "bahc1.org", "newenamel.com", "bhchp.org", "buybulkamerica.com", "sourcepoint.com", "squarestripsports.com", "wix.com", "wilderootsphotography.com", "goodsalt.com", "systemongrid.com", "designmil.org", "freshtrendhq.com", "valisimofashions.com", "buyneatly.com", "getbeauty.us", "intellimidia.com" ],
            customCountry: !1,
            SUPPORTED_BROWSERS: {
                msie: "11",
                firefox: "30",
                chrome: "27",
                safari: "7",
                opera: "16",
                msedge: "12",
                samsungBrowser: "2.1",
                silk: "59.3",
                ucbrowser: "10.0.0.488",
                vivaldi: "1.91"
            },
            session_uid_lifetime: 3e5,
            _apiStage: "",
            get apiStage() {
                return config._apiStage || config.stage;
            },
            set apiStage(value) {
                config._apiStage = value;
            },
            ports: {
                default: 8e3,
                button: 8e3,
                checkout: 8e3,
                guest: 8001,
                altpay: 3e3
            },
            get paypalUrls() {
                var _ref;
                return (_ref = {})[constants.t.LOCAL] = config.localhostUrl, _ref[constants.t.STAGE] = "https://www." + config.stageUrl, 
                _ref[constants.t.SANDBOX] = "https://www.sandbox.paypal.com", _ref[constants.t.PRODUCTION] = "https://www.paypal.com", 
                _ref[constants.t.TEST] = window.location.protocol + "//" + window.location.host, 
                _ref[constants.t.DEMO] = window.location.protocol + "//localhost.paypal.com:" + window.location.port, 
                _ref;
            },
            get paypalDomains() {
                var _ref2;
                return (_ref2 = {})[constants.t.LOCAL] = "http://localhost.paypal.com:8000", _ref2[constants.t.STAGE] = "https://www." + config.stageUrl, 
                _ref2[constants.t.SANDBOX] = "https://www.sandbox.paypal.com", _ref2[constants.t.PRODUCTION] = "https://www.paypal.com", 
                _ref2[constants.t.TEST] = "mock://www.paypal.com", _ref2[constants.t.DEMO] = window.location.protocol + "//localhost.paypal.com:" + window.location.port, 
                _ref2;
            },
            get wwwApiUrls() {
                var _ref3;
                return (_ref3 = {})[constants.t.LOCAL] = "https://www." + config.stageUrl, _ref3[constants.t.STAGE] = "https://www." + config.stageUrl, 
                _ref3[constants.t.SANDBOX] = "https://www.sandbox.paypal.com", _ref3[constants.t.PRODUCTION] = "https://www.paypal.com", 
                _ref3[constants.t.TEST] = window.location.protocol + "//" + window.location.host, 
                _ref3;
            },
            get corsApiUrls() {
                var _ref4;
                return (_ref4 = {})[constants.t.LOCAL] = "https://" + config.apiStageUrl + ":12326", 
                _ref4[constants.t.STAGE] = "https://" + config.apiStageUrl + ":12326", _ref4[constants.t.SANDBOX] = "https://cors.api.sandbox.paypal.com", 
                _ref4[constants.t.PRODUCTION] = "https://cors.api.paypal.com", _ref4[constants.t.TEST] = window.location.protocol + "//" + window.location.host, 
                _ref4;
            },
            get apiUrls() {
                var _ref5;
                var domain = window.location.protocol + "//" + window.location.host;
                var corsApiUrls = config.corsApiUrls;
                var wwwApiUrls = config.wwwApiUrls;
                return (_ref5 = {})[constants.t.LOCAL] = domain === wwwApiUrls.local ? wwwApiUrls.local : corsApiUrls.local, 
                _ref5[constants.t.STAGE] = domain === wwwApiUrls.stage ? wwwApiUrls.stage : corsApiUrls.stage, 
                _ref5[constants.t.SANDBOX] = domain === wwwApiUrls.sandbox ? wwwApiUrls.sandbox : corsApiUrls.sandbox, 
                _ref5[constants.t.PRODUCTION] = domain === wwwApiUrls.production ? wwwApiUrls.production : corsApiUrls.production, 
                _ref5[constants.t.TEST] = domain === wwwApiUrls.test ? wwwApiUrls.test : corsApiUrls.test, 
                _ref5;
            },
            get checkoutUri() {
                return null;
            },
            set checkoutUri(val) {
                delete this.checkoutUri;
                this.checkoutUri = val;
            },
            get checkoutUris() {
                var _ref7;
                if (config.checkoutUri) {
                    var _ref6;
                    return (_ref6 = {})[constants.t.LOCAL] = config.checkoutUri, _ref6[constants.t.STAGE] = config.checkoutUri, 
                    _ref6[constants.t.SANDBOX] = config.checkoutUri, _ref6[constants.t.PRODUCTION] = config.checkoutUri, 
                    _ref6[constants.t.TEST] = config.checkoutUri, _ref6[constants.t.DEMO] = config.checkoutUri, 
                    _ref6;
                }
                return (_ref7 = {})[constants.t.LOCAL] = "/webapps/hermes", _ref7[constants.t.STAGE] = "/webapps/hermes", 
                _ref7[constants.t.SANDBOX] = "/checkoutnow", _ref7[constants.t.PRODUCTION] = "/checkoutnow", 
                _ref7[constants.t.TEST] = "/base/test/windows/checkout/index.htm?checkouturl=true", 
                _ref7[constants.t.DEMO] = "/demo/dev/checkout.htm", _ref7;
            },
            altpayUris: (_altpayUris = {}, _altpayUris[constants.t.LOCAL] = "/latinumcheckout", 
            _altpayUris[constants.t.STAGE] = "/latinumcheckout", _altpayUris[constants.t.SANDBOX] = "/latinumcheckout", 
            _altpayUris[constants.t.PRODUCTION] = "/latinumcheckout", _altpayUris[constants.t.TEST] = "/base/test/windows/checkout/index.htm?checkouturl=true", 
            _altpayUris[constants.t.DEMO] = "/demo/dev/checkout.htm", _altpayUris),
            guestUris: (_guestUris = {}, _guestUris[constants.t.LOCAL] = "/webapps/xoonboarding", 
            _guestUris[constants.t.STAGE] = "/webapps/xoonboarding", _guestUris[constants.t.SANDBOX] = "/webapps/xoonboarding", 
            _guestUris[constants.t.PRODUCTION] = "/webapps/xoonboarding", _guestUris[constants.t.TEST] = "/base/test/windows/checkout/index.htm?guesturl=true", 
            _guestUris[constants.t.DEMO] = "/demo/dev/guest.htm", _guestUris),
            billingUris: (_billingUris = {}, _billingUris[constants.t.LOCAL] = "/webapps/hermes/agreements", 
            _billingUris[constants.t.STAGE] = "/webapps/hermes/agreements", _billingUris[constants.t.SANDBOX] = "/agreements/approve", 
            _billingUris[constants.t.PRODUCTION] = "/agreements/approve", _billingUris[constants.t.TEST] = "/base/test/windows/checkout/index.htm?billingurl=true", 
            _billingUris[constants.t.DEMO] = "/demo/dev/checkout.htm", _billingUris),
            buttonUris: (_buttonUris = {}, _buttonUris[constants.t.LOCAL] = "/smart/button", 
            _buttonUris[constants.t.STAGE] = "/smart/button", _buttonUris[constants.t.SANDBOX] = "/smart/button", 
            _buttonUris[constants.t.PRODUCTION] = "/smart/button", _buttonUris[constants.t.TEST] = "/base/test/windows/button/index.htm", 
            _buttonUris[constants.t.DEMO] = "/demo/dev/button.htm", _buttonUris),
            inlinedCardFieldUris: (_inlinedCardFieldUris = {}, _inlinedCardFieldUris[constants.t.LOCAL] = "/smart/card-fields", 
            _inlinedCardFieldUris[constants.t.STAGE] = "/smart/card-fields", _inlinedCardFieldUris[constants.t.SANDBOX] = "/smart/card-fields", 
            _inlinedCardFieldUris[constants.t.PRODUCTION] = "/smart/card-fields", _inlinedCardFieldUris[constants.t.TEST] = "/base/test/windows/card-fields/index.htm", 
            _inlinedCardFieldUris[constants.t.DEMO] = "/demo/dev/card.htm", _inlinedCardFieldUris),
            postBridgeUris: (_postBridgeUris = {}, _postBridgeUris[constants.t.LOCAL] = "/webapps/hermes/component-meta", 
            _postBridgeUris[constants.t.STAGE] = "/webapps/hermes/component-meta", _postBridgeUris[constants.t.SANDBOX] = "/webapps/hermes/component-meta", 
            _postBridgeUris[constants.t.PRODUCTION] = "/webapps/hermes/component-meta", _postBridgeUris[constants.t.TEST] = "/base/test/windows/component-meta/index.htm", 
            _postBridgeUris[constants.t.DEMO] = "/demo/dev/bridge.htm", _postBridgeUris),
            legacyCheckoutUris: (_legacyCheckoutUris = {}, _legacyCheckoutUris[constants.t.LOCAL] = "/cgi-bin/webscr?cmd=_express-checkout&xo_node_fallback=true", 
            _legacyCheckoutUris[constants.t.STAGE] = "/cgi-bin/webscr?cmd=_express-checkout&xo_node_fallback=true", 
            _legacyCheckoutUris[constants.t.SANDBOX] = "/cgi-bin/webscr?cmd=_express-checkout&xo_node_fallback=true", 
            _legacyCheckoutUris[constants.t.PRODUCTION] = "/cgi-bin/webscr?cmd=_express-checkout&xo_node_fallback=true", 
            _legacyCheckoutUris[constants.t.TEST] = "#fallback", _legacyCheckoutUris),
            buttonJSUrls: (_buttonJSUrls = {}, _buttonJSUrls[constants.t.LOCAL] = "https://www.paypalobjects.com/api/button.js", 
            _buttonJSUrls[constants.t.STAGE] = "https://www.paypalobjects.com/api/button.js", 
            _buttonJSUrls[constants.t.SANDBOX] = "https://www.paypalobjects.com/api/button.js", 
            _buttonJSUrls[constants.t.PRODUCTION] = "https://www.paypalobjects.com/api/button.js", 
            _buttonJSUrls[constants.t.TEST] = "/base/test/lib/button.js", _buttonJSUrls[constants.t.DEMO] = "https://www.paypalobjects.com/api/button.js", 
            _buttonJSUrls),
            get buttonJSUrl() {
                return config.buttonJSUrls[config.env];
            },
            loginUri: "/signin/",
            hermesLoggerUri: "/webapps/hermes/api/logger",
            loggerUri: "/xoplatform/logger/api/logger",
            loggerThrottlePercentage: 1,
            pptmUri: "/tagmanager/pptm.js",
            get postBridgeUri() {
                return config.postBridgeUris[config.env] + "?xcomponent=1";
            },
            paymentStandardUri: "/webapps/xorouter?cmd=_s-xclick",
            authApiUri: "/v1/oauth2/token",
            paymentApiUri: "/v1/payments/payment",
            orderApiUri: "/v2/checkout/orders",
            billingApiUri: "/v1/billing-agreements/agreement-tokens",
            experienceApiUri: "/v1/payment-experience/web-profiles",
            trackingApiUri: "/v1/risk/transaction-contexts",
            get checkoutUrls() {
                var _ref8;
                var paypalUrls = config.paypalUrls;
                return (_ref8 = {})[constants.t.LOCAL] = "" + paypalUrls.local + config.checkoutUris.local.replace(":" + config.ports.default, ":" + config.ports.checkout), 
                _ref8[constants.t.STAGE] = "" + paypalUrls.stage + config.checkoutUris.stage, _ref8[constants.t.SANDBOX] = "" + paypalUrls.sandbox + config.checkoutUris.sandbox, 
                _ref8[constants.t.PRODUCTION] = "" + paypalUrls.production + config.checkoutUris.production, 
                _ref8[constants.t.TEST] = "" + paypalUrls.test + config.checkoutUris.test, _ref8[constants.t.DEMO] = "" + paypalUrls.test + config.checkoutUris.demo, 
                _ref8;
            },
            get guestUrls() {
                var _ref9;
                var paypalUrls = config.paypalUrls;
                return (_ref9 = {})[constants.t.LOCAL] = "" + paypalUrls.local.replace(":" + config.ports.default, ":" + config.ports.guest) + config.guestUris.local, 
                _ref9[constants.t.STAGE] = "" + paypalUrls.stage + config.guestUris.stage, _ref9[constants.t.SANDBOX] = "" + paypalUrls.sandbox + config.guestUris.sandbox, 
                _ref9[constants.t.PRODUCTION] = "" + paypalUrls.production + config.guestUris.production, 
                _ref9[constants.t.TEST] = "" + paypalUrls.test + config.guestUris.test, _ref9[constants.t.DEMO] = "" + paypalUrls.test + config.guestUris.demo, 
                _ref9;
            },
            get altpayUrls() {
                var _ref10;
                var paypalUrls = config.paypalUrls;
                return (_ref10 = {})[constants.t.LOCAL] = "" + paypalUrls.local.replace(":" + config.ports.default, ":" + config.ports.altpay) + config.altpayUris.local, 
                _ref10[constants.t.STAGE] = "" + paypalUrls.stage + config.altpayUris.stage, _ref10[constants.t.SANDBOX] = "" + paypalUrls.sandbox + config.altpayUris.sandbox, 
                _ref10[constants.t.PRODUCTION] = "" + paypalUrls.production + config.altpayUris.production, 
                _ref10[constants.t.TEST] = "" + paypalUrls.test + config.altpayUris.test, _ref10[constants.t.DEMO] = "" + paypalUrls.test + config.altpayUris.demo, 
                _ref10;
            },
            get billingUrls() {
                var _ref11;
                var paypalUrls = config.paypalUrls;
                return (_ref11 = {})[constants.t.LOCAL] = "" + paypalUrls.local.replace(":" + config.ports.default, ":" + config.ports.checkout) + config.billingUris.local, 
                _ref11[constants.t.STAGE] = "" + paypalUrls.stage + config.billingUris.stage, _ref11[constants.t.SANDBOX] = "" + paypalUrls.sandbox + config.billingUris.sandbox, 
                _ref11[constants.t.PRODUCTION] = "" + paypalUrls.production + config.billingUris.production, 
                _ref11[constants.t.TEST] = "" + paypalUrls.test + config.billingUris.test, _ref11[constants.t.DEMO] = "" + paypalUrls.test + config.billingUris.demo, 
                _ref11;
            },
            get buttonUrls() {
                var _ref12;
                var paypalUrls = config.paypalUrls;
                return (_ref12 = {})[constants.t.LOCAL] = "" + paypalUrls.local.replace(":" + config.ports.default, ":" + config.ports.button) + config.buttonUris.local, 
                _ref12[constants.t.STAGE] = "" + paypalUrls.stage + config.buttonUris.stage, _ref12[constants.t.SANDBOX] = "" + paypalUrls.sandbox + config.buttonUris.sandbox, 
                _ref12[constants.t.PRODUCTION] = "" + paypalUrls.production + config.buttonUris.production, 
                _ref12[constants.t.TEST] = "" + paypalUrls.test + config.buttonUris.test, _ref12[constants.t.DEMO] = "" + paypalUrls.demo + config.buttonUris.demo, 
                _ref12;
            },
            get inlinedCardFieldUrls() {
                var _ref13;
                var paypalUrls = config.paypalUrls;
                return (_ref13 = {})[constants.t.LOCAL] = "" + paypalUrls.local.replace(":" + config.ports.default, ":" + config.ports.button) + config.inlinedCardFieldUris.local, 
                _ref13[constants.t.STAGE] = "" + paypalUrls.stage + config.inlinedCardFieldUris.stage, 
                _ref13[constants.t.SANDBOX] = "" + paypalUrls.sandbox + config.inlinedCardFieldUris.sandbox, 
                _ref13[constants.t.PRODUCTION] = "" + paypalUrls.production + config.inlinedCardFieldUris.production, 
                _ref13[constants.t.TEST] = "" + paypalUrls.test + config.inlinedCardFieldUris.test, 
                _ref13[constants.t.DEMO] = "" + paypalUrls.demo + config.inlinedCardFieldUris.demo, 
                _ref13;
            },
            get loginUrls() {
                var _ref14;
                var paypalUrls = config.paypalUrls;
                return (_ref14 = {})[constants.t.LOCAL] = "" + paypalUrls.stage + config.loginUri, 
                _ref14[constants.t.STAGE] = "" + paypalUrls.stage + config.loginUri, _ref14[constants.t.SANDBOX] = "" + paypalUrls.sandbox + config.loginUri, 
                _ref14[constants.t.PRODUCTION] = "" + paypalUrls.production + config.loginUri, _ref14[constants.t.TEST] = "" + paypalUrls.test + config.loginUri, 
                _ref14;
            },
            get paymentsStandardUrls() {
                var _ref15;
                var paypalUrls = config.paypalUrls;
                return (_ref15 = {})[constants.t.LOCAL] = "" + paypalUrls.local + config.paymentStandardUri, 
                _ref15[constants.t.STAGE] = "" + paypalUrls.stage + config.paymentStandardUri, _ref15[constants.t.SANDBOX] = "" + paypalUrls.sandbox + config.paymentStandardUri, 
                _ref15[constants.t.PRODUCTION] = "" + paypalUrls.production + config.paymentStandardUri, 
                _ref15[constants.t.TEST] = "" + paypalUrls.test + config.paymentStandardUri, _ref15;
            },
            get metaFrameUrls() {
                var _ref16;
                var paypalUrls = config.paypalUrls;
                return (_ref16 = {})[constants.t.LOCAL] = "" + paypalUrls.local + config.postBridgeUri + "&env=local", 
                _ref16[constants.t.STAGE] = "" + paypalUrls.stage + config.postBridgeUri + "&env=stage&stage=" + config.stage, 
                _ref16[constants.t.SANDBOX] = "" + paypalUrls.sandbox + config.postBridgeUri + "&env=sandbox", 
                _ref16[constants.t.PRODUCTION] = "" + paypalUrls.production + config.postBridgeUri + "&env=production", 
                _ref16[constants.t.TEST] = "" + paypalUrls.test + config.postBridgeUri + "&env=test", 
                _ref16[constants.t.DEMO] = "" + paypalUrls.demo + config.postBridgeUri + "&env=demo", 
                _ref16;
            },
            get legacyCheckoutUrls() {
                var _ref17;
                var paypalUrls = config.paypalUrls;
                return (_ref17 = {})[constants.t.LOCAL] = "" + paypalUrls.stage + config.legacyCheckoutUris.local, 
                _ref17[constants.t.STAGE] = "" + paypalUrls.stage + config.legacyCheckoutUris.stage, 
                _ref17[constants.t.SANDBOX] = "" + paypalUrls.sandbox + config.legacyCheckoutUris.sandbox, 
                _ref17[constants.t.PRODUCTION] = "" + paypalUrls.production + config.legacyCheckoutUris.production, 
                _ref17[constants.t.TEST] = "" + paypalUrls.test + config.legacyCheckoutUris.test, 
                _ref17;
            },
            get authApiUrls() {
                var _ref18;
                var apiUrls = config.apiUrls;
                var authApiUri = config.authApiUri;
                return (_ref18 = {})[constants.t.LOCAL] = "" + apiUrls.local + authApiUri, _ref18[constants.t.STAGE] = "" + apiUrls.stage + authApiUri, 
                _ref18[constants.t.SANDBOX] = "" + apiUrls.sandbox + authApiUri, _ref18[constants.t.PRODUCTION] = "" + apiUrls.production + authApiUri, 
                _ref18[constants.t.TEST] = "" + apiUrls.test + authApiUri, _ref18;
            },
            get paymentApiUrls() {
                var _ref19;
                var apiUrls = config.apiUrls;
                var paymentApiUri = config.paymentApiUri;
                return (_ref19 = {})[constants.t.LOCAL] = "" + apiUrls.local + paymentApiUri, _ref19[constants.t.STAGE] = "" + apiUrls.stage + paymentApiUri, 
                _ref19[constants.t.SANDBOX] = "" + apiUrls.sandbox + paymentApiUri, _ref19[constants.t.PRODUCTION] = "" + apiUrls.production + paymentApiUri, 
                _ref19[constants.t.TEST] = "" + apiUrls.test + paymentApiUri, _ref19;
            },
            get orderApiUrls() {
                var _ref20;
                var apiUrls = config.apiUrls;
                var orderApiUri = config.orderApiUri;
                return (_ref20 = {})[constants.t.LOCAL] = "" + apiUrls.local + orderApiUri, _ref20[constants.t.STAGE] = "" + apiUrls.stage + orderApiUri, 
                _ref20[constants.t.SANDBOX] = "" + apiUrls.sandbox + orderApiUri, _ref20[constants.t.PRODUCTION] = "" + apiUrls.production + orderApiUri, 
                _ref20[constants.t.TEST] = "" + apiUrls.test + orderApiUri, _ref20;
            },
            get billingApiUrls() {
                var _ref21;
                var apiUrls = config.apiUrls;
                var billingApiUri = config.billingApiUri;
                return (_ref21 = {})[constants.t.LOCAL] = "" + apiUrls.local + billingApiUri, _ref21[constants.t.STAGE] = "" + apiUrls.stage + billingApiUri, 
                _ref21[constants.t.SANDBOX] = "" + apiUrls.sandbox + billingApiUri, _ref21[constants.t.PRODUCTION] = "" + apiUrls.production + billingApiUri, 
                _ref21[constants.t.TEST] = "" + apiUrls.test + billingApiUri, _ref21;
            },
            get experienceApiUrls() {
                var _ref22;
                var apiUrls = config.apiUrls;
                var experienceApiUri = config.experienceApiUri;
                return (_ref22 = {})[constants.t.LOCAL] = "" + apiUrls.local + experienceApiUri, 
                _ref22[constants.t.STAGE] = "" + apiUrls.stage + experienceApiUri, _ref22[constants.t.SANDBOX] = "" + apiUrls.sandbox + experienceApiUri, 
                _ref22[constants.t.PRODUCTION] = "" + apiUrls.production + experienceApiUri, _ref22[constants.t.TEST] = "" + apiUrls.test + experienceApiUri, 
                _ref22;
            },
            get trackingApiUrls() {
                var _ref23;
                var apiUrls = config.apiUrls;
                var trackingApiUri = config.trackingApiUri;
                return (_ref23 = {})[constants.t.LOCAL] = "" + apiUrls.local + trackingApiUri, _ref23[constants.t.STAGE] = "" + apiUrls.stage + trackingApiUri, 
                _ref23[constants.t.SANDBOX] = "" + apiUrls.sandbox + trackingApiUri, _ref23[constants.t.PRODUCTION] = "" + apiUrls.production + trackingApiUri, 
                _ref23[constants.t.TEST] = "" + apiUrls.test + trackingApiUri, _ref23;
            },
            _paypalUrl: "",
            get paypalUrl() {
                return this._paypalUrl || config.paypalUrls[config.env];
            },
            set paypalUrl(value) {
                this._paypalUrl = value;
            },
            get paypalDomain() {
                return config.paypalDomains[config.env];
            },
            get corsApiUrl() {
                return config.corsApiUrls[config.env];
            },
            get wwwApiUrl() {
                return config.wwwApiUrls[config.env];
            },
            get apiUrl() {
                var domain = window.location.protocol + "//" + window.location.host;
                var wwwApiUrl = config.wwwApiUrl;
                return domain === wwwApiUrl ? wwwApiUrl : config.corsApiUrl;
            },
            get checkoutUrl() {
                return "" + config.paypalUrl + config.checkoutUris[config.env];
            },
            get billingUrl() {
                return "" + config.paypalUrl + config.billingUris[config.env];
            },
            get buttonUrl() {
                return "" + config.paypalUrl + config.buttonUris[config.env];
            },
            get legacyCheckoutUrl() {
                return config.legacyCheckoutUrls[config.env];
            },
            get postBridgeUrl() {
                return "" + config.paypalUrl + config.postBridgeUri;
            },
            get postBridgeDomain() {
                return "" + config.paypalDomain;
            },
            get loggerUrl() {
                var isTestExperiment = Math.random() < config.loggerThrottlePercentage;
                return "" + config.paypalUrl + (isTestExperiment ? config.loggerUri : config.hermesLoggerUri);
            },
            get pptmUrl() {
                return "" + config.paypalUrls[config.env] + config.pptmUri;
            },
            get authApiUrl() {
                return "" + config.apiUrl + config.authApiUri;
            },
            get paymentApiUrl() {
                return "" + config.apiUrl + config.paymentApiUri;
            },
            get orderApiUrl() {
                return "" + config.apiUrl + config.orderApiUri;
            },
            get billingApiUrl() {
                return "" + config.apiUrl + config.billingApiUri;
            },
            get experienceApiUrl() {
                return "" + config.apiUrl + config.experienceApiUri;
            },
            defaultLocale: {
                country: constants.r.US,
                lang: constants.y.EN
            }
        };
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "i", (function() {
            return getTransport;
        }));
        __webpack_require__.d(__webpack_exports__, "o", (function() {
            return setTransport;
        }));
        __webpack_require__.d(__webpack_exports__, "j", (function() {
            return immediateFlush;
        }));
        __webpack_require__.d(__webpack_exports__, "h", (function() {
            return _flush;
        }));
        __webpack_require__.d(__webpack_exports__, "n", (function() {
            return prefix;
        }));
        __webpack_require__.d(__webpack_exports__, "f", (function() {
            return debug;
        }));
        __webpack_require__.d(__webpack_exports__, "k", (function() {
            return info;
        }));
        __webpack_require__.d(__webpack_exports__, "q", (function() {
            return warn;
        }));
        __webpack_require__.d(__webpack_exports__, "g", (function() {
            return error;
        }));
        __webpack_require__.d(__webpack_exports__, "p", (function() {
            return _track;
        }));
        __webpack_require__.d(__webpack_exports__, "l", (function() {
            return init;
        }));
        __webpack_require__.d(__webpack_exports__, "c", (function() {
            return addPayloadBuilder;
        }));
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return addMetaBuilder;
        }));
        __webpack_require__.d(__webpack_exports__, "d", (function() {
            return addTrackingBuilder;
        }));
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return addHeaderBuilder;
        }));
        __webpack_require__.d(__webpack_exports__, "e", (function() {
            return config;
        }));
        __webpack_require__.d(__webpack_exports__, "m", (function() {
            return logLevels;
        }));
        var interface_namespaceObject = {};
        __webpack_require__.r(interface_namespaceObject);
        __webpack_require__.d(interface_namespaceObject, "buffer", (function() {
            return buffer;
        }));
        __webpack_require__.d(interface_namespaceObject, "tracking", (function() {
            return tracking;
        }));
        __webpack_require__.d(interface_namespaceObject, "getTransport", (function() {
            return getTransport;
        }));
        __webpack_require__.d(interface_namespaceObject, "setTransport", (function() {
            return setTransport;
        }));
        __webpack_require__.d(interface_namespaceObject, "print", (function() {
            return print;
        }));
        __webpack_require__.d(interface_namespaceObject, "immediateFlush", (function() {
            return immediateFlush;
        }));
        __webpack_require__.d(interface_namespaceObject, "flush", (function() {
            return _flush;
        }));
        __webpack_require__.d(interface_namespaceObject, "log", (function() {
            return log;
        }));
        __webpack_require__.d(interface_namespaceObject, "prefix", (function() {
            return prefix;
        }));
        __webpack_require__.d(interface_namespaceObject, "debug", (function() {
            return debug;
        }));
        __webpack_require__.d(interface_namespaceObject, "info", (function() {
            return info;
        }));
        __webpack_require__.d(interface_namespaceObject, "warn", (function() {
            return warn;
        }));
        __webpack_require__.d(interface_namespaceObject, "error", (function() {
            return error;
        }));
        __webpack_require__.d(interface_namespaceObject, "track", (function() {
            return _track;
        }));
        __webpack_require__.d(interface_namespaceObject, "init", (function() {
            return init;
        }));
        __webpack_require__.d(interface_namespaceObject, "startTransition", (function() {
            return startTransition;
        }));
        __webpack_require__.d(interface_namespaceObject, "endTransition", (function() {
            return endTransition;
        }));
        __webpack_require__.d(interface_namespaceObject, "transition", (function() {
            return transition;
        }));
        __webpack_require__.d(interface_namespaceObject, "payloadBuilders", (function() {
            return payloadBuilders;
        }));
        __webpack_require__.d(interface_namespaceObject, "metaBuilders", (function() {
            return metaBuilders;
        }));
        __webpack_require__.d(interface_namespaceObject, "trackingBuilders", (function() {
            return trackingBuilders;
        }));
        __webpack_require__.d(interface_namespaceObject, "headerBuilders", (function() {
            return headerBuilders;
        }));
        __webpack_require__.d(interface_namespaceObject, "addPayloadBuilder", (function() {
            return addPayloadBuilder;
        }));
        __webpack_require__.d(interface_namespaceObject, "addMetaBuilder", (function() {
            return addMetaBuilder;
        }));
        __webpack_require__.d(interface_namespaceObject, "addTrackingBuilder", (function() {
            return addTrackingBuilder;
        }));
        __webpack_require__.d(interface_namespaceObject, "addHeaderBuilder", (function() {
            return addHeaderBuilder;
        }));
        __webpack_require__.d(interface_namespaceObject, "config", (function() {
            return config;
        }));
        __webpack_require__.d(interface_namespaceObject, "logLevels", (function() {
            return logLevels;
        }));
        var src = __webpack_require__(2);
        function extend(dest, src, over) {
            void 0 === over && (over = !0);
            dest = dest || {};
            src = src || {};
            for (var i in src) src.hasOwnProperty(i) && (!over && dest.hasOwnProperty(i) || (dest[i] = src[i]));
            return dest;
        }
        function uniqueID() {
            var chars = "0123456789abcdef";
            return "xxxxxxxxxx".replace(/./g, (function() {
                return chars.charAt(Math.floor(Math.random() * chars.length));
            }));
        }
        var payloadBuilders = [];
        var metaBuilders = [];
        var trackingBuilders = [];
        var headerBuilders = [];
        function addPayloadBuilder(builder) {
            payloadBuilders.push(builder);
        }
        function addMetaBuilder(builder) {
            metaBuilders.push(builder);
        }
        function addTrackingBuilder(builder) {
            trackingBuilders.push(builder);
        }
        function addHeaderBuilder(builder) {
            headerBuilders.push(builder);
        }
        var config = {
            uri: "",
            prefix: "",
            initial_state_name: "init",
            flushInterval: 6e5,
            debounceInterval: 10,
            sizeLimit: 300,
            silent: !1,
            heartbeat: !0,
            heartbeatConsoleLog: !0,
            heartbeatInterval: 5e3,
            heartbeatTooBusy: !1,
            heartbeatTooBusyThreshold: 1e4,
            logLevel: "warn",
            autoLog: [ "warn", "error" ],
            logUnload: !0,
            logPerformance: !0
        };
        var logLevels = [ "error", "warn", "info", "debug" ];
        var buffer = [];
        var tracking = [];
        var logger_transport = function(headers, data, options) {
            return function(method, url, headers, data, _temp) {
                void 0 === headers && (headers = {});
                void 0 === data && (data = {});
                var _ref$fireAndForget = (void 0 === _temp ? {} : _temp).fireAndForget, fireAndForget = void 0 !== _ref$fireAndForget && _ref$fireAndForget;
                return new src.a((function(resolve) {
                    var XRequest = window.XMLHttpRequest || window.ActiveXObject;
                    if (window.XDomainRequest && !function(url) {
                        var match = url.match(/https?:\/\/[^/]+/);
                        return !match || match[0] === window.location.protocol + "//" + window.location.host;
                    }(url)) {
                        if (!function(url) {
                            return window.location.protocol === url.split("/")[0];
                        }(url)) return resolve();
                        XRequest = window.XDomainRequest;
                    }
                    var req = new XRequest("MSXML2.XMLHTTP.3.0");
                    req.open("post".toUpperCase(), url, !0);
                    if ("function" == typeof req.setRequestHeader) {
                        req.setRequestHeader("X-Requested-With", "XMLHttpRequest");
                        req.setRequestHeader("Content-type", "application/json");
                        for (var headerName in headers) headers.hasOwnProperty(headerName) && req.setRequestHeader(headerName, headers[headerName]);
                    }
                    fireAndForget ? resolve() : req.onreadystatechange = function() {
                        req.readyState > 3 && resolve();
                    };
                    req.send(JSON.stringify(data).replace(/&/g, "%26"));
                }));
            }(0, config.uri, headers, data, options);
        };
        function getTransport() {
            return logger_transport;
        }
        function setTransport(newTransport) {
            logger_transport = newTransport;
        }
        var loaded = !1;
        setTimeout((function() {
            loaded = !0;
        }), 1);
        function print(level, event, payload) {
            if ("undefined" != typeof window && window.console && window.console.log) {
                if (!loaded) return setTimeout((function() {
                    return print(level, event, payload);
                }), 1);
                var logLevel = config.logLevel;
                window.LOG_LEVEL && (logLevel = window.LOG_LEVEL);
                if (!(logLevels.indexOf(level) > logLevels.indexOf(logLevel))) {
                    payload = payload || {};
                    var args = [ event ];
                    Boolean(window.document.documentMode) && (payload = JSON.stringify(payload));
                    args.push(payload);
                    (payload.error || payload.warning) && args.push("\n\n", payload.error || payload.warning);
                    try {
                        window.console[level] && window.console[level].apply ? window.console[level].apply(window.console, args) : window.console.log && window.console.log.apply && window.console.log.apply(window.console, args);
                    } catch (err) {}
                }
            }
        }
        function immediateFlush(_temp) {
            var _ref$fireAndForget = (void 0 === _temp ? {} : _temp).fireAndForget, fireAndForget = void 0 !== _ref$fireAndForget && _ref$fireAndForget;
            if ("undefined" != typeof window && config.uri && (buffer.length || tracking.length)) {
                var meta = {};
                for (var _i2 = 0; _i2 < metaBuilders.length; _i2++) {
                    var builder = metaBuilders[_i2];
                    try {
                        extend(meta, builder(meta), !1);
                    } catch (err) {
                        console.error("Error in custom meta builder:", err.stack || err.toString());
                    }
                }
                var headers = {};
                for (var _i4 = 0; _i4 < headerBuilders.length; _i4++) {
                    var _builder = headerBuilders[_i4];
                    try {
                        extend(headers, _builder(headers), !1);
                    } catch (err) {
                        console.error("Error in custom header builder:", err.stack || err.toString());
                    }
                }
                var req = logger_transport(headers, {
                    events: buffer,
                    meta: meta,
                    tracking: tracking
                }, {
                    fireAndForget: fireAndForget
                });
                buffer = [];
                tracking = [];
                return req;
            }
        }
        var _flush = (method = immediateFlush, interval = config.debounceInterval, debounce = {}, 
        function() {
            var args = arguments;
            if (debounce.timeout) {
                clearTimeout(debounce.timeout);
                delete debounce.timeout;
            }
            debounce.timeout = setTimeout((function() {
                var resolver = debounce.resolver;
                var rejector = debounce.rejector;
                delete debounce.promise;
                delete debounce.resolver;
                delete debounce.rejector;
                delete debounce.timeout;
                return src.a.resolve().then((function() {
                    return method.apply(null, args);
                })).then(resolver, rejector);
            }), interval);
            debounce.promise = debounce.promise || new src.a((function(resolver, rejector) {
                debounce.resolver = resolver;
                debounce.rejector = rejector;
            }));
            return debounce.promise;
        });
        var method, interval, debounce;
        function enqueue(level, event, payload) {
            buffer.push({
                level: level,
                event: event,
                payload: payload
            });
            config.autoLog.indexOf(level) > -1 && _flush();
        }
        function log(level, event, payload) {
            if ("undefined" != typeof window) {
                config.prefix && (event = config.prefix + "_" + event);
                "string" == typeof (payload = payload || {}) ? payload = {
                    message: payload
                } : payload instanceof Error && (payload = {
                    error: payload.stack || payload.toString()
                });
                try {
                    JSON.stringify(payload);
                } catch (err) {
                    return;
                }
                payload.timestamp = Date.now();
                for (var _i6 = 0; _i6 < payloadBuilders.length; _i6++) {
                    var builder = payloadBuilders[_i6];
                    try {
                        extend(payload, builder(payload), !1);
                    } catch (err) {
                        console.error("Error in custom payload builder:", err.stack || err.toString());
                    }
                }
                config.silent || print(level, event, payload);
                buffer.length === config.sizeLimit ? enqueue("info", "logger_max_buffer_length") : buffer.length < config.sizeLimit && enqueue(level, event, payload);
            }
        }
        function prefix(name) {
            return {
                debug: function(event, payload) {
                    return log("debug", name + "_" + event, payload);
                },
                info: function(event, payload) {
                    return log("info", name + "_" + event, payload);
                },
                warn: function(event, payload) {
                    return log("warn", name + "_" + event, payload);
                },
                error: function(event, payload) {
                    return log("error", name + "_" + event, payload);
                },
                track: function(payload) {
                    return _track(payload);
                },
                flush: function() {
                    return _flush();
                }
            };
        }
        function debug(event, payload) {
            return log("debug", event, payload);
        }
        function info(event, payload) {
            return log("info", event, payload);
        }
        function warn(event, payload) {
            return log("warn", event, payload);
        }
        function error(event, payload) {
            return log("error", event, payload);
        }
        function _track(payload) {
            if ("undefined" != typeof window && payload) {
                try {
                    JSON.stringify(payload);
                } catch (err) {
                    return;
                }
                for (var _i8 = 0; _i8 < trackingBuilders.length; _i8++) {
                    var builder = trackingBuilders[_i8];
                    try {
                        extend(payload, builder(payload), !1);
                    } catch (err) {
                        console.error("Error in custom tracking builder:", err.stack || err.toString());
                    }
                }
                print("debug", "tracking", payload);
                tracking.push(payload);
            }
        }
        var enablePerformance = window && window.performance && performance.now && performance.timing && performance.timing.connectEnd && performance.timing.navigationStart && Math.abs(performance.now() - Date.now()) > 1e3 && performance.now() - (performance.timing.connectEnd - performance.timing.navigationStart) > 0;
        function now() {
            return enablePerformance ? performance.now() : Date.now();
        }
        function timer(startTime) {
            return {
                startTime: startTime = void 0 !== startTime ? startTime : now(),
                elapsed: function() {
                    return parseInt(now() - startTime, 10);
                },
                reset: function() {
                    startTime = now();
                }
            };
        }
        function reqStartElapsed() {
            if (enablePerformance) {
                var timing = window.performance.timing;
                return parseInt(timing.connectEnd - timing.navigationStart, 10);
            }
        }
        var clientTimer = timer();
        var reqTimer = timer(reqStartElapsed());
        var initiated = !1;
        function init(conf) {
            extend(config, conf || {});
            if (!initiated) {
                initiated = !0;
                config.logPerformance && function() {
                    if (!enablePerformance) return info("no_performance_data");
                    addPayloadBuilder((function() {
                        var payload = {};
                        payload.client_elapsed = clientTimer.elapsed();
                        enablePerformance && (payload.req_elapsed = reqTimer.elapsed());
                        return payload;
                    }));
                    new src.a((function(resolve) {
                        "undefined" != typeof document && "complete" === document.readyState && resolve();
                        window.addEventListener("load", resolve);
                    })).then((function() {
                        var timing = {};
                        [ "connectEnd", "connectStart", "domComplete", "domContentLoadedEventEnd", "domContentLoadedEventStart", "domInteractive", "domLoading", "domainLookupEnd", "domainLookupStart", "fetchStart", "loadEventEnd", "loadEventStart", "navigationStart", "redirectEnd", "redirectStart", "requestStart", "responseEnd", "responseStart", "secureConnectionStart", "unloadEventEnd", "unloadEventStart" ].forEach((function(key) {
                            timing[key] = parseInt(window.performance.timing[key], 10) || 0;
                        }));
                        var offset = timing.connectEnd - timing.navigationStart;
                        timing.connectEnd && Object.keys(timing).forEach((function(name) {
                            var time = timing[name];
                            time && info("timing_" + name, {
                                client_elapsed: parseInt(time - timing.connectEnd - (clientTimer.startTime - offset), 10),
                                req_elapsed: parseInt(time - timing.connectEnd, 10)
                            });
                        }));
                        info("timing", timing);
                        info("memory", window.performance.memory);
                        info("navigation", window.performance.navigation);
                        window.performance.getEntries && window.performance.getEntries().forEach((function(resource) {
                            [ "link", "script", "img", "css" ].indexOf(resource.initiatorType) > -1 && info(resource.initiatorType, resource);
                        }));
                    }));
                }();
                config.heartbeat && (heartBeatTimer = timer(), heartbeatCount = 0, time = config.heartbeatInterval, 
                function loop() {
                    setTimeout((function() {
                        !function() {
                            if (!(config.heartbeatMaxThreshold && heartbeatCount > config.heartbeatMaxThreshold)) {
                                heartbeatCount += 1;
                                var elapsed = heartBeatTimer.elapsed();
                                var lag = elapsed - config.heartbeatInterval;
                                var heartbeatPayload = {
                                    count: heartbeatCount,
                                    elapsed: elapsed
                                };
                                if (config.heartbeatTooBusy) {
                                    heartbeatPayload.lag = lag;
                                    lag >= config.heartbeatTooBusyThreshold && info("toobusy", heartbeatPayload);
                                }
                                info("heartbeat", heartbeatPayload);
                            }
                        }();
                        loop();
                    }), time);
                }());
                if (config.logUnload) {
                    window.addEventListener("beforeunload", (function() {
                        info("window_beforeunload");
                        immediateFlush({
                            fireAndForget: !0
                        });
                    }));
                    window.addEventListener("unload", (function() {
                        info("window_unload");
                        immediateFlush({
                            fireAndForget: !0
                        });
                    }));
                }
                config.flushInterval && setInterval(_flush, config.flushInterval);
                if (window.beaverLogQueue) {
                    window.beaverLogQueue.forEach((function(payload) {
                        log(payload.level, payload.event, payload);
                    }));
                    delete window.beaverLogQueue;
                }
            }
            var heartBeatTimer, heartbeatCount, time;
        }
        var windowID = uniqueID();
        var pageID = uniqueID();
        var currentState = config.initial_state_name;
        var startTime;
        function startTransition() {
            startTime = now();
        }
        function endTransition(toState) {
            startTime = startTime || reqStartElapsed();
            var currentTime = now();
            var elapsedTime;
            void 0 !== startTime && (elapsedTime = parseInt(currentTime - startTime, 0));
            var transitionName = "transition_" + currentState + "_to_" + toState;
            info(transitionName, {
                duration: elapsedTime
            });
            _track({
                transition: transitionName,
                transition_time: elapsedTime
            });
            immediateFlush();
            startTime = currentTime;
            currentState = toState;
            pageID = uniqueID();
        }
        function transition(toState) {
            startTransition();
            endTransition(toState);
        }
        addPayloadBuilder((function() {
            return {
                windowID: windowID,
                pageID: pageID
            };
        }));
        addMetaBuilder((function() {
            return {
                state: "ui_" + currentState
            };
        }));
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "d", (function() {
            return appendChild;
        }));
        __webpack_require__.d(__webpack_exports__, "u", (function() {
            return getElement;
        }));
        __webpack_require__.d(__webpack_exports__, "n", (function() {
            return elementReady;
        }));
        __webpack_require__.d(__webpack_exports__, "I", (function() {
            return popup;
        }));
        __webpack_require__.d(__webpack_exports__, "Y", (function() {
            return writeToWindow;
        }));
        __webpack_require__.d(__webpack_exports__, "X", (function() {
            return writeElementToWindow;
        }));
        __webpack_require__.d(__webpack_exports__, "e", (function() {
            return awaitFrameLoad;
        }));
        __webpack_require__.d(__webpack_exports__, "f", (function() {
            return awaitFrameWindow;
        }));
        __webpack_require__.d(__webpack_exports__, "y", (function() {
            return iframe;
        }));
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return addEventListener;
        }));
        __webpack_require__.d(__webpack_exports__, "r", (function() {
            return extendUrl;
        }));
        __webpack_require__.d(__webpack_exports__, "Q", (function() {
            return showElement;
        }));
        __webpack_require__.d(__webpack_exports__, "x", (function() {
            return hideElement;
        }));
        __webpack_require__.d(__webpack_exports__, "l", (function() {
            return destroyElement;
        }));
        __webpack_require__.d(__webpack_exports__, "P", (function() {
            return showAndAnimate;
        }));
        __webpack_require__.d(__webpack_exports__, "c", (function() {
            return animateAndHide;
        }));
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return addClass;
        }));
        __webpack_require__.d(__webpack_exports__, "L", (function() {
            return removeClass;
        }));
        __webpack_require__.d(__webpack_exports__, "t", (function() {
            return getCurrentScriptDir;
        }));
        __webpack_require__.d(__webpack_exports__, "W", (function() {
            return watchElementForClose;
        }));
        __webpack_require__.d(__webpack_exports__, "J", (function() {
            return prefetchPage;
        }));
        __webpack_require__.d(__webpack_exports__, "C", (function() {
            return jsxDom;
        }));
        __webpack_require__.d(__webpack_exports__, "F", (function() {
            return noop;
        }));
        __webpack_require__.d(__webpack_exports__, "H", (function() {
            return once;
        }));
        __webpack_require__.d(__webpack_exports__, "D", (function() {
            return memoize;
        }));
        __webpack_require__.d(__webpack_exports__, "i", (function() {
            return debounce;
        }));
        __webpack_require__.d(__webpack_exports__, "N", (function() {
            return serializeFunctions;
        }));
        __webpack_require__.d(__webpack_exports__, "k", (function() {
            return deserializeFunctions;
        }));
        __webpack_require__.d(__webpack_exports__, "j", (function() {
            return denodeify;
        }));
        __webpack_require__.d(__webpack_exports__, "K", (function() {
            return promisify;
        }));
        __webpack_require__.d(__webpack_exports__, "h", (function() {
            return dasherizeToCamel;
        }));
        __webpack_require__.d(__webpack_exports__, "q", (function() {
            return extend;
        }));
        __webpack_require__.d(__webpack_exports__, "U", (function() {
            return uniqueID;
        }));
        __webpack_require__.d(__webpack_exports__, "s", (function() {
            return get;
        }));
        __webpack_require__.d(__webpack_exports__, "M", (function() {
            return replaceObject;
        }));
        __webpack_require__.d(__webpack_exports__, "g", (function() {
            return copyProp;
        }));
        __webpack_require__.d(__webpack_exports__, "m", (function() {
            return dotify;
        }));
        __webpack_require__.d(__webpack_exports__, "R", (function() {
            return stringify;
        }));
        __webpack_require__.d(__webpack_exports__, "S", (function() {
            return stringifyError;
        }));
        __webpack_require__.d(__webpack_exports__, "p", (function() {
            return eventEmitter;
        }));
        __webpack_require__.d(__webpack_exports__, "A", (function() {
            return isPerc;
        }));
        __webpack_require__.d(__webpack_exports__, "B", (function() {
            return isPx;
        }));
        __webpack_require__.d(__webpack_exports__, "T", (function() {
            return toCSS;
        }));
        __webpack_require__.d(__webpack_exports__, "G", (function() {
            return normalizeDimension;
        }));
        __webpack_require__.d(__webpack_exports__, "E", (function() {
            return memoized;
        }));
        __webpack_require__.d(__webpack_exports__, "O", (function() {
            return setLogLevel;
        }));
        __webpack_require__.d(__webpack_exports__, "z", (function() {
            return info;
        }));
        __webpack_require__.d(__webpack_exports__, "V", (function() {
            return warn;
        }));
        __webpack_require__.d(__webpack_exports__, "o", (function() {
            return logger_error;
        }));
        __webpack_require__.d(__webpack_exports__, "w", (function() {
            return globalFor;
        }));
        __webpack_require__.d(__webpack_exports__, "v", (function() {
            return global;
        }));
        var esm_extends = __webpack_require__(11);
        var src = __webpack_require__(7);
        var zalgo_promise_src = __webpack_require__(2);
        var cross_domain_safe_weakmap_src = __webpack_require__(17);
        var error = __webpack_require__(23);
        function urlEncode(str) {
            return str.replace(/\?/g, "%3F").replace(/&/g, "%26").replace(/#/g, "%23").replace(/\+/g, "%2B");
        }
        function dasherizeToCamel(string) {
            return string.replace(/-([a-z])/g, (function(g) {
                return g[1].toUpperCase();
            }));
        }
        function extend(obj, source) {
            if (!source) return obj;
            for (var key in source) source.hasOwnProperty(key) && (obj[key] = source[key]);
            return obj;
        }
        function uniqueID() {
            var chars = "0123456789abcdef";
            return "xxxxxxxxxx".replace(/./g, (function() {
                return chars.charAt(Math.floor(Math.random() * chars.length));
            }));
        }
        function get(item, path, def) {
            if (!path) return def;
            var pathParts = path.split(".");
            for (var i = 0; i < pathParts.length; i++) {
                if ("object" != typeof item || null === item) return def;
                item = item[pathParts[i]];
            }
            return void 0 === item ? def : item;
        }
        function replaceObject(item, replacers, fullKey) {
            void 0 === fullKey && (fullKey = "");
            if (Array.isArray(item)) {
                var _ret = function() {
                    var length = item.length;
                    var result = [];
                    var _loop = function(i) {
                        Object.defineProperty(result, i, {
                            configurable: !0,
                            enumerable: !0,
                            get: function() {
                                var itemKey = fullKey ? fullKey + "." + i : "" + i;
                                var child = item[i];
                                var replacer = replacers[typeof child];
                                if (replacer) {
                                    var replaced = replacer(child, i, itemKey);
                                    if (void 0 !== replaced) {
                                        result[i] = replaced;
                                        return result[i];
                                    }
                                }
                                if ("object" == typeof child && null !== child) {
                                    result[i] = replaceObject(child, replacers, itemKey);
                                    return result[i];
                                }
                                result[i] = child;
                                return result[i];
                            },
                            set: function(value) {
                                delete result[i];
                                result[i] = value;
                            }
                        });
                    };
                    for (var i = 0; i < length; i++) _loop(i);
                    return {
                        v: result
                    };
                }();
                if ("object" == typeof _ret) return _ret.v;
            } else {
                if ("object" != typeof item || null === item) throw new Error("Pass an object or array");
                var _ret2 = function() {
                    var result = {};
                    var _loop2 = function(key) {
                        if (!item.hasOwnProperty(key)) return "continue";
                        Object.defineProperty(result, key, {
                            configurable: !0,
                            enumerable: !0,
                            get: function() {
                                var itemKey = fullKey ? fullKey + "." + key : "" + key;
                                var child = item[key];
                                var replacer = replacers[typeof child];
                                if (replacer) {
                                    var replaced = replacer(child, key, itemKey);
                                    if (void 0 !== replaced) {
                                        result[key] = replaced;
                                        return result[key];
                                    }
                                }
                                if ("object" == typeof child && null !== child) {
                                    result[key] = replaceObject(child, replacers, itemKey);
                                    return result[key];
                                }
                                result[key] = child;
                                return result[key];
                            },
                            set: function(value) {
                                delete result[key];
                                result[key] = value;
                            }
                        });
                    };
                    for (var key in item) _loop2(key);
                    return {
                        v: result
                    };
                }();
                if ("object" == typeof _ret2) return _ret2.v;
            }
        }
        function copyProp(source, target, name, def) {
            if (source.hasOwnProperty(name)) {
                var descriptor = Object.getOwnPropertyDescriptor(source, name);
                Object.defineProperty(target, name, descriptor);
            } else target[name] = def;
        }
        function dotify(obj, prefix, newobj) {
            void 0 === prefix && (prefix = "");
            void 0 === newobj && (newobj = {});
            prefix = prefix ? prefix + "." : prefix;
            for (var key in obj) null != obj[key] && "function" != typeof obj[key] && (obj[key] && Array.isArray(obj[key]) && obj[key].length && obj[key].every((function(val) {
                return "object" != typeof val;
            })) ? newobj["" + prefix + key] = obj[key].join(",") : obj[key] && "object" == typeof obj[key] ? newobj = dotify(obj[key], "" + prefix + key, newobj) : newobj["" + prefix + key] = obj[key].toString());
            return newobj;
        }
        var objectIDs = new cross_domain_safe_weakmap_src.a;
        function getObjectID(obj) {
            if (null == obj || "object" != typeof obj && "function" != typeof obj) throw new Error("Invalid object");
            var uid = objectIDs.get(obj);
            if (!uid) {
                uid = typeof obj + ":" + uniqueID();
                objectIDs.set(obj, uid);
            }
            return uid;
        }
        function stringify(item) {
            return "string" == typeof item ? item : item && "function" == typeof item.toString ? item.toString() : {}.toString.call(item);
        }
        function stringifyError(err) {
            if (err) {
                var stack = err.stack, message = err.message;
                if ("string" == typeof stack) return stack;
                if ("string" == typeof message) return message;
            }
            return stringify(err);
        }
        function eventEmitter() {
            var triggered = {};
            var handlers = {};
            return {
                on: function(eventName, handler) {
                    var handlerList = handlers[eventName] = handlers[eventName] || [];
                    handlerList.push(handler);
                    var cancelled = !1;
                    return {
                        cancel: function() {
                            if (!cancelled) {
                                cancelled = !0;
                                handlerList.splice(handlerList.indexOf(handler), 1);
                            }
                        }
                    };
                },
                once: function(eventName, handler) {
                    var listener = this.on(eventName, (function() {
                        listener.cancel();
                        handler();
                    }));
                    return listener;
                },
                trigger: function(eventName) {
                    var handlerList = handlers[eventName];
                    if (handlerList) for (var _i3 = 0; _i3 < handlerList.length; _i3++) (0, handlerList[_i3])();
                },
                triggerOnce: function(eventName) {
                    if (!triggered[eventName]) {
                        triggered[eventName] = !0;
                        this.trigger(eventName);
                    }
                }
            };
        }
        function noop() {}
        function once(method) {
            var called = !1;
            var result;
            return function() {
                for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
                if (called) return result;
                called = !0;
                return result = method.apply(this, arguments);
            };
        }
        function memoize(method) {
            var results = {};
            return function() {
                for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2];
                var cacheKey;
                try {
                    cacheKey = JSON.stringify([].slice.call(arguments), (function(key, val) {
                        return "function" == typeof val ? "zoid:memoize[" + getObjectID(val) + "]" : val;
                    }));
                } catch (err) {
                    throw new Error("Arguments not serializable -- can not be used to memoize");
                }
                results.hasOwnProperty(cacheKey) || (results[cacheKey] = method.apply(this, arguments));
                return results[cacheKey];
            };
        }
        function debounce(method, time) {
            void 0 === time && (time = 100);
            var timeout;
            return function() {
                var _arguments = arguments, _this = this;
                clearTimeout(timeout);
                timeout = setTimeout((function() {
                    return method.apply(_this, _arguments);
                }), time);
            };
        }
        function serializeFunctions(obj) {
            return replaceObject(obj, {
                function: function() {
                    return {
                        __type__: "__function__"
                    };
                }
            });
        }
        function deserializeFunctions(obj, handler) {
            return replaceObject(obj, {
                object: function(value, key, fullKey) {
                    if (value && "__function__" === value.__type__) return function() {
                        return handler({
                            key: key,
                            fullKey: fullKey,
                            self: this,
                            args: arguments
                        });
                    };
                }
            });
        }
        function appendChild(container, child) {
            container.appendChild(child);
        }
        function getElementSafe(id) {
            if (function(element) {
                return element instanceof window.Element || null !== element && "object" == typeof element && 1 === element.nodeType && "object" == typeof element.style && "object" == typeof element.ownerDocument;
            }(id)) return id;
            if ("string" == typeof id) {
                var element = document.getElementById(id);
                if (element) return element;
                document.querySelector && (element = document.querySelector(id));
                if (element) return element;
            }
        }
        function getElement(id) {
            var element = getElementSafe(id);
            if (element) return element;
            throw new Error("Can not find element: " + stringify(id));
        }
        new zalgo_promise_src.a((function(resolve) {
            if ("complete" === window.document.readyState) return resolve(window.document);
            var interval = setInterval((function() {
                if ("complete" === window.document.readyState) {
                    clearInterval(interval);
                    return resolve(window.document);
                }
            }), 10);
        }));
        function isDocumentReady() {
            return "complete" === window.document.readyState;
        }
        function elementReady(id) {
            return new zalgo_promise_src.a((function(resolve, reject) {
                var name = stringify(id);
                var el = getElementSafe(id);
                if (el) return resolve(el);
                if (isDocumentReady()) return reject(new Error("Document is ready and element " + name + " does not exist"));
                var interval = setInterval((function() {
                    if (el = getElementSafe(id)) {
                        clearInterval(interval);
                        return resolve(el);
                    }
                    if (isDocumentReady()) {
                        clearInterval(interval);
                        return reject(new Error("Document is ready and element " + name + " does not exist"));
                    }
                }), 10);
            }));
        }
        function popup(url, options) {
            var params = Object.keys(options).map((function(key) {
                if (options[key]) return key + "=" + stringify(options[key]);
            })).filter(Boolean).join(",");
            var win;
            try {
                win = window.open(url, options.name, params, !0);
            } catch (err) {
                throw new error.b("Can not open popup window - " + (err.stack || err.message));
            }
            if (Object(src.z)(win)) {
                var err;
                throw new error.b("Can not open popup window - blocked");
            }
            return win;
        }
        function writeToWindow(win, html) {
            try {
                win.document.open();
                win.document.write(html);
                win.document.close();
            } catch (err) {
                try {
                    win.location = "javascript: document.open(); document.write(" + JSON.stringify(html) + "); document.close();";
                } catch (err2) {}
            }
        }
        function writeElementToWindow(win, el) {
            var tag = el.tagName.toLowerCase();
            if ("html" !== tag) throw new Error("Expected element to be html, got " + tag);
            var documentElement = win.document.documentElement;
            for (;documentElement.children && documentElement.children.length; ) documentElement.removeChild(documentElement.children[0]);
            for (;el.children.length; ) documentElement.appendChild(el.children[0]);
        }
        function setStyle(el, styleText, doc) {
            void 0 === doc && (doc = window.document);
            el.styleSheet ? el.styleSheet.cssText = styleText : el.appendChild(doc.createTextNode(styleText));
        }
        var awaitFrameLoadPromises = new cross_domain_safe_weakmap_src.a;
        function awaitFrameLoad(frame) {
            if (awaitFrameLoadPromises.has(frame)) {
                var _promise = awaitFrameLoadPromises.get(frame);
                if (_promise) return _promise;
            }
            var promise = new zalgo_promise_src.a((function(resolve, reject) {
                frame.addEventListener("load", (function() {
                    Object(src.A)(frame);
                    resolve(frame);
                }));
                frame.addEventListener("error", (function(err) {
                    frame.contentWindow ? resolve(frame) : reject(err);
                }));
            }));
            awaitFrameLoadPromises.set(frame, promise);
            return promise;
        }
        function awaitFrameWindow(frame) {
            return frame.contentWindow ? zalgo_promise_src.a.resolve(frame.contentWindow) : awaitFrameLoad(frame).then((function(loadedFrame) {
                if (!loadedFrame.contentWindow) throw new Error("Could not find window in iframe");
                return loadedFrame.contentWindow;
            }));
        }
        function iframe(options, container) {
            void 0 === options && (options = {});
            var el = getElement(container);
            var attributes = options.attributes || {};
            var style = options.style || {};
            var frame = function(tag, options, container) {
                void 0 === tag && (tag = "div");
                void 0 === options && (options = {});
                tag = tag.toLowerCase();
                var element = document.createElement(tag);
                options.style && extend(element.style, options.style);
                options.class && (element.className = options.class.join(" "));
                if (options.attributes) for (var _i2 = 0, _Object$keys2 = Object.keys(options.attributes); _i2 < _Object$keys2.length; _i2++) {
                    var key = _Object$keys2[_i2];
                    element.setAttribute(key, options.attributes[key]);
                }
                options.styleSheet && setStyle(element, options.styleSheet);
                if (options.html) {
                    if ("iframe" === tag) throw new Error("Iframe html can not be written unless container provided and iframe in DOM");
                    element.innerHTML = options.html;
                }
                return element;
            }("iframe", {
                attributes: Object(esm_extends.a)({
                    frameBorder: "0",
                    allowTransparency: "true"
                }, attributes),
                style: Object(esm_extends.a)({
                    backgroundColor: "transparent"
                }, style),
                html: options.html,
                class: options.class
            });
            awaitFrameLoad(frame);
            el.appendChild(frame);
            (options.url || window.navigator.userAgent.match(/MSIE|Edge/i)) && frame.setAttribute("src", options.url || "about:blank");
            return frame;
        }
        function addEventListener(obj, event, handler) {
            obj.addEventListener(event, handler);
            return {
                cancel: function() {
                    obj.removeEventListener(event, handler);
                }
            };
        }
        var parseQuery = memoize((function(queryString) {
            var params = {};
            if (!queryString) return params;
            if (-1 === queryString.indexOf("=")) throw new Error("Can not parse query string params: " + queryString);
            for (var _i4 = 0, _queryString$split2 = queryString.split("&"); _i4 < _queryString$split2.length; _i4++) {
                var pair = _queryString$split2[_i4];
                (pair = pair.split("="))[0] && pair[1] && (params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]));
            }
            return params;
        }));
        function extendQuery(originalQuery, props) {
            void 0 === props && (props = {});
            return props && Object.keys(props).length ? function(obj) {
                void 0 === obj && (obj = {});
                return Object.keys(obj).filter((function(key) {
                    return "string" == typeof obj[key];
                })).map((function(key) {
                    return urlEncode(key) + "=" + urlEncode(obj[key]);
                })).join("&");
            }(Object(esm_extends.a)({}, parseQuery(originalQuery), props)) : originalQuery;
        }
        function extendUrl(url, options) {
            void 0 === options && (options = {});
            var query = options.query || {};
            var hash = options.hash || {};
            var originalUrl;
            var originalHash;
            var _url$split = url.split("#");
            originalHash = _url$split[1];
            var _originalUrl$split = (originalUrl = _url$split[0]).split("?");
            originalUrl = _originalUrl$split[0];
            var queryString = extendQuery(_originalUrl$split[1], query);
            var hashString = extendQuery(originalHash, hash);
            queryString && (originalUrl = originalUrl + "?" + queryString);
            hashString && (originalUrl = originalUrl + "#" + hashString);
            return originalUrl;
        }
        function bindEvents(element, eventNames, handler) {
            handler = once(handler);
            for (var _i8 = 0; _i8 < eventNames.length; _i8++) element.addEventListener(eventNames[_i8], handler);
            return {
                cancel: once((function() {
                    for (var _i10 = 0; _i10 < eventNames.length; _i10++) element.removeEventListener(eventNames[_i10], handler);
                }))
            };
        }
        var VENDOR_PREFIXES = [ "webkit", "moz", "ms", "o" ];
        function setVendorCSS(element, name, value) {
            element.style[name] = value;
            var capitalizedName = (string = name).charAt(0).toUpperCase() + string.slice(1).toLowerCase();
            var string;
            for (var _i12 = 0; _i12 < VENDOR_PREFIXES.length; _i12++) element.style["" + VENDOR_PREFIXES[_i12] + capitalizedName] = value;
        }
        var CSSRule = window.CSSRule;
        var KEYFRAMES_RULE = CSSRule.KEYFRAMES_RULE || CSSRule.WEBKIT_KEYFRAMES_RULE || CSSRule.MOZ_KEYFRAMES_RULE || CSSRule.O_KEYFRAMES_RULE || CSSRule.MS_KEYFRAMES_RULE;
        var ANIMATION_START_EVENTS = [ "animationstart", "webkitAnimationStart", "oAnimationStart", "MSAnimationStart" ];
        var ANIMATION_END_EVENTS = [ "animationend", "webkitAnimationEnd", "oAnimationEnd", "MSAnimationEnd" ];
        function animate(element, name, clean, timeout) {
            void 0 === timeout && (timeout = 1e3);
            return new zalgo_promise_src.a((function(resolve, reject) {
                var el = getElement(element);
                if (!el || !function(element, name) {
                    var stylesheets = element.ownerDocument.styleSheets;
                    try {
                        for (var i = 0; i < stylesheets.length; i++) {
                            var cssRules = stylesheets[i].cssRules;
                            if (cssRules) for (var j = 0; j < cssRules.length; j++) {
                                var cssRule = cssRules[j];
                                if (cssRule && cssRule.type === KEYFRAMES_RULE && cssRule.name === name) return !0;
                            }
                        }
                    } catch (err) {
                        return !1;
                    }
                    return !1;
                }(el, name)) return resolve();
                var hasStarted = !1;
                var startTimeout;
                var endTimeout;
                var startEvent;
                var endEvent;
                function cleanUp() {
                    setVendorCSS(el, "animationName", "");
                    clearTimeout(startTimeout);
                    clearTimeout(endTimeout);
                    startEvent.cancel();
                    endEvent.cancel();
                }
                startEvent = bindEvents(el, ANIMATION_START_EVENTS, (function(event) {
                    if (event.target === el && event.animationName === name) {
                        clearTimeout(startTimeout);
                        event.stopPropagation();
                        startEvent.cancel();
                        hasStarted = !0;
                        endTimeout = setTimeout((function() {
                            cleanUp();
                            resolve();
                        }), timeout);
                    }
                }));
                endEvent = bindEvents(el, ANIMATION_END_EVENTS, (function(event) {
                    if (event.target === el && event.animationName === name) {
                        cleanUp();
                        return "string" == typeof event.animationName && event.animationName !== name ? reject("Expected animation name to be " + name + ", found " + event.animationName) : resolve();
                    }
                }));
                setVendorCSS(el, "animationName", name);
                startTimeout = setTimeout((function() {
                    if (!hasStarted) {
                        cleanUp();
                        return resolve();
                    }
                }), 200);
                clean && clean(cleanUp);
            }));
        }
        function showElement(element) {
            element.style.setProperty("display", "");
        }
        function hideElement(element) {
            element.style.setProperty("display", "none", "important");
        }
        function destroyElement(element) {
            element.parentNode && element.parentNode.removeChild(element);
        }
        function showAndAnimate(element, name, clean) {
            var animation = animate(element, name, clean);
            showElement(element);
            return animation;
        }
        function animateAndHide(element, name, clean) {
            return animate(element, name, clean).then((function() {
                hideElement(element);
            }));
        }
        function addClass(element, name) {
            element.classList ? element.classList.add(name) : -1 === element.className.split(/\s+/).indexOf(name) && (element.className += " " + name);
        }
        function removeClass(element, name) {
            element.classList ? element.classList.remove(name) : -1 !== element.className.split(/\s+/).indexOf(name) && (element.className = element.className.replace(name, ""));
        }
        function getCurrentScriptDir() {
            console.warn("Do not use zoid.getCurrentScriptDir() in production -- browser support is limited");
            return document.currentScript ? document.currentScript.src.split("/").slice(0, -1).join("/") : ".";
        }
        function isElementClosed(el) {
            return !el || !el.parentNode;
        }
        function watchElementForClose(element, handler) {
            handler = once(handler);
            var interval;
            isElementClosed(element) ? handler() : interval = function(method, time) {
                var timeout;
                timeout = setTimeout((function runInterval() {
                    timeout = setTimeout(runInterval, 50);
                    method.call();
                }), 50);
                return {
                    cancel: function() {
                        clearTimeout(timeout);
                    }
                };
            }((function() {
                if (isElementClosed(element)) {
                    interval.cancel();
                    handler();
                }
            }));
            return {
                cancel: function() {
                    interval && interval.cancel();
                }
            };
        }
        function prefetchPage(url) {
            return function(url) {
                return function(contentType, url) {
                    return new zalgo_promise_src.a((function(resolve, reject) {
                        var req = new window.XMLHttpRequest;
                        req.open("GET", url);
                        req.setRequestHeader("Accept", "text/html");
                        req.send(null);
                        req.onload = function() {
                            resolve(req.responseText);
                        };
                        req.onerror = function() {
                            return reject(new Error("prefetch failed"));
                        };
                    }));
                }(0, url);
            }(url);
        }
        var JSX_EVENTS = {
            onClick: "click"
        };
        function fixScripts(el, doc) {
            void 0 === doc && (doc = window.document);
            for (var _i14 = 0, _querySelectorAll2 = function(el, selector) {
                return [].slice.call(el.querySelectorAll("script"));
            }(el); _i14 < _querySelectorAll2.length; _i14++) {
                var script = _querySelectorAll2[_i14];
                var newScript = doc.createElement("script");
                newScript.text = script.textContent;
                script.parentNode.replaceChild(newScript, script);
            }
        }
        function jsxDom(name, props, content) {
            name = name.toLowerCase();
            var doc = this && this.createElement ? this : window.document;
            var el = doc.createElement(name);
            for (var prop in props) if (prop in JSX_EVENTS) el.addEventListener(JSX_EVENTS[prop], props[prop]); else if ("innerHTML" === prop) {
                el.innerHTML = props[prop];
                fixScripts(el, doc);
            } else el.setAttribute(prop, props[prop]);
            if ("style" === name) {
                if ("string" != typeof content) throw new TypeError("Expected " + name + " tag content to be string, got " + typeof content);
                if (arguments.length > 3) throw new Error("Expected only text content for " + name + " tag");
                setStyle(el, content, doc);
            } else if ("iframe" === name) {
                if (arguments.length > 3) throw new Error("Expected only single child node for iframe");
                el.addEventListener("load", (function() {
                    var win = el.contentWindow;
                    if (!win) throw new Error("Expected frame to have contentWindow");
                    "string" == typeof content ? writeToWindow(win, content) : writeElementToWindow(win, content);
                }));
            } else if ("script" === name) {
                if ("string" != typeof content) throw new TypeError("Expected " + name + " tag content to be string, got " + typeof content);
                if (arguments.length > 3) throw new Error("Expected only text content for " + name + " tag");
                el.text = content;
            } else for (var i = 2; i < arguments.length; i++) if ("string" == typeof arguments[i]) {
                var textNode = doc.createTextNode(arguments[i]);
                appendChild(el, textNode);
            } else appendChild(el, arguments[i]);
            return el;
        }
        function denodeify(method) {
            return function() {
                var self = this;
                var args = [].slice.call(arguments);
                return args.length >= method.length ? zalgo_promise_src.a.resolve(method.apply(self, args)) : new zalgo_promise_src.a((function(resolve, reject) {
                    args.push((function(err, result) {
                        if (err && !(err instanceof Error)) throw new Error("Passed non-Error object in callback: [ " + err + " ] -- callbacks should either be called with callback(new Error(...)) or callback(null, result).");
                        return err ? reject(err) : resolve(result);
                    }));
                    method.apply(self, args);
                }));
            };
        }
        function promisify(method) {
            return function() {
                var _arguments = arguments, _this = this;
                return zalgo_promise_src.a.try((function() {
                    return method.apply(_this, _arguments);
                }));
            };
        }
        function isPerc(str) {
            return "string" == typeof str && /^[0-9]+%$/.test(str);
        }
        function isPx(str) {
            return "string" == typeof str && /^[0-9]+px$/.test(str);
        }
        function toNum(val) {
            if ("number" == typeof val) return val;
            var match = val.match(/^([0-9]+)(px|%)$/);
            if (!match) throw new Error("Could not match css value from " + val);
            return parseInt(match[1], 10);
        }
        function toPx(val) {
            return toNum(val) + "px";
        }
        function toCSS(val) {
            return "number" == typeof val ? toPx(val) : isPerc(val) ? val : toPx(val);
        }
        function normalizeDimension(dim, max) {
            if ("number" == typeof dim) return dim;
            if (isPerc(dim)) return parseInt(max * toNum(dim) / 100, 10);
            if (isPx(dim)) return toNum(dim);
            throw new Error("Can not normalize dimension: " + dim);
        }
        function memoized(target, name, descriptor) {
            var method = descriptor.value;
            descriptor.value = function() {
                this.__memoized__ = this.__memoized__ || {};
                this.__memoized__.hasOwnProperty(name) || (this.__memoized__[name] = method.apply(this, arguments));
                return this.__memoized__[name];
            };
            descriptor.value.displayName = name + ":memoized";
        }
        var post_robot_src = __webpack_require__(13);
        var client = __webpack_require__(5);
        function setLogLevel(logLevel) {
            if (-1 === client.m.indexOf(logLevel)) throw new Error("Invalid logLevel: " + logLevel);
            client.e.logLevel = logLevel;
            post_robot_src.CONFIG.LOG_LEVEL = logLevel;
            window.LOG_LEVEL = logLevel;
        }
        function info(name, event, payload) {
            void 0 === payload && (payload = {});
            Object(client.k)("xc_" + name + "_" + event, payload);
        }
        function warn(name, event, payload) {
            void 0 === payload && (payload = {});
            Object(client.q)("xc_" + name + "_" + event, payload);
        }
        function logger_error(name, event, payload) {
            void 0 === payload && (payload = {});
            Object(client.g)("xc_" + name + "_" + event, payload);
        }
        var constants = __webpack_require__(8);
        function globalFor(win) {
            if (Object(src.v)(win)) {
                win[constants.__ZOID__] || (win[constants.__ZOID__] = {});
                return win[constants.__ZOID__];
            }
        }
        var global = function() {
            var global = globalFor(window);
            if (!global) throw new Error("Could not get local global");
            return global;
        }();
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "n", (function() {
            return getParent;
        }));
        __webpack_require__.d(__webpack_exports__, "m", (function() {
            return getOpener;
        }));
        __webpack_require__.d(__webpack_exports__, "d", (function() {
            return getActualDomain;
        }));
        __webpack_require__.d(__webpack_exports__, "h", (function() {
            return getDomain;
        }));
        __webpack_require__.d(__webpack_exports__, "q", (function() {
            return isActuallySameDomain;
        }));
        __webpack_require__.d(__webpack_exports__, "v", (function() {
            return isSameDomain;
        }));
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return assertSameDomain;
        }));
        __webpack_require__.d(__webpack_exports__, "k", (function() {
            return getFrames;
        }));
        __webpack_require__.d(__webpack_exports__, "o", (function() {
            return getTop;
        }));
        __webpack_require__.d(__webpack_exports__, "e", (function() {
            return getAllFramesInWindow;
        }));
        __webpack_require__.d(__webpack_exports__, "x", (function() {
            return isTop;
        }));
        __webpack_require__.d(__webpack_exports__, "z", (function() {
            return isWindowClosed;
        }));
        __webpack_require__.d(__webpack_exports__, "A", (function() {
            return linkFrameWindow;
        }));
        __webpack_require__.d(__webpack_exports__, "p", (function() {
            return getUserAgent;
        }));
        __webpack_require__.d(__webpack_exports__, "j", (function() {
            return getFrameByName;
        }));
        __webpack_require__.d(__webpack_exports__, "c", (function() {
            return findFrameByName;
        }));
        __webpack_require__.d(__webpack_exports__, "t", (function() {
            return isOpener;
        }));
        __webpack_require__.d(__webpack_exports__, "f", (function() {
            return getAncestor;
        }));
        __webpack_require__.d(__webpack_exports__, "r", (function() {
            return isAncestor;
        }));
        __webpack_require__.d(__webpack_exports__, "u", (function() {
            return isPopup;
        }));
        __webpack_require__.d(__webpack_exports__, "s", (function() {
            return isIframe;
        }));
        __webpack_require__.d(__webpack_exports__, "g", (function() {
            return getDistanceFromTop;
        }));
        __webpack_require__.d(__webpack_exports__, "l", (function() {
            return getNthParentFromTop;
        }));
        __webpack_require__.d(__webpack_exports__, "w", (function() {
            return isSameTopWindow;
        }));
        __webpack_require__.d(__webpack_exports__, "B", (function() {
            return matchDomain;
        }));
        __webpack_require__.d(__webpack_exports__, "D", (function() {
            return stringifyDomainPattern;
        }));
        __webpack_require__.d(__webpack_exports__, "i", (function() {
            return getDomainFromUrl;
        }));
        __webpack_require__.d(__webpack_exports__, "C", (function() {
            return onCloseWindow;
        }));
        __webpack_require__.d(__webpack_exports__, "y", (function() {
            return isWindow;
        }));
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return PROTOCOL;
        }));
        function isRegex(item) {
            return "[object RegExp]" === {}.toString.call(item);
        }
        var PROTOCOL = {
            MOCK: "mock:",
            FILE: "file:",
            ABOUT: "about:"
        };
        var IE_WIN_ACCESS_ERROR = "Call was rejected by callee.\r\n";
        function isAboutProtocol(win) {
            void 0 === win && (win = window);
            return win.location.protocol === PROTOCOL.ABOUT;
        }
        function getParent(win) {
            void 0 === win && (win = window);
            if (win) try {
                if (win.parent && win.parent !== win) return win.parent;
            } catch (err) {}
        }
        function getOpener(win) {
            void 0 === win && (win = window);
            if (win && !getParent(win)) try {
                return win.opener;
            } catch (err) {}
        }
        function canReadFromWindow(win) {
            try {
                return !0;
            } catch (err) {}
            return !1;
        }
        function getActualDomain(win) {
            void 0 === win && (win = window);
            var location = win.location;
            if (!location) throw new Error("Can not read window location");
            var protocol = location.protocol;
            if (!protocol) throw new Error("Can not read window protocol");
            if (protocol === PROTOCOL.FILE) return PROTOCOL.FILE + "//";
            if (protocol === PROTOCOL.ABOUT) {
                var parent = getParent(win);
                return parent && canReadFromWindow() ? getActualDomain(parent) : PROTOCOL.ABOUT + "//";
            }
            var host = location.host;
            if (!host) throw new Error("Can not read window host");
            return protocol + "//" + host;
        }
        function getDomain(win) {
            void 0 === win && (win = window);
            var domain = getActualDomain(win);
            return domain && win.mockDomain && 0 === win.mockDomain.indexOf(PROTOCOL.MOCK) ? win.mockDomain : domain;
        }
        function isActuallySameDomain(win) {
            try {
                if (win === window) return !0;
            } catch (err) {}
            try {
                var desc = Object.getOwnPropertyDescriptor(win, "location");
                if (desc && !1 === desc.enumerable) return !1;
            } catch (err) {}
            try {
                if (isAboutProtocol(win) && canReadFromWindow()) return !0;
            } catch (err) {}
            try {
                if (getActualDomain(win) === getActualDomain(window)) return !0;
            } catch (err) {}
            return !1;
        }
        function isSameDomain(win) {
            if (!isActuallySameDomain(win)) return !1;
            try {
                if (win === window) return !0;
                if (isAboutProtocol(win) && canReadFromWindow()) return !0;
                if (getDomain(window) === getDomain(win)) return !0;
            } catch (err) {}
            return !1;
        }
        function assertSameDomain(win) {
            if (!isSameDomain(win)) throw new Error("Expected window to be same domain");
            return win;
        }
        function isAncestorParent(parent, child) {
            if (!parent || !child) return !1;
            var childParent = getParent(child);
            return childParent ? childParent === parent : -1 !== function(win) {
                var result = [];
                try {
                    for (;win.parent !== win; ) {
                        result.push(win.parent);
                        win = win.parent;
                    }
                } catch (err) {}
                return result;
            }(child).indexOf(parent);
        }
        function getFrames(win) {
            var result = [];
            var frames;
            try {
                frames = win.frames;
            } catch (err) {
                frames = win;
            }
            var len;
            try {
                len = frames.length;
            } catch (err) {}
            if (0 === len) return result;
            if (len) {
                for (var i = 0; i < len; i++) {
                    var frame = void 0;
                    try {
                        frame = frames[i];
                    } catch (err) {
                        continue;
                    }
                    result.push(frame);
                }
                return result;
            }
            for (var _i = 0; _i < 100; _i++) {
                var _frame = void 0;
                try {
                    _frame = frames[_i];
                } catch (err) {
                    return result;
                }
                if (!_frame) return result;
                result.push(_frame);
            }
            return result;
        }
        function getAllChildFrames(win) {
            var result = [];
            for (var _i3 = 0, _getFrames2 = getFrames(win); _i3 < _getFrames2.length; _i3++) {
                var frame = _getFrames2[_i3];
                result.push(frame);
                for (var _i5 = 0, _getAllChildFrames2 = getAllChildFrames(frame); _i5 < _getAllChildFrames2.length; _i5++) result.push(_getAllChildFrames2[_i5]);
            }
            return result;
        }
        function getTop(win) {
            void 0 === win && (win = window);
            try {
                if (win.top) return win.top;
            } catch (err) {}
            if (getParent(win) === win) return win;
            try {
                if (isAncestorParent(window, win) && window.top) return window.top;
            } catch (err) {}
            try {
                if (isAncestorParent(win, window) && window.top) return window.top;
            } catch (err) {}
            for (var _i7 = 0, _getAllChildFrames4 = getAllChildFrames(win); _i7 < _getAllChildFrames4.length; _i7++) {
                var frame = _getAllChildFrames4[_i7];
                try {
                    if (frame.top) return frame.top;
                } catch (err) {}
                if (getParent(frame) === frame) return frame;
            }
        }
        function getAllFramesInWindow(win) {
            var top = getTop(win);
            if (!top) throw new Error("Can not determine top window");
            var result = [].concat(getAllChildFrames(top), [ top ]);
            -1 === result.indexOf(win) && (result = [].concat(result, [ win ], getAllChildFrames(win)));
            return result;
        }
        function isTop(win) {
            return win === getTop(win);
        }
        var iframeWindows = [];
        var iframeFrames = [];
        function isWindowClosed(win, allowMock) {
            void 0 === allowMock && (allowMock = !0);
            try {
                if (win === window) return !1;
            } catch (err) {
                return !0;
            }
            try {
                if (!win) return !0;
            } catch (err) {
                return !0;
            }
            try {
                if (win.closed) return !0;
            } catch (err) {
                return !err || err.message !== IE_WIN_ACCESS_ERROR;
            }
            if (allowMock && isSameDomain(win)) try {
                if (win.mockclosed) return !0;
            } catch (err) {}
            try {
                if (!win.parent || !win.top) return !0;
            } catch (err) {}
            var iframeIndex = function(collection, item) {
                for (var i = 0; i < collection.length; i++) try {
                    if (collection[i] === item) return i;
                } catch (err) {}
                return -1;
            }(iframeWindows, win);
            if (-1 !== iframeIndex) {
                var frame = iframeFrames[iframeIndex];
                if (frame && function(frame) {
                    if (!frame.contentWindow) return !0;
                    if (!frame.parentNode) return !0;
                    var doc = frame.ownerDocument;
                    if (doc && doc.documentElement && !doc.documentElement.contains(frame)) {
                        var parent = frame;
                        for (;parent.parentNode && parent.parentNode !== parent; ) parent = parent.parentNode;
                        if (!parent.host || !doc.documentElement.contains(parent.host)) return !0;
                    }
                    return !1;
                }(frame)) return !0;
            }
            return !1;
        }
        function linkFrameWindow(frame) {
            !function() {
                for (var i = 0; i < iframeWindows.length; i++) {
                    var closed = !1;
                    try {
                        closed = iframeWindows[i].closed;
                    } catch (err) {}
                    if (closed) {
                        iframeFrames.splice(i, 1);
                        iframeWindows.splice(i, 1);
                    }
                }
            }();
            if (frame && frame.contentWindow) try {
                iframeWindows.push(frame.contentWindow);
                iframeFrames.push(frame);
            } catch (err) {}
        }
        function getUserAgent(win) {
            return (win = win || window).navigator.mockUserAgent || win.navigator.userAgent;
        }
        function getFrameByName(win, name) {
            var winFrames = getFrames(win);
            for (var _i9 = 0; _i9 < winFrames.length; _i9++) {
                var childFrame = winFrames[_i9];
                try {
                    if (isSameDomain(childFrame) && childFrame.name === name && -1 !== winFrames.indexOf(childFrame)) return childFrame;
                } catch (err) {}
            }
            try {
                if (-1 !== winFrames.indexOf(win.frames[name])) return win.frames[name];
            } catch (err) {}
            try {
                if (-1 !== winFrames.indexOf(win[name])) return win[name];
            } catch (err) {}
        }
        function findFrameByName(win, name) {
            return getFrameByName(win, name) || function findChildFrameByName(win, name) {
                var frame = getFrameByName(win, name);
                if (frame) return frame;
                for (var _i11 = 0, _getFrames4 = getFrames(win); _i11 < _getFrames4.length; _i11++) {
                    var namedFrame = findChildFrameByName(_getFrames4[_i11], name);
                    if (namedFrame) return namedFrame;
                }
            }(getTop(win) || win, name);
        }
        function isOpener(parent, child) {
            return parent === getOpener(child);
        }
        function getAncestor(win) {
            void 0 === win && (win = window);
            return getOpener(win = win || window) || getParent(win) || void 0;
        }
        function isAncestor(parent, child) {
            var actualParent = getAncestor(child);
            if (actualParent) return actualParent === parent;
            if (child === parent) return !1;
            if (getTop(child) === child) return !1;
            for (var _i15 = 0, _getFrames8 = getFrames(parent); _i15 < _getFrames8.length; _i15++) if (_getFrames8[_i15] === child) return !0;
            return !1;
        }
        function isPopup(win) {
            void 0 === win && (win = window);
            return Boolean(getOpener(win));
        }
        function isIframe(win) {
            void 0 === win && (win = window);
            return Boolean(getParent(win));
        }
        function anyMatch(collection1, collection2) {
            for (var _i17 = 0; _i17 < collection1.length; _i17++) {
                var item1 = collection1[_i17];
                for (var _i19 = 0; _i19 < collection2.length; _i19++) if (item1 === collection2[_i19]) return !0;
            }
            return !1;
        }
        function getDistanceFromTop(win) {
            void 0 === win && (win = window);
            var distance = 0;
            var parent = win;
            for (;parent; ) (parent = getParent(parent)) && (distance += 1);
            return distance;
        }
        function getNthParentFromTop(win, n) {
            void 0 === n && (n = 1);
            return function(win, n) {
                void 0 === n && (n = 1);
                var parent = win;
                for (var i = 0; i < n; i++) {
                    if (!parent) return;
                    parent = getParent(parent);
                }
                return parent;
            }(win, getDistanceFromTop(win) - n);
        }
        function isSameTopWindow(win1, win2) {
            var top1 = getTop(win1) || win1;
            var top2 = getTop(win2) || win2;
            try {
                if (top1 && top2) return top1 === top2;
            } catch (err) {}
            var allFrames1 = getAllFramesInWindow(win1);
            var allFrames2 = getAllFramesInWindow(win2);
            if (anyMatch(allFrames1, allFrames2)) return !0;
            var opener1 = getOpener(top1);
            var opener2 = getOpener(top2);
            return opener1 && anyMatch(getAllFramesInWindow(opener1), allFrames2) || opener2 && anyMatch(getAllFramesInWindow(opener2), allFrames1), 
            !1;
        }
        function matchDomain(pattern, origin) {
            if ("string" == typeof pattern) {
                if ("string" == typeof origin) return "*" === pattern || origin === pattern;
                if (isRegex(origin)) return !1;
                if (Array.isArray(origin)) return !1;
            }
            return isRegex(pattern) ? isRegex(origin) ? pattern.toString() === origin.toString() : !Array.isArray(origin) && Boolean(origin.match(pattern)) : !!Array.isArray(pattern) && (Array.isArray(origin) ? JSON.stringify(pattern) === JSON.stringify(origin) : !isRegex(origin) && pattern.some((function(subpattern) {
                return matchDomain(subpattern, origin);
            })));
        }
        function stringifyDomainPattern(pattern) {
            return Array.isArray(pattern) ? "(" + pattern.join(" | ") + ")" : isRegex(pattern) ? "RegExp(" + pattern.toString() : pattern.toString();
        }
        function getDomainFromUrl(url) {
            return url.match(/^(https?|mock|file):\/\//) ? url.split("/").slice(0, 3).join("/") : getDomain();
        }
        function onCloseWindow(win, callback, delay, maxtime) {
            void 0 === delay && (delay = 1e3);
            void 0 === maxtime && (maxtime = 1 / 0);
            var timeout;
            !function check() {
                if (isWindowClosed(win)) {
                    timeout && clearTimeout(timeout);
                    return callback();
                }
                if (maxtime <= 0) clearTimeout(timeout); else {
                    maxtime -= delay;
                    timeout = setTimeout(check, delay);
                }
            }();
            return {
                cancel: function() {
                    timeout && clearTimeout(timeout);
                }
            };
        }
        function isWindow(obj) {
            try {
                if (obj === window) return !0;
            } catch (err) {
                if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;
            }
            try {
                if ("[object Window]" === {}.toString.call(obj)) return !0;
            } catch (err) {
                if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;
            }
            try {
                if (window.Window && obj instanceof window.Window) return !0;
            } catch (err) {
                if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;
            }
            try {
                if (obj && obj.self === obj) return !0;
            } catch (err) {
                if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;
            }
            try {
                if (obj && obj.parent === obj) return !0;
            } catch (err) {
                if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;
            }
            try {
                if (obj && obj.top === obj) return !0;
            } catch (err) {
                if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;
            }
            try {
                if (obj && "__unlikely_value__" === obj.__cross_domain_utils_window_check__) return !1;
            } catch (err) {
                return !0;
            }
            try {
                if ("postMessage" in obj && "self" in obj && "location" in obj) return !0;
            } catch (err) {}
            return !1;
        }
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.r(__webpack_exports__);
        __webpack_require__.d(__webpack_exports__, "ZOID", (function() {
            return ZOID;
        }));
        __webpack_require__.d(__webpack_exports__, "__ZOID__", (function() {
            return __ZOID__;
        }));
        __webpack_require__.d(__webpack_exports__, "POST_MESSAGE", (function() {
            return POST_MESSAGE;
        }));
        __webpack_require__.d(__webpack_exports__, "PROP_TYPES", (function() {
            return PROP_TYPES;
        }));
        __webpack_require__.d(__webpack_exports__, "INITIAL_PROPS", (function() {
            return INITIAL_PROPS;
        }));
        __webpack_require__.d(__webpack_exports__, "WINDOW_REFERENCES", (function() {
            return WINDOW_REFERENCES;
        }));
        __webpack_require__.d(__webpack_exports__, "PROP_TYPES_LIST", (function() {
            return PROP_TYPES_LIST;
        }));
        __webpack_require__.d(__webpack_exports__, "CONTEXT_TYPES", (function() {
            return CONTEXT_TYPES;
        }));
        __webpack_require__.d(__webpack_exports__, "CLASS_NAMES", (function() {
            return CLASS_NAMES;
        }));
        __webpack_require__.d(__webpack_exports__, "EVENTS", (function() {
            return EVENTS;
        }));
        __webpack_require__.d(__webpack_exports__, "ATTRIBUTES", (function() {
            return ATTRIBUTES;
        }));
        __webpack_require__.d(__webpack_exports__, "ANIMATION_NAMES", (function() {
            return ANIMATION_NAMES;
        }));
        __webpack_require__.d(__webpack_exports__, "EVENT_NAMES", (function() {
            return EVENT_NAMES;
        }));
        __webpack_require__.d(__webpack_exports__, "CLOSE_REASONS", (function() {
            return CLOSE_REASONS;
        }));
        __webpack_require__.d(__webpack_exports__, "CONTEXT_TYPES_LIST", (function() {
            return CONTEXT_TYPES_LIST;
        }));
        __webpack_require__.d(__webpack_exports__, "DELEGATE", (function() {
            return DELEGATE;
        }));
        __webpack_require__.d(__webpack_exports__, "WILDCARD", (function() {
            return WILDCARD;
        }));
        __webpack_require__.d(__webpack_exports__, "DEFAULT_DIMENSIONS", (function() {
            return DEFAULT_DIMENSIONS;
        }));
        var ZOID = "zoid";
        var __ZOID__ = "__" + ZOID + "__";
        var POST_MESSAGE = {
            INIT: ZOID + "_init",
            PROPS: ZOID + "_props",
            PROP_CALLBACK: ZOID + "_prop_callback",
            CLOSE: ZOID + "_close",
            CHECK_CLOSE: ZOID + "_check_close",
            REDIRECT: ZOID + "_redirect",
            RESIZE: ZOID + "_resize",
            DELEGATE: ZOID + "_delegate",
            ALLOW_DELEGATE: ZOID + "_allow_delegate",
            ERROR: ZOID + "_error",
            HIDE: ZOID + "_hide",
            SHOW: ZOID + "_show"
        };
        var PROP_TYPES = {
            STRING: "string",
            OBJECT: "object",
            FUNCTION: "function",
            BOOLEAN: "boolean",
            NUMBER: "number"
        };
        var INITIAL_PROPS = {
            RAW: "raw",
            UID: "uid"
        };
        var WINDOW_REFERENCES = {
            OPENER: "opener",
            TOP: "top",
            PARENT: "parent",
            GLOBAL: "global"
        };
        var PROP_TYPES_LIST = Object.keys(PROP_TYPES).map((function(key) {
            return PROP_TYPES[key];
        }));
        var CONTEXT_TYPES = {
            IFRAME: "iframe",
            POPUP: "popup"
        };
        var CLASS_NAMES = {
            ZOID: "" + ZOID,
            OUTLET: ZOID + "-outlet",
            COMPONENT_FRAME: ZOID + "-component-frame",
            PRERENDER_FRAME: ZOID + "-prerender-frame",
            VISIBLE: ZOID + "-visible",
            INVISIBLE: ZOID + "-invisible"
        };
        var EVENTS = {
            CLOSE: ZOID + "-close"
        };
        var ATTRIBUTES = {
            IFRAME_PLACEHOLDER: "data-zoid-" + ZOID + "-placeholder"
        };
        var ANIMATION_NAMES = {
            SHOW_CONTAINER: ZOID + "-show-container",
            SHOW_COMPONENT: ZOID + "-show-component",
            HIDE_CONTAINER: ZOID + "-hide-container",
            HIDE_COMPONENT: ZOID + "-hide-component"
        };
        var EVENT_NAMES = {
            CLICK: "click"
        };
        var CLOSE_REASONS = {
            PARENT_CALL: "parent_call",
            CHILD_CALL: "child_call",
            CLOSE_DETECTED: "close_detected",
            USER_CLOSED: "user_closed",
            PARENT_CLOSE_DETECTED: "parent_close_detected"
        };
        var CONTEXT_TYPES_LIST = Object.keys(CONTEXT_TYPES).map((function(key) {
            return CONTEXT_TYPES[key];
        }));
        var DELEGATE = {
            CALL_ORIGINAL: "call_original",
            CALL_DELEGATE: "call_delegate"
        };
        var WILDCARD = "*";
        var DEFAULT_DIMENSIONS = {
            WIDTH: 300,
            HEIGHT: 150
        };
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return global;
        }));
        var _conf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
        var global = window[_conf__WEBPACK_IMPORTED_MODULE_0__.b.WINDOW_PROPS.POSTROBOT] = window[_conf__WEBPACK_IMPORTED_MODULE_0__.b.WINDOW_PROPS.POSTROBOT] || {};
        global.registerSelf = function() {};
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return CONFIG;
        }));
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return CONSTANTS;
        }));
        var CONSTANTS = {
            POST_MESSAGE_TYPE: {
                REQUEST: "postrobot_message_request",
                RESPONSE: "postrobot_message_response",
                ACK: "postrobot_message_ack"
            },
            POST_MESSAGE_ACK: {
                SUCCESS: "success",
                ERROR: "error"
            },
            POST_MESSAGE_NAMES: {
                METHOD: "postrobot_method",
                HELLO: "postrobot_ready",
                OPEN_TUNNEL: "postrobot_open_tunnel"
            },
            WINDOW_TYPES: {
                FULLPAGE: "fullpage",
                POPUP: "popup",
                IFRAME: "iframe"
            },
            WINDOW_PROPS: {
                POSTROBOT: "__postRobot__"
            },
            SERIALIZATION_TYPES: {
                METHOD: "postrobot_method",
                ERROR: "postrobot_error",
                PROMISE: "postrobot_promise",
                ZALGO_PROMISE: "postrobot_zalgo_promise",
                REGEX: "regex"
            },
            SEND_STRATEGIES: {
                POST_MESSAGE: "postrobot_post_message",
                BRIDGE: "postrobot_bridge",
                GLOBAL: "postrobot_global"
            },
            MOCK_PROTOCOL: "mock:",
            FILE_PROTOCOL: "file:",
            BRIDGE_NAME_PREFIX: "__postrobot_bridge__",
            POSTROBOT_PROXY: "__postrobot_proxy__",
            WILDCARD: "*"
        };
        var POST_MESSAGE_NAMES = {
            METHOD: "postrobot_method",
            HELLO: "postrobot_hello",
            OPEN_TUNNEL: "postrobot_open_tunnel"
        };
        Object.keys(POST_MESSAGE_NAMES).map((function(key) {
            return POST_MESSAGE_NAMES[key];
        }));
        var _ALLOWED_POST_MESSAGE;
        var CONFIG = {
            ALLOW_POSTMESSAGE_POPUP: !("__ALLOW_POSTMESSAGE_POPUP__" in window) || window.__ALLOW_POSTMESSAGE_POPUP__,
            BRIDGE_TIMEOUT: 5e3,
            CHILD_WINDOW_TIMEOUT: 5e3,
            ACK_TIMEOUT: -1 !== window.navigator.userAgent.match(/MSIE/i) ? 1e4 : 2e3,
            RES_TIMEOUT: -1,
            ALLOWED_POST_MESSAGE_METHODS: (_ALLOWED_POST_MESSAGE = {}, _ALLOWED_POST_MESSAGE[CONSTANTS.SEND_STRATEGIES.POST_MESSAGE] = !0, 
            _ALLOWED_POST_MESSAGE[CONSTANTS.SEND_STRATEGIES.BRIDGE] = !0, _ALLOWED_POST_MESSAGE[CONSTANTS.SEND_STRATEGIES.GLOBAL] = !0, 
            _ALLOWED_POST_MESSAGE),
            ALLOW_SAME_ORIGIN: !1
        };
        0 === window.location.href.indexOf(CONSTANTS.FILE_PROTOCOL) && (CONFIG.ALLOW_POSTMESSAGE_POPUP = !0);
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return _extends;
        }));
        function _extends() {
            return (_extends = Object.assign || function(target) {
                for (var i = 1; i < arguments.length; i++) {
                    var source = arguments[i];
                    for (var key in source) ({}).hasOwnProperty.call(source, key) && (target[key] = source[key]);
                }
                return target;
            }).apply(this, arguments);
        }
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "i", (function() {
            return memoize;
        }));
        __webpack_require__.d(__webpack_exports__, "g", (function() {
            return match;
        }));
        __webpack_require__.d(__webpack_exports__, "o", (function() {
            return safeJSON;
        }));
        __webpack_require__.d(__webpack_exports__, "c", (function() {
            return eventEmitter;
        }));
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return awaitKey;
        }));
        __webpack_require__.d(__webpack_exports__, "q", (function() {
            return stringifyError;
        }));
        __webpack_require__.d(__webpack_exports__, "r", (function() {
            return stringifyErrorMessage;
        }));
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return domainMatches;
        }));
        __webpack_require__.d(__webpack_exports__, "l", (function() {
            return patchMethod;
        }));
        __webpack_require__.d(__webpack_exports__, "d", (function() {
            return extend;
        }));
        __webpack_require__.d(__webpack_exports__, "p", (function() {
            return sortBy;
        }));
        __webpack_require__.d(__webpack_exports__, "e", (function() {
            return identity;
        }));
        __webpack_require__.d(__webpack_exports__, "t", (function() {
            return values;
        }));
        __webpack_require__.d(__webpack_exports__, "m", (function() {
            return perc;
        }));
        __webpack_require__.d(__webpack_exports__, "h", (function() {
            return max;
        }));
        __webpack_require__.d(__webpack_exports__, "n", (function() {
            return regexMap;
        }));
        var zalgo_promise_src__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
        var belter_src__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);
        __webpack_require__.d(__webpack_exports__, "j", (function() {
            return belter_src__WEBPACK_IMPORTED_MODULE_1__.g;
        }));
        __webpack_require__.d(__webpack_exports__, "k", (function() {
            return belter_src__WEBPACK_IMPORTED_MODULE_1__.i;
        }));
        __webpack_require__.d(__webpack_exports__, "s", (function() {
            return belter_src__WEBPACK_IMPORTED_MODULE_1__.k;
        }));
        __webpack_require__.d(__webpack_exports__, "f", (function() {
            return belter_src__WEBPACK_IMPORTED_MODULE_1__.e;
        }));
        var moduleGlobal = {};
        function getGlobal() {
            return "undefined" != typeof window || "undefined" != typeof window ? window : moduleGlobal;
        }
        function memoize(method, options) {
            void 0 === options && (options = {});
            var cache = {};
            return function() {
                for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
                var key;
                try {
                    key = JSON.stringify([].slice.call(arguments));
                } catch (err) {
                    throw new Error("Arguments not serializable -- can not be used to memoize");
                }
                var time = options.time;
                cache[key] && time && Date.now() - cache[key].time < time && delete cache[key];
                var glob = getGlobal();
                glob.__CACHE_START_TIME__ && cache[key] && cache[key].time < glob.__CACHE_START_TIME__ && delete cache[key];
                if (cache[key]) return cache[key].value;
                cache[key] = {
                    time: Date.now(),
                    value: method.apply(this, arguments)
                };
                return cache[key].value;
            };
        }
        function match(str, pattern) {
            var regmatch = str.match(pattern);
            if (regmatch) return regmatch[1];
        }
        function safeJSON(item) {
            return JSON.stringify(item, (function(key, val) {
                if ("function" == typeof val) return "<" + typeof val + ">";
                try {
                    JSON.stringify(val);
                } catch (err) {
                    return "<" + typeof val + ">";
                }
                return val;
            }));
        }
        function eventEmitter() {
            var listeners = [];
            return {
                listen: function(method) {
                    listeners.push(method);
                    return {
                        cancel: function() {
                            listeners.splice(listeners.indexOf(method), 1);
                        }
                    };
                },
                once: function(method) {
                    var listener = this.listen((function() {
                        method.apply(null, arguments);
                        listener.cancel();
                    }));
                },
                trigger: function() {
                    for (var _i2 = 0; _i2 < listeners.length; _i2++) {
                        var listener = listeners[_i2];
                        listener.apply(void 0, arguments);
                    }
                }
            };
        }
        function awaitKey(obj, key) {
            return new zalgo_promise_src__WEBPACK_IMPORTED_MODULE_0__.a((function(resolve) {
                var value = obj[key];
                if (value) return resolve(value);
                delete obj[key];
                Object.defineProperty(obj, key, {
                    configurable: !0,
                    set: function(item) {
                        (value = item) && resolve(value);
                    },
                    get: function() {
                        return value;
                    }
                });
            }));
        }
        function stringifyError(err, level) {
            void 0 === level && (level = 1);
            if (level >= 3) return "stringifyError stack overflow";
            try {
                if (!err) return "<unknown error: " + {}.toString.call(err) + ">";
                if ("string" == typeof err) return err;
                if (err instanceof Error) {
                    var stack = err && err.stack;
                    var message = err && err.message;
                    if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + "\n" + stack;
                    if (stack) return stack;
                    if (message) return message;
                }
                return "function" == typeof err.toString ? err.toString() : {}.toString.call(err);
            } catch (newErr) {
                return "Error while stringifying error: " + stringifyError(newErr, level + 1);
            }
        }
        function stringifyErrorMessage(err) {
            var defaultMessage = "<unknown error: " + {}.toString.call(err) + ">";
            return err ? err instanceof Error ? err.message || defaultMessage : "string" == typeof err.message && err.message || defaultMessage : defaultMessage;
        }
        function domainMatches(hostname, domain) {
            var index = (hostname = hostname.split("://")[1]).indexOf(domain);
            return -1 !== index && hostname.slice(index) === domain;
        }
        function patchMethod(obj, name, handler) {
            var original = obj[name];
            obj[name] = function() {
                var _arguments = arguments, _this = this;
                return handler({
                    context: this,
                    args: [].slice.call(arguments),
                    original: original,
                    callOriginal: function() {
                        return original.apply(_this, _arguments);
                    }
                });
            };
        }
        function extend(obj, source) {
            if (!source) return obj;
            if (Object.assign) return Object.assign(obj, source);
            for (var _key2 in source) source.hasOwnProperty(_key2) && (obj[_key2] = source[_key2]);
            return obj;
        }
        function sortBy(arr, order) {
            return arr.sort((function(a, b) {
                return order.indexOf(a) - order.indexOf(b);
            }));
        }
        function identity(item) {
            return item;
        }
        function values(obj) {
            var result = [];
            for (var _key6 in obj) obj.hasOwnProperty(_key6) && result.push(obj[_key6]);
            return result;
        }
        function perc(pixels, percentage) {
            return Math.round(pixels * percentage / 100);
        }
        function max() {
            return Math.max.apply(Math, arguments);
        }
        function regexMap(str, regex, handler) {
            var results = [];
            str.replace(regex, (function() {
                results.push(handler.apply(null, arguments));
            }));
            return results;
        }
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.r(__webpack_exports__);
        __webpack_require__.d(__webpack_exports__, "request", (function() {
            return request;
        }));
        __webpack_require__.d(__webpack_exports__, "send", (function() {
            return _send;
        }));
        __webpack_require__.d(__webpack_exports__, "sendToParent", (function() {
            return sendToParent;
        }));
        __webpack_require__.d(__webpack_exports__, "client", (function() {
            return client;
        }));
        __webpack_require__.d(__webpack_exports__, "listen", (function() {
            return listen;
        }));
        __webpack_require__.d(__webpack_exports__, "on", (function() {
            return _on;
        }));
        __webpack_require__.d(__webpack_exports__, "once", (function() {
            return once;
        }));
        __webpack_require__.d(__webpack_exports__, "listener", (function() {
            return server_listener;
        }));
        __webpack_require__.d(__webpack_exports__, "CONFIG", (function() {
            return conf.a;
        }));
        __webpack_require__.d(__webpack_exports__, "CONSTANTS", (function() {
            return conf.b;
        }));
        __webpack_require__.d(__webpack_exports__, "disable", (function() {
            return disable;
        }));
        __webpack_require__.d(__webpack_exports__, "parent", (function() {
            return public_parent;
        }));
        __webpack_require__.d(__webpack_exports__, "cleanUpWindow", (function() {
            return cleanUpWindow;
        }));
        __webpack_require__.d(__webpack_exports__, "Promise", (function() {
            return zalgo_promise_src.a;
        }));
        __webpack_require__.d(__webpack_exports__, "bridge", (function() {
            return bridge;
        }));
        __webpack_require__.d(__webpack_exports__, "init", (function() {
            return init;
        }));
        var interface_namespaceObject = {};
        __webpack_require__.r(interface_namespaceObject);
        __webpack_require__.d(interface_namespaceObject, "request", (function() {
            return request;
        }));
        __webpack_require__.d(interface_namespaceObject, "send", (function() {
            return _send;
        }));
        __webpack_require__.d(interface_namespaceObject, "sendToParent", (function() {
            return sendToParent;
        }));
        __webpack_require__.d(interface_namespaceObject, "client", (function() {
            return client;
        }));
        __webpack_require__.d(interface_namespaceObject, "listen", (function() {
            return listen;
        }));
        __webpack_require__.d(interface_namespaceObject, "on", (function() {
            return _on;
        }));
        __webpack_require__.d(interface_namespaceObject, "once", (function() {
            return once;
        }));
        __webpack_require__.d(interface_namespaceObject, "listener", (function() {
            return server_listener;
        }));
        __webpack_require__.d(interface_namespaceObject, "CONFIG", (function() {
            return conf.a;
        }));
        __webpack_require__.d(interface_namespaceObject, "CONSTANTS", (function() {
            return conf.b;
        }));
        __webpack_require__.d(interface_namespaceObject, "disable", (function() {
            return disable;
        }));
        __webpack_require__.d(interface_namespaceObject, "parent", (function() {
            return public_parent;
        }));
        __webpack_require__.d(interface_namespaceObject, "cleanUpWindow", (function() {
            return cleanUpWindow;
        }));
        __webpack_require__.d(interface_namespaceObject, "Promise", (function() {
            return zalgo_promise_src.a;
        }));
        __webpack_require__.d(interface_namespaceObject, "bridge", (function() {
            return bridge;
        }));
        __webpack_require__.d(interface_namespaceObject, "init", (function() {
            return init;
        }));
        var lib = __webpack_require__(15);
        var src = __webpack_require__(7);
        var conf = __webpack_require__(10);
        var global = __webpack_require__(9);
        var esm_extends = __webpack_require__(11);
        var zalgo_promise_src = __webpack_require__(2);
        var SEND_MESSAGE_STRATEGIES = {};
        SEND_MESSAGE_STRATEGIES[conf.b.SEND_STRATEGIES.POST_MESSAGE] = function(win, serializedMessage, domain) {
            try {
                __webpack_require__(39).emulateIERestrictions(window, win);
            } catch (err) {
                return;
            }
            (Array.isArray(domain) ? domain : "string" == typeof domain ? [ domain ] : [ conf.b.WILDCARD ]).map((function(dom) {
                if (0 === dom.indexOf(conf.b.MOCK_PROTOCOL)) {
                    if (window.location.protocol === conf.b.FILE_PROTOCOL) return conf.b.WILDCARD;
                    if (!Object(src.q)(win)) throw new Error("Attempting to send messsage to mock domain " + dom + ", but window is actually cross-domain");
                    return Object(src.d)(win);
                }
                return 0 === dom.indexOf(conf.b.FILE_PROTOCOL) ? conf.b.WILDCARD : dom;
            })).forEach((function(dom) {
                return win.postMessage(serializedMessage, dom);
            }));
        };
        var _require = __webpack_require__(21), sendBridgeMessage = _require.sendBridgeMessage, needsBridgeForBrowser = _require.needsBridgeForBrowser, isBridge = _require.isBridge;
        SEND_MESSAGE_STRATEGIES[conf.b.SEND_STRATEGIES.BRIDGE] = function(win, serializedMessage, domain) {
            if (needsBridgeForBrowser() || isBridge()) {
                if (Object(src.v)(win)) throw new Error("Post message through bridge disabled between same domain windows");
                if (!1 !== Object(src.w)(window, win)) throw new Error("Can only use bridge to communicate between two different windows, not between frames");
                return sendBridgeMessage(win, serializedMessage, domain);
            }
        };
        SEND_MESSAGE_STRATEGIES[conf.b.SEND_STRATEGIES.GLOBAL] = function(win, serializedMessage) {
            if (Object(lib.i)()) {
                if (!Object(src.v)(win)) throw new Error("Post message through global disabled between different domain windows");
                if (!1 !== Object(src.w)(window, win)) throw new Error("Can only use global to communicate between two different windows, not between frames");
                var foreignGlobal = win[conf.b.WINDOW_PROPS.POSTROBOT];
                if (!foreignGlobal) throw new Error("Can not find postRobot global on foreign window");
                return foreignGlobal.receiveMessage({
                    source: window,
                    origin: Object(src.h)(),
                    data: serializedMessage
                });
            }
        };
        function sendMessage(win, message, domain) {
            return zalgo_promise_src.a.try((function() {
                var _jsonStringify;
                message = function(win, message, options) {
                    void 0 === options && (options = {});
                    var id = Object(lib.q)();
                    var type = Object(lib.c)();
                    var sourceDomain = Object(src.h)(window);
                    return Object(esm_extends.a)({}, message, options, {
                        sourceDomain: sourceDomain,
                        id: message.id || id,
                        windowType: type
                    });
                }(0, message, {
                    data: Object(lib.o)(win, domain, message.data),
                    domain: domain
                });
                if (win === window && !conf.a.ALLOW_SAME_ORIGIN) throw new Error("Attemping to send message to self");
                if (Object(src.z)(win)) throw new Error("Window is closed");
                var messages = [];
                var serializedMessage = Object(lib.g)(((_jsonStringify = {})[conf.b.WINDOW_PROPS.POSTROBOT] = message, 
                _jsonStringify), null, 2);
                return zalgo_promise_src.a.map(Object.keys(SEND_MESSAGE_STRATEGIES), (function(strategyName) {
                    return zalgo_promise_src.a.try((function() {
                        if (!conf.a.ALLOWED_POST_MESSAGE_METHODS[strategyName]) throw new Error("Strategy disallowed: " + strategyName);
                        return SEND_MESSAGE_STRATEGIES[strategyName](win, serializedMessage, domain);
                    })).then((function() {
                        messages.push(strategyName + ": success");
                        return !0;
                    }), (function(err) {
                        messages.push(strategyName + ": " + Object(lib.p)(err) + "\n");
                        return !1;
                    }));
                })).then((function(results) {
                    var success = results.some(Boolean);
                    var status = message.type + " " + message.name + " " + (success ? "success" : "error") + ":\n  - " + messages.join("\n  - ") + "\n";
                    if (!success) throw new Error(status);
                }));
            }));
        }
        var cross_domain_safe_weakmap_src = __webpack_require__(17);
        global.a.responseListeners = global.a.responseListeners || {};
        global.a.requestListeners = global.a.requestListeners || {};
        global.a.WINDOW_WILDCARD = global.a.WINDOW_WILDCARD || new function() {};
        global.a.erroredResponseListeners = global.a.erroredResponseListeners || {};
        function getResponseListener(hash) {
            return global.a.responseListeners[hash];
        }
        function deleteResponseListener(hash) {
            delete global.a.responseListeners[hash];
        }
        function isResponseListenerErrored(hash) {
            return Boolean(global.a.erroredResponseListeners[hash]);
        }
        function getRequestListener(_ref) {
            var name = _ref.name, win = _ref.win, domain = _ref.domain;
            win === conf.b.WILDCARD && (win = null);
            domain === conf.b.WILDCARD && (domain = null);
            if (!name) throw new Error("Name required to get request listener");
            var nameListeners = global.a.requestListeners[name];
            if (nameListeners) for (var _i2 = 0, _ref3 = [ win, global.a.WINDOW_WILDCARD ]; _i2 < _ref3.length; _i2++) {
                var winQualifier = _ref3[_i2];
                var winListeners = winQualifier && nameListeners.get(winQualifier);
                if (winListeners) {
                    if (domain && "string" == typeof domain) {
                        if (winListeners[domain]) return winListeners[domain];
                        if (winListeners.__domain_regex__) for (var _i4 = 0, _winListeners$__DOMAI2 = winListeners.__domain_regex__; _i4 < _winListeners$__DOMAI2.length; _i4++) {
                            var _winListeners$__DOMAI3 = _winListeners$__DOMAI2[_i4], regex = _winListeners$__DOMAI3.regex, listener = _winListeners$__DOMAI3.listener;
                            if (Object(src.B)(regex, domain)) return listener;
                        }
                    }
                    if (winListeners[conf.b.WILDCARD]) return winListeners[conf.b.WILDCARD];
                }
            }
        }
        var _RECEIVE_MESSAGE_TYPE;
        var RECEIVE_MESSAGE_TYPES = ((_RECEIVE_MESSAGE_TYPE = {})[conf.b.POST_MESSAGE_TYPE.ACK] = function(source, origin, message) {
            if (!isResponseListenerErrored(message.hash)) {
                var options = getResponseListener(message.hash);
                if (!options) throw new Error("No handler found for post message ack for message: " + message.name + " from " + origin + " in " + window.location.protocol + "//" + window.location.host + window.location.pathname);
                if (!Object(src.B)(options.domain, origin)) throw new Error("Ack origin " + origin + " does not match domain " + options.domain.toString());
                options.ack = !0;
            }
        }, _RECEIVE_MESSAGE_TYPE[conf.b.POST_MESSAGE_TYPE.REQUEST] = function(source, origin, message) {
            var options = getRequestListener({
                name: message.name,
                win: source,
                domain: origin
            });
            function respond(data) {
                return message.fireAndForget || Object(src.z)(source) ? zalgo_promise_src.a.resolve() : sendMessage(source, Object(esm_extends.a)({
                    target: message.originalSource,
                    hash: message.hash,
                    name: message.name
                }, data), origin);
            }
            return zalgo_promise_src.a.all([ respond({
                type: conf.b.POST_MESSAGE_TYPE.ACK
            }), zalgo_promise_src.a.try((function() {
                if (!options) throw new Error("No handler found for post message: " + message.name + " from " + origin + " in " + window.location.protocol + "//" + window.location.host + window.location.pathname);
                if (!Object(src.B)(options.domain, origin)) throw new Error("Request origin " + origin + " does not match domain " + options.domain.toString());
                return options.handler({
                    source: source,
                    origin: origin,
                    data: message.data
                });
            })).then((function(data) {
                return respond({
                    type: conf.b.POST_MESSAGE_TYPE.RESPONSE,
                    ack: conf.b.POST_MESSAGE_ACK.SUCCESS,
                    data: data
                });
            }), (function(err) {
                var error = Object(lib.p)(err).replace(/^Error: /, "");
                return respond({
                    type: conf.b.POST_MESSAGE_TYPE.RESPONSE,
                    ack: conf.b.POST_MESSAGE_ACK.ERROR,
                    error: error,
                    code: err.code
                });
            })) ]).then(lib.j).catch((function(err) {
                if (options && options.handleError) return options.handleError(err);
                throw err;
            }));
        }, _RECEIVE_MESSAGE_TYPE[conf.b.POST_MESSAGE_TYPE.RESPONSE] = function(source, origin, message) {
            if (!isResponseListenerErrored(message.hash)) {
                var options = getResponseListener(message.hash);
                if (!options) throw new Error("No handler found for post message response for message: " + message.name + " from " + origin + " in " + window.location.protocol + "//" + window.location.host + window.location.pathname);
                if (!Object(src.B)(options.domain, origin)) throw new Error("Response origin " + origin + " does not match domain " + Object(src.D)(options.domain));
                deleteResponseListener(message.hash);
                if (message.ack === conf.b.POST_MESSAGE_ACK.ERROR) {
                    var err = new Error(message.error);
                    message.code && (err.code = message.code);
                    return options.respond(err, null);
                }
                if (message.ack === conf.b.POST_MESSAGE_ACK.SUCCESS) return options.respond(null, {
                    source: source,
                    origin: origin,
                    data: message.data || message.response
                });
            }
        }, _RECEIVE_MESSAGE_TYPE);
        global.a.receivedMessages = global.a.receivedMessages || [];
        function receiveMessage(event) {
            if (window && !window.closed) {
                try {
                    if (!event.source) return;
                } catch (err) {
                    return;
                }
                var source = event.source, origin = event.origin;
                var message = function(message) {
                    var parsedMessage;
                    try {
                        parsedMessage = Object(lib.f)(message);
                    } catch (err) {
                        return;
                    }
                    if (parsedMessage && "object" == typeof parsedMessage && null !== parsedMessage && (parsedMessage = parsedMessage[conf.b.WINDOW_PROPS.POSTROBOT]) && "object" == typeof parsedMessage && null !== parsedMessage && parsedMessage.type && "string" == typeof parsedMessage.type && RECEIVE_MESSAGE_TYPES[parsedMessage.type]) return parsedMessage;
                }(event.data);
                if (message) {
                    if (!message.sourceDomain || "string" != typeof message.sourceDomain) throw new Error("Expected message to have sourceDomain");
                    0 !== message.sourceDomain.indexOf(conf.b.MOCK_PROTOCOL) && 0 !== message.sourceDomain.indexOf(conf.b.FILE_PROTOCOL) || (origin = message.sourceDomain);
                    if (-1 === global.a.receivedMessages.indexOf(message.id)) {
                        global.a.receivedMessages.push(message.id);
                        if (!Object(src.z)(source) || message.fireAndForget) {
                            message.data && (message.data = Object(lib.b)(source, origin, message.data));
                            RECEIVE_MESSAGE_TYPES[message.type](source, origin, message);
                        }
                    }
                }
            }
        }
        function messageListener(event) {
            try {
                Object(lib.j)(event.source);
            } catch (err) {
                return;
            }
            var messageEvent = {
                source: event.source || event.sourceElement,
                origin: event.origin || event.originalEvent && event.originalEvent.origin,
                data: event.data
            };
            try {
                __webpack_require__(39).emulateIERestrictions(messageEvent.source, window);
            } catch (err) {
                return;
            }
            receiveMessage(messageEvent);
        }
        global.a.receiveMessage = receiveMessage;
        global.a.requestPromises = global.a.requestPromises || new cross_domain_safe_weakmap_src.a;
        function request(options) {
            return zalgo_promise_src.a.try((function() {
                if (!options.name) throw new Error("Expected options.name");
                var name = options.name;
                var targetWindow;
                var domain;
                if ("string" == typeof options.window) {
                    var el = document.getElementById(options.window);
                    if (!el) throw new Error("Expected options.window " + {}.toString.call(options.window) + " to be a valid element id");
                    if ("iframe" !== el.tagName.toLowerCase()) throw new Error("Expected options.window " + {}.toString.call(options.window) + " to be an iframe");
                    if (!el.contentWindow) throw new Error("Iframe must have contentWindow.  Make sure it has a src attribute and is in the DOM.");
                    targetWindow = el.contentWindow;
                } else if (options.window instanceof HTMLIFrameElement) {
                    if ("iframe" !== options.window.tagName.toLowerCase()) throw new Error("Expected options.window " + {}.toString.call(options.window) + " to be an iframe");
                    if (options.window && !options.window.contentWindow) throw new Error("Iframe must have contentWindow.  Make sure it has a src attribute and is in the DOM.");
                    options.window && options.window.contentWindow && (targetWindow = options.window.contentWindow);
                } else targetWindow = options.window;
                if (!targetWindow) throw new Error("Expected options.window to be a window object, iframe, or iframe element id.");
                var win = targetWindow;
                domain = options.domain || conf.b.WILDCARD;
                var hash = options.name + "_" + Object(lib.q)();
                if (Object(src.z)(win)) throw new Error("Target window is closed");
                var hasResult = !1;
                var requestPromises = global.a.requestPromises.get(win);
                requestPromises || global.a.requestPromises.set(win, requestPromises = []);
                var requestPromise = zalgo_promise_src.a.try((function() {
                    if (Object(src.r)(window, win)) return Object(lib.k)(win, options.timeout || conf.a.CHILD_WINDOW_TIMEOUT);
                })).then((function(_temp) {
                    var origin = (void 0 === _temp ? {} : _temp).origin;
                    if (Object(lib.e)(domain) && !origin) return Object(lib.n)(win);
                })).then((function(_temp2) {
                    var origin = (void 0 === _temp2 ? {} : _temp2).origin;
                    if (Object(lib.e)(domain)) {
                        if (!Object(src.B)(domain, origin)) throw new Error("Remote window domain " + origin + " does not match regex: " + domain.toString());
                        domain = origin;
                    }
                    if ("string" != typeof domain && !Array.isArray(domain)) throw new TypeError("Expected domain to be a string or array");
                    var actualDomain = domain;
                    return new zalgo_promise_src.a((function(resolve, reject) {
                        var responseListener;
                        options.fireAndForget || function(hash, listener) {
                            global.a.responseListeners[hash] = listener;
                        }(hash, responseListener = {
                            name: name,
                            window: win,
                            domain: actualDomain,
                            respond: function(err, result) {
                                if (!err) {
                                    hasResult = !0;
                                    requestPromises.splice(requestPromises.indexOf(requestPromise, 1));
                                }
                                err ? reject(err) : resolve(result);
                            }
                        });
                        sendMessage(win, {
                            type: conf.b.POST_MESSAGE_TYPE.REQUEST,
                            hash: hash,
                            name: name,
                            data: options.data,
                            fireAndForget: options.fireAndForget
                        }, actualDomain).catch(reject);
                        if (options.fireAndForget) return resolve();
                        var ackTimeout = conf.a.ACK_TIMEOUT;
                        var resTimeout = options.timeout || conf.a.RES_TIMEOUT;
                        var cycleTime = 100;
                        setTimeout((function cycle() {
                            if (!hasResult) {
                                if (Object(src.z)(win)) return reject(responseListener.ack ? new Error("Window closed for " + name + " before response") : new Error("Window closed for " + name + " before ack"));
                                ackTimeout = Math.max(ackTimeout - cycleTime, 0);
                                -1 !== resTimeout && (resTimeout = Math.max(resTimeout - cycleTime, 0));
                                if (responseListener.ack) {
                                    if (-1 === resTimeout) return;
                                    cycleTime = Math.min(resTimeout, 2e3);
                                } else {
                                    if (0 === ackTimeout) return reject(new Error("No ack for postMessage " + name + " in " + Object(src.h)() + " in " + conf.a.ACK_TIMEOUT + "ms"));
                                    if (0 === resTimeout) return reject(new Error("No response for postMessage " + name + " in " + Object(src.h)() + " in " + (options.timeout || conf.a.RES_TIMEOUT) + "ms"));
                                }
                                setTimeout(cycle, cycleTime);
                            }
                        }), cycleTime);
                    }));
                }));
                requestPromise.catch((function() {
                    !function(hash) {
                        global.a.erroredResponseListeners[hash] = !0;
                    }(hash);
                    deleteResponseListener(hash);
                }));
                requestPromises.push(requestPromise);
                return requestPromise;
            }));
        }
        function _send(window, name, data, options) {
            (options = options || {}).window = window;
            options.name = name;
            options.data = data;
            return request(options);
        }
        function sendToParent(name, data, options) {
            var win = Object(src.f)();
            return win ? _send(win, name, data, options) : new zalgo_promise_src.a((function(resolve, reject) {
                return reject(new Error("Window does not have a parent"));
            }));
        }
        function client(options) {
            void 0 === options && (options = {});
            if (!options.window) throw new Error("Expected options.window");
            var win = options.window;
            return {
                send: function(name, data) {
                    return _send(win, name, data, options);
                }
            };
        }
        global.a.send = _send;
        function listen(options) {
            if (!options.name) throw new Error("Expected options.name");
            if (!options.handler) throw new Error("Expected options.handler");
            var name = options.name;
            var win = options.window;
            var domain = options.domain;
            var listenerOptions = {
                handler: options.handler,
                handleError: options.errorHandler || function(err) {
                    throw err;
                },
                window: win,
                domain: domain || conf.b.WILDCARD,
                name: name
            };
            var requestListener = function addRequestListener(_ref4, listener) {
                var name = _ref4.name, win = _ref4.win, domain = _ref4.domain;
                if (!name || "string" != typeof name) throw new Error("Name required to add request listener");
                if (Array.isArray(win)) {
                    var listenersCollection = [];
                    for (var _i6 = 0, _win2 = win; _i6 < _win2.length; _i6++) listenersCollection.push(addRequestListener({
                        name: name,
                        domain: domain,
                        win: _win2[_i6]
                    }, listener));
                    return {
                        cancel: function() {
                            for (var _i8 = 0; _i8 < listenersCollection.length; _i8++) listenersCollection[_i8].cancel();
                        }
                    };
                }
                if (Array.isArray(domain)) {
                    var _listenersCollection = [];
                    for (var _i10 = 0, _domain2 = domain; _i10 < _domain2.length; _i10++) _listenersCollection.push(addRequestListener({
                        name: name,
                        win: win,
                        domain: _domain2[_i10]
                    }, listener));
                    return {
                        cancel: function() {
                            for (var _i12 = 0; _i12 < _listenersCollection.length; _i12++) _listenersCollection[_i12].cancel();
                        }
                    };
                }
                var existingListener = getRequestListener({
                    name: name,
                    win: win,
                    domain: domain
                });
                win && win !== conf.b.WILDCARD || (win = global.a.WINDOW_WILDCARD);
                domain = domain || conf.b.WILDCARD;
                if (existingListener) throw win && domain ? new Error("Request listener already exists for " + name + " on domain " + domain.toString() + " for " + (win === global.a.WINDOW_WILDCARD ? "wildcard" : "specified") + " window") : win ? new Error("Request listener already exists for " + name + " for " + (win === global.a.WINDOW_WILDCARD ? "wildcard" : "specified") + " window") : domain ? new Error("Request listener already exists for " + name + " on domain " + domain.toString()) : new Error("Request listener already exists for " + name);
                var requestListeners = global.a.requestListeners;
                var nameListeners = requestListeners[name];
                if (!nameListeners) {
                    nameListeners = new cross_domain_safe_weakmap_src.a;
                    requestListeners[name] = nameListeners;
                }
                var winListeners = nameListeners.get(win);
                winListeners || nameListeners.set(win, winListeners = {});
                var strDomain = domain.toString();
                var regexListeners = winListeners.__domain_regex__;
                var regexListener;
                if (Object(lib.e)(domain)) {
                    regexListeners || (winListeners.__domain_regex__ = regexListeners = []);
                    regexListeners.push(regexListener = {
                        regex: domain,
                        listener: listener
                    });
                } else winListeners[strDomain] = listener;
                return {
                    cancel: function() {
                        if (winListeners) {
                            delete winListeners[strDomain];
                            win && 0 === Object.keys(winListeners).length && nameListeners.delete(win);
                            regexListener && regexListeners.splice(regexListeners.indexOf(regexListener, 1));
                        }
                    }
                };
            }({
                name: name,
                win: win,
                domain: domain
            }, listenerOptions);
            if (options.once) {
                var _handler = listenerOptions.handler;
                listenerOptions.handler = Object(lib.l)((function() {
                    requestListener.cancel();
                    return _handler.apply(this, arguments);
                }));
            }
            if (listenerOptions.window && options.errorOnClose) var interval = Object(lib.m)((function() {
                if (win && "object" == typeof win && Object(src.z)(win)) {
                    interval.cancel();
                    listenerOptions.handleError(new Error("Post message target window is closed"));
                }
            }), 50);
            return {
                cancel: function() {
                    requestListener.cancel();
                }
            };
        }
        function _on(name, options, handler) {
            if ("function" == typeof options) {
                handler = options;
                options = {};
            }
            (options = options || {}).name = name;
            options.handler = handler || options.handler;
            return listen(options);
        }
        function once(name, options, handler) {
            void 0 === options && (options = {});
            if ("function" == typeof options) {
                handler = options;
                options = {};
            }
            options = options || {};
            handler = handler || options.handler;
            var errorHandler = options.errorHandler;
            var promise = new zalgo_promise_src.a((function(resolve, reject) {
                (options = options || {}).name = name;
                options.once = !0;
                options.handler = function(event) {
                    resolve(event);
                    if (handler) return handler(event);
                };
                options.errorHandler = function(err) {
                    reject(err);
                    if (errorHandler) return errorHandler(err);
                };
            }));
            var onceListener = listen(options);
            promise.cancel = onceListener.cancel;
            return promise;
        }
        function server_listener(options) {
            void 0 === options && (options = {});
            return {
                on: function(name, handler) {
                    return _on(name, options, handler);
                }
            };
        }
        global.a.on = _on;
        function disable() {
            delete window[conf.b.WINDOW_PROPS.POSTROBOT];
            window.removeEventListener("message", messageListener);
        }
        var public_parent = Object(src.f)();
        function cleanUpWindow(win) {
            var requestPromises = global.a.requestPromises.get(win);
            if (requestPromises) for (var _i2 = 0; _i2 < requestPromises.length; _i2++) requestPromises[_i2].reject(new Error("No response from window - cleaned up"));
            global.a.popupWindowsByWin && global.a.popupWindowsByWin.delete(win);
            global.a.remoteWindows && global.a.remoteWindows.delete(win);
            global.a.requestPromises.delete(win);
            global.a.methods.delete(win);
            global.a.readyPromises.delete(win);
        }
        var bridge = __webpack_require__(41);
        function init() {
            if (!global.a.initialized) {
                Object(lib.a)(window, "message", messageListener);
                __webpack_require__(21).openTunnelToOpener();
                Object(lib.d)();
                Object(lib.h)({
                    on: _on,
                    send: _send
                });
            }
            global.a.initialized = !0;
        }
        init();
        __webpack_exports__.default = interface_namespaceObject;
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "j", (function() {
            return supportsPopups;
        }));
        __webpack_require__.d(__webpack_exports__, "e", (function() {
            return isLocalStorageEnabled;
        }));
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return getElementSafe;
        }));
        __webpack_require__.d(__webpack_exports__, "h", (function() {
            return onResize;
        }));
        __webpack_require__.d(__webpack_exports__, "f", (function() {
            return isShadowElement;
        }));
        __webpack_require__.d(__webpack_exports__, "d", (function() {
            return insertShadowSlot;
        }));
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return base64encode;
        }));
        __webpack_require__.d(__webpack_exports__, "k", (function() {
            return uniqueID;
        }));
        __webpack_require__.d(__webpack_exports__, "g", (function() {
            return noop;
        }));
        __webpack_require__.d(__webpack_exports__, "i", (function() {
            return once;
        }));
        __webpack_require__.d(__webpack_exports__, "l", (function() {
            return values;
        }));
        __webpack_require__.d(__webpack_exports__, "c", (function() {
            return identity;
        }));
        function getUserAgent() {
            return window.navigator.mockUserAgent || window.navigator.userAgent;
        }
        function isOperaMini(ua) {
            void 0 === ua && (ua = getUserAgent());
            return /Opera Mini/i.test(ua);
        }
        function supportsPopups(ua) {
            void 0 === ua && (ua = getUserAgent());
            return !(function(ua) {
                void 0 === ua && (ua = getUserAgent());
                return !!function(ua) {
                    void 0 === ua && (ua = getUserAgent());
                    return /iPhone|iPod|iPad/.test(ua);
                }(ua) && (!!function(ua) {
                    void 0 === ua && (ua = getUserAgent());
                    return /\bGSA\b/.test(ua);
                }(ua) || /.+AppleWebKit(?!.*Safari)|.*WKWebView/.test(ua));
            }(ua) || function(ua) {
                void 0 === ua && (ua = getUserAgent());
                return !!function(ua) {
                    void 0 === ua && (ua = getUserAgent());
                    return /Android/.test(ua);
                }(ua) && /Version\/[\d.]+/.test(ua) && !isOperaMini(ua);
            }(ua) || isOperaMini(ua) || function(ua) {
                void 0 === ua && (ua = getUserAgent());
                return /FxiOS/i.test(ua);
            }(ua) || function(ua) {
                void 0 === ua && (ua = getUserAgent());
                return /EdgiOS/i.test(ua);
            }(ua) || function(ua) {
                void 0 === ua && (ua = getUserAgent());
                return /FBAN/.test(ua) || /FBAV/.test(ua);
            }(ua) || function(ua) {
                void 0 === ua && (ua = getUserAgent());
                return /QQBrowser/.test(ua);
            }(ua) || "undefined" != typeof process && process.versions && process.versions.electron || (userAgent = getUserAgent(), 
            /Macintosh.*AppleWebKit(?!.*Safari)/i.test(userAgent)) || !0 === window.navigator.standalone || window.matchMedia("(display-mode: standalone)").matches);
            var userAgent;
        }
        __webpack_require__(19);
        __webpack_require__(11);
        var src = __webpack_require__(2);
        __webpack_require__(7);
        var cross_domain_safe_weakmap_src = __webpack_require__(17);
        __webpack_require__(22);
        __webpack_require__(26);
        function getFunctionName(fn) {
            return fn.name || fn.__name__ || fn.displayName || "anonymous";
        }
        function setFunctionName(fn, name) {
            try {
                delete fn.name;
                fn.name = name;
            } catch (err) {}
            fn.__name__ = fn.displayName = name;
            return fn;
        }
        function base64encode(str) {
            if ("function" == typeof btoa) return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (function(m, p1) {
                return String.fromCharCode(parseInt(p1, 16));
            })));
            if ("undefined" != typeof Buffer) return Buffer.from(str, "utf8").toString("base64");
            throw new Error("Can not find window.btoa or Buffer");
        }
        function uniqueID() {
            var chars = "0123456789abcdef";
            return "xxxxxxxxxx".replace(/./g, (function() {
                return chars.charAt(Math.floor(Math.random() * chars.length));
            })) + "_" + base64encode((new Date).toISOString().slice(11, 19).replace("T", ".")).replace(/[^a-zA-Z0-9]/g, "").toLowerCase();
        }
        var objectIDs;
        function serializeArgs(args) {
            try {
                return JSON.stringify([].slice.call(args), (function(subkey, val) {
                    return "function" == typeof val ? "memoize[" + function(obj) {
                        objectIDs = objectIDs || new cross_domain_safe_weakmap_src.a;
                        if (null == obj || "object" != typeof obj && "function" != typeof obj) throw new Error("Invalid object");
                        var uid = objectIDs.get(obj);
                        if (!uid) {
                            uid = typeof obj + ":" + uniqueID();
                            objectIDs.set(obj, uid);
                        }
                        return uid;
                    }(val) + "]" : val;
                }));
            } catch (err) {
                throw new Error("Arguments not serializable -- can not be used to memoize");
            }
        }
        function getEmptyObject() {
            return {};
        }
        var memoizeGlobalIndex = 0;
        var memoizeGlobalIndexValidFrom = 0;
        function memoize(method, options) {
            void 0 === options && (options = {});
            var _options$thisNamespac = options.thisNamespace, thisNamespace = void 0 !== _options$thisNamespac && _options$thisNamespac, cacheTime = options.time;
            var simpleCache;
            var thisCache;
            var memoizeIndex = memoizeGlobalIndex;
            memoizeGlobalIndex += 1;
            var memoizedFunction = function() {
                for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
                if (memoizeIndex < memoizeGlobalIndexValidFrom) {
                    simpleCache = null;
                    thisCache = null;
                    memoizeIndex = memoizeGlobalIndex;
                    memoizeGlobalIndex += 1;
                }
                var cache;
                cache = thisNamespace ? (thisCache = thisCache || new cross_domain_safe_weakmap_src.a).getOrSet(this, getEmptyObject) : simpleCache = simpleCache || {};
                var cacheKey = serializeArgs(args);
                var cacheResult = cache[cacheKey];
                if (cacheResult && cacheTime && Date.now() - cacheResult.time < cacheTime) {
                    delete cache[cacheKey];
                    cacheResult = null;
                }
                if (cacheResult) return cacheResult.value;
                var time = Date.now();
                var value = method.apply(this, arguments);
                cache[cacheKey] = {
                    time: time,
                    value: value
                };
                return value;
            };
            memoizedFunction.reset = function() {
                simpleCache = null;
                thisCache = null;
            };
            return setFunctionName(memoizedFunction, (options.name || getFunctionName(method)) + "::memoized");
        }
        memoize.clear = function() {
            memoizeGlobalIndexValidFrom = memoizeGlobalIndex;
        };
        function noop() {}
        function once(method) {
            var called = !1;
            return setFunctionName((function() {
                if (!called) {
                    called = !0;
                    return method.apply(this, arguments);
                }
            }), getFunctionName(method) + "::once");
        }
        var values = function(obj) {
            if (Object.values) return Object.values(obj);
            var result = [];
            for (var key in obj) obj.hasOwnProperty(key) && result.push(obj[key]);
            return result;
        };
        memoize(values);
        function identity(item) {
            return item;
        }
        function safeInterval(method, time) {
            var timeout;
            !function loop() {
                timeout = setTimeout((function() {
                    method();
                    loop();
                }), time);
            }();
            return {
                cancel: function() {
                    clearTimeout(timeout);
                }
            };
        }
        Error;
        function isDocumentReady() {
            return Boolean(document.body) && "complete" === document.readyState;
        }
        function isDocumentInteractive() {
            return Boolean(document.body) && "interactive" === document.readyState;
        }
        memoize((function() {
            return new src.a((function(resolve) {
                if (isDocumentReady() || isDocumentInteractive()) return resolve();
                var interval = setInterval((function() {
                    if (isDocumentReady() || isDocumentInteractive()) {
                        clearInterval(interval);
                        return resolve();
                    }
                }), 10);
            }));
        }));
        function isLocalStorageEnabled() {
            return function(method, logic, args) {
                void 0 === args && (args = []);
                var cache = method.__inline_memoize_cache__ = method.__inline_memoize_cache__ || {};
                var key = serializeArgs(args);
                return cache.hasOwnProperty(key) ? cache[key] : cache[key] = function() {
                    try {
                        if ("undefined" == typeof window) return !1;
                        if (window.localStorage) {
                            var value = Math.random().toString();
                            window.localStorage.setItem("__test__localStorage__", value);
                            var result = window.localStorage.getItem("__test__localStorage__");
                            window.localStorage.removeItem("__test__localStorage__");
                            if (value === result) return !0;
                        }
                    } catch (err) {}
                    return !1;
                }.apply(void 0, args);
            }(isLocalStorageEnabled);
        }
        function getElementSafe(id, doc) {
            void 0 === doc && (doc = document);
            return (element = id) instanceof window.Element || null !== element && "object" == typeof element && 1 === element.nodeType && "object" == typeof element.style && "object" == typeof element.ownerDocument ? id : "string" == typeof id ? doc.querySelector(id) : void 0;
            var element;
        }
        function onResize(el, handler, _temp) {
            var _ref2 = void 0 === _temp ? {} : _temp, _ref2$width = _ref2.width, width = void 0 === _ref2$width || _ref2$width, _ref2$height = _ref2.height, height = void 0 === _ref2$height || _ref2$height, _ref2$interval = _ref2.interval, interval = void 0 === _ref2$interval ? 100 : _ref2$interval, _ref2$win = _ref2.win, win = void 0 === _ref2$win ? window : _ref2$win;
            var currentWidth = el.offsetWidth;
            var currentHeight = el.offsetHeight;
            var canceled = !1;
            handler({
                width: currentWidth,
                height: currentHeight
            });
            var check = function() {
                if (!canceled && function(el) {
                    return Boolean(el.offsetWidth || el.offsetHeight || el.getClientRects().length);
                }(el)) {
                    var newWidth = el.offsetWidth;
                    var newHeight = el.offsetHeight;
                    (width && newWidth !== currentWidth || height && newHeight !== currentHeight) && handler({
                        width: newWidth,
                        height: newHeight
                    });
                    currentWidth = newWidth;
                    currentHeight = newHeight;
                }
            };
            var observer;
            var timeout;
            win.addEventListener("resize", check);
            if (void 0 !== win.ResizeObserver) {
                (observer = new win.ResizeObserver(check)).observe(el);
                timeout = safeInterval(check, 10 * interval);
            } else if (void 0 !== win.MutationObserver) {
                (observer = new win.MutationObserver(check)).observe(el, {
                    attributes: !0,
                    childList: !0,
                    subtree: !0,
                    characterData: !1
                });
                timeout = safeInterval(check, 10 * interval);
            } else timeout = safeInterval(check, interval);
            return {
                cancel: function() {
                    canceled = !0;
                    observer.disconnect();
                    window.removeEventListener("resize", check);
                    timeout.cancel();
                }
            };
        }
        function isShadowElement(element) {
            for (;element.parentNode; ) element = element.parentNode;
            return "[object ShadowRoot]" === element.toString();
        }
        function insertShadowSlot(element) {
            var shadowHost = function(element) {
                var shadowRoot = function(element) {
                    for (;element.parentNode; ) element = element.parentNode;
                    if (isShadowElement(element)) return element;
                }(element);
                if (shadowRoot.host) return shadowRoot.host;
            }(element);
            if (!shadowHost) throw new Error("Element is not in shadow dom");
            if (isShadowElement(shadowHost)) throw new Error("Host element is also in shadow dom");
            var slotName = "shadow-slot-" + uniqueID();
            var slot = document.createElement("slot");
            slot.setAttribute("name", slotName);
            element.appendChild(slot);
            var slotProvider = document.createElement("div");
            slotProvider.setAttribute("slot", slotName);
            shadowHost.appendChild(slotProvider);
            return slotProvider;
        }
        var currentScript = "undefined" != typeof document ? document.currentScript : null;
        var getCurrentScript = memoize((function() {
            if (currentScript) return currentScript;
            if (currentScript = function() {
                try {
                    var stack = function() {
                        try {
                            throw new Error("_");
                        } catch (err) {
                            return err.stack || "";
                        }
                    }();
                    var stackDetails = /.*at [^(]*\((.*):(.+):(.+)\)$/gi.exec(stack);
                    var scriptLocation = stackDetails && stackDetails[1];
                    if (!scriptLocation) return;
                    for (var _i22 = 0, _Array$prototype$slic2 = [].slice.call(document.getElementsByTagName("script")).reverse(); _i22 < _Array$prototype$slic2.length; _i22++) {
                        var script = _Array$prototype$slic2[_i22];
                        if (script.src && script.src === scriptLocation) return script;
                    }
                } catch (err) {}
            }()) return currentScript;
            throw new Error("Can not determine current script");
        }));
        var currentUID = uniqueID();
        memoize((function() {
            var script;
            try {
                script = getCurrentScript();
            } catch (err) {
                return currentUID;
            }
            var uid = script.getAttribute("data-uid");
            if (uid && "string" == typeof uid) return uid;
            if ((uid = script.getAttribute("data-uid-auto")) && "string" == typeof uid) return uid;
            uid = uniqueID();
            script.setAttribute("data-uid-auto", uid);
            return uid;
        }));
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "p", (function() {
            return stringifyError;
        }));
        __webpack_require__.d(__webpack_exports__, "l", (function() {
            return once;
        }));
        __webpack_require__.d(__webpack_exports__, "j", (function() {
            return noop;
        }));
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return addEventListener;
        }));
        __webpack_require__.d(__webpack_exports__, "q", (function() {
            return uniqueID;
        }));
        __webpack_require__.d(__webpack_exports__, "m", (function() {
            return safeInterval;
        }));
        __webpack_require__.d(__webpack_exports__, "e", (function() {
            return isRegex;
        }));
        __webpack_require__.d(__webpack_exports__, "r", (function() {
            return util_weakMapMemoize;
        }));
        __webpack_require__.d(__webpack_exports__, "c", (function() {
            return getWindowType;
        }));
        __webpack_require__.d(__webpack_exports__, "g", (function() {
            return jsonStringify;
        }));
        __webpack_require__.d(__webpack_exports__, "f", (function() {
            return jsonParse;
        }));
        __webpack_require__.d(__webpack_exports__, "i", (function() {
            return needsGlobalMessagingForBrowser;
        }));
        __webpack_require__.d(__webpack_exports__, "h", (function() {
            return listenForMethods;
        }));
        __webpack_require__.d(__webpack_exports__, "o", (function() {
            return serializeMethods;
        }));
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return deserializeMethods;
        }));
        __webpack_require__.d(__webpack_exports__, "n", (function() {
            return sayHello;
        }));
        __webpack_require__.d(__webpack_exports__, "d", (function() {
            return initOnReady;
        }));
        __webpack_require__.d(__webpack_exports__, "k", (function() {
            return onChildWindowReady;
        }));
        var src = __webpack_require__(17);
        var cross_domain_utils_src = __webpack_require__(7);
        var conf = __webpack_require__(10);
        function stringifyError(err, level) {
            void 0 === level && (level = 1);
            if (level >= 3) return "stringifyError stack overflow";
            try {
                if (!err) return "<unknown error: " + {}.toString.call(err) + ">";
                if ("string" == typeof err) return err;
                if (err instanceof Error) {
                    var stack = err && err.stack;
                    var message = err && err.message;
                    if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + "\n" + stack;
                    if (stack) return stack;
                    if (message) return message;
                }
                return "function" == typeof err.toString ? err.toString() : {}.toString.call(err);
            } catch (newErr) {
                return "Error while stringifying error: " + stringifyError(newErr, level + 1);
            }
        }
        var once = function(method) {
            if (!method) return method;
            var called = !1;
            return function() {
                if (!called) {
                    called = !0;
                    return method.apply(this, arguments);
                }
            };
        };
        function noop() {}
        function addEventListener(obj, event, handler) {
            obj.addEventListener ? obj.addEventListener(event, handler) : obj.attachEvent("on" + event, handler);
            return {
                cancel: function() {
                    obj.removeEventListener ? obj.removeEventListener(event, handler) : obj.detachEvent("on" + event, handler);
                }
            };
        }
        function uniqueID() {
            var chars = "0123456789abcdef";
            return "xxxxxxxxxx".replace(/./g, (function() {
                return chars.charAt(Math.floor(Math.random() * chars.length));
            }));
        }
        function replaceObject(item, callback, depth) {
            void 0 === depth && (depth = 1);
            if (depth >= 100) throw new Error("Self-referential object passed, or object contained too many layers");
            var newobj;
            if ("object" != typeof item || null === item || Array.isArray(item)) {
                if (!Array.isArray(item)) throw new TypeError("Invalid type: " + typeof item);
                newobj = [];
            } else newobj = {};
            !function(item, callback) {
                Array.isArray(item) ? function(item, callback) {
                    for (var i = 0; i < item.length; i++) callback(item[i], i);
                }(item, callback) : "object" == typeof item && null !== item && function(item, callback) {
                    for (var _key in item) item.hasOwnProperty(_key) && callback(item[_key], _key);
                }(item, callback);
            }(item, (function(childItem, key) {
                var result = callback(childItem, key);
                newobj[key] = void 0 !== result ? result : "object" == typeof childItem && null !== childItem ? replaceObject(childItem, callback, depth + 1) : childItem;
            }));
            return newobj;
        }
        function safeInterval(method, time) {
            var timeout;
            timeout = setTimeout((function runInterval() {
                timeout = setTimeout(runInterval, time);
                method.call();
            }), time);
            return {
                cancel: function() {
                    clearTimeout(timeout);
                }
            };
        }
        function isRegex(item) {
            return "[object RegExp]" === {}.toString.call(item);
        }
        var util_weakMapMemoize = function(method) {
            var weakmap = new src.a;
            return function(arg) {
                var result = weakmap.get(arg);
                if (void 0 !== result) return result;
                void 0 !== (result = method.call(this, arg)) && weakmap.set(arg, result);
                return result;
            };
        };
        function getWindowType() {
            return Object(cross_domain_utils_src.u)() ? conf.b.WINDOW_TYPES.POPUP : Object(cross_domain_utils_src.s)() ? conf.b.WINDOW_TYPES.IFRAME : conf.b.WINDOW_TYPES.FULLPAGE;
        }
        function jsonStringify(obj, replacer, indent) {
            var objectToJSON;
            var arrayToJSON;
            try {
                if ("{}" !== JSON.stringify({})) {
                    objectToJSON = {}.toJSON;
                    delete Object.prototype.toJSON;
                }
                if ("{}" !== JSON.stringify({})) throw new Error("Can not correctly serialize JSON objects");
                if ("[]" !== JSON.stringify([])) {
                    arrayToJSON = [].toJSON;
                    delete Array.prototype.toJSON;
                }
                if ("[]" !== JSON.stringify([])) throw new Error("Can not correctly serialize JSON objects");
            } catch (err) {
                throw new Error("Can not repair JSON.stringify: " + err.message);
            }
            var result = JSON.stringify.call(this, obj, replacer, indent);
            try {
                objectToJSON && (Object.prototype.toJSON = objectToJSON);
                arrayToJSON && (Array.prototype.toJSON = arrayToJSON);
            } catch (err) {
                throw new Error("Can not repair JSON.stringify: " + err.message);
            }
            return result;
        }
        function jsonParse(item) {
            return JSON.parse(item);
        }
        function needsGlobalMessagingForBrowser() {
            return !!Object(cross_domain_utils_src.p)(window).match(/MSIE|trident|edge\/12|edge\/13/i) || !conf.a.ALLOW_POSTMESSAGE_POPUP;
        }
        var zalgo_promise_src = __webpack_require__(2);
        var global = __webpack_require__(9);
        global.a.methods = global.a.methods || new src.a;
        var listenForMethods = once((function() {
            global.a.on(conf.b.POST_MESSAGE_NAMES.METHOD, {
                origin: conf.b.WILDCARD
            }, (function(_ref) {
                var source = _ref.source, origin = _ref.origin, data = _ref.data;
                var methods = global.a.methods.get(source);
                if (!methods) throw new Error("Could not find any methods this window has privileges to call");
                var meth = methods[data.id];
                if (!meth) throw new Error("Could not find method with id: " + data.id);
                if (!Object(cross_domain_utils_src.B)(meth.domain, origin)) throw new Error("Method domain " + meth.domain + " does not match origin " + origin);
                return zalgo_promise_src.a.try((function() {
                    return meth.method.apply({
                        source: source,
                        origin: origin,
                        data: data
                    }, data.args);
                })).then((function(result) {
                    return {
                        result: result,
                        id: data.id,
                        name: data.name
                    };
                }));
            }));
        }));
        function isSerialized(item, type) {
            return "object" == typeof item && null !== item && item.__type__ === type;
        }
        function serializeMethod(destination, domain, method, name) {
            var id = uniqueID();
            var methods = global.a.methods.get(destination);
            methods || global.a.methods.set(destination, methods = {});
            methods[id] = {
                domain: domain,
                method: method
            };
            return {
                __type__: conf.b.SERIALIZATION_TYPES.METHOD,
                __id__: id,
                __name__: name
            };
        }
        function serializeMethods(destination, domain, obj) {
            return replaceObject({
                obj: obj
            }, (function(item, key) {
                return "function" == typeof item ? serializeMethod(destination, domain, item, key.toString()) : item instanceof Error ? {
                    __type__: conf.b.SERIALIZATION_TYPES.ERROR,
                    __message__: stringifyError(err = item),
                    __code__: err.code
                } : window.Promise && item instanceof window.Promise ? function(destination, domain, promise, name) {
                    return {
                        __type__: conf.b.SERIALIZATION_TYPES.PROMISE,
                        __then__: serializeMethod(destination, domain, (function(resolve, reject) {
                            return promise.then(resolve, reject);
                        }), name + ".then")
                    };
                }(destination, domain, item, key.toString()) : zalgo_promise_src.a.isPromise(item) ? function(destination, domain, promise, name) {
                    return {
                        __type__: conf.b.SERIALIZATION_TYPES.ZALGO_PROMISE,
                        __then__: serializeMethod(destination, domain, (function(resolve, reject) {
                            return promise.then(resolve, reject);
                        }), name + ".then")
                    };
                }(destination, domain, item, key.toString()) : isRegex(item) ? {
                    __type__: conf.b.SERIALIZATION_TYPES.REGEX,
                    __source__: item.source
                } : void 0;
                var err;
            })).obj;
        }
        function deserializeMethod(source, origin, obj) {
            function wrapper() {
                var args = [].slice.call(arguments);
                return global.a.send(source, conf.b.POST_MESSAGE_NAMES.METHOD, {
                    id: obj.__id__,
                    name: obj.__name__,
                    args: args
                }, {
                    domain: origin,
                    timeout: -1
                }).then((function(_ref2) {
                    return _ref2.data.result;
                }), (function(err) {
                    throw err;
                }));
            }
            wrapper.__name__ = obj.__name__;
            wrapper.__xdomain__ = !0;
            wrapper.source = source;
            wrapper.origin = origin;
            return wrapper;
        }
        function deserializeZalgoPromise(source, origin, prom) {
            return new zalgo_promise_src.a((function(resolve, reject) {
                return deserializeMethod(source, origin, prom.__then__)(resolve, reject);
            }));
        }
        function deserializeMethods(source, origin, obj) {
            return replaceObject({
                obj: obj
            }, (function(item) {
                if ("object" == typeof item && null !== item) return isSerialized(item, conf.b.SERIALIZATION_TYPES.METHOD) ? deserializeMethod(source, origin, item) : isSerialized(item, conf.b.SERIALIZATION_TYPES.ERROR) ? function(source, origin, obj) {
                    var err = new Error(obj.__message__);
                    obj.__code__ && (err.code = obj.__code__);
                    return err;
                }(0, 0, item) : isSerialized(item, conf.b.SERIALIZATION_TYPES.PROMISE) ? function(source, origin, prom) {
                    return window.Promise ? new window.Promise((function(resolve, reject) {
                        return deserializeMethod(source, origin, prom.__then__)(resolve, reject);
                    })) : deserializeZalgoPromise(source, origin, prom);
                }(source, origin, item) : isSerialized(item, conf.b.SERIALIZATION_TYPES.ZALGO_PROMISE) ? deserializeZalgoPromise(source, origin, item) : isSerialized(item, conf.b.SERIALIZATION_TYPES.REGEX) ? function(source, origin, item) {
                    return new RegExp(item.__source__);
                }(0, 0, item) : void 0;
            })).obj;
        }
        global.a.readyPromises = global.a.readyPromises || new src.a;
        function sayHello(win) {
            return global.a.send(win, conf.b.POST_MESSAGE_NAMES.HELLO, {}, {
                domain: conf.b.WILDCARD,
                timeout: -1
            }).then((function(_ref2) {
                return {
                    origin: _ref2.origin
                };
            }));
        }
        function initOnReady() {
            handler = function(_ref3) {
                var source = _ref3.source, origin = _ref3.origin;
                var promise = global.a.readyPromises.get(source) || new zalgo_promise_src.a;
                promise.resolve({
                    origin: origin
                });
                global.a.readyPromises.set(source, promise);
            }, global.a.on(conf.b.POST_MESSAGE_NAMES.HELLO, {
                domain: conf.b.WILDCARD
            }, (function(_ref) {
                return handler({
                    source: _ref.source,
                    origin: _ref.origin
                });
            }));
            var handler;
            var parent = Object(cross_domain_utils_src.f)();
            parent && sayHello(parent).catch(noop);
        }
        function onChildWindowReady(win, timeout, name) {
            void 0 === timeout && (timeout = 5e3);
            void 0 === name && (name = "Window");
            var promise = global.a.readyPromises.get(win);
            if (promise) return promise;
            promise = new zalgo_promise_src.a;
            global.a.readyPromises.set(win, promise);
            -1 !== timeout && setTimeout((function() {
                return promise.reject(new Error(name + " did not load after " + timeout + "ms"));
            }), timeout);
            return promise;
        }
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return Checkout;
        }));
        var esm_extends = __webpack_require__(11);
        var src = __webpack_require__(2);
        var beaver_logger_client = __webpack_require__(5);
        var zoid_src = __webpack_require__(20);
        var belter_src = __webpack_require__(14);
        var lib = __webpack_require__(3);
        var config = __webpack_require__(4);
        var constants = __webpack_require__(0);
        var post_robot_src = __webpack_require__(13);
        function match(str, pattern) {
            var regmatch = str.match(pattern);
            if (regmatch) return regmatch[1];
        }
        var onAuthorize;
        Object(lib.H)() && Object(post_robot_src.on)("onLegacyPaymentAuthorize", {
            window: window.parent
        }, (function(_ref) {
            onAuthorize = _ref.data.method;
        }));
        function onLegacyPaymentAuthorize(method) {
            onAuthorize = method;
            return src.a.try((function() {
                if (post_robot_src.bridge && !Object(lib.H)()) return post_robot_src.bridge.openBridge(Object(lib.g)(config.a.postBridgeUrl, {
                    version: Object(lib.u)()
                }), config.a.postBridgeDomain).then((function(postBridge) {
                    return Object(post_robot_src.send)(postBridge, "onLegacyPaymentAuthorize", {
                        method: method
                    }, {
                        domain: config.a.paypalDomain
                    }).then(lib.K);
                }));
            }));
        }
        window.onLegacyPaymentAuthorize = onLegacyPaymentAuthorize;
        window.watchForLegacyFallback = function(win) {
            var interval = setInterval((function() {
                try {
                    if (-1 === win.document.body.innerHTML.indexOf("merchantpaymentweb") && -1 === win.document.body.innerHTML.indexOf("wapapp") || win.ppxoWatching || win.closed) return;
                    win.ppxoWatching = !0;
                    var XMLHttpRequestsend = win.XMLHttpRequest.prototype.send;
                    win.XMLHttpRequest.prototype.send = function() {
                        if (this._patched) return XMLHttpRequestsend.apply(this, arguments);
                        this._patched = !0;
                        var self = this;
                        var onload = this.onload;
                        function listener() {
                            if (self.readyState === self.DONE && 200 === self.status && self.responseText) try {
                                var response = JSON.parse(self.responseText.replace("while (1);", ""));
                                if ("redirect" === response.type && response.url && onAuthorize) {
                                    var url = response.url;
                                    clearInterval(interval);
                                    win.close();
                                    onAuthorize({
                                        returnUrl: url,
                                        paymentToken: match(url, /token=((EC-)?[A-Z0-9]+)/),
                                        billingToken: match(url, /ba_token=((BA-)?[A-Z0-9]+)/),
                                        payerID: match(url, /PayerID=([A-Z0-9]+)/),
                                        paymentID: match(url, /paymentId=((PAY-)?[A-Z0-9]+)/)
                                    });
                                    onAuthorize = null;
                                    win.PAYPAL && win.PAYPAL.Checkout && win.PAYPAL.Checkout.XhrResponse && win.PAYPAL.Checkout.XhrResponse.RESPONSE_TYPES && Object.defineProperty(win.PAYPAL.Checkout.XhrResponse.RESPONSE_TYPES, "Redirect", {
                                        value: Math.random().toString()
                                    });
                                    win.mob && win.mob.Xhr && win.mob.Xhr.prototype._xhrOnReady && (win.mob.Xhr.prototype._xhrOnReady = lib.K);
                                }
                            } catch (err) {
                                return;
                            }
                            if (onload) return onload.apply(this, arguments);
                        }
                        if (this.onload !== listener) try {
                            delete this.onload;
                            this.addEventListener("load", listener);
                            Object.defineProperty(this, "onload", {
                                get: function() {
                                    return listener;
                                },
                                set: function(handler) {
                                    onload = handler;
                                }
                            });
                        } catch (err) {}
                        return XMLHttpRequestsend.apply(this, arguments);
                    };
                } catch (err) {}
            }), 100);
        };
        window.onLegacyFallback = window.watchForLegacyFallback;
        var integrations = __webpack_require__(24);
        var template = __webpack_require__(27);
        var Checkout = Object(zoid_src.c)({
            tag: "paypal-checkout",
            name: "ppcheckout",
            scrolling: !0,
            buildUrl: function(props) {
                var env = props.env || config.a.env;
                if (!props.payment) throw new Error("Can not build url without payment prop");
                return props.payment().then((function(token) {
                    if (!token) throw new Error("Expected payment id or token to be passed, got " + token);
                    return Object(integrations.c)(env, props.fundingSource, token);
                }));
            },
            get unsafeRenderTo() {
                return config.a.env === constants.t.LOCAL;
            },
            get domain() {
                return Object(esm_extends.a)({}, config.a.paypalDomains);
            },
            get bridgeUrl() {
                return config.a.metaFrameUrls;
            },
            get bridgeDomain() {
                return config.a.paypalDomains;
            },
            contexts: {
                iframe: !Object(lib.X)(),
                popup: !0
            },
            get version() {
                return Object(lib.u)();
            },
            validate: function() {
                Object(lib.C)() || Object(beaver_logger_client.q)("checkout_render_ineligible");
            },
            prerenderTemplate: template.a,
            containerTemplate: template.b,
            props: {
                sessionID: {
                    type: "string",
                    required: !1,
                    def: function() {
                        return Object(lib.v)();
                    },
                    queryParam: !0
                },
                buttonSessionID: {
                    type: "string",
                    required: !1,
                    def: function() {
                        return Object(lib.j)();
                    },
                    queryParam: !0
                },
                env: {
                    type: "string",
                    required: !1,
                    queryParam: !0,
                    def: function() {
                        return config.a.env;
                    },
                    validate: function(env) {
                        if (!config.a.paypalUrls[env]) throw new Error("Invalid env: " + env);
                    }
                },
                meta: {
                    type: "object",
                    required: !1,
                    def: function() {
                        return window.xprops && window.xprops.meta || {};
                    }
                },
                stage: {
                    type: "string",
                    required: !1,
                    queryParam: !0,
                    def: function(props) {
                        var env = props.env || config.a.env;
                        if (env === constants.t.STAGE || env === constants.t.LOCAL) return config.a.stage;
                    }
                },
                stageUrl: {
                    type: "string",
                    required: !1,
                    queryParam: !0,
                    def: function(props) {
                        var env = props.env || config.a.env;
                        if (env === constants.t.STAGE || env === constants.t.LOCAL) return config.a.stageUrl;
                    }
                },
                authCode: {
                    type: "string",
                    required: !1,
                    def: function() {
                        return config.a.authCode;
                    },
                    queryParam: "code"
                },
                localhostUrl: {
                    type: "string",
                    required: !1,
                    queryParam: !0,
                    def: function(props) {
                        if ((props.env || config.a.env) === constants.t.LOCAL) return config.a.localhostUrl;
                    }
                },
                checkoutUri: {
                    type: "string",
                    required: !1,
                    queryParam: !0,
                    def: function() {
                        return config.a.checkoutUri;
                    }
                },
                locale: {
                    type: "string",
                    required: !1,
                    queryParam: "locale.x",
                    allowDelegate: !0,
                    def: function() {
                        var _getBrowserLocale = Object(lib.i)();
                        return _getBrowserLocale.lang + "_" + _getBrowserLocale.country;
                    }
                },
                client: {
                    type: "object",
                    required: !1,
                    def: function() {
                        return {};
                    },
                    sendToChild: !1,
                    validate: function(client, props) {
                        var env = props.env || config.a.env;
                        if (!client[env]) throw new Error("Client ID not found for env: " + env);
                        if (client[env].match(/^(.)\1+$/)) throw new Error("Invalid client ID: " + client[env]);
                    }
                },
                payment: {
                    type: "function",
                    required: !1,
                    memoize: !0,
                    promisify: !0,
                    queryParam: function(payment) {
                        return payment().then((function(token) {
                            return Object(integrations.b)(token);
                        }));
                    },
                    queryValue: function(payment) {
                        return payment();
                    },
                    childDecorate: function(payment) {
                        var token = Object(lib.q)("token");
                        return token ? Object(lib.J)((function() {
                            return src.a.resolve(token);
                        })) : payment;
                    },
                    validate: function(payment, props) {
                        if (!payment && !props.url) throw new Error("Expected either props.payment or props.url to be passed");
                    },
                    alias: "billingAgreement"
                },
                style: {
                    type: "object",
                    required: !1,
                    allowDelegate: !0,
                    def: function() {
                        return {};
                    },
                    validate: function(style) {
                        if (style.overlayColor && style.overlayColor !== constants.q.BLACK && style.overlayColor !== constants.q.WHITE) throw new Error("Invalid background color: " + style.overlayColor);
                    }
                },
                commit: {
                    type: "boolean",
                    required: !1
                },
                experience: {
                    type: "object",
                    required: !1,
                    def: function() {
                        return {};
                    }
                },
                fundingSource: {
                    type: "string",
                    required: !1,
                    queryParam: !0
                },
                fundingOffered: {
                    type: "object",
                    required: !1,
                    queryParam: !0,
                    def: function() {
                        return [].slice.call(document.querySelectorAll("[" + constants.c.FUNDING_SOURCE + "]")).map((function(el) {
                            return el.getAttribute(constants.c.FUNDING_SOURCE);
                        }));
                    },
                    queryValue: function(val) {
                        return val.join(",");
                    }
                },
                onAuthorize: {
                    type: "function",
                    required: !0,
                    once: !0,
                    decorate: function(original) {
                        if (original) return function(data, actions) {
                            var _this = this;
                            void 0 === actions && (actions = {});
                            data && !data.intent && Object(beaver_logger_client.q)("checkout_authorize_no_intent", {
                                paymentID: data.paymentID,
                                token: data.paymentToken
                            });
                            var close = function() {
                                return src.a.try((function() {
                                    if (actions.close) return actions.close();
                                })).then((function() {
                                    return _this.closeComponent();
                                }));
                            };
                            var redirect = function(win, url) {
                                return src.a.all([ Object(lib.Q)(win || window.top, url || data.returnUrl), close() ]);
                            };
                            return src.a.try((function() {
                                try {
                                    var isButton = -1 !== window.location.href.indexOf("/smart/button");
                                    var isGuest = -1 !== _this.window.location.href.indexOf("/webapps/xoonboarding");
                                    if (isButton && isGuest) return Object(lib.S)({
                                        win: _this.window,
                                        method: "get",
                                        url: "/webapps/xoonboarding/api/auth"
                                    }).then((function(result) {
                                        result && result.data && result.data.access_token && (window.$Api && window.$Api.addHeader && window.$Api.addHeader("x-paypal-internal-euat", result.data.access_token));
                                    })).catch((function() {}));
                                } catch (err) {}
                            })).then((function() {
                                return original.call(_this, data, Object(esm_extends.a)({}, actions, {
                                    close: close,
                                    redirect: redirect
                                }));
                            })).catch((function(err) {
                                return _this.error(err);
                            })).finally((function() {
                                return _this.close();
                            }));
                        };
                    }
                },
                onShippingChange: {
                    type: "function",
                    required: !1
                },
                onAuth: {
                    type: "function",
                    required: !1,
                    sameDomain: !0,
                    childDecorate: function(original) {
                        if (original) return function(data) {
                            "string" == typeof data && (data = {
                                accessToken: data
                            });
                            return original(data);
                        };
                    }
                },
                accessToken: {
                    type: "function",
                    required: !1
                },
                onCancel: {
                    type: "function",
                    required: !1,
                    once: !0,
                    noop: !0,
                    decorate: function(original) {
                        return function(data, actions) {
                            var _this2 = this;
                            void 0 === actions && (actions = {});
                            var close = function() {
                                return src.a.try((function() {
                                    if (actions.close) return actions.close();
                                })).then((function() {
                                    return _this2.closeComponent();
                                }));
                            };
                            var redirect = function(win, url) {
                                return src.a.all([ Object(lib.Q)(win || window.top, url || data.cancelUrl), close() ]);
                            };
                            return src.a.try((function() {
                                return original.call(_this2, data, Object(esm_extends.a)({}, actions, {
                                    close: close,
                                    redirect: redirect
                                }));
                            })).finally((function() {
                                _this2.close();
                            }));
                        };
                    }
                },
                init: {
                    type: "function",
                    required: !1,
                    once: !0,
                    noop: !0,
                    decorate: function(original) {
                        return function(data) {
                            var _track;
                            Object(beaver_logger_client.k)("checkout_init");
                            Object(beaver_logger_client.p)(((_track = {})[constants.u.KEY.STATE] = constants.u.STATE.CHECKOUT, 
                            _track[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.CHECKOUT_INIT, _track[constants.u.KEY.CONTEXT_TYPE] = constants.u.CONTEXT_TYPE[constants.C.EC_TOKEN], 
                            _track[constants.u.KEY.TOKEN] = data.paymentToken, _track[constants.u.KEY.SELLER_ID] = data.merchantID, 
                            _track[constants.u.KEY.CONTEXT_ID] = data.paymentToken, _track));
                            Object(beaver_logger_client.h)();
                            this.paymentToken = data.paymentToken;
                            this.cancelUrl = data.cancelUrl;
                            return original.apply(this, arguments);
                        };
                    }
                },
                onClose: {
                    type: "function",
                    required: !1,
                    once: !0,
                    promisify: !0,
                    noop: !0,
                    decorate: function(original) {
                        return function(reason) {
                            var onClose = original.apply(this, arguments);
                            var CLOSE_REASONS = zoid_src.a.CLOSE_REASONS;
                            var shouldCancel = this.props.onCancel && -1 !== [ CLOSE_REASONS.CLOSE_DETECTED, CLOSE_REASONS.USER_CLOSED ].indexOf(reason);
                            if (shouldCancel) {
                                Object(beaver_logger_client.k)("close_trigger_cancel");
                                return this.props.onCancel({
                                    paymentToken: this.paymentToken,
                                    cancelUrl: this.cancelUrl
                                }).then((function() {
                                    return onClose;
                                }));
                            }
                            return onClose;
                        };
                    }
                },
                onError: {
                    type: "function",
                    required: !1,
                    promisify: !0,
                    noop: !0,
                    once: !0
                },
                fallback: {
                    type: "function",
                    required: !1,
                    once: !0,
                    def: function() {
                        return function(url) {
                            Object(beaver_logger_client.q)("fallback", {
                                url: url
                            });
                            if (Object(lib.m)("allow_full_page_fallback")) {
                                window.top.location = url;
                                return this.close();
                            }
                            return onLegacyPaymentAuthorize(this.props.onAuthorize);
                        };
                    }
                },
                logLevel: {
                    type: "string",
                    required: !1,
                    get value() {
                        return config.a.logLevel;
                    }
                },
                test: {
                    type: "object",
                    required: !1,
                    def: function() {
                        return window.__test__ || {
                            action: "checkout"
                        };
                    }
                },
                sdkMeta: {
                    type: "string",
                    queryParam: !0,
                    sendToChild: !1,
                    def: function() {
                        return Object(belter_src.a)(JSON.stringify({
                            url: Object(lib.l)()
                        }));
                    }
                }
            },
            get dimensions() {
                return Object(lib.A)() ? {
                    width: "100%",
                    height: "590px"
                } : {
                    width: "500px",
                    height: "590px"
                };
            }
        });
        if (Checkout.isChild() && Checkout.xchild && Checkout.xprops) {
            Checkout.xprops && Checkout.xprops.logLevel && Object(lib.U)(Checkout.xprops.logLevel);
            Checkout.xchild.onProps((function(xprops) {
                Object(lib.O)(xprops, "onAuthorize", (function(_ref) {
                    var callOriginal = _ref.callOriginal, data = _ref.args[0];
                    if (data && !data.intent) {
                        Object(beaver_logger_client.q)("hermes_authorize_no_intent", {
                            paymentID: data.paymentID,
                            token: data.paymentToken
                        });
                        try {
                            var intent = window.injector.get("$CheckoutCartModel").instance(data.paymentToken).payment_action;
                            Object(beaver_logger_client.q)("hermes_intent", {
                                paymentID: data.paymentID,
                                token: data.paymentToken,
                                intent: intent
                            });
                        } catch (err) {}
                        Object(beaver_logger_client.j)();
                    }
                    return callOriginal();
                }));
            }));
        }
        Object(lib.O)(Checkout, "init", (function(_ref2) {
            var _ref2$args = _ref2.args;
            return _ref2.original.call(_ref2.context, _ref2$args[0], _ref2$args[1], "body");
        }));
        Object(lib.O)(Checkout, "render", (function(_ref3) {
            return _ref3.original.call(_ref3.context, _ref3.args[0], "body");
        }));
        Object(lib.O)(Checkout, "renderTo", (function(_ref4) {
            var _ref4$args = _ref4.args, win = _ref4$args[0], props = _ref4$args[1], original = _ref4.original, context = _ref4.context;
            var payment = props.payment();
            props.payment = function() {
                return payment;
            };
            return original.call(context, win, props, "body").catch((function(err) {
                if (err instanceof zoid_src.b && Object(lib.H)()) {
                    Checkout.contexts.iframe = !0;
                    return original.call(context, win, props, "body");
                }
                throw err;
            }));
        }));
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return weakmap_CrossDomainSafeWeakMap;
        }));
        var src = __webpack_require__(7);
        function safeIndexOf(collection, item) {
            for (var i = 0; i < collection.length; i++) try {
                if (collection[i] === item) return i;
            } catch (err) {}
            return -1;
        }
        var weakmap_CrossDomainSafeWeakMap = function() {
            function CrossDomainSafeWeakMap() {
                this.name = void 0;
                this.weakmap = void 0;
                this.keys = void 0;
                this.values = void 0;
                this.name = "__weakmap_" + (1e9 * Math.random() >>> 0) + "__";
                if (function() {
                    if ("undefined" == typeof WeakMap) return !1;
                    if (void 0 === Object.freeze) return !1;
                    try {
                        var testWeakMap = new WeakMap;
                        var testKey = {};
                        Object.freeze(testKey);
                        testWeakMap.set(testKey, "__testvalue__");
                        return "__testvalue__" === testWeakMap.get(testKey);
                    } catch (err) {
                        return !1;
                    }
                }()) try {
                    this.weakmap = new WeakMap;
                } catch (err) {}
                this.keys = [];
                this.values = [];
            }
            var _proto = CrossDomainSafeWeakMap.prototype;
            _proto._cleanupClosedWindows = function() {
                var weakmap = this.weakmap;
                var keys = this.keys;
                for (var i = 0; i < keys.length; i++) {
                    var value = keys[i];
                    if (Object(src.y)(value) && Object(src.z)(value)) {
                        if (weakmap) try {
                            weakmap.delete(value);
                        } catch (err) {}
                        keys.splice(i, 1);
                        this.values.splice(i, 1);
                        i -= 1;
                    }
                }
            };
            _proto.isSafeToReadWrite = function(key) {
                return !Object(src.y)(key);
            };
            _proto.set = function(key, value) {
                if (!key) throw new Error("WeakMap expected key");
                var weakmap = this.weakmap;
                if (weakmap) try {
                    weakmap.set(key, value);
                } catch (err) {
                    delete this.weakmap;
                }
                if (this.isSafeToReadWrite(key)) try {
                    var name = this.name;
                    var entry = key[name];
                    entry && entry[0] === key ? entry[1] = value : Object.defineProperty(key, name, {
                        value: [ key, value ],
                        writable: !0
                    });
                    return;
                } catch (err) {}
                this._cleanupClosedWindows();
                var keys = this.keys;
                var values = this.values;
                var index = safeIndexOf(keys, key);
                if (-1 === index) {
                    keys.push(key);
                    values.push(value);
                } else values[index] = value;
            };
            _proto.get = function(key) {
                if (!key) throw new Error("WeakMap expected key");
                var weakmap = this.weakmap;
                if (weakmap) try {
                    if (weakmap.has(key)) return weakmap.get(key);
                } catch (err) {
                    delete this.weakmap;
                }
                if (this.isSafeToReadWrite(key)) try {
                    var entry = key[this.name];
                    return entry && entry[0] === key ? entry[1] : void 0;
                } catch (err) {}
                this._cleanupClosedWindows();
                var index = safeIndexOf(this.keys, key);
                if (-1 !== index) return this.values[index];
            };
            _proto.delete = function(key) {
                if (!key) throw new Error("WeakMap expected key");
                var weakmap = this.weakmap;
                if (weakmap) try {
                    weakmap.delete(key);
                } catch (err) {
                    delete this.weakmap;
                }
                if (this.isSafeToReadWrite(key)) try {
                    var entry = key[this.name];
                    entry && entry[0] === key && (entry[0] = entry[1] = void 0);
                } catch (err) {}
                this._cleanupClosedWindows();
                var keys = this.keys;
                var index = safeIndexOf(keys, key);
                if (-1 !== index) {
                    keys.splice(index, 1);
                    this.values.splice(index, 1);
                }
            };
            _proto.has = function(key) {
                if (!key) throw new Error("WeakMap expected key");
                var weakmap = this.weakmap;
                if (weakmap) try {
                    if (weakmap.has(key)) return !0;
                } catch (err) {
                    delete this.weakmap;
                }
                if (this.isSafeToReadWrite(key)) try {
                    var entry = key[this.name];
                    return !(!entry || entry[0] !== key);
                } catch (err) {}
                this._cleanupClosedWindows();
                return -1 !== safeIndexOf(this.keys, key);
            };
            _proto.getOrSet = function(key, getter) {
                if (this.has(key)) return this.get(key);
                var value = getter();
                this.set(key, value);
                return value;
            };
            return CrossDomainSafeWeakMap;
        }();
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return fundingLogos;
        }));
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return cardLogos;
        }));
        var constants = __webpack_require__(0);
        var jsx = __webpack_require__(1);
        var _P24_LOGO_COLORS;
        var P24_LOGO_COLORS = ((_P24_LOGO_COLORS = {})[constants.i.WHITE] = {
            primary: "#ffffff",
            secondary: "#ffffff"
        }, _P24_LOGO_COLORS[constants.i.ANY] = {
            primary: "#d03238",
            secondary: "#b3b1b1"
        }, _P24_LOGO_COLORS[constants.i.BLACK] = {
            primary: "#d03238",
            secondary: "#b3b1b1"
        }, _P24_LOGO_COLORS);
        var _SOFORT_LOGO_COLORS;
        var SOFORT_LOGO_COLORS = ((_SOFORT_LOGO_COLORS = {})[constants.i.WHITE] = {
            primary: "#2C2E2F",
            secondary: "#ffffff"
        }, _SOFORT_LOGO_COLORS[constants.i.ANY] = {
            primary: "#EB6F93",
            secondary: "#FFFFFF"
        }, _SOFORT_LOGO_COLORS[constants.i.BLACK] = {
            primary: "#EB6F93",
            secondary: "#FFFFFF"
        }, _SOFORT_LOGO_COLORS);
        var _IDEAL_LOGO_COLORS;
        var IDEAL_LOGO_COLORS = ((_IDEAL_LOGO_COLORS = {})[constants.i.WHITE] = {
            primary: "#ffffff",
            secondary: "#ffffff",
            tertiary: "#2C2E2F"
        }, _IDEAL_LOGO_COLORS[constants.i.ANY] = {
            primary: "#000000",
            secondary: "#FFFFFF",
            tertiary: "#CD0067"
        }, _IDEAL_LOGO_COLORS[constants.i.BLACK] = {
            primary: "#000000",
            secondary: "#FFFFFF",
            tertiary: "#CD0067"
        }, _IDEAL_LOGO_COLORS);
        var _GIROPAY_LOGO_COLORS;
        var GIROPAY_LOGO_COLORS = ((_GIROPAY_LOGO_COLORS = {})[constants.i.WHITE] = {
            primary: "#ffffff",
            secondary: "#000000",
            tertiary: "#2C2E2F"
        }, _GIROPAY_LOGO_COLORS[constants.i.ANY] = {
            primary: "#FFFFFF",
            secondary: "#003A7D",
            tertiary: "#ED1C24"
        }, _GIROPAY_LOGO_COLORS[constants.i.BLACK] = {
            primary: "#FFFFFF",
            secondary: "#003A7D",
            tertiary: "#ED1C24"
        }, _GIROPAY_LOGO_COLORS);
        var _EPS_LOGO_COLORS;
        var EPS_LOGO_COLORS = ((_EPS_LOGO_COLORS = {})[constants.i.WHITE] = {
            primary: "#ffffff",
            secondary: "#ffffff",
            tertiary: "#ffffff"
        }, _EPS_LOGO_COLORS[constants.i.ANY] = {
            primary: "#71706F",
            secondary: "#FFFFFF",
            tertiary: "#C8036F"
        }, _EPS_LOGO_COLORS[constants.i.BLACK] = {
            primary: "#71706F",
            secondary: "#FFFFFF",
            tertiary: "#C8036F"
        }, _EPS_LOGO_COLORS);
        var _MYBANK_LOGO_COLORS;
        var MYBANK_LOGO_COLORS = ((_MYBANK_LOGO_COLORS = {})[constants.i.WHITE] = {
            primary: "#ffffff",
            secondary: "#ffffff",
            tertiary: "#ffffff"
        }, _MYBANK_LOGO_COLORS[constants.i.ANY] = {
            primary: "#1A4B67",
            secondary: "#00C0EE",
            tertiary: "#FFFFFF"
        }, _MYBANK_LOGO_COLORS[constants.i.BLACK] = {
            primary: "#1A4B67",
            secondary: "#00C0EE",
            tertiary: "#FFFFFF"
        }, _MYBANK_LOGO_COLORS);
        var _BANCONTACT_LOGO_COLO;
        var BANCONTACT_LOGO_COLORS = ((_BANCONTACT_LOGO_COLO = {})[constants.i.WHITE] = {
            primary: "#ffffff",
            secondary: "#ffffff"
        }, _BANCONTACT_LOGO_COLO[constants.i.ANY] = {
            primary: "#1A4B67",
            secondary: "#00C0EE"
        }, _BANCONTACT_LOGO_COLO[constants.i.BLACK] = {
            primary: "#005498",
            secondary: "#FFD800"
        }, _BANCONTACT_LOGO_COLO);
        var _BLIK_LOGO_COLORS;
        var BLIK_LOGO_COLORS = ((_BLIK_LOGO_COLORS = {})[constants.i.WHITE] = {
            primary: "#FFFFFF",
            secondary: "#FFFFFF",
            tertiary: "#000000",
            quaternary: "#000000",
            quinary: "#000000",
            senary: "#000000"
        }, _BLIK_LOGO_COLORS[constants.i.ANY] = {
            primary: "#4D4D4F",
            secondary: "#000000",
            tertiary: "#FF0000",
            quaternary: "#E83E49",
            quinary: "#FF00FF",
            senary: "#FFFFFF"
        }, _BLIK_LOGO_COLORS[constants.i.BLACK] = {
            primary: "#4D4D4F",
            secondary: "#000000",
            tertiary: "#FF0000",
            quaternary: "#E83E49",
            quinary: "#FF00FF",
            senary: "#FFFFFF"
        }, _BLIK_LOGO_COLORS);
        var _MAXIMA_LOGO_COLORS;
        var MAXIMA_LOGO_COLORS = ((_MAXIMA_LOGO_COLORS = {})[constants.i.WHITE] = {
            primary: "#004A91",
            secondary: "#ED1921"
        }, _MAXIMA_LOGO_COLORS[constants.i.ANY] = {
            primary: "#004A91",
            secondary: "#ED1921"
        }, _MAXIMA_LOGO_COLORS[constants.i.BLACK] = {
            primary: "#004A91",
            secondary: "#ED1921"
        }, _MAXIMA_LOGO_COLORS);
        var _BOLETO_LOGO_COLORS;
        var BOLETO_LOGO_COLORS = ((_BOLETO_LOGO_COLORS = {})[constants.i.WHITE] = {
            primary: "#1A1919",
            secondary: "#FFFFFE"
        }, _BOLETO_LOGO_COLORS[constants.i.ANY] = {
            primary: "#1A1919",
            secondary: "#FFFFFE"
        }, _BOLETO_LOGO_COLORS[constants.i.BLACK] = {
            primary: "#1A1919",
            secondary: "#FFFFFE"
        }, _BOLETO_LOGO_COLORS);
        var _OXXO_LOGO_COLORS;
        var OXXO_LOGO_COLORS = ((_OXXO_LOGO_COLORS = {})[constants.i.WHITE] = {
            primary: "#EC1D24",
            secondary: "#EDA42D"
        }, _OXXO_LOGO_COLORS[constants.i.ANY] = {
            primary: "#EC1D24",
            secondary: "#EDA42D"
        }, _OXXO_LOGO_COLORS[constants.i.BLACK] = {
            primary: "#EC1D24",
            secondary: "#EDA42D"
        }, _OXXO_LOGO_COLORS);
        var _MERCADOPAGO_LOGO_COL;
        var MERCADOPAGO_LOGO_COLORS = ((_MERCADOPAGO_LOGO_COL = {})[constants.i.WHITE] = {
            primary: "#FFFFFF",
            secondary: "#000000",
            tertiary: "#FFFFFF",
            quaternary: "#000000"
        }, _MERCADOPAGO_LOGO_COL[constants.i.ANY] = {
            primary: "#2D3277",
            secondary: "#FFFFFF",
            tertiary: "#009EE3",
            quaternary: "#009EE3"
        }, _MERCADOPAGO_LOGO_COL[constants.i.BLACK] = {
            primary: "#2D3277",
            secondary: "#FFFFFF",
            tertiary: "#009EE3",
            quaternary: "#009EE3"
        }, _MERCADOPAGO_LOGO_COL);
        var _PAYPAL_LOGO_COLORS;
        var PAYPAL_LOGO_COLORS = ((_PAYPAL_LOGO_COLORS = {})[constants.i.BLUE] = {
            primary: "#003087",
            secondary: "#009cde"
        }, _PAYPAL_LOGO_COLORS[constants.i.WHITE] = {
            primary: "#ffffff",
            secondary: "#ffffff"
        }, _PAYPAL_LOGO_COLORS[constants.i.BLACK] = {
            primary: "#333030",
            secondary: "#636363"
        }, _PAYPAL_LOGO_COLORS);
        var _CREDIT_LOGO_COLORS;
        var CREDIT_LOGO_COLORS = ((_CREDIT_LOGO_COLORS = {})[constants.i.BLUE] = {
            primary: "#003087",
            secondary: "#009cde"
        }, _CREDIT_LOGO_COLORS[constants.i.WHITE] = {
            primary: "#ffffff",
            secondary: "#ffffff"
        }, _CREDIT_LOGO_COLORS[constants.i.BLACK] = {
            primary: "#333030",
            secondary: "#636363"
        }, _CREDIT_LOGO_COLORS);
        var _BUTTON_LOGO$PP, _BUTTON_LOGO$VENMO, _BUTTON_LOGO$ITAU, _BUTTON_LOGO$ELV, _fundingLogos;
        var fundingLogos = ((_fundingLogos = {})[constants.h.PP] = ((_BUTTON_LOGO$PP = {})[constants.i.WHITE] = '<svg width="24" height="32" viewBox="0 0 24 32" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet">\n    <path fill="#ffffff" opacity="0.7" d="M 20.702 9.446 C 20.982 7.347 20.702 5.947 19.578 4.548 C 18.361 3.148 16.208 2.548 13.493 2.548 L 5.536 2.548 C 4.974 2.548 4.506 2.948 4.412 3.548 L 1.136 25.74 C 1.042 26.239 1.323 26.639 1.791 26.639 L 6.753 26.639 L 6.378 28.938 C 6.285 29.238 6.659 29.638 6.94 29.638 L 11.153 29.638 C 11.621 29.638 11.995 29.238 12.089 28.739 L 12.182 28.539 L 12.931 23.341 L 13.025 23.041 C 13.119 22.441 13.493 22.141 13.961 22.141 L 14.616 22.141 C 18.642 22.141 21.731 20.342 22.668 15.443 C 23.042 13.344 22.855 11.545 21.825 10.345 C 21.451 10.046 21.076 9.646 20.702 9.446 L 20.702 9.446"></path>\n    <path fill="#ffffff" opacity="0.7" d="M 20.702 9.446 C 20.982 7.347 20.702 5.947 19.578 4.548 C 18.361 3.148 16.208 2.548 13.493 2.548 L 5.536 2.548 C 4.974 2.548 4.506 2.948 4.412 3.548 L 1.136 25.74 C 1.042 26.239 1.323 26.639 1.791 26.639 L 6.753 26.639 L 7.97 18.342 L 7.876 18.642 C 8.063 18.043 8.438 17.643 9.093 17.643 L 11.433 17.643 C 16.021 17.643 19.578 15.643 20.608 9.946 C 20.608 9.746 20.608 9.546 20.702 9.446"></path>\n    <path fill="#ffffff" d="M 9.28 9.446 C 9.28 9.146 9.468 8.846 9.842 8.646 C 9.936 8.646 10.123 8.546 10.216 8.546 L 16.489 8.546 C 17.238 8.546 17.893 8.646 18.548 8.746 C 18.736 8.746 18.829 8.746 19.11 8.846 C 19.204 8.946 19.391 8.946 19.578 9.046 C 19.672 9.046 19.672 9.046 19.859 9.146 C 20.14 9.246 20.421 9.346 20.702 9.446 C 20.982 7.347 20.702 5.947 19.578 4.648 C 18.361 3.248 16.208 2.548 13.493 2.548 L 5.536 2.548 C 4.974 2.548 4.506 3.048 4.412 3.548 L 1.136 25.74 C 1.042 26.239 1.323 26.639 1.791 26.639 L 6.753 26.639 L 7.97 18.342 L 9.28 9.446 Z"></path>\n    <g transform="matrix(0.497737, 0, 0, 0.52612, 1.10144, 0.638654)" opacity="0.2">\n        <path fill="#231f20" d="M39.3 16.7c0.9 0.5 1.7 1.1 2.3 1.8 1 1.1 1.6 2.5 1.9 4.1 0.3-3.2-0.2-5.8-1.9-7.8-0.6-0.7-1.3-1.2-2.1-1.7C39.5 14.2 39.5 15.4 39.3 16.7z"></path>\n        <path fill="#231f20" d="M0.4 45.2L6.7 5.6C6.8 4.5 7.8 3.7 8.9 3.7h16c5.5 0 9.8 1.2 12.2 3.9 1.2 1.4 1.9 3 2.2 4.8 0.4-3.6-0.2-6.1-2.2-8.4C34.7 1.2 30.4 0 24.9 0H8.9c-1.1 0-2.1 0.8-2.3 1.9L0 44.1C0 44.5 0.1 44.9 0.4 45.2z"></path>\n        <path fill="#231f20" d="M10.7 49.4l-0.1 0.6c-0.1 0.4 0.1 0.8 0.4 1.1l0.3-1.7H10.7z"></path>\n    </g>\n</svg>\n', 
        _BUTTON_LOGO$PP[constants.i.BLUE] = '<svg width="24" height="32" viewBox="0 0 24 32" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet">\n    <path fill="#009cde" d="M 20.905 9.5 C 21.185 7.4 20.905 6 19.782 4.7 C 18.564 3.3 16.411 2.6 13.697 2.6 L 5.739 2.6 C 5.271 2.6 4.71 3.1 4.615 3.6 L 1.339 25.8 C 1.339 26.2 1.62 26.7 2.088 26.7 L 6.956 26.7 L 6.675 28.9 C 6.581 29.3 6.862 29.6 7.236 29.6 L 11.356 29.6 C 11.825 29.6 12.292 29.3 12.386 28.8 L 12.386 28.5 L 13.228 23.3 L 13.228 23.1 C 13.322 22.6 13.79 22.2 14.258 22.2 L 14.821 22.2 C 18.845 22.2 21.935 20.5 22.871 15.5 C 23.339 13.4 23.153 11.7 22.029 10.5 C 21.748 10.1 21.279 9.8 20.905 9.5 L 20.905 9.5"></path>\n    <path fill="#012169" d="M 20.905 9.5 C 21.185 7.4 20.905 6 19.782 4.7 C 18.564 3.3 16.411 2.6 13.697 2.6 L 5.739 2.6 C 5.271 2.6 4.71 3.1 4.615 3.6 L 1.339 25.8 C 1.339 26.2 1.62 26.7 2.088 26.7 L 6.956 26.7 L 8.267 18.4 L 8.173 18.7 C 8.267 18.1 8.735 17.7 9.296 17.7 L 11.636 17.7 C 16.224 17.7 19.782 15.7 20.905 10.1 C 20.812 9.8 20.905 9.7 20.905 9.5"></path>\n    <path fill="#003087" d="M 9.485 9.5 C 9.577 9.2 9.765 8.9 10.046 8.7 C 10.232 8.7 10.326 8.6 10.513 8.6 L 16.692 8.6 C 17.442 8.6 18.189 8.7 18.753 8.8 C 18.939 8.8 19.127 8.8 19.314 8.9 C 19.501 9 19.688 9 19.782 9.1 C 19.875 9.1 19.968 9.1 20.063 9.1 C 20.343 9.2 20.624 9.4 20.905 9.5 C 21.185 7.4 20.905 6 19.782 4.6 C 18.658 3.2 16.506 2.6 13.79 2.6 L 5.739 2.6 C 5.271 2.6 4.71 3 4.615 3.6 L 1.339 25.8 C 1.339 26.2 1.62 26.7 2.088 26.7 L 6.956 26.7 L 8.267 18.4 L 9.485 9.5 Z"></path>\n</svg>\n', 
        _BUTTON_LOGO$PP[constants.i.BLACK] = '<?xml version="1.0" encoding="utf-8"?>\n<svg width="24" height="32" viewBox="0 0 24 32" preserveAspectRatio="xMinYMin meet" xmlns="http://www.w3.org/2000/svg">\n  <path opacity="0.7" d="M 20.702 9.446 C 20.982 7.347 20.702 5.947 19.578 4.548 C 18.361 3.148 16.208 2.548 13.493 2.548 L 5.536 2.548 C 4.974 2.548 4.506 2.948 4.412 3.548 L 1.136 25.74 C 1.042 26.239 1.323 26.639 1.791 26.639 L 6.753 26.639 L 6.378 28.938 C 6.285 29.238 6.659 29.638 6.94 29.638 L 11.153 29.638 C 11.621 29.638 11.995 29.238 12.089 28.739 L 12.182 28.539 L 12.931 23.341 L 13.025 23.041 C 13.119 22.441 13.493 22.141 13.961 22.141 L 14.616 22.141 C 18.642 22.141 21.731 20.342 22.668 15.443 C 23.042 13.344 22.855 11.545 21.825 10.345 C 21.451 10.046 21.076 9.646 20.702 9.446 L 20.702 9.446" style="fill: rgb(99, 99, 99);"/>\n  <path opacity="0.7" d="M 20.702 9.446 C 20.982 7.347 20.702 5.947 19.578 4.548 C 18.361 3.148 16.208 2.548 13.493 2.548 L 5.536 2.548 C 4.974 2.548 4.506 2.948 4.412 3.548 L 1.136 25.74 C 1.042 26.239 1.323 26.639 1.791 26.639 L 6.753 26.639 L 7.97 18.342 L 7.876 18.642 C 8.063 18.043 8.438 17.643 9.093 17.643 L 11.433 17.643 C 16.021 17.643 19.578 15.643 20.608 9.946 C 20.608 9.746 20.608 9.546 20.702 9.446"/>\n  <path d="M 9.28 9.446 C 9.28 9.146 9.468 8.846 9.842 8.646 C 9.936 8.646 10.123 8.546 10.216 8.546 L 16.489 8.546 C 17.238 8.546 17.893 8.646 18.548 8.746 C 18.736 8.746 18.829 8.746 19.11 8.846 C 19.204 8.946 19.391 8.946 19.578 9.046 C 19.672 9.046 19.672 9.046 19.859 9.146 C 20.14 9.246 20.421 9.346 20.702 9.446 C 20.982 7.347 20.702 5.947 19.578 4.648 C 18.361 3.248 16.208 2.548 13.493 2.548 L 5.536 2.548 C 4.974 2.548 4.506 3.048 4.412 3.548 L 1.136 25.74 C 1.042 26.239 1.323 26.639 1.791 26.639 L 6.753 26.639 L 7.97 18.342 L 9.28 9.446 Z" style="fill: rgb(51, 48, 48);"/>\n  <g transform="matrix(0.497737, 0, 0, 0.52612, 1.10144, 0.638654)" opacity="0.2">\n    <path fill="#231f20" d="M39.3 16.7c0.9 0.5 1.7 1.1 2.3 1.8 1 1.1 1.6 2.5 1.9 4.1 0.3-3.2-0.2-5.8-1.9-7.8-0.6-0.7-1.3-1.2-2.1-1.7C39.5 14.2 39.5 15.4 39.3 16.7z"/>\n    <path fill="#231f20" d="M0.4 45.2L6.7 5.6C6.8 4.5 7.8 3.7 8.9 3.7h16c5.5 0 9.8 1.2 12.2 3.9 1.2 1.4 1.9 3 2.2 4.8 0.4-3.6-0.2-6.1-2.2-8.4C34.7 1.2 30.4 0 24.9 0H8.9c-1.1 0-2.1 0.8-2.3 1.9L0 44.1C0 44.5 0.1 44.9 0.4 45.2z"/>\n    <path fill="#231f20" d="M10.7 49.4l-0.1 0.6c-0.1 0.4 0.1 0.8 0.4 1.1l0.3-1.7H10.7z"/>\n  </g>\n</svg>', 
        _BUTTON_LOGO$PP), _fundingLogos[constants.h.PAYPAL] = function(_ref) {
            var logoColor = _ref.logoColor;
            if (!PAYPAL_LOGO_COLORS[logoColor]) throw new Error("No " + logoColor + " paypal logo available");
            var _PAYPAL_LOGO_COLORS$l = PAYPAL_LOGO_COLORS[logoColor], primary = _PAYPAL_LOGO_COLORS$l.primary, secondary = _PAYPAL_LOGO_COLORS$l.secondary;
            return Object(jsx.c)("svg", {
                width: "100",
                height: "32",
                viewBox: "0 0 100 32",
                xmlns: "http://www.w3.org/2000/svg",
                preserveAspectRatio: "xMinYMin meet"
            }, Object(jsx.c)("path", {
                fill: primary,
                d: "M 12 4.917 L 4.2 4.917 C 3.7 4.917 3.2 5.317 3.1 5.817 L 0 25.817 C -0.1 26.217 0.2 26.517 0.6 26.517 L 4.3 26.517 C 4.8 26.517 5.3 26.117 5.4 25.617 L 6.2 20.217 C 6.3 19.717 6.7 19.317 7.3 19.317 L 9.8 19.317 C 14.9 19.317 17.9 16.817 18.7 11.917 C 19 9.817 18.7 8.117 17.7 6.917 C 16.6 5.617 14.6 4.917 12 4.917 Z M 12.9 12.217 C 12.5 15.017 10.3 15.017 8.3 15.017 L 7.1 15.017 L 7.9 9.817 C 7.9 9.517 8.2 9.317 8.5 9.317 L 9 9.317 C 10.4 9.317 11.7 9.317 12.4 10.117 C 12.9 10.517 13.1 11.217 12.9 12.217 Z"
            }), Object(jsx.c)("path", {
                fill: primary,
                d: "M 35.2 12.117 L 31.5 12.117 C 31.2 12.117 30.9 12.317 30.9 12.617 L 30.7 13.617 L 30.4 13.217 C 29.6 12.017 27.8 11.617 26 11.617 C 21.9 11.617 18.4 14.717 17.7 19.117 C 17.3 21.317 17.8 23.417 19.1 24.817 C 20.2 26.117 21.9 26.717 23.8 26.717 C 27.1 26.717 29 24.617 29 24.617 L 28.8 25.617 C 28.7 26.017 29 26.417 29.4 26.417 L 32.8 26.417 C 33.3 26.417 33.8 26.017 33.9 25.517 L 35.9 12.717 C 36 12.517 35.6 12.117 35.2 12.117 Z M 30.1 19.317 C 29.7 21.417 28.1 22.917 25.9 22.917 C 24.8 22.917 24 22.617 23.4 21.917 C 22.8 21.217 22.6 20.317 22.8 19.317 C 23.1 17.217 24.9 15.717 27 15.717 C 28.1 15.717 28.9 16.117 29.5 16.717 C 30 17.417 30.2 18.317 30.1 19.317 Z"
            }), Object(jsx.c)("path", {
                fill: primary,
                d: "M 55.1 12.117 L 51.4 12.117 C 51 12.117 50.7 12.317 50.5 12.617 L 45.3 20.217 L 43.1 12.917 C 43 12.417 42.5 12.117 42.1 12.117 L 38.4 12.117 C 38 12.117 37.6 12.517 37.8 13.017 L 41.9 25.117 L 38 30.517 C 37.7 30.917 38 31.517 38.5 31.517 L 42.2 31.517 C 42.6 31.517 42.9 31.317 43.1 31.017 L 55.6 13.017 C 55.9 12.717 55.6 12.117 55.1 12.117 Z"
            }), Object(jsx.c)("path", {
                fill: secondary,
                d: "M 67.5 4.917 L 59.7 4.917 C 59.2 4.917 58.7 5.317 58.6 5.817 L 55.5 25.717 C 55.4 26.117 55.7 26.417 56.1 26.417 L 60.1 26.417 C 60.5 26.417 60.8 26.117 60.8 25.817 L 61.7 20.117 C 61.8 19.617 62.2 19.217 62.8 19.217 L 65.3 19.217 C 70.4 19.217 73.4 16.717 74.2 11.817 C 74.5 9.717 74.2 8.017 73.2 6.817 C 72 5.617 70.1 4.917 67.5 4.917 Z M 68.4 12.217 C 68 15.017 65.8 15.017 63.8 15.017 L 62.6 15.017 L 63.4 9.817 C 63.4 9.517 63.7 9.317 64 9.317 L 64.5 9.317 C 65.9 9.317 67.2 9.317 67.9 10.117 C 68.4 10.517 68.5 11.217 68.4 12.217 Z"
            }), Object(jsx.c)("path", {
                fill: secondary,
                d: "M 90.7 12.117 L 87 12.117 C 86.7 12.117 86.4 12.317 86.4 12.617 L 86.2 13.617 L 85.9 13.217 C 85.1 12.017 83.3 11.617 81.5 11.617 C 77.4 11.617 73.9 14.717 73.2 19.117 C 72.8 21.317 73.3 23.417 74.6 24.817 C 75.7 26.117 77.4 26.717 79.3 26.717 C 82.6 26.717 84.5 24.617 84.5 24.617 L 84.3 25.617 C 84.2 26.017 84.5 26.417 84.9 26.417 L 88.3 26.417 C 88.8 26.417 89.3 26.017 89.4 25.517 L 91.4 12.717 C 91.4 12.517 91.1 12.117 90.7 12.117 Z M 85.5 19.317 C 85.1 21.417 83.5 22.917 81.3 22.917 C 80.2 22.917 79.4 22.617 78.8 21.917 C 78.2 21.217 78 20.317 78.2 19.317 C 78.5 17.217 80.3 15.717 82.4 15.717 C 83.5 15.717 84.3 16.117 84.9 16.717 C 85.5 17.417 85.7 18.317 85.5 19.317 Z"
            }), Object(jsx.c)("path", {
                fill: secondary,
                d: "M 95.1 5.417 L 91.9 25.717 C 91.8 26.117 92.1 26.417 92.5 26.417 L 95.7 26.417 C 96.2 26.417 96.7 26.017 96.8 25.517 L 100 5.617 C 100.1 5.217 99.8 4.917 99.4 4.917 L 95.8 4.917 C 95.4 4.917 95.2 5.117 95.1 5.417 Z"
            }));
        }, _fundingLogos[constants.h.CREDIT] = function(_ref) {
            var logoColor = _ref.logoColor, locale = _ref.locale;
            if (!CREDIT_LOGO_COLORS[logoColor]) throw new Error("No " + logoColor + " credit logo available");
            var primary = CREDIT_LOGO_COLORS[logoColor].primary;
            switch ((locale || {}).country) {
              case constants.r.DE:
                return Object(jsx.c)("svg", {
                    width: "135",
                    height: "32",
                    viewBox: "0 0 135 32",
                    preserveAspectRatio: "xMinYMin meet",
                    xmlns: "http://www.w3.org/2000/svg"
                }, Object(jsx.c)("g", {
                    transform: "matrix(1.3333333,0,0,-1.3333333,10,40)",
                    fill: primary
                }, Object(jsx.c)("g", {
                    transform: "matrix(0.17016911,0,0,0.17819595,39.327112,22.053803)"
                }, Object(jsx.c)("path", {
                    d: "m 0,0 -1.35,-8.619 c -0.146,-0.929 -0.946,-1.613 -1.886,-1.613 h -40.935 c -0.922,0 -1.445,1.057 -0.884,1.79 l 29.853,39.007 h -19.237 c -0.683,0 -1.205,0.611 -1.099,1.286 l 1.35,8.619 c 0.145,0.929 0.945,1.613 1.885,1.613 H 7.112 c 0.922,0 1.444,-1.055 0.886,-1.788 L -21.724,1.286 H -1.1 C -0.416,1.286 0.106,0.675 0,0 m 203.3312,42.0833 c 0.684,0 1.206,-0.611 1.1,-1.287 l -4.446,-28.132 c -1.041,-6.73 -2.359,-13.391 -8.395,-18.456 -5.065,-4.302 -12.143,-5.828 -18.248,-5.828 -6.106,0 -12.767,1.526 -16.444,5.828 -4.371,5.065 -3.608,11.726 -2.567,18.456 l 4.394,27.808 c 0.146,0.928 0.946,1.611 1.885,1.611 h 10.668 c 0.683,0 1.205,-0.61 1.1,-1.285 l -4.101,-26.261 c -1.11,-6.799 -1.804,-14.223 6.938,-14.223 8.743,0 10.408,7.424 11.518,14.223 l 4.05,25.932 c 0.145,0.929 0.945,1.614 1.885,1.614 z m -361.2517,-52.3157 h -10.665 c -0.685,0 -1.207,0.611 -1.1,1.287 l 6.249,39.511 h -9.939 c -0.684,0 -1.206,0.61 -1.1,1.285 l 1.35,8.619 c 0.146,0.929 0.946,1.614 1.886,1.614 h 33.145 c 0.684,0 1.206,-0.611 1.1,-1.286 l -1.35,-8.619 c -0.145,-0.929 -0.945,-1.613 -1.885,-1.613 h -9.608 l -6.198,-39.188 c -0.147,-0.927 -0.946,-1.61 -1.885,-1.61 m -98.5277,28.8638 h 1.318 c 4.441,0 9.549,0.837 10.477,6.522 0.929,5.688 -2.034,6.505 -6.779,6.522 h -1.927 c -0.58,0 -1.075,-0.422 -1.166,-0.995 z m 23.345,-28.864 h -13.977 c -0.594,0 -1.136,0.341 -1.393,0.878 l -9.224,19.244 h -0.139 l -2.985,-18.819 c -0.119,-0.75 -0.766,-1.303 -1.526,-1.303 h -10.977 c -0.684,0 -1.206,0.611 -1.1,1.287 l 7.848,49.725 c 0.119,0.751 0.766,1.304 1.526,1.304 h 19.009 c 10.339,0 17.416,-4.926 15.681,-16.097 -1.179,-7.216 -6.175,-13.461 -13.807,-14.779 l 12.015,-19.748 c 0.451,-0.742 -0.083,-1.692 -0.951,-1.692 m 445.918,52.3159 h 11.349 c 0.385,0 0.743,-0.199 0.946,-0.526 l 19.517,-31.46 h 0.139 l 4.81,30.376 c 0.147,0.927 0.946,1.61 1.885,1.61 h 10.667 c 0.684,0 1.206,-0.611 1.099,-1.287 l -7.799,-49.418 c -0.147,-0.927 -0.946,-1.611 -1.886,-1.611 h -11.347 c -0.386,0 -0.744,0.2 -0.947,0.528 l -19.517,31.528 h -0.139 l -4.811,-30.445 c -0.146,-0.928 -0.946,-1.611 -1.885,-1.611 h -10.666 c -0.684,0 -1.206,0.611 -1.1,1.287 l 7.8,49.418 c 0.146,0.928 0.946,1.611 1.885,1.611 m -304.5422,0 h 11.349 c 0.385,0 0.743,-0.199 0.946,-0.526 l 19.517,-31.46 h 0.139 l 4.81,30.376 c 0.147,0.927 0.946,1.61 1.885,1.61 h 10.667 c 0.684,0 1.206,-0.611 1.099,-1.287 l -7.799,-49.418 c -0.147,-0.927 -0.946,-1.611 -1.886,-1.611 h -11.347 c -0.386,0 -0.744,0.2 -0.947,0.528 l -19.517,31.528 h -0.139 l -4.811,-30.445 c -0.146,-0.928 -0.946,-1.611 -1.885,-1.611 h -10.666 c -0.684,0 -1.206,0.611 -1.1,1.287 l 7.8,49.418 c 0.146,0.928 0.946,1.611 1.885,1.611 M 131.156,1.2855 h 15.004 c 0.684,0 1.206,-0.61 1.1,-1.286 l -1.35,-8.619 c -0.145,-0.928 -0.945,-1.613 -1.885,-1.613 h -26.969 c -0.685,0 -1.207,0.611 -1.1,1.287 l 7.799,49.418 c 0.147,0.927 0.946,1.611 1.885,1.611 h 10.666 c 0.684,0 1.206,-0.612 1.099,-1.287 z m -33.5321,20.607 2.937,18.58 c 0.147,0.928 0.946,1.611 1.885,1.611 h 10.666 c 0.684,0 1.206,-0.611 1.1,-1.287 l -7.8,-49.418 c -0.146,-0.927 -0.946,-1.611 -1.885,-1.611 h -10.664 c -0.685,0 -1.207,0.612 -1.1,1.288 l 3.196,20.152 h -19.636 l -3.145,-19.83 c -0.147,-0.927 -0.946,-1.61 -1.885,-1.61 h -10.666 c -0.685,0 -1.207,0.611 -1.1,1.287 l 7.799,49.418 c 0.147,0.928 0.946,1.611 1.885,1.611 h 10.666 c 0.684,0 1.206,-0.611 1.099,-1.287 l -2.988,-18.904 z m 221.8207,-2.9142 c 0.699,0 1.224,-0.638 1.094,-1.325 -1.342,-7.069 -3.07,-13.21 -8.427,-19.351 -6.245,-7.147 -14.432,-10.269 -23.175,-10.269 -16.444,0 -26.088,11.171 -23.521,27.615 2.706,16.999 15.958,28.17 32.819,28.17 10.373,0 17.776,-4.519 20.966,-13.617 0.198,-0.566 -0.087,-1.189 -0.644,-1.409 l -11.599,-4.569 c -0.598,-0.236 -1.275,0.081 -1.466,0.694 -1.354,4.349 -4.637,7.175 -9.686,7.175 -8.95,0 -14.987,-8.535 -16.236,-16.514 -1.318,-8.118 2.29,-16.374 11.24,-16.374 5.898,0 10.894,3.053 12.351,9.089 h -9.793 c -0.686,0 -1.209,0.614 -1.099,1.292 l 1.373,8.458 c 0.088,0.539 0.553,0.935 1.099,0.935 z m -438.1464,9.9777 -1.132,-7.133 h 14.032 c 0.684,0 1.206,-0.61 1.1,-1.285 l -1.35,-8.619 c -0.145,-0.929 -0.945,-1.613 -1.885,-1.613 h -12.076 c -0.937,0 -1.735,-0.68 -1.884,-1.605 l -1.198,-7.415 h 14.865 c 0.684,0 1.206,-0.611 1.1,-1.286 l -1.35,-8.619 c -0.145,-0.929 -0.945,-1.613 -1.885,-1.613 h -26.831 c -0.684,0 -1.206,0.611 -1.099,1.286 l 7.799,49.418 c 0.146,0.928 0.946,1.611 1.885,1.611 h 26.834 c 0.683,0 1.206,-0.61 1.1,-1.285 l -1.35,-8.619 c -0.146,-0.929 -0.946,-1.614 -1.886,-1.614 h -12.904 c -0.939,0 -1.738,-0.682 -1.885,-1.609 M 34.135,25.9168 H 33.996 L 25.739,9.2648 h 11.31 z m -13.807,-27.06 -4.747,-8.518 c -0.197,-0.353 -0.569,-0.571 -0.973,-0.571 H 2.701 c -0.844,0 -1.381,0.902 -0.979,1.644 l 27.171,50.089 c 0.194,0.359 0.57,0.583 0.978,0.583 h 13.29 c 0.523,0 0.976,-0.365 1.088,-0.876 L 55.21,-8.8812 c 0.152,-0.694 -0.377,-1.351 -1.088,-1.351 H 41.905 c -0.525,0 -0.979,0.367 -1.089,0.88 l -1.755,8.209 z m -216.5493,27.06 h -0.139 l -8.257,-16.652 h 11.31 z m -13.807,-27.06 -4.747,-8.518 c -0.197,-0.353 -0.569,-0.571 -0.973,-0.571 h -11.907 c -0.844,0 -1.381,0.902 -0.979,1.644 l 27.171,50.089 c 0.194,0.359 0.57,0.583 0.978,0.583 h 13.29 c 0.523,0 0.976,-0.365 1.088,-0.876 l 10.961,-50.089 c 0.152,-0.694 -0.377,-1.351 -1.088,-1.351 h -12.217 c -0.525,0 -0.979,0.367 -1.089,0.88 l -1.755,8.209 z m 517.9793,-39.4791 -6.146,-39.098 c -0.119,-0.757 0.467,-1.442 1.233,-1.442 h 6.181 c 1.024,0 1.896,0.745 2.055,1.756 l 6.06,38.396 c 0.119,0.757 -0.466,1.442 -1.233,1.442 h -6.917 c -0.614,0 -1.138,-0.447 -1.233,-1.054 m -77.0618,-12.7966 h -7.207 c -0.689,0 -1.334,-0.342 -1.721,-0.912 l -9.942,-14.642 -4.213,14.07 c -0.263,0.88 -1.073,1.484 -1.993,1.484 h -7.084 c -0.856,0 -1.457,-0.842 -1.182,-1.651 l 7.936,-23.294 -7.464,-10.531 c -0.586,-0.827 0.005,-1.97 1.018,-1.97 h 7.2 c 0.683,0 1.322,0.334 1.71,0.895 l 23.968,34.591 c 0.574,0.828 -0.019,1.96 -1.026,1.96 m 58.6183,-13.956 c -0.693,-4.097 -3.945,-6.847 -8.093,-6.847 -2.08,0 -3.744,0.669 -4.815,1.935 -1.06,1.256 -1.46,3.045 -1.123,5.037 0.645,4.06 3.95,6.899 8.035,6.899 2.036,0 3.689,-0.675 4.78,-1.954 1.099,-1.287 1.53,-3.088 1.216,-5.07 m 9.992,13.956 h -7.169 c -0.615,0 -1.138,-0.447 -1.234,-1.054 l -0.315,-2.004 -0.501,0.726 c -1.553,2.254 -5.014,3.007 -8.469,3.007 -7.922,0 -14.689,-6.003 -16.006,-14.422 -0.685,-4.201 0.288,-8.215 2.669,-11.016 2.189,-2.574 5.311,-3.646 9.031,-3.646 6.385,0 9.927,4.102 9.927,4.102 l -0.321,-1.993 c -0.12,-0.758 0.466,-1.443 1.233,-1.443 h 6.457 c 1.024,0 1.896,0.744 2.055,1.756 l 3.876,24.545 c 0.12,0.757 -0.466,1.442 -1.233,1.442 m -116.7913,-13.956 c -0.693,-4.097 -3.945,-6.847 -8.093,-6.847 -2.08,0 -3.744,0.669 -4.815,1.935 -1.06,1.256 -1.46,3.045 -1.123,5.037 0.645,4.06 3.95,6.899 8.035,6.899 2.036,0 3.689,-0.675 4.78,-1.954 1.099,-1.287 1.531,-3.088 1.216,-5.07 m 9.992,13.956 h -7.169 c -0.615,0 -1.138,-0.447 -1.233,-1.054 l -0.316,-2.004 -0.501,0.726 c -1.553,2.254 -5.014,3.007 -8.469,3.007 -7.921,0 -14.689,-6.003 -16.006,-14.422 -0.685,-4.201 0.288,-8.215 2.669,-11.016 2.189,-2.574 5.311,-3.646 9.031,-3.646 6.385,0 9.927,4.102 9.927,4.102 l -0.321,-1.993 c -0.12,-0.758 0.466,-1.443 1.233,-1.443 h 6.457 c 1.024,0 1.896,0.744 2.055,1.756 l 3.876,24.545 c 0.12,0.757 -0.466,1.442 -1.233,1.442 m -43.0269,-0.172 c -0.818,-5.375 -4.924,-5.375 -8.894,-5.375 h -2.259 l 1.585,10.035 c 0.096,0.607 0.618,1.054 1.233,1.054 h 1.035 c 2.703,0 5.256,0 6.572,-1.54 0.787,-0.922 1.026,-2.287 0.728,-4.174 m -1.728,14.023 h -14.974 c -1.024,0 -1.896,-0.745 -2.055,-1.756 l -6.055,-38.396 c -0.119,-0.757 0.466,-1.442 1.233,-1.442 h 7.149 c 1.024,0 1.896,0.745 2.055,1.756 l 1.634,10.358 c 0.16,1.012 1.031,1.757 2.055,1.757 h 4.739 c 9.863,0 15.555,4.773 17.043,14.233 0.669,4.138 0.027,7.389 -1.911,9.665 -2.129,2.502 -5.904,3.825 -10.913,3.825 m 108.5272,-14.023 c -0.818,-5.375 -4.923,-5.375 -8.894,-5.375 h -2.259 l 1.585,10.035 c 0.096,0.607 0.619,1.054 1.233,1.054 h 1.035 c 2.703,0 5.256,0 6.572,-1.54 0.787,-0.922 1.026,-2.287 0.728,-4.174 m -1.728,14.023 h -14.974 c -1.024,0 -1.896,-0.745 -2.055,-1.756 l -6.055,-38.396 c -0.119,-0.757 0.466,-1.442 1.233,-1.442 h 7.683 c 0.717,0 1.327,0.521 1.438,1.229 l 1.717,10.885 c 0.16,1.012 1.031,1.757 2.055,1.757 h 4.739 c 9.863,0 15.555,4.773 17.043,14.233 0.669,4.138 0.027,7.389 -1.911,9.665 -2.129,2.502 -5.903,3.825 -10.913,3.825 m -161.6161,-40.475 -4.55,18.557 h 3.561 l 3.442,-14.442 7.914,14.442 h 3.798 l -15.748,-27.656 h -3.758 z M 82.525,-65.6994 c -0.989,1.121 -2.328,1.681 -4.016,1.681 -1.319,0 -2.546,-0.356 -3.679,-1.068 -1.135,-0.712 -2.045,-1.701 -2.731,-2.967 -0.686,-1.267 -1.028,-2.691 -1.028,-4.274 0,-1.767 0.5,-3.205 1.503,-4.313 1.002,-1.107 2.242,-1.661 3.719,-1.661 1.346,0 2.612,0.369 3.799,1.108 1.187,0.738 2.136,1.746 2.848,3.026 0.713,1.28 1.069,2.672 1.069,4.175 0,1.74 -0.495,3.171 -1.484,4.293 m -8.527,12.206 -1.661,-10.604 c 0.791,0.976 1.806,1.761 3.047,2.354 1.239,0.594 2.65,0.891 4.233,0.891 1.529,0 2.908,-0.376 4.135,-1.128 1.226,-0.752 2.182,-1.787 2.868,-3.106 0.686,-1.319 1.029,-2.809 1.029,-4.472 0,-2.162 -0.515,-4.153 -1.543,-5.974 -1.029,-1.819 -2.388,-3.264 -4.075,-4.332 -1.689,-1.068 -3.469,-1.602 -5.342,-1.602 -1.635,0 -2.981,0.329 -4.036,0.988 -1.055,0.659 -1.912,1.623 -2.571,2.889 l -0.515,-3.205 h -3.403 l 4.313,27.301 z M 39.4576,-76.5416 c 0.976,-1.121 2.308,-1.681 3.996,-1.681 1.319,0 2.552,0.356 3.699,1.069 1.148,0.712 2.064,1.701 2.751,2.967 0.685,1.266 1.028,2.691 1.028,4.273 0,1.767 -0.501,3.198 -1.503,4.293 -1.003,1.095 -2.256,1.642 -3.759,1.642 -1.32,0 -2.572,-0.37 -3.759,-1.108 -1.187,-0.738 -2.136,-1.741 -2.849,-3.007 -0.712,-1.266 -1.068,-2.651 -1.068,-4.155 0,-1.741 0.488,-3.171 1.464,-4.293 m 9.892,-4.253 0.474,2.968 c -0.844,-1.108 -1.899,-1.986 -3.165,-2.631 -1.266,-0.647 -2.704,-0.969 -4.313,-0.969 -1.53,0 -2.902,0.369 -4.115,1.107 -1.214,0.738 -2.163,1.767 -2.848,3.086 -0.687,1.319 -1.029,2.823 -1.029,4.51 0,2.111 0.507,4.083 1.523,5.916 1.016,1.833 2.347,3.29 3.996,4.372 1.648,1.081 3.357,1.622 5.124,1.622 3.297,0 5.553,-1.279 6.766,-3.837 l 1.781,11.157 h 3.521 l -4.313,-27.301 z m -28.8284,15.3321 c -1.253,-1.094 -2.104,-2.421 -2.552,-3.976 h 11.474 c 0.026,0.21 0.04,0.501 0.04,0.87 0,1.478 -0.395,2.638 -1.187,3.482 -0.792,0.844 -1.913,1.266 -3.363,1.266 -1.688,0 -3.159,-0.548 -4.412,-1.642 m 10.406,2.454 c 1.306,-1.439 1.958,-3.305 1.958,-5.6 0,-0.764 -0.039,-1.397 -0.118,-1.899 -0.079,-0.501 -0.212,-1.095 -0.396,-1.78 h -14.877 c -0.079,-1.979 0.435,-3.502 1.543,-4.57 1.108,-1.068 2.612,-1.602 4.511,-1.602 1.319,0 2.519,0.164 3.601,0.494 1.081,0.33 2.149,0.824 3.205,1.484 l -0.476,-2.968 c -2.031,-1.371 -4.431,-2.057 -7.201,-2.057 -1.82,0 -3.396,0.39 -4.728,1.167 -1.332,0.777 -2.348,1.854 -3.046,3.225 -0.699,1.371 -1.049,2.914 -1.049,4.629 0,1.688 0.422,3.435 1.266,5.243 0.845,1.806 2.124,3.323 3.839,4.55 1.714,1.226 3.824,1.84 6.33,1.84 2.453,0 4.333,-0.719 5.638,-2.156 m -18.0138,-1.4448 c -1.556,0 -2.875,-0.561 -3.956,-1.681 -1.082,-1.122 -1.794,-2.751 -2.137,-4.888 l -1.543,-9.772 h -3.522 l 3.047,19.308 h 3.403 l -0.515,-3.283 c 1.583,2.268 3.483,3.402 5.698,3.402 0.554,0 1.068,-0.039 1.543,-0.119 l -0.475,-3.086 c -0.474,0.079 -0.989,0.119 -1.543,0.119 m -24.5657,-1.0092 c -1.253,-1.094 -2.104,-2.421 -2.552,-3.976 h 11.474 c 0.026,0.21 0.04,0.501 0.04,0.87 0,1.478 -0.396,2.638 -1.187,3.482 -0.792,0.844 -1.913,1.266 -3.363,1.266 -1.689,0 -3.159,-0.548 -4.412,-1.642 m 10.406,2.454 c 1.305,-1.439 1.958,-3.305 1.958,-5.6 0,-0.764 -0.039,-1.397 -0.118,-1.899 -0.079,-0.501 -0.212,-1.095 -0.396,-1.78 h -14.877 c -0.079,-1.979 0.435,-3.502 1.543,-4.57 1.108,-1.068 2.612,-1.602 4.511,-1.602 1.319,0 2.519,0.164 3.601,0.494 1.081,0.33 2.149,0.824 3.204,1.484 l -0.475,-2.968 c -2.031,-1.371 -4.431,-2.057 -7.201,-2.057 -1.82,0 -3.396,0.39 -4.728,1.167 -1.332,0.777 -2.348,1.854 -3.046,3.225 -0.699,1.371 -1.049,2.914 -1.049,4.629 0,1.688 0.422,3.435 1.266,5.243 0.844,1.806 2.124,3.323 3.838,4.55 1.715,1.226 3.824,1.84 6.331,1.84 2.453,0 4.333,-0.719 5.638,-2.156 m -24.4869,-17.7856 h -3.561 l -2.057,14.837 -6.766,-14.837 h -3.522 l -2.77,19.308 h 3.522 l 1.741,-15.193 6.805,15.193 h 3.324 l 2.017,-15.154 6.529,15.154 h 3.6 z M -59.063,-65.225 c -1.201,-0.778 -2.124,-1.807 -2.77,-3.086 -0.647,-1.28 -0.969,-2.619 -0.969,-4.017 0,-1.741 0.494,-3.171 1.484,-4.292 0.988,-1.122 2.261,-1.682 3.817,-1.682 1.53,0 2.889,0.402 4.076,1.207 1.187,0.805 2.11,1.852 2.769,3.146 0.659,1.292 0.99,2.637 0.99,4.035 0,1.715 -0.495,3.12 -1.484,4.215 -0.989,1.093 -2.262,1.641 -3.818,1.641 -1.53,0 -2.896,-0.389 -4.095,-1.167 M -50.28,-62 c 1.332,-0.766 2.368,-1.827 3.106,-3.185 0.738,-1.359 1.108,-2.896 1.108,-4.61 0,-1.952 -0.482,-3.825 -1.444,-5.618 -0.963,-1.794 -2.321,-3.251 -4.075,-4.372 -1.755,-1.122 -3.766,-1.682 -6.034,-1.682 -1.688,0 -3.199,0.383 -4.531,1.148 -1.331,0.764 -2.374,1.833 -3.125,3.205 -0.752,1.37 -1.128,2.914 -1.128,4.628 0,1.979 0.481,3.859 1.444,5.639 0.963,1.781 2.321,3.224 4.076,4.332 1.753,1.108 3.764,1.663 6.033,1.663 1.715,0 3.238,-0.383 4.57,-1.148 m -20.7559,4.1545 c -0.897,0.87 -2.255,1.305 -4.075,1.305 h -4.471 l -1.82,-11.513 h 4.668 c 2.401,0 4.175,0.639 5.322,1.919 1.148,1.279 1.721,2.894 1.721,4.847 0,1.424 -0.448,2.571 -1.345,3.442 m 3.027,2.373 c 1.464,-1.318 2.196,-3.112 2.196,-5.38 0,-3.113 -0.944,-5.599 -2.829,-7.459 -1.887,-1.859 -4.715,-2.789 -8.487,-2.789 h -4.748 l -1.543,-9.694 h -3.759 l 4.313,27.301 h 8.309 c 2.901,0 5.084,-0.66 6.548,-1.979"
                }))));

              default:
                return Object(jsx.c)("svg", {
                    width: "100",
                    height: "32",
                    viewBox: "0 0 95 32",
                    preserveAspectRatio: "xMinYMin meet",
                    xmlns: "http://www.w3.org/2000/svg"
                }, Object(jsx.c)("path", {
                    fill: primary,
                    d: "M 52.732 6.347 C 52.83 5.963 53.122 5.675 53.512 5.675 L 60.626 5.675 C 66.571 5.675 70.664 10.187 69.69 15.851 C 68.813 21.515 63.16 25.931 57.313 25.931 L 50.004 25.931 C 49.711 25.931 49.516 25.739 49.614 25.451 L 52.732 6.347 Z M 55.753 21.515 L 57.02 21.515 C 60.236 21.515 63.355 19.787 64.037 15.851 C 64.622 12.203 62.478 10.187 58.97 10.187 L 57.995 10.187 C 57.8 10.187 57.605 10.283 57.605 10.475 L 55.753 21.515 Z"
                }), Object(jsx.c)("path", {
                    fill: primary,
                    d: "M 43.571 10.763 L 43.084 13.547 L 48.737 13.547 C 49.029 13.547 49.224 13.739 49.224 14.027 L 48.639 17.387 C 48.542 17.771 48.249 17.963 47.859 17.963 L 42.987 17.963 C 42.597 17.963 42.304 18.251 42.207 18.635 L 41.72 21.515 L 47.762 21.515 C 48.054 21.515 48.249 21.707 48.152 21.995 L 47.665 25.355 C 47.567 25.643 47.275 25.931 46.885 25.931 L 36.067 25.931 C 35.775 25.931 35.58 25.643 35.58 25.451 L 38.699 6.347 C 38.796 5.963 39.186 5.675 39.478 5.675 L 50.393 5.675 C 50.588 5.675 50.881 5.963 50.783 6.155 L 50.296 9.515 C 50.198 9.899 49.906 10.091 49.516 10.091 L 44.254 10.091 C 43.864 10.187 43.571 10.379 43.571 10.763 Z"
                }), Object(jsx.c)("path", {
                    fill: primary,
                    d: "M 74.563 25.931 L 70.274 25.931 C 69.982 25.931 69.787 25.739 69.787 25.451 L 73.003 6.347 C 73.003 5.963 73.393 5.675 73.685 5.675 L 78.071 5.675 C 78.266 5.675 78.558 5.963 78.461 6.251 L 75.342 25.355 C 75.245 25.643 74.952 25.931 74.563 25.931 Z"
                }), Object(jsx.c)("path", {
                    fill: primary,
                    d: "M 34.118 25.931 L 28.466 25.931 C 28.173 25.931 27.978 25.835 27.881 25.643 L 24.178 18.155 L 24.08 18.155 L 22.911 25.451 C 22.813 25.739 22.618 25.931 22.326 25.931 L 17.843 25.931 C 17.551 25.931 17.356 25.739 17.453 25.451 L 20.572 6.251 C 20.669 5.963 20.864 5.675 21.156 5.675 L 28.855 5.675 C 33.046 5.675 35.97 7.595 35.288 11.915 C 34.8 14.699 32.754 17.195 29.635 17.675 L 34.508 25.355 C 34.703 25.547 34.411 25.931 34.118 25.931 Z M 24.665 14.795 L 25.152 14.795 C 27.004 14.795 29.05 14.411 29.44 12.203 C 29.83 10.091 28.661 9.707 26.711 9.707 L 25.932 9.707 C 25.639 9.707 25.445 9.899 25.445 10.091 L 24.665 14.795 Z"
                }), Object(jsx.c)("path", {
                    fill: primary,
                    d: "M 86.16 25.931 L 81.872 25.931 C 81.579 25.931 81.384 25.739 81.482 25.451 L 83.918 10.187 L 79.923 10.187 C 79.63 10.187 79.435 9.899 79.533 9.611 L 80.02 6.347 C 80.118 5.963 80.41 5.675 80.8 5.675 L 94.249 5.675 C 94.444 5.675 94.736 5.963 94.639 6.251 L 94.054 9.515 C 94.054 9.899 93.761 10.187 93.372 10.187 L 89.473 10.187 L 86.939 25.355 C 86.939 25.643 86.647 25.931 86.16 25.931 Z"
                }), Object(jsx.c)("path", {
                    fill: primary,
                    d: "M 17.648 11.435 C 17.648 11.819 17.161 12.011 16.868 11.723 C 15.894 10.763 14.529 10.283 13.068 10.283 C 9.657 10.283 7.025 12.779 6.441 15.851 C 5.953 19.019 7.902 21.323 11.313 21.323 C 12.678 21.323 14.237 20.843 15.407 19.979 C 15.796 19.787 16.284 20.075 16.186 20.459 L 15.407 25.067 C 15.309 25.355 15.114 25.547 14.822 25.643 C 13.165 26.123 11.898 26.507 10.339 26.507 C 1.178 26.507 -0.284 19.019 0.203 15.851 C 1.47 6.923 9.072 4.907 13.652 5.195 C 15.114 5.195 16.479 5.387 17.745 5.867 C 18.233 6.059 18.428 6.443 18.33 6.923 L 17.648 11.435 Z"
                }));
            }
        }, _fundingLogos[constants.h.VENMO] = ((_BUTTON_LOGO$VENMO = {})[constants.i.WHITE] = '<svg width="101" height="32" viewBox="0 0 101 32" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet">\n    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n        <g id="White" fill="#FFFFFF">\n            <g id="Logo" transform="translate(0.000000, 6.000000)">\n                <path d="M16.6660484,0.18 C17.3466626,1.3390991 17.6535069,2.53297297 17.6535069,4.04108108 C17.6535069,8.85117117 13.671346,15.0998198 10.439346,19.4875676 L3.05725952,19.4875676 L0.0966314879,1.23315315 L6.56045675,0.60036036 L8.12578201,13.5895495 C9.58835986,11.1326126 11.3932543,7.27153153 11.3932543,4.6390991 C11.3932543,3.1981982 11.1538599,2.21675676 10.7797405,1.40864865 L16.6660484,0.18 Z M24.9071592,11.6938739 C24.9071592,13.8367568 26.062718,14.6774775 27.5946678,14.6774775 C29.2629152,14.6774775 30.860218,14.2571171 32.9363097,13.1691892 L32.154346,18.6445045 C30.6915934,19.3814414 28.4119291,19.8731532 26.1991903,19.8731532 C20.5863512,19.8731532 18.5775346,16.3632432 18.5775346,11.9753153 C18.5775346,6.28810811 21.8451817,0.249369369 28.5819516,0.249369369 C32.2909931,0.249369369 34.3649879,2.39207207 34.3649879,5.37567568 C34.3653374,10.1855856 28.3783789,11.6590991 24.9071592,11.6938739 Z M25.0434567,8.2181982 C26.2329152,8.2181982 29.2274429,7.65711712 29.2274429,5.90216216 C29.2274429,5.05945946 28.6495761,4.6390991 27.9686125,4.6390991 C26.7772318,4.6390991 25.2138287,6.11225225 25.0434567,8.2181982 Z M53.0187093,4.4636036 C53.0187093,5.16558559 52.9154377,6.18378378 52.8126903,6.84918919 L50.8730709,19.4873874 L44.5790934,19.4873874 L46.3483408,7.90216216 C46.381891,7.58792793 46.4849879,6.95531532 46.4849879,6.60432432 C46.4849879,5.76162162 45.9743962,5.55135135 45.3605329,5.55135135 C44.5451938,5.55135135 43.7279325,5.93711712 43.1836159,6.21873874 L41.1768962,19.4875676 L34.8474464,19.4875676 L37.7390519,0.565945946 L43.2171661,0.565945946 L43.2865381,2.07621622 C44.5789187,1.19873874 46.2807163,0.24972973 48.6952803,0.24972973 C51.8942543,0.249369369 53.0187093,1.93495495 53.0187093,4.4636036 Z M71.7037093,2.32072072 C73.5063322,0.988108108 75.2084792,0.249369369 77.5554187,0.249369369 C80.7872439,0.249369369 81.9113495,1.93495495 81.9113495,4.4636036 C81.9113495,5.16558559 81.8084273,6.18378378 81.7056799,6.84918919 L79.7683322,19.4873874 L73.4726073,19.4873874 L75.2755796,7.6572973 C75.3087803,7.34108108 75.3785017,6.95531532 75.3785017,6.71063063 C75.3785017,5.7618018 74.8677353,5.55135135 74.2540467,5.55135135 C73.4722578,5.55135135 72.6908183,5.90234234 72.1106799,6.21873874 L70.1043097,19.4875676 L63.8101574,19.4875676 L65.6131298,7.65747748 C65.6463304,7.34126126 65.713955,6.9554955 65.713955,6.71081081 C65.713955,5.76198198 65.2030138,5.55153153 64.5914221,5.55153153 C63.7743356,5.55153153 62.9588218,5.9372973 62.4145052,6.21891892 L60.4062128,19.4877477 L54.0788599,19.4877477 L56.9701159,0.566126126 L62.3813045,0.566126126 L62.551327,2.14576577 C63.8101574,1.1990991 65.5105571,0.25009009 67.7900467,0.25009009 C69.7637405,0.249369369 71.0559464,1.12702703 71.7037093,2.32072072 Z M83.55059,11.7998198 C83.55059,5.83279279 86.6120433,0.249369369 93.6558322,0.249369369 C98.9633997,0.249369369 100.903543,3.47981982 100.903543,7.93873874 C100.903543,13.8365766 97.8751159,19.9443243 90.6614792,19.9443243 C85.3196626,19.9443243 83.55059,16.3281081 83.55059,11.7998198 Z M94.4374464,7.83279279 C94.4374464,6.28810811 94.0628028,5.23495495 92.9409689,5.23495495 C90.4570329,5.23495495 89.9469654,9.76306306 89.9469654,12.0794595 C89.9469654,13.8367568 90.4238322,14.9243243 91.5453166,14.9243243 C93.8931298,14.9243243 94.4374464,10.149009 94.4374464,7.83279279 Z"></path>\n            </g>\n        </g>\n    </g>\n</svg>\n', 
        _BUTTON_LOGO$VENMO[constants.i.BLUE] = '<svg width="101" height="32" viewBox="0 0 101 32" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet">\n    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n        <g id="Blue" fill="#3D93CE">\n            <g id="Logo" transform="translate(0.000000, 6.000000)">\n                <path d="M16.6660484,0.18 C17.3466626,1.3390991 17.6535069,2.53297297 17.6535069,4.04108108 C17.6535069,8.85117117 13.671346,15.0998198 10.439346,19.4875676 L3.05725952,19.4875676 L0.0966314879,1.23315315 L6.56045675,0.60036036 L8.12578201,13.5895495 C9.58835986,11.1326126 11.3932543,7.27153153 11.3932543,4.6390991 C11.3932543,3.1981982 11.1538599,2.21675676 10.7797405,1.40864865 L16.6660484,0.18 Z M24.9071592,11.6938739 C24.9071592,13.8367568 26.062718,14.6774775 27.5946678,14.6774775 C29.2629152,14.6774775 30.860218,14.2571171 32.9363097,13.1691892 L32.154346,18.6445045 C30.6915934,19.3814414 28.4119291,19.8731532 26.1991903,19.8731532 C20.5863512,19.8731532 18.5775346,16.3632432 18.5775346,11.9753153 C18.5775346,6.28810811 21.8451817,0.249369369 28.5819516,0.249369369 C32.2909931,0.249369369 34.3649879,2.39207207 34.3649879,5.37567568 C34.3653374,10.1855856 28.3783789,11.6590991 24.9071592,11.6938739 Z M25.0434567,8.2181982 C26.2329152,8.2181982 29.2274429,7.65711712 29.2274429,5.90216216 C29.2274429,5.05945946 28.6495761,4.6390991 27.9686125,4.6390991 C26.7772318,4.6390991 25.2138287,6.11225225 25.0434567,8.2181982 Z M53.0187093,4.4636036 C53.0187093,5.16558559 52.9154377,6.18378378 52.8126903,6.84918919 L50.8730709,19.4873874 L44.5790934,19.4873874 L46.3483408,7.90216216 C46.381891,7.58792793 46.4849879,6.95531532 46.4849879,6.60432432 C46.4849879,5.76162162 45.9743962,5.55135135 45.3605329,5.55135135 C44.5451938,5.55135135 43.7279325,5.93711712 43.1836159,6.21873874 L41.1768962,19.4875676 L34.8474464,19.4875676 L37.7390519,0.565945946 L43.2171661,0.565945946 L43.2865381,2.07621622 C44.5789187,1.19873874 46.2807163,0.24972973 48.6952803,0.24972973 C51.8942543,0.249369369 53.0187093,1.93495495 53.0187093,4.4636036 Z M71.7037093,2.32072072 C73.5063322,0.988108108 75.2084792,0.249369369 77.5554187,0.249369369 C80.7872439,0.249369369 81.9113495,1.93495495 81.9113495,4.4636036 C81.9113495,5.16558559 81.8084273,6.18378378 81.7056799,6.84918919 L79.7683322,19.4873874 L73.4726073,19.4873874 L75.2755796,7.6572973 C75.3087803,7.34108108 75.3785017,6.95531532 75.3785017,6.71063063 C75.3785017,5.7618018 74.8677353,5.55135135 74.2540467,5.55135135 C73.4722578,5.55135135 72.6908183,5.90234234 72.1106799,6.21873874 L70.1043097,19.4875676 L63.8101574,19.4875676 L65.6131298,7.65747748 C65.6463304,7.34126126 65.713955,6.9554955 65.713955,6.71081081 C65.713955,5.76198198 65.2030138,5.55153153 64.5914221,5.55153153 C63.7743356,5.55153153 62.9588218,5.9372973 62.4145052,6.21891892 L60.4062128,19.4877477 L54.0788599,19.4877477 L56.9701159,0.566126126 L62.3813045,0.566126126 L62.551327,2.14576577 C63.8101574,1.1990991 65.5105571,0.25009009 67.7900467,0.25009009 C69.7637405,0.249369369 71.0559464,1.12702703 71.7037093,2.32072072 Z M83.55059,11.7998198 C83.55059,5.83279279 86.6120433,0.249369369 93.6558322,0.249369369 C98.9633997,0.249369369 100.903543,3.47981982 100.903543,7.93873874 C100.903543,13.8365766 97.8751159,19.9443243 90.6614792,19.9443243 C85.3196626,19.9443243 83.55059,16.3281081 83.55059,11.7998198 Z M94.4374464,7.83279279 C94.4374464,6.28810811 94.0628028,5.23495495 92.9409689,5.23495495 C90.4570329,5.23495495 89.9469654,9.76306306 89.9469654,12.0794595 C89.9469654,13.8367568 90.4238322,14.9243243 91.5453166,14.9243243 C93.8931298,14.9243243 94.4374464,10.149009 94.4374464,7.83279279 Z"></path>\n            </g>\n        </g>\n    </g>\n</svg>\n', 
        _BUTTON_LOGO$VENMO), _fundingLogos[constants.h.ITAU] = ((_BUTTON_LOGO$ITAU = {})[constants.i.WHITE] = '<?xml version="1.0" encoding="UTF-8"?>\n\x3c!-- Generator: Adobe Illustrator 23.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --\x3e\n<svg xmlns="http://www.w3.org/2000/svg" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 181 33" preserveAspectRatio="xMinYMin meet">\n   <path fill="#FF7900" d="M136.5,5.6L153,1.8c2.2-0.5,4.4,0.8,5,2.9l4,15.2c0.5,2.1-0.8,4.2-3,4.7l-16.5,3.8c-2.2,0.5-4.4-0.8-5-2.9  l-4-15.2C132.8,8.3,134.2,6.1,136.5,5.6z" />\n   <path fill="#004995" d="M144.5,6.1h10.1c1.5,0,2.7,1.2,2.7,2.5v9.7c0,1.3-1.2,2.5-2.7,2.5h-10.1c-1.5,0-2.7-1.2-2.7-2.5V8.6  C141.9,7.2,143.1,6.1,144.5,6.1z" />\n   <path fill="#FFFFFF" d="M108.2,19.9c-0.1-1-0.5-1.9-1.1-2.8c-1.1-1.3-2.8-2-4.6-1.9c-1.6,0.1-3.9,0.3-5.3,1.3L98,19  c0,0,1.3-1.1,3.9-1.1c1.1,0,2.1,0.6,2.3,1.3v0.2c-1.4,0-5.7,0.3-7.4,2.8c-2,3,1.1,5.8,3.1,5.8c1.6,0,3.2,0.1,4.6-1.3l0.2,1.1h3.4  v-7.3c0-0.1,0-0.2,0-0.2L108.2,19.9L108.2,19.9z M100.4,24.1c0.2-1.8,2.7-1.9,3.9-1.9v2.1C103,26,100.2,25.8,100.4,24.1z" />\n   <path fill="#FFFFFF" d="M95.2,16.1c0,0-7.6-2-10,3c-1.3,2.8-0.7,5.7,0.8,7.3c0.7,0.7,1.6,1.2,2.6,1.5c2,0.6,5.4,0.4,6.5-0.2l-0.4-2.8  c0,0-3.4,1.1-5.2-0.6c-2.2-2.2-0.2-5.7,2.1-5.7c2.3,0,3.1,0.4,3.1,0.4L95.2,16.1z" />\n   <rect fill="#FFFFFF" x="42.3" y="11.7" width="3.9" height="16.3" />\n   <path fill="#FFFFFF" d="M55.7,18.7v-3h-2.1v-4.1h-3.9v4.1h-2v3h2v6.2c0,1.7,1.3,3,3,3l0,0h3.1v-3h-1.1c-0.7,0-1.1-0.5-1.1-1.1l0,0v-5.2  L55.7,18.7L55.7,18.7z" />\n   <path fill="#FFFFFF" d="M69,19.9c-0.1-1-0.5-1.9-1.1-2.8c-1.2-1.3-2.8-2-4.6-1.9c-1.6,0.1-3.9,0.3-5.3,1.3l0.8,2.5c0,0,1.3-1.1,3.9-1.1  c1.1,0,2.1,0.6,2.3,1.3v0.2c-1.4,0-5.8,0.3-7.4,2.8c-2,3,1.1,5.8,3.1,5.8c1.6,0,3.2,0.1,4.6-1.3l0.2,1.1H69V19.9L69,19.9z   M61.1,24.1c0.2-1.8,2.7-1.9,3.9-1.9v2.1C63.8,26,60.9,25.8,61.1,24.1L61.1,24.1z" />\n   <path fill="#FFFFFF" d="M79.1,15.7v7.2c0,0.3-0.1,0.5-0.2,0.7c-0.5,0.7-1.1,1.3-2,1.3c-0.9,0.1-1.8-0.5-2.1-1.3  c-0.1-0.2-0.1-0.4-0.1-0.6v-7.3h-3.9V24c0,2.1,1.8,4.1,3.9,4.1c3.9,0.2,4.6-1.8,4.6-1.8v-0.1l0.4,1.5H83V15.6L79.1,15.7z" />\n   <rect fill="#FFF100" x="143.1" y="13.5" width="1.2" height="5" />\n   <path fill="#FFF100" d="M147.3,15.7v-0.9h-0.7v-1.3h-1.2v1.3h-0.6v0.9h0.6v1.9c0,0.5,0.4,0.9,1,0.9h1v-0.9H147c-0.2,0-0.4-0.2-0.4-0.3  l0,0v-1.6C146.6,15.7,147.3,15.7,147.3,15.7z" />\n   <path fill="#FFF100" d="M151.6,16c0-0.3-0.2-0.6-0.4-0.8c-0.4-0.4-0.9-0.6-1.5-0.6s-1.1,0.2-1.7,0.4l0.3,0.8c0.4-0.3,0.8-0.3,1.2-0.3  c0.3,0,0.6,0.2,0.7,0.3v0.1c-0.4,0-1.9,0.1-2.3,0.8c-0.4,0.6-0.2,1.3,0.4,1.6c0.2,0.1,0.4,0.2,0.5,0.2c0.5,0.1,1.1-0.1,1.5-0.3  l0.1,0.3h1.1L151.6,16L151.6,16z M149.1,17.3c0.1-0.6,0.9-0.6,1.2-0.6v0.7C149.9,17.9,149,17.8,149.1,17.3L149.1,17.3z" />\n   <path fill="#FFF100" d="M154.8,14.8V17c-0.1,0.3-0.4,0.4-0.7,0.5c-0.4,0-0.6-0.2-0.7-0.5v-2.3h-1.2v2.5c0,0.7,0.5,1.2,1.2,1.3  c1.2,0.1,1.5-0.5,1.5-0.5l0,0l0.2,0.4h1.1v-3.8L154.8,14.8L154.8,14.8z" />\n   <path fill="#FFFFFF" d="M113.5,17.9l-0.2-2.1H110V28h3.9v-6.8c0.4-0.8,1.2-2.1,3.4-2.1v-3.6C115.9,15.4,114.4,16.3,113.5,17.9z" />\n   <path fill="#FFFFFF" d="M128.1,10.4v6.4c-0.7-0.6-1.7-1.4-3.7-1.4c-3.6,0-6.1,3.2-6.1,6.8c-0.1,3.2,2.6,5.9,5.9,6  c1.5-0.1,3-0.6,4.2-1.4L129,28h3.1V10.5L128.1,10.4L128.1,10.4z M125.4,25.1c-2.3,0-2.8-1.9-2.8-3.4s0.7-3.2,2.8-3.2  c1.3,0,2.1,0.9,2.7,1.8v3C127.5,24.1,126.6,25.1,125.4,25.1z" />\n   <polygon fill="#FFF100" points="154.6,14.4 153.5,14.4 154.4,13.5 155.7,13.5 " />\n   <line fill="none" x1="35.6" y1="8.3" x2="35.6" y2="28.2" />\n   <rect fill="#D8D8D8" x="22.4" y="32.2" width="0.1" height="0.1" />\n   <path fill="#FFFFFF" opacity="0.7" enable-background="new    " d="M25.3,12.9c0.2-1.6,0-2.6-0.9-3.7s-2.6-1.5-4.6-1.5h-6.1c-0.4,0-0.8,0.3-0.9,0.8l-2.5,16.8  c-0.1,0.4,0.1,0.7,0.5,0.7h3.8l-0.3,1.7c-0.1,0.2,0.2,0.5,0.4,0.5H18c0.4,0,0.6-0.3,0.7-0.7l0.1-0.2l0.6-3.9l0.1-0.2  c0.1-0.5,0.4-0.7,0.7-0.7h0.5c3.1,0,5.4-1.4,6.1-5.1c0.3-1.6,0.1-2.9-0.6-3.8C25.9,13.4,25.6,13.1,25.3,12.9L25.3,12.9" />\n   <path fill="#FFFFFF" opacity="0.7" enable-background="new    " d="M25.3,12.9c0.2-1.6,0-2.6-0.9-3.7s-2.6-1.5-4.6-1.5h-6.1c-0.4,0-0.8,0.3-0.9,0.8l-2.5,16.8  c-0.1,0.4,0.1,0.7,0.5,0.7h3.8l0.9-6.3l-0.1,0.2c0.1-0.5,0.4-0.8,0.9-0.8h1.8c3.5,0,6.2-1.5,7-5.8C25.2,13.2,25.2,13,25.3,12.9" />\n   <path fill="#FFFFFF" d="M16.6,12.9c0-0.2,0.1-0.5,0.4-0.6c0.1,0,0.2-0.1,0.3-0.1h4.8c0.6,0,1.1,0.1,1.6,0.1c0.1,0,0.2,0,0.4,0.1  c0.1,0.1,0.2,0.1,0.4,0.2c0.1,0,0.1,0,0.2,0.1c0.2,0.1,0.4,0.2,0.6,0.2c0.2-1.6,0-2.6-0.9-3.6c-0.9-1.1-2.6-1.6-4.6-1.6h-6.1  c-0.4,0-0.8,0.4-0.9,0.8l-2.5,16.8c-0.1,0.4,0.1,0.7,0.5,0.7h3.8l0.9-6.3L16.6,12.9z" />\n   <g transform="matrix(0.379173, 0, 0, 0.397443, 9.686229, 4.778377)" opacity="0.2">\n      <path fill="#231F20" d="M41.1,20.5c0.9,0.5,1.7,1.1,2.3,1.8c1,1.1,1.6,2.5,1.9,4.1c0.3-3.2-0.2-5.8-1.9-7.8c-0.6-0.7-1.3-1.2-2.1-1.7   C41.3,18,41.3,19.2,41.1,20.5z" />\n      <path fill="#231F20" d="M2.2,49L8.5,9.4c0.1-1.1,1.1-1.9,2.2-1.9h16c5.5,0,9.8,1.2,12.2,3.9c1.2,1.4,1.9,3,2.2,4.8   c0.4-3.6-0.2-6.1-2.2-8.4c-2.4-2.8-6.7-4-12.2-4h-16c-1.1,0-2.1,0.8-2.3,1.9L1.8,47.9C1.8,48.3,1.9,48.7,2.2,49z" />\n      <path fill="#231F20" d="M12.5,53.2l-0.1,0.6c-0.1,0.4,0.1,0.8,0.4,1.1l0.3-1.7C13.1,53.2,12.5,53.2,12.5,53.2z" />\n   </g>\n   <rect fill="#FFFFFF" x="35.5" y="6.7" width="1.1" height="21.5" />\n</svg>', 
        _BUTTON_LOGO$ITAU), _fundingLogos[constants.h.IDEAL] = function(_ref) {
            var logoColor = _ref.logoColor;
            if (!IDEAL_LOGO_COLORS[logoColor]) throw new Error("No " + logoColor + " ideal logo available");
            var _IDEAL_LOGO_COLORS$lo = IDEAL_LOGO_COLORS[logoColor], primary = _IDEAL_LOGO_COLORS$lo.primary, secondary = _IDEAL_LOGO_COLORS$lo.secondary, tertiary = _IDEAL_LOGO_COLORS$lo.tertiary;
            return Object(jsx.c)("svg", {
                width: "38",
                height: "32",
                viewBox: "0 0 38 32",
                preserveAspectRatio: "xMinYMin meet",
                xmlns: "http://www.w3.org/2000/svg"
            }, Object(jsx.c)("polygon", {
                fill: primary,
                points: "4.47 27.632 10.452 27.632 10.452 17.982 4.47 17.982"
            }), Object(jsx.c)("g", {
                transform: "matrix(0.952642, 0, 0, 0.930979, 0.31993, 0.181113)"
            }, Object(jsx.c)("path", {
                d: "M11.1102604,13.937999 C11.1102604,15.8893766 9.51859887,17.4723289 7.55546104,17.4723289 C5.59238806,17.4723289 4.00066169,15.8893766 4.00066169,13.937999 C4.00066169,11.9865569 5.59238806,10.4043136 7.55546104,10.4043136 C9.51859887,10.4043136 11.1102604,11.9865569 11.1102604,13.937999",
                fill: primary
            }), Object(jsx.c)("g", null, Object(jsx.c)("mask", {
                fill: secondary
            }, Object(jsx.c)("polygon", {
                points: "39.1898554 33.9678282 0 33.9678282 0 0.001572704 39.1898554 0.001572704",
                transform: "matrix(1, 0, 0, 1, 0, 0)"
            })), Object(jsx.c)("g", null), Object(jsx.c)("path", {
                d: "M22.1049929,2.25750057 C26.4717361,2.25750057 30.1110886,3.433548 32.6296578,5.65853743 C35.476843,8.17370364 36.9204068,11.9843525 36.9204068,16.9847134 C36.9204068,26.8945533 32.0742264,31.7119261 22.1049929,31.7119261 L2.26942909,31.7119261 L2.26942909,2.25750057 L22.1049929,2.25750057 Z M22.531325,0.001572704 L-1.9452416e-05,0.001572704 L-1.9452416e-05,33.967854 L22.531325,33.967854 L22.531325,33.9614085 C27.4529808,33.8947619 31.3518934,32.6793969 34.1187402,30.3394196 C37.4837488,27.4935988 39.1898554,23.0003706 39.1898554,16.9847134 C39.1898554,14.1090499 38.7410881,11.5297509 37.8560681,9.31836144 C37.0093692,7.2028812 35.758125,5.40419768 34.13722,3.97219912 C31.2823834,1.45020067 27.2749912,0.0865245021 22.531325,0.00904949351 L22.531325,0.001572704 Z",
                fill: primary
            })), Object(jsx.c)("path", {
                d: "M21.4851352,29.4975138 L13.5194356,29.4975138 L13.5194356,5.00387361 L21.4851352,5.00387361 L21.1636516,5.00387361 C27.8067813,5.00387361 34.8779291,7.60998594 34.8779291,17.282889 C34.8779291,27.5088167 27.8067813,29.4975138 21.1636516,29.4975138 L21.4851352,29.4975138 Z",
                fill: tertiary
            })), Object(jsx.c)("g", {
                transform: "matrix(0.952642, 0, 0, 0.930979, 11.685725, 10.562208)",
                fill: secondary
            }, Object(jsx.c)("path", {
                d: "M1.41115607,1.17495169 L1.41115607,5.07048794 L2.30681015,5.07048794 C2.64178075,5.07048794 2.88357428,5.05173151 3.03219074,5.0142831 C3.2267149,4.96613516 3.38810511,4.88459948 3.51649106,4.76961161 C3.64474732,4.65455929 3.749531,4.46538363 3.83058274,4.20189125 C3.91163447,3.93846333 3.95216034,3.57944852 3.95216034,3.12471792 C3.95216034,2.67005177 3.91163447,2.3210275 3.83058274,2.07764511 C3.749531,1.83426272 3.63605858,1.64437805 3.49016546,1.5079911 C3.34420749,1.37160414 3.15915018,1.27930447 2.93492866,1.23109207 C2.76737852,1.19370812 2.43915142,1.17495169 1.95018252,1.17495169 L1.41115607,1.17495169 Z M0.215675421,0.175897919 L2.40271056,0.175897919 C2.89589415,0.175897919 3.27190935,0.213410777 3.53069132,0.288436492 C3.878306,0.390275522 4.17612249,0.571265392 4.42407595,0.831212737 C4.67202941,1.09116008 4.86065301,1.40950373 4.99001157,1.78598587 C5.11937014,2.16253246 5.18408185,2.62686687 5.18408185,3.1789891 C5.18408185,3.66407805 5.12345515,4.08213371 5.00220176,4.433285 C4.85397434,4.86210466 4.6423969,5.20919527 4.36753426,5.47449239 C4.15997698,5.67552779 3.87966767,5.832347 3.52660632,5.94488558 C3.26244251,6.02796818 2.90938115,6.06954171 2.46742226,6.06954171 L0.215675421,6.06954171 L0.215675421,0.175897919 Z"
            }), Object(jsx.c)("path", {
                d: "M2.40271056,0.337035624 C2.87825729,0.337035624 3.24247136,0.372743739 3.48523751,0.443128689 C3.80302515,0.536201827 4.07944398,0.704171771 4.30645367,0.942075479 C4.53702965,1.18384649 4.7154083,1.48530291 4.83666169,1.83813003 C4.95966581,2.19611355 5.02197838,2.64723467 5.02197838,3.1789891 C5.02197838,3.64390361 4.96375081,4.04829479 4.84885188,4.38094747 C4.70970226,4.78359837 4.50973142,5.11264156 4.25458057,5.35892443 C4.06589213,5.54165459 3.80438682,5.68712971 3.47713234,5.79148248 C3.23060538,5.86895749 2.89070683,5.908404 2.46742226,5.908404 L0.377778888,5.908404 L0.377778888,0.337035624 L2.40271056,0.337035624 Z M0.0535719538,0.0147602138 L0.0535719538,6.23067941 L2.46742226,6.23067941 C2.92390562,6.23067941 3.2967436,6.18614095 3.57549672,6.09848204 C3.95157676,5.97866004 4.25594223,5.80759625 4.48061764,5.58993144 C4.77246872,5.30819828 4.9996081,4.93661473 5.15548679,4.48562252 C5.28205718,4.11919538 5.34618531,3.67954727 5.34618531,3.1789891 C5.34618531,2.61178438 5.27797217,2.12559969 5.1434263,1.73390616 C5.00706486,1.33699177 4.80456521,0.995959927 4.54169823,0.720349996 C4.27494076,0.440679396 3.9502151,0.243317935 3.57646934,0.133873205 C3.29992083,0.0536910833 2.91612466,0.0147602138 2.40271056,0.0147602138 L0.0535719538,0.0147602138 Z"
            }), Object(jsx.c)("path", {
                d: "M1.9501501,1.33608939 C2.54124418,1.33608939 2.79263424,1.36451409 2.899428,1.38836247 C3.09466542,1.43032272 3.25566658,1.50998921 3.37905974,1.6253638 C3.50439814,1.74254314 3.60457808,1.91180219 3.6766817,2.12824235 C3.75189771,2.35415741 3.79002445,2.68945275 3.79002445,3.12471792 C3.79002445,3.56127219 3.75150867,3.90784717 3.67551456,4.15477459 C3.60360546,4.38861762 3.51354078,4.55523401 3.40791416,4.64991853 C3.30014777,4.74647224 3.16054427,4.81647046 2.99299412,4.85797953 C2.85754047,4.89207627 2.62683481,4.90935023 2.30677773,4.90935023 L1.57329196,4.90935023 L1.57329196,1.33608939 L1.9501501,1.33608939 Z M1.24902018,1.01381398 L1.24902018,5.23162564 L2.30677773,5.23162564 C2.65860709,5.23162564 2.90889484,5.21158011 3.07203577,5.17052222 C3.29100514,5.1163155 3.47729444,5.02163098 3.62500312,4.88924025 C3.77699133,4.7529822 3.89493781,4.54356764 3.98558607,4.24900792 C4.07214932,3.96766148 4.11423138,3.59988078 4.11423138,3.12471792 C4.11423138,2.64833041 4.07176027,2.2893156 3.98441893,2.02698342 C3.89519718,1.75904364 3.76622766,1.54492386 3.60120633,1.39061839 C3.43423976,1.23450819 3.22162485,1.12789948 2.96919733,1.0736283 C2.78932733,1.03347278 2.45558871,1.01381398 1.9501501,1.01381398 L1.24902018,1.01381398 Z"
            }), Object(jsx.c)("polygon", {
                points: "6.53678989 6.06950948 6.53678989 0.175865691 10.9257088 0.175865691 10.9257088 1.17491946 7.73227054 1.17491946 7.73227054 2.48013487 10.702849 2.48013487 10.702849 3.47918864 7.73227054 3.47918864 7.73227054 5.07045571 11.0391813 5.07045571 11.0391813 6.06950948"
            }), Object(jsx.c)("path", {
                d: "M10.7636378,0.337035624 L10.7636378,1.01381398 L7.57019949,1.01381398 L7.57019949,2.64130481 L10.5407779,2.64130481 L10.5407779,3.31808317 L7.57019949,3.31808317 L7.57019949,5.23162564 L10.8771102,5.23162564 L10.8771102,5.908404 L6.69892578,5.908404 L6.69892578,0.337035624 L10.7636378,0.337035624 Z M6.37471884,0.0147602138 L6.37471884,6.23067941 L11.2013172,6.23067941 L11.2013172,4.90935023 L7.89440643,4.90935023 L7.89440643,3.64035858 L10.8649849,3.64035858 L10.8649849,2.3190294 L7.89440643,2.3190294 L7.89440643,1.33608939 L11.0878447,1.33608939 L11.0878447,0.0147602138 L6.37471884,0.0147602138 Z"
            }), Object(jsx.c)("path", {
                d: "M15.5303032,3.73301276 L14.7130424,1.54959685 L13.9121864,3.73301276 L15.5303032,3.73301276 Z M17.7341971,6.06950948 L16.431793,6.06950948 L15.9144884,4.73206653 L13.5458326,4.73206653 L13.055113,6.06950948 L11.7849999,6.06950948 L14.0890089,0.175865691 L15.363207,0.175865691 L17.7341971,6.06950948 Z"
            }), Object(jsx.c)("path", {
                d: "M15.2534629,0.337035624 C15.3291976,0.525244463 17.332991,5.50626875 17.4947703,5.908404 L16.5431581,5.908404 C16.4751395,5.73244163 16.0257887,4.57096105 16.0257887,4.57096105 L13.4323926,4.57096105 C13.4323926,4.57096105 13.0075518,5.72876769 12.9417378,5.908404 L12.0218979,5.908404 C12.1781008,5.50884695 14.1252876,0.527951577 14.1999201,0.337035624 L15.2534629,0.337035624 Z M13.9780328,0.0147602138 L11.5481019,6.23067941 L13.168553,6.23067941 C13.168553,6.23067941 13.5933289,5.07280832 13.6592077,4.89323646 L15.8031882,4.89323646 C15.871142,5.06913438 16.3204928,6.23067941 16.3204928,6.23067941 L17.9736239,6.23067941 L15.472951,0.0147602138 L13.9780328,0.0147602138 Z"
            }), Object(jsx.c)("path", {
                d: "M14.7145337,2.01579402 C14.8921991,2.49044124 15.1926093,3.29290701 15.2970039,3.57186861 L14.1437998,3.57186861 C14.2457305,3.2940672 14.5401752,2.49134361 14.7145337,2.01579402 L14.7145337,2.01579402 Z M13.680573,3.89414402 L15.7636025,3.89414402 L14.7114862,1.0833868 L13.680573,3.89414402 Z"
            }), Object(jsx.c)("polygon", {
                points: "18.7343171 6.06950948 18.7343171 0.224207003 19.9297978 0.224207003 19.9297978 5.07045571 22.9084814 5.07045571 22.9084814 6.06950948"
            }), Object(jsx.c)("path", {
                d: "M19.7677267,0.385376935 L19.7677267,5.23162564 L22.7464104,5.23162564 L22.7464104,5.908404 L18.8963882,5.908404 L18.8963882,0.385376935 L19.7677267,0.385376935 Z M18.5722461,0.0631015253 L18.5722461,6.23067941 L23.0706173,6.23067941 L23.0706173,4.90935023 L20.0919337,4.90935023 L20.0919337,0.0631015253 L18.5722461,0.0631015253 Z"
            })));
        }, _fundingLogos[constants.h.ELV] = ((_BUTTON_LOGO$ELV = {})[constants.i.ANY] = '<?xml version="1.0" encoding="utf-8"?>\n<svg width="100" height="32" viewBox="0 0 100 32" preserveAspectRatio="xMinYMin meet" xmlns="http://www.w3.org/2000/svg">\n  <path fill="#005DA0" d="M 39.871 18.772 C 37.78 18.772 35.843 18.278 34.272 17.425 L 34.81 13.935 C 36.409 14.769 38.051 15.263 39.826 15.263 C 41.809 15.263 42.661 14.544 42.661 13.284 C 42.661 10.45 34.34 11.641 34.34 5.59 C 34.34 2.53 36.319 0.055 40.885 0.055 C 42.639 0.055 44.549 0.416 45.946 0.999 L 45.474 4.395 C 43.989 3.926 42.481 3.633 41.108 3.633 C 38.86 3.633 38.275 4.395 38.275 5.364 C 38.275 8.175 46.598 6.895 46.598 13.013 C 46.576 16.569 44.101 18.772 39.871 18.772 Z"/>\n  <path fill="#005DA0" d="M 62.233 14.881 L 62.233 18.413 L 49.951 18.413 L 49.951 0.345 L 62.233 0.345 L 62.233 3.946 L 54.022 3.946 L 54.022 7.549 L 60.705 7.549 L 60.705 10.787 L 54.022 10.787 L 54.022 14.905 L 62.233 14.905 Z"/>\n  <path fill="#005DA0" d="M 72.313 12.565 L 69.905 12.565 L 69.905 18.437 L 65.834 18.437 L 65.834 0.345 L 72.313 0.345 C 77.328 0.345 79.376 2.328 79.376 6.534 C 79.376 10.361 77.355 12.565 72.313 12.565 Z M 72.313 3.766 L 69.905 3.766 L 69.905 9.302 L 72.313 9.302 C 74.314 9.302 75.194 8.808 75.194 6.534 C 75.194 4.352 74.428 3.766 72.313 3.766 Z"/>\n  <path fill="#005DA0" d="M 91.797 14.924 L 85.246 14.924 L 84.234 18.437 L 79.939 18.437 L 86.193 0.345 L 91.031 0.345 L 97.352 18.437 L 92.808 18.437 L 91.797 14.924 Z M 88.04 5.318 L 86.238 11.506 L 90.85 11.506 L 89.118 5.318 L 88.645 3.408 L 88.578 3.408 L 88.04 5.318 Z"/>\n  <path fill="#005DA0" d="M 39.736 30.157 L 39.692 31.867 L 34.382 31.867 L 34.382 23.475 L 36.299 23.475 L 36.299 30.157 L 39.736 30.157 Z"/>\n  <path fill="#005DA0" d="M 44.798 31.215 L 44.778 31.215 C 44.371 31.71 43.722 31.977 42.931 31.977 C 41.648 31.977 40.818 31.257 40.818 29.727 C 40.818 28.468 41.695 27.613 43.222 27.613 C 43.722 27.613 44.168 27.68 44.527 27.796 L 44.527 27.411 C 44.527 26.736 44.168 26.421 43.244 26.421 C 42.505 26.421 42.007 26.534 41.382 26.782 L 41.245 25.387 C 41.919 25.095 42.707 24.936 43.563 24.936 C 45.563 24.936 46.263 25.792 46.263 27.658 L 46.263 31.867 L 44.933 31.867 L 44.798 31.215 Z M 44.549 28.966 C 44.393 28.896 44.056 28.828 43.583 28.828 C 42.819 28.828 42.46 29.12 42.46 29.727 C 42.46 30.38 42.842 30.63 43.427 30.63 C 44.012 30.63 44.549 30.271 44.549 29.842 L 44.549 28.966 Z"/>\n  <path fill="#005DA0" d="M 50.02 32.002 C 49.21 32.002 48.466 31.842 47.883 31.529 L 48.062 30.088 C 48.625 30.405 49.41 30.561 49.996 30.561 C 50.693 30.561 50.986 30.29 50.986 29.887 C 50.986 28.807 47.84 29.436 47.84 27.051 C 47.84 25.838 48.667 24.959 50.403 24.959 C 51.075 24.959 51.752 25.095 52.336 25.32 L 52.201 26.736 C 51.64 26.512 50.897 26.396 50.381 26.396 C 49.816 26.396 49.503 26.625 49.503 26.961 C 49.503 27.995 52.603 27.366 52.603 29.707 C 52.603 31.101 51.862 32.002 50.02 32.002 Z"/>\n  <path fill="#005DA0" d="M 56.026 26.375 L 56.026 29.842 C 56.026 30.36 56.295 30.582 56.836 30.582 C 57.014 30.582 57.239 30.561 57.374 30.514 L 57.464 31.776 C 57.239 31.888 56.789 31.956 56.295 31.956 C 54.946 31.956 54.27 31.169 54.27 29.887 L 54.27 26.352 L 53.506 26.352 L 53.506 25.095 L 54.337 25.095 L 54.631 23.562 L 56.002 23.451 L 56.002 25.116 L 57.51 25.116 L 57.51 26.421 L 56.026 26.421 Z"/>\n  <path fill="#005DA0" d="M 60.885 32.002 C 60.073 32.002 59.331 31.842 58.748 31.529 L 58.929 30.088 C 59.49 30.405 60.275 30.561 60.862 30.561 C 61.561 30.561 61.851 30.29 61.851 29.887 C 61.851 28.807 58.702 29.436 58.702 27.051 C 58.702 25.838 59.534 24.959 61.269 24.959 C 61.943 24.959 62.615 25.095 63.203 25.32 L 63.069 26.736 C 62.505 26.512 61.764 26.396 61.246 26.396 C 60.681 26.396 60.367 26.625 60.367 26.961 C 60.367 27.995 63.47 27.366 63.47 29.707 C 63.47 31.101 62.729 32.002 60.885 32.002 Z"/>\n  <path fill="#005DA0" d="M 69.365 26.736 C 69.028 26.625 68.603 26.534 68.22 26.534 C 66.958 26.534 66.53 27.051 66.53 28.49 C 66.53 29.954 67.116 30.514 68.174 30.514 C 68.623 30.514 69.05 30.425 69.41 30.271 L 69.525 31.616 C 69.119 31.867 68.511 32.002 67.792 32.002 C 65.787 32.002 64.732 30.854 64.732 28.49 C 64.732 26.242 65.653 24.981 67.835 24.981 C 68.397 24.981 69.05 25.095 69.479 25.276 L 69.365 26.736 Z"/>\n  <path fill="#005DA0" d="M 75.078 31.867 L 75.078 27.546 C 75.078 26.849 74.743 26.491 74.001 26.491 C 73.508 26.491 73.055 26.714 72.855 27.008 L 72.855 31.867 L 71.122 31.867 L 71.122 23.16 L 72.855 23.069 L 72.855 24.622 L 72.83 25.52 L 72.855 25.545 C 73.348 25.116 73.979 24.959 74.541 24.959 C 75.98 24.959 76.812 25.926 76.812 27.546 L 76.812 31.867 L 75.078 31.867 Z"/>\n  <path fill="#005DA0" d="M 78.658 31.867 L 78.658 25.139 L 80.052 25.072 L 80.21 26.199 L 80.231 26.199 C 80.66 25.387 81.313 24.981 82.098 24.981 C 82.39 24.981 82.663 25.028 82.84 25.072 L 82.731 26.782 C 82.528 26.714 82.257 26.667 81.985 26.667 C 81.088 26.667 80.413 27.321 80.413 28.468 L 80.413 31.867 L 78.658 31.867 Z"/>\n  <path fill="#005DA0" d="M 85.382 24.35 C 84.708 24.35 84.395 24.172 84.395 23.609 C 84.395 23.136 84.708 22.867 85.382 22.867 C 86.058 22.867 86.375 23.113 86.375 23.609 C 86.354 24.105 86.058 24.35 85.382 24.35 Z M 84.484 31.867 L 84.484 25.139 L 86.259 25.072 L 86.259 31.888 L 84.484 31.888 Z"/>\n  <path fill="#005DA0" d="M 88.757 31.867 L 88.757 26.375 L 87.902 26.375 L 87.902 25.095 L 88.757 25.095 L 88.757 24.798 C 88.757 23.79 89.454 22.935 91.076 22.935 C 91.459 22.935 91.885 22.979 92.178 23.069 L 92.063 24.195 C 91.863 24.147 91.636 24.126 91.411 24.126 C 90.738 24.126 90.466 24.399 90.466 24.825 L 90.466 25.072 L 91.907 25.072 L 91.907 26.352 L 90.466 26.352 L 90.466 31.842 L 88.757 31.842 Z"/>\n  <path fill="#005DA0" d="M 95.486 26.375 L 95.486 29.842 C 95.486 30.36 95.754 30.582 96.296 30.582 C 96.473 30.582 96.698 30.561 96.834 30.514 L 96.924 31.776 C 96.698 31.888 96.249 31.956 95.754 31.956 C 94.406 31.956 93.729 31.169 93.729 29.887 L 93.729 26.352 L 92.965 26.352 L 92.965 25.095 L 93.798 25.095 L 94.09 23.562 L 95.461 23.451 L 95.461 25.116 L 96.969 25.116 L 96.969 26.421 L 95.486 26.421 Z"/>\n  <path fill="#AEB1BC" d="M 20.357 8.826 L 15.368 5.081 L 10.379 1.334 C 10.033 1.074 9.54 1.146 9.281 1.493 L 4.883 7.322 C 4.811 7.409 4.768 7.51 4.754 7.624 C 4.68 7.93 4.782 8.248 5.043 8.45 L 8.022 10.677 L 12.042 13.698 L 15.021 15.926 C 15.281 16.13 15.629 16.13 15.888 15.97 C 15.991 15.912 16.062 15.854 16.136 15.752 L 20.531 9.91 C 20.763 9.578 20.706 9.087 20.357 8.826 Z M 10.047 1.769 L 13.012 3.995 L 13.012 3.995 L 15.021 5.5 L 17.046 7.017 L 17.046 7.017 L 20.025 9.245 C 20.142 9.332 20.156 9.491 20.082 9.607 L 19.374 10.591 L 16.005 8.058 L 12.36 5.326 L 8.976 2.809 L 9.684 1.826 C 9.772 1.709 9.931 1.682 10.047 1.769 Z M 15.673 15.463 C 15.629 15.507 15.585 15.536 15.528 15.55 C 15.469 15.564 15.398 15.55 15.339 15.507 L 12.345 13.265 L 8.34 10.257 L 5.361 8.001 C 5.302 7.958 5.275 7.9 5.259 7.842 C 5.259 7.785 5.259 7.726 5.302 7.669 L 6.113 6.585 C 6.113 6.585 7.009 5.427 7.791 4.386 L 11.16 6.917 L 14.804 9.65 L 18.173 12.181 C 17.393 13.222 16.496 14.379 16.496 14.379 L 15.673 15.463 Z"/>\n  <g transform="matrix(0.144619, 0, 0, 0.144619, -7.250457, -3.988513)">\n    <path fill="#005DA0" d="M197.1,150.4l52-69.6l5.3-7c0,0,0.1-0.2,0.2-0.2c0.4-0.5,0.3-1.2-0.2-1.6l-14.7-10.7&#10;&#9;&#9;&#9;c-0.5-0.4-1.2-0.2-1.6,0.3c-0.1,0.1-0.2,0.2-0.2,0.2l-2,2.5l-64.3,86l-70.8,0l-26.5,87.4h177.1l-25-87.4L197.1,150.4z M79.1,234.3&#10;&#9;&#9;&#9;l24.2-80.5l65.7,0l-5.7,7.6l-8.1,11.3l-0.9,1.7l-0.9,1.9l-0.9,2.2l-0.9,2.3l-0.9,2.5l-0.9,2.5l-0.8,2.5l-0.8,2.4l-0.7,2.3&#10;&#9;&#9;&#9;l-0.7,2.1l-0.6,1.9l-0.4,1.6l-0.3,1.2l-0.3,0.7c0,0-0.1,0.2-0.2,0.4c-0.2,0.2-1.2,1.1-2,0.5c-0.8-0.6-0.7-2.6-0.6-3.6&#10;&#9;&#9;&#9;c0.2-3,0.5-6,0.7-8.9c0.1-1-1.2-1.6-2-1.2c-3.6,2.1-5.8,4.6-7.8,7.5c0.2-0.7,0.4-1.4,0.6-2c0.8-3.1,2-6.2,2.5-9.4&#10;&#9;&#9;&#9;c0.3-1.8-0.2-3.9-2.3-4.3c-2.4-0.4-3.9,2.1-5.1,3.7c-3.5,5-5.6,11.2-9.9,15.5c-1.6,1.6-3.5,2.8-5.8,2.1c-2.7-0.8-3.8,2.4,1,2.9&#10;&#9;&#9;&#9;c4.7,0.4,8.3-4.6,10.4-8.1c1.6-2.5,2.9-5.2,4.5-7.8c0.7-1.2,1.5-2.4,2.3-3.6c0.4-0.5,1-1.8,1.7-2c0.8-0.2,0.6,0.3,0.6,0.9&#10;&#9;&#9;&#9;c-0.1,1.5-0.7,3-1.1,4.5c-0.4,1.6-0.9,3.2-1.3,4.7c-0.9,3.4-1.8,6.8-2.8,10.1c-0.4,1.5,1.6,2.2,2.5,1c3.4-4.8,5.1-8.9,9.2-12.1&#10;&#9;&#9;&#9;c-0.1,1.1-0.2,2.1-0.3,3.2c-0.1,1.7-0.5,3.6-0.4,5.3c0.2,2.9,2.4,4.8,5.1,3.6c1.4-0.7,2.4-1.7,2.4-1.7l0.2-0.1l0.6-0.4l1-0.7&#10;&#9;&#9;&#9;l1.4-1l1.6-1.2l1.7-1.2l2.1-1.4l2.1-1.5l2.1-1.5l2.1-1.5l2-1.5l1.9-1.4l1.8-1.4l1.5-1.2l1.2-1.1l1-0.9l0-0.1l0,0l6.5-7.6&#10;&#9;&#9;&#9;l16.6-22.1l29.4,0l22.9,80.5H79.1z"/>\n    <path fill="#005DA0" d="M261.1,77.1l-1.9-1.5c-0.4-0.3-0.9-0.2-1.2,0.2l-24.7,32.9c-0.3,0.4-0.2,0.9,0.2,1.2l1.9,1.5&#10;&#9;&#9;&#9;c0.4,0.3,0.9,0.2,1.2-0.2l24.7-32.9C261.5,77.9,261.5,77.4,261.1,77.1z"/>\n    <polygon fill="#005DA0" points="161.7,217.2 210.9,217.2 209.9,213.3 161.7,213.3 113.6,213.3 112.5,217.2 &#9;&#9;"/>\n  </g>\n</svg>', 
        _BUTTON_LOGO$ELV[constants.i.WHITE] = '<?xml version="1.0" encoding="utf-8"?>\n<svg width="100" height="32" viewBox="0 0 100 32" preserveAspectRatio="xMinYMin meet" xmlns="http://www.w3.org/2000/svg">\n  <path d="M 39.871 18.772 C 37.78 18.772 35.843 18.278 34.272 17.425 L 34.81 13.935 C 36.409 14.769 38.051 15.263 39.826 15.263 C 41.809 15.263 42.661 14.544 42.661 13.284 C 42.661 10.45 34.34 11.641 34.34 5.59 C 34.34 2.53 36.319 0.055 40.885 0.055 C 42.639 0.055 44.549 0.416 45.946 0.999 L 45.474 4.395 C 43.989 3.926 42.481 3.633 41.108 3.633 C 38.86 3.633 38.275 4.395 38.275 5.364 C 38.275 8.175 46.598 6.895 46.598 13.013 C 46.576 16.569 44.101 18.772 39.871 18.772 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 62.233 14.881 L 62.233 18.413 L 49.951 18.413 L 49.951 0.345 L 62.233 0.345 L 62.233 3.946 L 54.022 3.946 L 54.022 7.549 L 60.705 7.549 L 60.705 10.787 L 54.022 10.787 L 54.022 14.905 L 62.233 14.905 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 72.313 12.565 L 69.905 12.565 L 69.905 18.437 L 65.834 18.437 L 65.834 0.345 L 72.313 0.345 C 77.328 0.345 79.376 2.328 79.376 6.534 C 79.376 10.361 77.355 12.565 72.313 12.565 Z M 72.313 3.766 L 69.905 3.766 L 69.905 9.302 L 72.313 9.302 C 74.314 9.302 75.194 8.808 75.194 6.534 C 75.194 4.352 74.428 3.766 72.313 3.766 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 91.797 14.924 L 85.246 14.924 L 84.234 18.437 L 79.939 18.437 L 86.193 0.345 L 91.031 0.345 L 97.352 18.437 L 92.808 18.437 L 91.797 14.924 Z M 88.04 5.318 L 86.238 11.506 L 90.85 11.506 L 89.118 5.318 L 88.645 3.408 L 88.578 3.408 L 88.04 5.318 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 39.736 30.157 L 39.692 31.867 L 34.382 31.867 L 34.382 23.475 L 36.299 23.475 L 36.299 30.157 L 39.736 30.157 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 44.798 31.215 L 44.778 31.215 C 44.371 31.71 43.722 31.977 42.931 31.977 C 41.648 31.977 40.818 31.257 40.818 29.727 C 40.818 28.468 41.695 27.613 43.222 27.613 C 43.722 27.613 44.168 27.68 44.527 27.796 L 44.527 27.411 C 44.527 26.736 44.168 26.421 43.244 26.421 C 42.505 26.421 42.007 26.534 41.382 26.782 L 41.245 25.387 C 41.919 25.095 42.707 24.936 43.563 24.936 C 45.563 24.936 46.263 25.792 46.263 27.658 L 46.263 31.867 L 44.933 31.867 L 44.798 31.215 Z M 44.549 28.966 C 44.393 28.896 44.056 28.828 43.583 28.828 C 42.819 28.828 42.46 29.12 42.46 29.727 C 42.46 30.38 42.842 30.63 43.427 30.63 C 44.012 30.63 44.549 30.271 44.549 29.842 L 44.549 28.966 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 50.02 32.002 C 49.21 32.002 48.466 31.842 47.883 31.529 L 48.062 30.088 C 48.625 30.405 49.41 30.561 49.996 30.561 C 50.693 30.561 50.986 30.29 50.986 29.887 C 50.986 28.807 47.84 29.436 47.84 27.051 C 47.84 25.838 48.667 24.959 50.403 24.959 C 51.075 24.959 51.752 25.095 52.336 25.32 L 52.201 26.736 C 51.64 26.512 50.897 26.396 50.381 26.396 C 49.816 26.396 49.503 26.625 49.503 26.961 C 49.503 27.995 52.603 27.366 52.603 29.707 C 52.603 31.101 51.862 32.002 50.02 32.002 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 56.026 26.375 L 56.026 29.842 C 56.026 30.36 56.295 30.582 56.836 30.582 C 57.014 30.582 57.239 30.561 57.374 30.514 L 57.464 31.776 C 57.239 31.888 56.789 31.956 56.295 31.956 C 54.946 31.956 54.27 31.169 54.27 29.887 L 54.27 26.352 L 53.506 26.352 L 53.506 25.095 L 54.337 25.095 L 54.631 23.562 L 56.002 23.451 L 56.002 25.116 L 57.51 25.116 L 57.51 26.421 L 56.026 26.421 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 60.885 32.002 C 60.073 32.002 59.331 31.842 58.748 31.529 L 58.929 30.088 C 59.49 30.405 60.275 30.561 60.862 30.561 C 61.561 30.561 61.851 30.29 61.851 29.887 C 61.851 28.807 58.702 29.436 58.702 27.051 C 58.702 25.838 59.534 24.959 61.269 24.959 C 61.943 24.959 62.615 25.095 63.203 25.32 L 63.069 26.736 C 62.505 26.512 61.764 26.396 61.246 26.396 C 60.681 26.396 60.367 26.625 60.367 26.961 C 60.367 27.995 63.47 27.366 63.47 29.707 C 63.47 31.101 62.729 32.002 60.885 32.002 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 69.365 26.736 C 69.028 26.625 68.603 26.534 68.22 26.534 C 66.958 26.534 66.53 27.051 66.53 28.49 C 66.53 29.954 67.116 30.514 68.174 30.514 C 68.623 30.514 69.05 30.425 69.41 30.271 L 69.525 31.616 C 69.119 31.867 68.511 32.002 67.792 32.002 C 65.787 32.002 64.732 30.854 64.732 28.49 C 64.732 26.242 65.653 24.981 67.835 24.981 C 68.397 24.981 69.05 25.095 69.479 25.276 L 69.365 26.736 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 75.078 31.867 L 75.078 27.546 C 75.078 26.849 74.743 26.491 74.001 26.491 C 73.508 26.491 73.055 26.714 72.855 27.008 L 72.855 31.867 L 71.122 31.867 L 71.122 23.16 L 72.855 23.069 L 72.855 24.622 L 72.83 25.52 L 72.855 25.545 C 73.348 25.116 73.979 24.959 74.541 24.959 C 75.98 24.959 76.812 25.926 76.812 27.546 L 76.812 31.867 L 75.078 31.867 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 78.658 31.867 L 78.658 25.139 L 80.052 25.072 L 80.21 26.199 L 80.231 26.199 C 80.66 25.387 81.313 24.981 82.098 24.981 C 82.39 24.981 82.663 25.028 82.84 25.072 L 82.731 26.782 C 82.528 26.714 82.257 26.667 81.985 26.667 C 81.088 26.667 80.413 27.321 80.413 28.468 L 80.413 31.867 L 78.658 31.867 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 85.382 24.35 C 84.708 24.35 84.395 24.172 84.395 23.609 C 84.395 23.136 84.708 22.867 85.382 22.867 C 86.058 22.867 86.375 23.113 86.375 23.609 C 86.354 24.105 86.058 24.35 85.382 24.35 Z M 84.484 31.867 L 84.484 25.139 L 86.259 25.072 L 86.259 31.888 L 84.484 31.888 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 88.757 31.867 L 88.757 26.375 L 87.902 26.375 L 87.902 25.095 L 88.757 25.095 L 88.757 24.798 C 88.757 23.79 89.454 22.935 91.076 22.935 C 91.459 22.935 91.885 22.979 92.178 23.069 L 92.063 24.195 C 91.863 24.147 91.636 24.126 91.411 24.126 C 90.738 24.126 90.466 24.399 90.466 24.825 L 90.466 25.072 L 91.907 25.072 L 91.907 26.352 L 90.466 26.352 L 90.466 31.842 L 88.757 31.842 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 95.486 26.375 L 95.486 29.842 C 95.486 30.36 95.754 30.582 96.296 30.582 C 96.473 30.582 96.698 30.561 96.834 30.514 L 96.924 31.776 C 96.698 31.888 96.249 31.956 95.754 31.956 C 94.406 31.956 93.729 31.169 93.729 29.887 L 93.729 26.352 L 92.965 26.352 L 92.965 25.095 L 93.798 25.095 L 94.09 23.562 L 95.461 23.451 L 95.461 25.116 L 96.969 25.116 L 96.969 26.421 L 95.486 26.421 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 20.357 8.826 L 15.368 5.081 L 10.379 1.334 C 10.033 1.074 9.54 1.146 9.281 1.493 L 4.883 7.322 C 4.811 7.409 4.768 7.51 4.754 7.624 C 4.68 7.93 4.782 8.248 5.043 8.45 L 8.022 10.677 L 12.042 13.698 L 15.021 15.926 C 15.281 16.13 15.629 16.13 15.888 15.97 C 15.991 15.912 16.062 15.854 16.136 15.752 L 20.531 9.91 C 20.763 9.578 20.706 9.087 20.357 8.826 Z M 10.047 1.769 L 13.012 3.995 L 13.012 3.995 L 15.021 5.5 L 17.046 7.017 L 17.046 7.017 L 20.025 9.245 C 20.142 9.332 20.156 9.491 20.082 9.607 L 19.374 10.591 L 16.005 8.058 L 12.36 5.326 L 8.976 2.809 L 9.684 1.826 C 9.772 1.709 9.931 1.682 10.047 1.769 Z M 15.673 15.463 C 15.629 15.507 15.585 15.536 15.528 15.55 C 15.469 15.564 15.398 15.55 15.339 15.507 L 12.345 13.265 L 8.34 10.257 L 5.361 8.001 C 5.302 7.958 5.275 7.9 5.259 7.842 C 5.259 7.785 5.259 7.726 5.302 7.669 L 6.113 6.585 C 6.113 6.585 7.009 5.427 7.791 4.386 L 11.16 6.917 L 14.804 9.65 L 18.173 12.181 C 17.393 13.222 16.496 14.379 16.496 14.379 L 15.673 15.463 Z" style="fill: rgb(255, 255, 255);"/>\n  <g transform="matrix(0.144619, 0, 0, 0.144619, -7.250457, -3.988513)">\n    <path d="M197.1,150.4l52-69.6l5.3-7c0,0,0.1-0.2,0.2-0.2c0.4-0.5,0.3-1.2-0.2-1.6l-14.7-10.7&#10;&#9;&#9;&#9;c-0.5-0.4-1.2-0.2-1.6,0.3c-0.1,0.1-0.2,0.2-0.2,0.2l-2,2.5l-64.3,86l-70.8,0l-26.5,87.4h177.1l-25-87.4L197.1,150.4z M79.1,234.3&#10;&#9;&#9;&#9;l24.2-80.5l65.7,0l-5.7,7.6l-8.1,11.3l-0.9,1.7l-0.9,1.9l-0.9,2.2l-0.9,2.3l-0.9,2.5l-0.9,2.5l-0.8,2.5l-0.8,2.4l-0.7,2.3&#10;&#9;&#9;&#9;l-0.7,2.1l-0.6,1.9l-0.4,1.6l-0.3,1.2l-0.3,0.7c0,0-0.1,0.2-0.2,0.4c-0.2,0.2-1.2,1.1-2,0.5c-0.8-0.6-0.7-2.6-0.6-3.6&#10;&#9;&#9;&#9;c0.2-3,0.5-6,0.7-8.9c0.1-1-1.2-1.6-2-1.2c-3.6,2.1-5.8,4.6-7.8,7.5c0.2-0.7,0.4-1.4,0.6-2c0.8-3.1,2-6.2,2.5-9.4&#10;&#9;&#9;&#9;c0.3-1.8-0.2-3.9-2.3-4.3c-2.4-0.4-3.9,2.1-5.1,3.7c-3.5,5-5.6,11.2-9.9,15.5c-1.6,1.6-3.5,2.8-5.8,2.1c-2.7-0.8-3.8,2.4,1,2.9&#10;&#9;&#9;&#9;c4.7,0.4,8.3-4.6,10.4-8.1c1.6-2.5,2.9-5.2,4.5-7.8c0.7-1.2,1.5-2.4,2.3-3.6c0.4-0.5,1-1.8,1.7-2c0.8-0.2,0.6,0.3,0.6,0.9&#10;&#9;&#9;&#9;c-0.1,1.5-0.7,3-1.1,4.5c-0.4,1.6-0.9,3.2-1.3,4.7c-0.9,3.4-1.8,6.8-2.8,10.1c-0.4,1.5,1.6,2.2,2.5,1c3.4-4.8,5.1-8.9,9.2-12.1&#10;&#9;&#9;&#9;c-0.1,1.1-0.2,2.1-0.3,3.2c-0.1,1.7-0.5,3.6-0.4,5.3c0.2,2.9,2.4,4.8,5.1,3.6c1.4-0.7,2.4-1.7,2.4-1.7l0.2-0.1l0.6-0.4l1-0.7&#10;&#9;&#9;&#9;l1.4-1l1.6-1.2l1.7-1.2l2.1-1.4l2.1-1.5l2.1-1.5l2.1-1.5l2-1.5l1.9-1.4l1.8-1.4l1.5-1.2l1.2-1.1l1-0.9l0-0.1l0,0l6.5-7.6&#10;&#9;&#9;&#9;l16.6-22.1l29.4,0l22.9,80.5H79.1z" style="fill: rgb(255, 255, 255);"/>\n    <path d="M261.1,77.1l-1.9-1.5c-0.4-0.3-0.9-0.2-1.2,0.2l-24.7,32.9c-0.3,0.4-0.2,0.9,0.2,1.2l1.9,1.5&#10;&#9;&#9;&#9;c0.4,0.3,0.9,0.2,1.2-0.2l24.7-32.9C261.5,77.9,261.5,77.4,261.1,77.1z" style="fill: rgb(255, 255, 255);"/>\n    <polygon points="161.7,217.2 210.9,217.2 209.9,213.3 161.7,213.3 113.6,213.3 112.5,217.2 &#9;&#9;" style="fill: rgb(255, 255, 255);"/>\n  </g>\n</svg>', 
        _BUTTON_LOGO$ELV), _fundingLogos[constants.h.BANCONTACT] = function(_ref) {
            var logoColor = _ref.logoColor;
            if (!BANCONTACT_LOGO_COLORS[logoColor]) throw new Error("No " + logoColor + " bancontact logo available");
            var _BANCONTACT_LOGO_COLO2 = BANCONTACT_LOGO_COLORS[logoColor], primary = _BANCONTACT_LOGO_COLO2.primary, secondary = _BANCONTACT_LOGO_COLO2.secondary;
            return Object(jsx.c)("svg", {
                version: "1.1",
                id: "Layer_1",
                x: "0px",
                y: "0px",
                width: "226px",
                height: "32px",
                viewBox: "36.09922790527344 36.68461608886719 226 32",
                style: "enable-background:new 0 0 476.9 123.4;",
                xmlns: "http://www.w3.org/2000/svg"
            }, Object(jsx.c)("g", {
                transform: "matrix(0.557769, 0, 0, 0.557769, 15.684875, 18.15871)"
            }, Object(jsx.c)("g", null, Object(jsx.c)("path", {
                fill: primary,
                d: "M147.6,50.2h-5.8h-26.9h-5.8l-3.9,4.4L92.5,68.9l0,0l-3.9,4.4h-6H56.2h-5.8l3.9-4.5l1.8-2.1l3.9-4.5h-5.8h-7.6 h-4.2c-3.2,0-5.8,2.7-5.8,6l0,0v11.5v1.1c0,3.3,2.6,6,5.8,6H44h61.1h4.4c3.2,0,7.6-2,9.7-4.4l10.2-11.6L147.6,50.2z"
            }), Object(jsx.c)("path", {
                fill: secondary,
                d: "M155.3,36.8c3.2,0,5.8,2.7,5.8,6v12.6c0,3.3-2.6,6-5.8,6h-3.2h-8.5h-5.8l3.9-4.4l0,0l1.9-2.2l3.9-4.4h-38.6 L88.3,73.6H50l27.5-31.1l1-1.2c2.2-2.4,6.5-4.4,9.7-4.4h1.4h65.7V36.8z"
            })), Object(jsx.c)("path", {
                fill: primary,
                d: "M 440.7 85.6 L 440.7 81.8 C 440.7 81.3 440.4 81 439.7 81 L 437.3 81 C 436.6 81 436.1 80.9 436 80.6 C 435.8 80.3 435.8 79.7 435.8 78.7 L 435.8 64.7 L 439.7 64.7 C 440 64.7 440.2 64.6 440.4 64.4 C 440.6 64.2 440.7 64 440.7 63.7 L 440.7 59.8 C 440.7 59.5 440.6 59.3 440.4 59.1 C 440.2 58.9 440 58.8 439.7 58.8 L 435.8 58.8 L 435.8 53.8 C 435.8 53.5 435.7 53.3 435.6 53.2 C 435.4 53.1 435.2 53 435 53 L 434.9 53 L 429.1 54 C 428.8 54.1 428.6 54.2 428.4 54.3 C 428.2 54.5 428.1 54.7 428.1 54.9 L 428.1 58.8 L 424.2 58.8 C 423.9 58.8 423.7 58.9 423.5 59.1 C 423.3 59.3 423.2 59.5 423.2 59.8 L 423.2 63 C 423.2 63.3 423.3 63.5 423.5 63.6 C 423.7 63.8 423.9 63.9 424.2 64 L 428.1 64.6 L 428.1 78.6 C 428.1 80.3 428.3 81.7 428.6 82.8 C 429 83.9 429.5 84.7 430.1 85.3 C 430.8 85.9 431.6 86.3 432.6 86.5 C 433.6 86.7 434.8 86.8 436.1 86.8 C 436.8 86.8 437.4 86.8 438 86.7 C 438.5 86.6 439.2 86.5 439.9 86.4 C 440.4 86.4 440.7 86.1 440.7 85.6 M 419.9 85.1 L 419.9 80.8 C 419.9 80.5 419.8 80.3 419.6 80.2 C 419.4 80.1 419.2 80 418.9 80 L 418.8 80 C 417.9 80.1 417 80.2 416.2 80.2 C 415.4 80.3 414.3 80.3 412.9 80.3 C 412.4 80.3 411.8 80.2 411.4 80 C 410.9 79.8 410.5 79.5 410.1 79.1 C 409.7 78.7 409.5 78.1 409.3 77.4 C 409.1 76.7 409 75.8 409 74.7 L 409 70.7 C 409 69.6 409.1 68.7 409.3 68 C 409.5 67.3 409.8 66.7 410.1 66.3 C 410.5 65.9 410.9 65.6 411.4 65.4 C 411.9 65.2 412.4 65.1 412.9 65.1 C 414.3 65.1 415.4 65.1 416.2 65.2 C 417 65.3 417.9 65.3 418.8 65.4 L 418.9 65.4 C 419.2 65.4 419.4 65.3 419.6 65.2 C 419.8 65.1 419.9 64.9 419.9 64.6 L 419.9 60.3 C 419.9 59.9 419.8 59.7 419.7 59.6 C 419.5 59.5 419.3 59.3 418.9 59.2 C 418.2 59 417.3 58.9 416.3 58.7 C 415.2 58.5 414 58.5 412.5 58.5 C 409.1 58.5 406.4 59.5 404.3 61.6 C 402.3 63.7 401.2 66.7 401.2 70.7 L 401.2 74.7 C 401.2 78.6 402.2 81.7 404.3 83.8 C 406.3 85.9 409.1 86.9 412.5 86.9 C 413.9 86.9 415.2 86.8 416.3 86.7 C 417.4 86.5 418.3 86.4 418.9 86.2 C 419.3 86.1 419.5 86 419.7 85.8 C 419.8 85.7 419.9 85.4 419.9 85.1 M 388.6 80 C 388 80.3 387.4 80.5 386.7 80.7 C 386 80.9 385.3 81 384.6 81 C 383.6 81 382.8 80.9 382.3 80.6 C 381.8 80.3 381.6 79.7 381.6 78.6 L 381.6 78.2 C 381.6 77.6 381.7 77.1 381.8 76.7 C 381.9 76.3 382.2 75.9 382.5 75.6 C 382.8 75.3 383.3 75.1 383.8 74.9 C 384.3 74.8 385 74.7 385.9 74.7 L 388.6 74.7 L 388.6 80 L 388.6 80 Z M 396.2 68.3 C 396.2 66.5 395.9 65 395.4 63.8 C 394.9 62.6 394.1 61.6 393.2 60.8 C 392.2 60 391.1 59.4 389.7 59.1 C 388.3 58.7 386.7 58.5 385 58.5 C 383.4 58.5 381.8 58.6 380.3 58.8 C 378.8 59 377.6 59.2 376.7 59.5 C 376.1 59.7 375.8 60 375.8 60.6 L 375.8 64.5 C 375.8 64.8 375.9 65 376 65.2 C 376.2 65.3 376.4 65.4 376.6 65.4 L 376.8 65.4 C 377.2 65.4 377.7 65.3 378.2 65.3 C 378.8 65.3 379.4 65.2 380.2 65.2 C 380.9 65.2 381.7 65.1 382.5 65.1 C 383.3 65.1 384.1 65.1 384.8 65.1 C 385.9 65.1 386.8 65.3 387.4 65.7 C 388 66.1 388.4 67 388.4 68.4 L 388.4 70.1 L 385.8 70.1 C 381.7 70.1 378.6 70.7 376.8 72 C 375 73.3 374 75.4 374 78.2 L 374 78.6 C 374 80.2 374.2 81.5 374.7 82.5 C 375.2 83.6 375.8 84.4 376.6 85.1 C 377.4 85.7 378.2 86.2 379.2 86.5 C 380.2 86.8 381.2 86.9 382.3 86.9 C 383.7 86.9 385 86.7 386 86.3 C 387 85.9 388 85.4 389 84.7 L 389 85.5 C 389 85.8 389.1 86 389.3 86.2 C 389.5 86.4 389.7 86.5 390 86.5 L 395.4 86.5 C 395.7 86.5 395.9 86.4 396.1 86.2 C 396.3 86 396.4 85.8 396.4 85.5 L 396.4 68.3 L 396.2 68.3 Z M 370.5 85.6 L 370.5 81.8 C 370.5 81.3 370.2 81 369.5 81 L 367.1 81 C 366.4 81 365.9 80.9 365.8 80.6 C 365.6 80.3 365.6 79.7 365.6 78.7 L 365.6 64.7 L 369.5 64.7 C 369.8 64.7 370 64.6 370.2 64.4 C 370.4 64.2 370.5 64 370.5 63.7 L 370.5 59.8 C 370.5 59.5 370.4 59.3 370.2 59.1 C 370 58.9 369.8 58.8 369.5 58.8 L 365.6 58.8 L 365.6 53.8 C 365.6 53.5 365.5 53.3 365.4 53.2 C 365.2 53.1 365 53 364.8 53 L 364.7 53 L 358.9 54 C 358.6 54.1 358.4 54.2 358.2 54.3 C 358 54.5 357.9 54.7 357.9 54.9 L 357.9 58.8 L 354 58.8 C 353.7 58.8 353.5 58.9 353.3 59.1 C 353.1 59.3 353 59.5 353 59.8 L 353 63 C 353 63.3 353.1 63.5 353.3 63.6 C 353.5 63.8 353.7 63.9 354 64 L 357.9 64.6 L 357.9 78.6 C 357.9 80.3 358.1 81.7 358.4 82.8 C 358.8 83.9 359.3 84.7 359.9 85.3 C 360.6 85.9 361.4 86.3 362.4 86.5 C 363.4 86.7 364.6 86.8 365.9 86.8 C 366.6 86.8 367.2 86.8 367.8 86.7 C 368.3 86.6 369 86.5 369.7 86.4 C 370.2 86.4 370.5 86.1 370.5 85.6 M 349.5 85.5 L 349.5 69.5 C 349.5 68 349.4 66.6 349.1 65.2 C 348.9 63.9 348.4 62.7 347.8 61.7 C 347.2 60.7 346.3 59.9 345.2 59.4 C 344.1 58.8 342.7 58.5 340.9 58.5 C 339.4 58.5 338 58.7 336.8 59.1 C 335.6 59.5 334.4 60.1 333 61.1 L 333 59.8 C 333 59.5 332.9 59.3 332.7 59.1 C 332.5 58.9 332.3 58.8 332 58.8 L 326.6 58.8 C 326.3 58.8 326.1 58.9 325.9 59.1 C 325.7 59.3 325.6 59.5 325.6 59.8 L 325.6 85.4 C 325.6 85.7 325.7 85.9 325.9 86.1 C 326.1 86.3 326.3 86.4 326.6 86.4 L 332.4 86.4 C 332.7 86.4 332.9 86.3 333.1 86.1 C 333.3 85.9 333.4 85.7 333.4 85.4 L 333.4 66.5 C 334.2 66.1 335 65.7 335.8 65.4 C 336.5 65.1 337.3 65 338 65 C 338.7 65 339.3 65.1 339.8 65.2 C 340.3 65.3 340.6 65.6 340.9 65.9 C 341.2 66.3 341.3 66.7 341.4 67.3 C 341.5 67.9 341.5 68.6 341.5 69.4 L 341.5 85.4 C 341.5 85.7 341.6 85.9 341.8 86.1 C 342 86.3 342.2 86.4 342.5 86.4 L 348.3 86.4 C 348.6 86.4 348.8 86.3 349 86.1 C 349.4 85.9 349.5 85.7 349.5 85.5 M 313.1 74.4 C 313.1 78.3 311.7 80.3 308.8 80.3 C 307.4 80.3 306.3 79.8 305.6 78.8 C 304.9 77.8 304.5 76.3 304.5 74.4 L 304.5 71 C 304.5 69 304.9 67.6 305.6 66.6 C 306.3 65.6 307.4 65.1 308.8 65.1 C 311.6 65.1 313.1 67.1 313.1 71 L 313.1 74.4 Z M 320.9 71 C 320.9 69.1 320.6 67.3 320.1 65.8 C 319.6 64.3 318.8 63 317.8 61.9 C 316.8 60.8 315.5 60 314 59.4 C 312.5 58.8 310.8 58.5 308.8 58.5 C 306.8 58.5 305.1 58.8 303.6 59.4 C 302.1 60 300.8 60.8 299.8 61.9 C 298.8 63 298 64.3 297.5 65.8 C 297 67.3 296.7 69.1 296.7 71 L 296.7 74.4 C 296.7 76.3 297 78.1 297.5 79.6 C 298 81.1 298.8 82.4 299.8 83.5 C 300.8 84.6 302.1 85.4 303.6 86 C 305.1 86.6 306.8 86.9 308.8 86.9 C 310.8 86.9 312.5 86.6 314 86 C 315.5 85.4 316.8 84.6 317.8 83.5 C 318.8 82.4 319.6 81.1 320.1 79.6 C 320.6 78.1 320.9 76.3 320.9 74.4 L 320.9 71 Z M 294.1 85.1 L 294.1 80.8 C 294.1 80.5 294 80.3 293.8 80.2 C 293.6 80.1 293.4 80 293.1 80 L 293 80 C 292.1 80.1 291.2 80.2 290.4 80.2 C 289.6 80.2 288.5 80.3 287.1 80.3 C 286.6 80.3 286 80.2 285.6 80 C 285.1 79.8 284.7 79.5 284.3 79.1 C 283.9 78.7 283.7 78.1 283.5 77.4 C 283.3 76.7 283.2 75.8 283.2 74.7 L 283.2 70.7 C 283.2 69.6 283.3 68.7 283.5 68 C 283.7 67.3 284 66.7 284.3 66.3 C 284.7 65.9 285.1 65.6 285.6 65.4 C 286.1 65.2 286.6 65.1 287.1 65.1 C 288.5 65.1 289.6 65.1 290.4 65.2 C 291.2 65.3 292.1 65.3 293 65.4 L 293.1 65.4 C 293.4 65.4 293.6 65.3 293.8 65.2 C 294 65.1 294.1 64.9 294.1 64.6 L 294.1 60.3 C 294.1 59.9 294 59.7 293.9 59.6 C 293.7 59.5 293.5 59.3 293.1 59.2 C 292.4 59 291.6 58.9 290.5 58.7 C 289.4 58.5 288.2 58.5 286.7 58.5 C 283.3 58.5 280.6 59.5 278.5 61.6 C 276.5 63.7 275.4 66.7 275.4 70.7 L 275.4 74.7 C 275.4 78.6 276.4 81.7 278.5 83.8 C 280.5 85.9 283.3 86.9 286.7 86.9 C 288.1 86.9 289.4 86.8 290.5 86.7 C 291.6 86.5 292.4 86.4 293.1 86.2 C 293.5 86.1 293.7 86 293.9 85.8 C 294 85.7 294.1 85.4 294.1 85.1 M 270.4 85.5 L 270.4 69.5 C 270.4 68 270.3 66.6 270 65.2 C 269.7 63.8 269.3 62.7 268.7 61.7 C 268.1 60.7 267.2 59.9 266.1 59.4 C 265 58.8 263.6 58.5 261.8 58.5 C 260.3 58.5 258.9 58.7 257.7 59.1 C 256.5 59.5 255.3 60.1 253.9 61.1 L 253.9 59.8 C 253.9 59.5 253.8 59.3 253.6 59.1 C 253.4 58.9 253.2 58.8 252.9 58.8 L 247.5 58.8 C 247.2 58.8 247 58.9 246.8 59.1 C 246.6 59.3 246.5 59.5 246.5 59.8 L 246.5 85.4 C 246.5 85.7 246.6 85.9 246.8 86.1 C 247 86.3 247.2 86.4 247.5 86.4 L 253.3 86.4 C 253.6 86.4 253.8 86.3 254 86.1 C 254.2 85.9 254.3 85.7 254.3 85.4 L 254.3 66.5 C 255.1 66.1 255.9 65.7 256.7 65.4 C 257.4 65.1 258.2 65 258.9 65 C 259.6 65 260.2 65.1 260.7 65.2 C 261.2 65.3 261.5 65.6 261.8 65.9 C 262.1 66.3 262.2 66.7 262.3 67.3 C 262.4 67.9 262.4 68.6 262.4 69.4 L 262.4 85.4 C 262.4 85.7 262.5 85.9 262.7 86.1 C 262.9 86.3 263.1 86.4 263.4 86.4 L 269.2 86.4 C 269.5 86.4 269.7 86.3 269.9 86.1 C 270.3 85.9 270.4 85.7 270.4 85.5 M 233.3 80 C 232.7 80.3 232.1 80.5 231.4 80.7 C 230.7 80.9 230 81 229.3 81 C 228.3 81 227.5 80.9 227 80.6 C 226.5 80.3 226.3 79.7 226.3 78.6 L 226.3 78.2 C 226.3 77.6 226.4 77.1 226.5 76.7 C 226.6 76.3 226.9 75.9 227.2 75.6 C 227.5 75.3 228 75.1 228.5 74.9 C 229 74.8 229.7 74.7 230.6 74.7 L 233.3 74.7 L 233.3 80 L 233.3 80 Z M 241 68.3 C 241 66.5 240.7 65 240.2 63.8 C 239.7 62.6 238.9 61.6 238 60.8 C 237 60 235.9 59.4 234.5 59.1 C 233.1 58.7 231.5 58.5 229.8 58.5 C 228.2 58.5 226.6 58.6 225.1 58.8 C 223.6 59 222.4 59.2 221.5 59.5 C 220.9 59.7 220.6 60 220.6 60.6 L 220.6 64.5 C 220.6 64.8 220.7 65 220.8 65.2 C 221 65.3 221.2 65.4 221.4 65.4 L 221.6 65.4 C 222 65.4 222.5 65.3 223 65.3 C 223.6 65.3 224.2 65.2 225 65.2 C 225.7 65.2 226.5 65.1 227.3 65.1 C 228.1 65.1 228.9 65.1 229.6 65.1 C 230.7 65.1 231.6 65.3 232.2 65.7 C 232.8 66.1 233.2 67 233.2 68.4 L 233.2 70.1 L 230.6 70.1 C 226.5 70.1 223.4 70.7 221.6 72 C 219.8 73.3 218.8 75.4 218.8 78.2 L 218.8 78.6 C 218.8 80.2 219 81.5 219.5 82.5 C 220 83.6 220.6 84.4 221.4 85.1 C 222.2 85.7 223 86.2 224 86.5 C 225 86.8 226 86.9 227.1 86.9 C 228.5 86.9 229.8 86.7 230.8 86.3 C 231.8 85.9 232.8 85.4 233.8 84.7 L 233.8 85.5 C 233.8 85.8 233.9 86 234.1 86.2 C 234.3 86.4 234.5 86.5 234.8 86.5 L 240.2 86.5 C 240.5 86.5 240.7 86.4 240.9 86.2 C 241.1 86 241.2 85.8 241.2 85.5 L 241.2 68.3 L 241 68.3 Z M 206.6 75.9 C 206.6 77.2 206.1 78.3 205.2 79 C 204.3 79.7 202.5 80.1 200.1 80.1 L 199.3 80.1 C 198.9 80.1 198.5 80.1 198.1 80.1 C 197.7 80.1 197.3 80.1 196.9 80.1 L 196.1 80.1 L 196.1 71.1 L 201.5 71.1 C 203.4 71.1 204.8 71.5 205.5 72.4 C 206.2 73.3 206.6 74.3 206.6 75.4 L 206.6 75.9 Z M 206.4 61.6 C 206.4 62.1 206.3 62.6 206.2 63.1 C 206 63.6 205.8 64 205.4 64.3 C 205 64.6 204.5 64.9 203.9 65.1 C 203.3 65.3 202.5 65.4 201.5 65.4 L 196.1 65.4 L 196.1 57.1 C 196.3 57.1 196.5 57.1 196.8 57.1 C 197.1 57.1 197.5 57.1 197.9 57.1 L 199 57.1 L 199.8 57.1 C 202.3 57.1 204 57.4 205 58 C 206 58.6 206.5 59.6 206.5 60.9 L 206.5 61.6 L 206.4 61.6 Z M 214.6 75.4 C 214.6 73.7 214.2 72.3 213.4 71.1 C 212.6 69.9 211.6 68.9 210.3 68.3 C 211.6 67.7 212.6 66.7 213.3 65.5 C 214 64.2 214.4 62.8 214.4 61.3 L 214.4 60.4 C 214.4 58.5 214 56.9 213.3 55.6 C 212.6 54.3 211.5 53.3 210.2 52.5 C 208.9 51.7 207.3 51.2 205.4 50.8 C 203.5 50.5 201.5 50.3 199.2 50.3 C 198.4 50.3 197.6 50.3 196.8 50.3 C 196 50.3 195.2 50.4 194.4 50.4 C 193.6 50.4 192.9 50.5 192.2 50.6 C 191.5 50.7 191 50.7 190.6 50.8 C 189.7 51 189 51.3 188.6 51.7 C 188.2 52.1 188 52.9 188 54 L 188 83.3 C 188 84.4 188.2 85.1 188.6 85.6 C 189 86 189.7 86.3 190.6 86.5 C 191.1 86.6 191.7 86.7 192.3 86.7 C 193 86.8 193.7 86.8 194.5 86.9 C 195.3 86.9 196.1 87 196.9 87 C 197.7 87 198.6 87 199.4 87 C 201.5 87 203.5 86.8 205.3 86.5 C 207.1 86.2 208.7 85.6 210.1 84.8 C 211.5 84 212.5 82.9 213.4 81.5 C 214.2 80.1 214.6 78.3 214.6 76.2 L 214.6 75.4 L 214.6 75.4 Z"
            })));
        }, _fundingLogos[constants.h.GIROPAY] = function(_ref) {
            var logoColor = _ref.logoColor;
            if (!GIROPAY_LOGO_COLORS[logoColor]) throw new Error("No " + logoColor + " giropay logo available");
            var _GIROPAY_LOGO_COLORS$ = GIROPAY_LOGO_COLORS[logoColor], primary = _GIROPAY_LOGO_COLORS$.primary, secondary = _GIROPAY_LOGO_COLORS$.secondary, tertiary = _GIROPAY_LOGO_COLORS$.tertiary;
            return Object(jsx.c)("svg", {
                width: "75px",
                height: "32px",
                viewBox: "0 0 75 32",
                version: "1.1",
                xmlns: "http://www.w3.org/2000/svg"
            }, Object(jsx.c)("g", {
                stroke: "none",
                "stroke-width": "1",
                fill: "none",
                "fill-rule": "evenodd",
                transform: "matrix(1.614571, 0, 0, 1.614571, -161.457123, -256.816772)"
            }, Object(jsx.c)("g", {
                transform: "translate(100.000000, 159.000000)"
            }, Object(jsx.c)("g", {
                transform: "translate(0.000000, 0.144715)"
            }, Object(jsx.c)("mask", {
                fill: primary
            }, Object(jsx.c)("polygon", {
                points: "0 0.017902439 46.0918699 0.017902439 46.0918699 19.8373984 0 19.8373984",
                transform: "matrix(1, 0, 0, 1, 0, 0)"
            })), Object(jsx.c)("path", {
                d: "M0,3.5735122 C0,1.60977236 1.5998374,0.017902439 3.57349593,0.017902439 L42.5182114,0.017902439 C44.4918699,0.017902439 46.0918699,1.60977236 46.0918699,3.5735122 L46.0918699,16.2818049 C46.0918699,18.2455447 44.4918699,19.8374146 42.5182114,19.8374146 L3.57349593,19.8374146 C1.5998374,19.8374146 0,18.2455447 0,16.2818049 L0,3.5735122 Z",
                fill: secondary
            })), Object(jsx.c)("path", {
                d: "M1.46738211,3.84021138 L1.46738211,16.3065528 C1.46738211,17.5338699 2.46738211,18.5288293 3.70087805,18.5288293 L24.1036423,18.5288293 L24.1036423,1.61793496 L3.70087805,1.61793496 C2.46738211,1.61793496 1.46738211,2.61289431 1.46738211,3.84021138",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M5.67102439,10.0205528 C5.67102439,9.34152846 6.00582114,8.77730081 6.64663415,8.77730081 C7.42126829,8.77730081 7.74630894,9.39892683 7.74630894,9.95356098 C7.74630894,10.7187642 7.25866667,11.235187 6.64663415,11.235187 C6.13004878,11.235187 5.67102439,10.795187 5.67102439,10.0205528 Z M9.41053659,7.57226016 L7.8515122,7.57226016 L7.8515122,8.47112195 L7.8324878,8.47112195 C7.46907317,7.85908943 6.87606504,7.45746341 6.13964228,7.45746341 C4.59021138,7.45746341 3.8921626,8.56689431 3.8921626,10.0491707 C3.8921626,11.5221789 4.74321951,12.5550244 6.11102439,12.5550244 C6.79964228,12.5550244 7.37346341,12.2872195 7.78468293,11.7038049 L7.80370732,11.7038049 L7.80370732,11.9716098 C7.80370732,12.9472195 7.26826016,13.4158374 6.27362602,13.4158374 C5.55622764,13.4158374 5.11622764,13.2628293 4.59021138,13.0046179 L4.50419512,14.3626667 C4.90582114,14.5060813 5.58500813,14.6782764 6.40744715,14.6782764 C8.41590244,14.6782764 9.41053659,14.0182764 9.41053659,11.9716098 L9.41053659,7.57226016 Z",
                fill: tertiary
            }), Object(jsx.c)("mask", {
                fill: primary
            }, Object(jsx.c)("polygon", {
                points: "0 19.9821138 46.0918699 19.9821138 46.0918699 0.162601626 0 0.162601626",
                transform: "matrix(1, 0, 0, 1, 0, 0)"
            })), Object(jsx.c)("path", {
                d: "M10.5985366,6.75918699 L12.32,6.75918699 L12.32,5.49674797 L10.5985366,5.49674797 L10.5985366,6.75918699 Z M10.598374,12.5549593 L12.3198374,12.5549593 L12.3198374,7.57219512 L10.598374,7.57219512 L10.598374,12.5549593 Z",
                id: "Fill-8",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M17.1133333,7.51479675 C16.9411382,7.48617886 16.7307317,7.45739837 16.5299187,7.45739837 C15.7839024,7.45739837 15.3534959,7.85918699 15.0570732,8.4904065 L15.0380488,8.4904065 L15.0380488,7.57219512 L13.4694309,7.57219512 L13.4694309,12.5549593 L15.1910569,12.5549593 L15.1910569,10.4508943 C15.1910569,9.47544715 15.6404878,8.89203252 16.4439024,8.89203252 C16.6447154,8.89203252 16.835935,8.89203252 17.0273171,8.94943089 L17.1133333,7.51479675 Z",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M20.0773496,11.4647154 C19.2835285,11.4647154 18.9583252,10.804878 18.9583252,10.0682927 C18.9583252,9.32243902 19.2835285,8.66243902 20.0773496,8.66243902 C20.8711707,8.66243902 21.196374,9.32243902 21.196374,10.0682927 C21.196374,10.804878 20.8711707,11.4647154 20.0773496,11.4647154 M20.0773496,12.6697561 C21.7223902,12.6697561 22.9752358,11.7133333 22.9752358,10.0682927 C22.9752358,8.41382114 21.7223902,7.45739837 20.0773496,7.45739837 C18.4323089,7.45739837 17.1794634,8.41382114 17.1794634,10.0682927 C17.1794634,11.7133333 18.4323089,12.6697561 20.0773496,12.6697561",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M29.3757073,10.0110244 C29.3757073,10.8048455 28.9836748,11.3500488 28.3332683,11.3500488 C27.7594472,11.3500488 27.2812358,10.8048455 27.2812358,10.0780163 C27.2812358,9.332 27.7020488,8.77720325 28.3332683,8.77720325 C29.0026992,8.77720325 29.3757073,9.35102439 29.3757073,10.0110244 Z M25.5597724,14.5633821 L27.2812358,14.5633821 L27.2812358,11.856878 L27.3002602,11.856878 C27.6254634,12.4498862 28.2758699,12.6697236 28.8783089,12.6697236 C30.360748,12.6697236 31.1545691,11.4456585 31.1545691,9.97265041 C31.1545691,8.76777236 30.399122,7.45736585 29.0218862,7.45736585 C28.2376585,7.45736585 27.5106667,7.77297561 27.166439,8.47118699 L27.147252,8.47118699 L27.147252,7.5721626 L25.5597724,7.5721626 L25.5597724,14.5633821 Z",
                id: "Fill-12",
                fill: primary,
                mask: "url(#mask-4)"
            }), Object(jsx.c)("path", {
                d: "M33.505252,10.9769919 C33.505252,10.4987805 33.9642764,10.3169919 34.5476911,10.3169919 C34.8059024,10.3169919 35.0546829,10.3361789 35.2745203,10.3457724 C35.2745203,10.929187 34.8633008,11.5221951 34.2128943,11.5221951 C33.8112683,11.5221951 33.505252,11.3212195 33.505252,10.9769919 Z M36.9769593,12.5550407 C36.900374,12.1628455 36.8813496,11.770813 36.8813496,11.3786179 L36.8813496,9.52317073 C36.8813496,8.00252033 35.7815122,7.45747967 34.5094797,7.45747967 C33.7730569,7.45747967 33.1322439,7.56268293 32.5202114,7.81130081 L32.5488293,8.97813008 C33.0270407,8.7103252 33.5816748,8.60512195 34.1364715,8.60512195 C34.7580976,8.60512195 35.2650894,8.78674797 35.2745203,9.46577236 C35.0546829,9.42756098 34.7485041,9.39894309 34.4711057,9.39894309 C33.5530569,9.39894309 31.8984228,9.58056911 31.8984228,11.1013821 C31.8984228,12.1820325 32.7784228,12.6698374 33.7634634,12.6698374 C34.4711057,12.6698374 34.9493171,12.392439 35.3415122,11.770813 L35.3606992,11.770813 C35.3606992,12.0290244 35.3893171,12.2872358 35.3989106,12.5550407 L36.9769593,12.5550407 Z",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M37.750748,14.5634634 C38.1045691,14.6398862 38.4583902,14.6782602 38.8218049,14.6782602 C40.3998537,14.6782602 40.7728618,13.463626 41.2606667,12.2107805 L43.0873333,7.5722439 L41.3658699,7.5722439 L40.3426179,10.8239512 L40.3234309,10.8239512 L39.2522114,7.5722439 L37.3967642,7.5722439 L39.414813,12.6698049 C39.2904228,13.1098049 38.9653821,13.3584228 38.5445691,13.3584228 C38.3053821,13.3584228 38.0949756,13.3296423 37.8655447,13.2532195 L37.750748,14.5634634 Z",
                fill: primary
            }))));
        }, _fundingLogos[constants.h.SOFORT] = function(_ref) {
            var logoColor = _ref.logoColor;
            if (!SOFORT_LOGO_COLORS[logoColor]) throw new Error("No " + logoColor + " sofort logo available");
            var _SOFORT_LOGO_COLORS$l = SOFORT_LOGO_COLORS[logoColor], primary = _SOFORT_LOGO_COLORS$l.primary, secondary = _SOFORT_LOGO_COLORS$l.secondary;
            return Object(jsx.c)("svg", {
                width: "138px",
                height: "32px",
                viewBox: "0 0 138 44",
                version: "1.1",
                xmlns: "http://www.w3.org/2000/svg"
            }, Object(jsx.c)("g", {
                stroke: "none",
                "stroke-width": "1",
                fill: "none",
                "fill-rule": "evenodd"
            }, Object(jsx.c)("g", {
                transform: "translate(-24.000000, -436.000000)"
            }, Object(jsx.c)("g", {
                transform: "translate(24.000000, 436.000000)"
            }, Object(jsx.c)("g", {
                "stroke-width": "1"
            }, Object(jsx.c)("g", {
                mask: "url(#mask-2)",
                "fill-rule": "evenodd",
                fill: primary
            }, Object(jsx.c)("rect", {
                x: "0",
                y: "0",
                width: "138",
                height: "44"
            })), Object(jsx.c)("g", {
                transform: "translate(16.000000, 5.000000)",
                "fill-rule": "nonzero",
                fill: secondary
            }, Object(jsx.c)("path", {
                d: "M8.55107133,24.0386247 C9.22879411,24.6861671 9.24327745,25.7425763 8.58354713,26.4073957 L8.45110904,26.5423627 C7.79086355,27.1983175 6.69897696,27.2144066 6.01224032,26.5722566 L2.17289107,22.8768054 C1.11590922,21.8458618 0.96410333,20.5754632 1.63678914,19.9042365 L1.77159366,19.7668966 C2.32598975,19.2126062 3.22970309,19.1541252 3.86016464,19.6360673 C4.15990129,19.8651943 4.59424066,19.8150784 4.83028878,19.5241303 C5.0663369,19.2331822 5.01470714,18.8115781 4.7149705,18.5824512 C3.5284497,17.675442 1.82767241,17.7855026 0.775688111,18.8373698 L0.64137931,18.9742146 C-0.604692328,20.2175294 -0.354282964,22.3130983 1.19683948,23.8259789 L5.04656839,27.5313427 C6.28726435,28.6915831 8.24857838,28.6626828 9.44549924,27.4733999 L9.58132339,27.3350447 C10.7636633,26.1435999 10.7376475,24.2460125 9.52028002,23.0828568 C9.24837962,22.8230647 8.81099605,22.8264175 8.54335646,23.0903455 C8.27571687,23.3542735 8.27917094,23.7788325 8.55107133,24.0386247 Z"
            }), Object(jsx.c)("path", {
                d: "M6.25316137,4.00463901 L7.82450265,16.5582851 C7.87051944,16.9259191 8.21485204,17.1877352 8.59359104,17.1430676 C8.97233003,17.0984001 9.24205468,16.7641637 9.19603789,16.3965297 L7.61982167,3.8039371 L7.60423898,3.7221812 C7.33535457,2.67817937 8.00377183,1.50751858 8.89431251,1.32322405 C9.39350944,1.21977105 9.9143927,1.3151232 10.3403167,1.58785163 C10.7662406,1.86058007 11.0615522,2.28785533 11.1600097,2.7738347 L13.8959914,14.1304918 C13.9828807,14.4910975 14.3544774,14.7150537 14.7259757,14.6307121 C15.097474,14.5463704 15.3281952,14.1856693 15.2413059,13.8250637 L12.5104951,2.49173037 C12.3457557,1.67638792 11.8361294,0.939028727 11.1011021,0.468374716 C10.3660749,-0.00227929421 9.46717414,-0.16683078 8.60603358,0.0116310396 C6.93120471,0.358231477 5.83076908,2.26447015 6.25316137,4.00463901 Z"
            }), Object(jsx.c)("path", {
                d: "M20.6946385,18.7562157 L23.8016655,3.70806757 C24.1627527,2.08823591 23.171098,0.461930237 21.5243733,-0.0131380565 C19.6806639,-0.465927398 17.8331452,0.588982967 17.3518411,2.34622562 L13.9119445,13.7963592 C13.8051409,14.1518899 14.01548,14.5241472 14.3817501,14.6278193 C14.7480201,14.7314913 15.1315221,14.5273196 15.2383257,14.1717889 L18.6826501,2.70623335 C18.9740354,1.64312835 20.0755418,1.01418179 21.1583367,1.27975309 C22.0849843,1.54768368 22.6596154,2.49007404 22.4491321,3.43451398 L19.3399561,18.4926732 C19.2649826,18.8557898 19.5074605,19.20915 19.8815457,19.2819253 C20.2556309,19.3547006 20.6196649,19.1193324 20.6946385,18.7562157 Z"
            }), Object(jsx.c)("path", {
                d: "M12.8691892,33.2538889 C7.94394615,33.2538889 3.83027027,29.7443025 3.83027027,24.757037 C3.83027027,24.3866994 3.52098374,24.0864815 3.13945946,24.0864815 C2.75793518,24.0864815 2.44864865,24.3866994 2.44864865,24.757037 C2.44864865,30.5262551 7.21772847,34.595 12.8691892,34.595 C13.2507135,34.595 13.56,34.2947821 13.56,33.9244444 C13.56,33.5541068 13.2507135,33.2538889 12.8691892,33.2538889 Z"
            }), Object(jsx.c)("path", {
                d: "M10.432735,21.523985 C10.32527,21.8997898 10.0848456,22.2268322 9.75367873,22.4476857 L9.6059963,22.5431752 C8.81135162,23.0620226 7.73737824,22.860771 7.20041193,22.0943828 L4.18000129,17.7280455 C3.35596459,16.5133712 3.46371228,15.2353866 4.25688098,14.7069262 L4.40481451,14.6112693 C5.42222949,14.0388226 6.28666557,14.4731364 7.17531296,15.7298428 L9.70102318,19.3822431 C9.91366027,19.6897297 10.3428334,19.7716746 10.6596081,19.5652723 C10.9763829,19.3588699 11.0608031,18.9422806 10.848166,18.634794 L8.31843628,14.9766458 C7.06906995,13.2097547 5.52101546,12.4319743 3.67452351,13.4735669 L3.48275305,13.5961381 C1.99799965,14.5853027 1.82065576,16.6887608 3.02954142,18.4706511 L6.05567438,22.8452879 C7.02249844,24.2252138 8.95163568,24.5867144 10.3747579,23.6575027 L10.5280578,23.5583063 C11.1349164,23.1536749 11.5696876,22.5622681 11.7640218,21.8826817 C11.8660652,21.5258361 11.650769,21.1562586 11.2831443,21.0572072 C10.9155196,20.9581559 10.5347784,21.1671394 10.432735,21.523985 Z"
            }), Object(jsx.c)("path", {
                d: "M15.0071132,23.7451482 C13.5716937,24.5235597 12.6792061,25.9892512 12.5683793,28.2063913 C12.5498892,28.5762937 12.8438232,28.8907086 13.2248991,28.9086565 C13.6059751,28.9266044 13.9298874,28.6412889 13.9483774,28.2713865 C14.048744,26.2635083 14.8525076,25.179561 16.152515,24.704555 C16.8482268,24.4503509 17.6046979,24.3996276 18.2711038,24.4684707 C18.3606758,24.477724 18.4201821,24.4863334 18.4442402,24.4906858 C19.3337661,24.6516105 19.6045203,23.3685934 18.7214531,23.1770635 L13.4090206,22.0248413 C10.9225036,21.3638621 10.5472361,20.4704561 11.0076227,18.9808309 C11.2064187,18.3317669 11.6147718,17.9986147 12.2306776,17.865687 C12.6373189,17.7779238 13.0941226,17.7888366 13.5282841,17.8626882 C13.6538003,17.8840387 13.7420731,17.9043308 13.7811352,17.9152244 L21.8451208,19.7433694 C21.8985237,19.7533496 21.9361525,19.763479 22.0020154,19.7924494 C22.1354002,19.8511201 22.2742678,19.9453829 22.4097247,20.0858789 C22.9502905,20.6465543 23.2485509,21.7041959 23.09758,23.4414127 C22.571614,29.5314735 19.6483005,33.3130406 12.7195863,33.2539148 C12.3380768,33.2506592 12.0260833,33.5482264 12.0227294,33.9185497 C12.0193755,34.288873 12.3259312,34.5917185 12.7074407,34.5949741 C20.4944029,34.6614237 23.8949457,30.262518 24.474342,23.5537955 C24.6558214,21.4655214 24.2521788,20.0341915 23.4184922,19.1694909 C22.9588119,18.69271 22.4737204,18.4793376 22.1015974,18.4267977 L14.1289333,16.6177417 C14.0788208,16.6028791 13.9434651,16.5717637 13.7667652,16.5417067 C13.169132,16.4400483 12.5401983,16.4250234 11.9308051,16.5565455 C10.8493625,16.7899475 10.0333579,17.4556796 9.68377867,18.5970598 C9.0191343,20.7475737 9.72889785,22.4373206 13.0761134,23.3260543 L15.0071132,23.7451482 Z"
            }))), Object(jsx.c)("path", {
                d: "M60.72,30.286 C63.712,30.286 66,28.284 66,25.336 C66,22.608 64.064,21.42 61.688,20.716 C60.17,20.276 59.224,19.946 59.224,18.868 C59.224,17.966 59.884,17.262 60.918,17.262 C61.798,17.262 62.458,17.768 62.92,18.538 L65.406,16.976 C64.636,15.26 62.898,14.38 61.006,14.38 C58.014,14.38 56.122,16.536 56.122,19.022 C56.122,21.002 57.31,22.542 60.258,23.4 C61.864,23.862 62.876,24.17 62.876,25.446 C62.876,26.634 62.018,27.382 60.764,27.382 C59.422,27.382 58.41,26.524 57.794,25.732 L55.726,27.822 C56.826,29.318 58.63,30.286 60.72,30.286 Z M73.546,30.286 C70.378,30.286 67.804,27.756 67.804,24.676 C67.804,21.596 70.378,19.066 73.546,19.066 C76.714,19.066 79.288,21.596 79.288,24.676 C79.288,27.756 76.714,30.286 73.546,30.286 Z M73.546,27.47 C75.086,27.47 76.296,26.26 76.296,24.676 C76.296,23.092 75.086,21.882 73.546,21.882 C72.006,21.882 70.796,23.092 70.796,24.676 C70.796,26.26 72.006,27.47 73.546,27.47 Z M87.428,17.416 L87.428,14.6 L86.988,14.6 C83.336,14.6 81.554,17.02 81.554,19.88 L81.554,30 L84.546,30 L84.546,25.556 C84.546,24.082 85.69,23.026 87.34,22.982 L87.34,20.122 C86.152,20.122 85.206,20.474 84.546,21.178 L84.546,20.034 C84.546,18.186 85.756,17.35 87.428,17.416 Z M95.018,30.286 C91.85,30.286 89.276,27.756 89.276,24.676 C89.276,21.596 91.85,19.066 95.018,19.066 C98.186,19.066 100.76,21.596 100.76,24.676 C100.76,27.756 98.186,30.286 95.018,30.286 Z M95.018,27.47 C96.558,27.47 97.768,26.26 97.768,24.676 C97.768,23.092 96.558,21.882 95.018,21.882 C93.478,21.882 92.268,23.092 92.268,24.676 C92.268,26.26 93.478,27.47 95.018,27.47 Z M106.018,20.562 L106.018,19.352 L103.114,19.352 L103.114,30 L106.106,30 L106.106,25.138 C106.106,23.378 107.14,22.388 108.944,22.388 L108.944,19.176 C107.58,19.132 106.612,19.594 106.018,20.562 Z M114.378,24.566 L114.378,21.97 C115.038,22.674 115.984,23.026 117.172,23.026 L117.172,20.166 C115.544,20.122 114.378,19.044 114.378,17.592 L114.378,15.92 L111.386,15.92 L111.386,24.72 C111.386,27.58 113.168,30 116.82,30 L117.26,30 L117.26,27.184 C115.588,27.25 114.378,26.414 114.378,24.566 Z M121.572,30.176 C122.672,30.176 123.574,29.274 123.574,28.174 C123.574,27.074 122.672,26.172 121.572,26.172 C120.472,26.172 119.57,27.074 119.57,28.174 C119.57,29.274 120.472,30.176 121.572,30.176 Z",
                fill: secondary
            })))));
        }, _fundingLogos[constants.h.EPS] = function(_ref) {
            var logoColor = _ref.logoColor;
            if (!EPS_LOGO_COLORS[logoColor]) throw new Error("No " + logoColor + " eps logo available");
            var _EPS_LOGO_COLORS$logo = EPS_LOGO_COLORS[logoColor], primary = _EPS_LOGO_COLORS$logo.primary, secondary = _EPS_LOGO_COLORS$logo.secondary, tertiary = _EPS_LOGO_COLORS$logo.tertiary;
            return Object(jsx.c)("svg", {
                width: "52px",
                height: "32px",
                viewBox: "0 0 52 32",
                version: "1.1",
                xmlns: "http://www.w3.org/2000/svg"
            }, Object(jsx.c)("g", {
                stroke: "none",
                "stroke-width": "1",
                fill: "none",
                "fill-rule": "evenodd",
                transform: "matrix(1.333759, 0, 0, 1.333759, 0.000008, -0.000005)"
            }, Object(jsx.c)("g", {
                transform: "translate(-100.000000, -159.000000)"
            }, Object(jsx.c)("g", {
                transform: "translate(100.000000, 159.000000)"
            }, Object(jsx.c)("path", {
                d: "M30.5812744,12.0000152 L27.4748661,12.0000152 C27.129394,12.0000152 26.8482796,11.7245987 26.8482796,11.3798207 C26.8482796,11.0350427 27.129394,10.7315163 27.4748661,10.7315163 L32.2041612,10.7315163 L32.2041612,8.39747822 L27.4748661,8.39747822 C25.824238,8.39747822 24.4812484,9.74381226 24.4812484,11.3911357 C24.4812484,13.0384592 25.824238,14.3847932 27.4748661,14.3847932 L30.5390793,14.3847932 C30.8846021,14.3847932 31.1657165,14.6590934 31.1657165,15.0038715 C31.1657165,15.3486495 30.8846021,15.6025522 30.5390793,15.6025522 L23.9683147,15.6025522 C23.4104473,16.6680913 22.8679974,17.5814106 21.7668179,18.0380702 L30.5812744,18.0380702 C32.2041612,18.0146791 33.5316827,16.6405903 33.5316827,15.0078292 C33.5316827,13.3751696 32.2041612,12.0234063 30.5812744,12.0000152",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M18.6731848,15.6025522 L16.2795788,15.6025522 L16.2795788,13.1992034 C16.2795788,11.8562182 17.3483005,10.7635839 18.6731848,10.7635839 C19.9980691,10.7635839 21.0759195,11.8562182 21.0759195,13.1992034 C21.0759195,14.5422393 19.9980691,15.6025522 18.6731848,15.6025522 M18.6731848,8.39747822 C16.0403551,8.39747822 13.8959637,10.5557023 13.8959637,13.2076262 L13.8959637,13.3091061 L13.8959637,23.2135459 L16.2795788,23.2135459 L16.2795788,18.0380702 L18.6682147,18.0380702 C21.3010951,18.0380702 23.4379299,15.8511273 23.4379299,13.1992034 C23.4379299,10.5472795 21.3060651,8.39747822 18.6731848,8.39747822",
                fill: primary
            }), Object(jsx.c)("g", {
                transform: "translate(0.000000, 6.842233)"
            }, Object(jsx.c)("mask", {
                fill: secondary
            }, Object(jsx.c)("polygon", {
                points: "0 0.0330469345 12.6787834 0.0330469345 12.6787834 12.7180364 0 12.7180364",
                transform: "matrix(1, 0, 0, 1, 0, 0)"
            })), Object(jsx.c)("path", {
                d: "M6.34967672,11.1958376 C4.09589259,11.1958376 2.20112146,9.58905539 1.68833992,7.48994334 C1.68833992,7.48994334 1.54020078,6.7959222 1.54020078,6.3389074 C1.54020078,5.8818926 1.68042835,5.18071712 1.68042835,5.18071712 C2.19686138,3.08678055 4.08935033,1.52754165 6.33943225,1.52754165 C8.98580286,1.52754165 11.1573269,3.67982918 11.1573269,6.32744017 L11.1573269,7.49182072 L4.12642315,7.49182072 C4.54162861,8.30366004 5.38137113,8.76031966 6.34967672,8.76031966 L12.6701111,8.76031966 L12.6787834,1.89423932 C12.6787834,0.870560677 11.8417287,0.0330469345 10.8185493,0.0330469345 L1.86031521,0.0330469345 C0.837135761,0.0330469345 -2.02860858e-05,0.845190698 -2.02860858e-05,1.86886934 L-2.02860858e-05,10.831474 C-2.02860858e-05,11.8551526 0.837135761,12.7180364 1.86031521,12.7180364 L10.8185493,12.7180364 C11.7367482,12.7180364 12.5027001,12.0584169 12.6506871,11.1958376 L6.34967672,11.1958376 Z",
                fill: tertiary
            })), Object(jsx.c)("path", {
                d: "M6.33943732,10.6481099 C5.37483394,10.6481099 4.53595358,11.238926 4.11907451,12.0000254 L8.55990156,12.0000254 C8.1430225,11.238926 7.30419285,10.6481099 6.33943732,10.6481099",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M10.396619,3.96072558 C10.396619,1.77327526 8.57959428,1.52219873e-05 6.33823537,1.52219873e-05 C4.134,1.52219873e-05 2.34126788,1.71527949 2.28238752,3.85259873 C2.28142393,3.86163044 2.28218466,3.87040846 2.28218466,3.87969387 L2.28218466,5.0699518 C2.28218466,5.21232812 2.39806892,5.35308076 2.54392588,5.35308076 L4.03703251,5.35308076 C4.18288947,5.35308076 4.31079324,5.21232812 4.31079324,5.0699518 L4.31079324,3.96072558 C4.31079324,2.86839577 5.22011704,1.97968541 6.33940182,1.97968541 C7.45868661,1.97968541 8.3680104,2.86839577 8.3680104,3.96072558 L8.3680104,5.0699518 C8.3680104,5.21232812 8.486329,5.35308076 8.63218596,5.35308076 L10.1253433,5.35308076 C10.2712003,5.35308076 10.396619,5.21232812 10.396619,5.0699518 L10.396619,3.96072558 Z",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M20.7598572,20.7474063 C20.7598572,20.8523366 20.8407987,20.9002858 20.9277753,20.9002858 C21.0206856,20.9002858 21.1436192,20.8253429 21.1436192,20.687381 C21.1436192,20.5884888 21.0716036,20.5345015 20.9907129,20.5345015 C20.8827909,20.5345015 20.7598572,20.6034063 20.7598572,20.7474063 Z M20.0403098,20.7504 C20.0403098,20.8523366 20.1183098,20.9002858 20.2022434,20.9002858 C20.3071732,20.9002858 20.4211303,20.8253429 20.4211303,20.6843873 C20.4211303,20.5854444 20.3550991,20.5345015 20.2681732,20.5345015 C20.160302,20.5345015 20.0403098,20.6034063 20.0403098,20.7504 Z M21.3474437,21.133233 L21.1315997,22.3559645 C21.0236778,22.9739772 20.6189196,23.2570047 20.0702824,23.2570047 C19.6056296,23.2570047 19.2458559,22.9539856 19.3508364,22.3569793 L19.5666296,21.133233 L19.8994736,21.133233 L19.6835282,22.3559645 C19.6175984,22.7370723 19.7885087,22.9540364 20.1122746,22.9540364 C20.4450679,22.9540364 20.7298845,22.7559983 20.7988065,22.3569793 L21.0146505,21.133233 L21.3474437,21.133233 Z",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M21.9179189,22.5590867 C21.9059501,22.8050233 22.0647901,22.9639915 22.2956458,22.9639915 C22.5864468,22.9639915 22.8682205,22.7389598 22.8862244,22.3971247 C22.898244,22.1481438 22.736361,22.0011501 22.511439,22.0011501 C22.2236302,22.0011501 21.9358213,22.2321691 21.9179189,22.5590867 Z M22.1517667,21.1331924 L22.0018525,21.9781142 C22.1307199,21.8042283 22.388556,21.7122368 22.5684429,21.7122368 C22.9401854,21.7122368 23.1980216,21.9302156 23.1980216,22.3350698 C23.1980216,22.9079746 22.7992479,23.2524989 22.2896614,23.2524989 C22.0917706,23.2524989 21.9238525,23.178926 21.8219657,22.9930148 L21.7650125,23.2135307 L21.4741607,23.2135307 L21.8429111,21.1331924 L22.1517667,21.1331924 Z",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M24.7516112,22.3509666 C24.7755995,22.0972668 24.6256853,21.994011 24.3768257,21.994011 C24.1520559,21.994011 23.9451886,22.0972668 23.8551691,22.3509666 L24.7516112,22.3509666 Z M23.804251,22.6046664 C23.7922315,22.8076262 23.9511222,22.9733429 24.2209779,22.9733429 C24.3708921,22.9733429 24.5686814,22.9146875 24.6766034,22.812751 L24.8445215,23.006882 C24.6616931,23.1747298 24.3918375,23.2582985 24.1640247,23.2582985 C23.7383212,23.2582985 23.4894616,23.0032288 23.4894616,22.6132922 C23.4894616,22.0943746 23.8971612,21.7076854 24.4188179,21.7076854 C24.895541,21.7076854 25.1653459,21.9957869 25.0034629,22.6046664 L23.804251,22.6046664 Z",
                id: "Fill-16",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M25.8283814,21.7420871 L25.8133697,21.9376896 C25.9573502,21.7485311 26.131202,21.7099687 26.290042,21.7099687 C26.4339718,21.7099687 26.5628391,21.7610638 26.6318118,21.8360068 L26.4459913,22.1059941 C26.3800108,22.0461717 26.314081,22.0161844 26.2001239,22.0161844 C25.9872215,22.0161844 25.7774633,22.1438968 25.729436,22.4168778 L25.5885999,23.2135459 L25.2797442,23.2135459 L25.5405726,21.7420871 L25.8283814,21.7420871 Z",
                fill: tertiary
            }), Object(jsx.c)("polygon", {
                fill: tertiary,
                points: "28.1192941 21.7420871 28.275142 22.9057573 28.8387909 21.7420871 29.1835529 21.7420871 28.4100952 23.2135459 28.0473293 23.2135459 27.900458 22.2428397 27.6635672 22.7250723 27.4057818 23.2135459 27.0460081 23.2135459 26.7851797 21.7420871 27.1329847 21.7420871 27.285891 22.9057573 27.8524307 21.7420871"
            }), Object(jsx.c)("path", {
                d: "M30.5274503,22.3509666 C30.5513879,22.0972668 30.4015244,21.994011 30.1526649,21.994011 C29.9278951,21.994011 29.7210277,22.0972668 29.6310082,22.3509666 L30.5274503,22.3509666 Z M29.5800901,22.6046664 C29.5680706,22.8076262 29.7269614,22.9733429 29.996817,22.9733429 C30.1467312,22.9733429 30.3445205,22.9146875 30.4524425,22.812751 L30.6203606,23.006882 C30.4375322,23.1747298 30.1676766,23.2582985 29.9398638,23.2582985 C29.5141603,23.2582985 29.2653008,23.0032288 29.2653008,22.6132922 C29.2653008,22.0943746 29.6730004,21.7076854 30.1946571,21.7076854 C30.6713801,21.7076854 30.941185,21.9957869 30.7793021,22.6046664 L29.5800901,22.6046664 Z",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M31.3524449,21.3412364 C31.3524449,21.4461666 31.4304449,21.5003569 31.5144293,21.5003569 C31.63432,21.5003569 31.7452342,21.4222173 31.7452342,21.2753759 C31.7452342,21.1762808 31.6702264,21.119249 31.5892849,21.119249 C31.4783707,21.119249 31.3524449,21.1913505 31.3524449,21.3412364 Z M31.625242,21.742082 L31.3645151,23.2135408 L31.0556594,23.2135408 L31.3164878,21.742082 L31.625242,21.742082 Z",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M32.9955925,22.1060753 C32.8996393,21.9981006 32.7767563,21.9681133 32.629885,21.9681133 C32.4259085,21.9681133 32.2820801,22.0371704 32.2820801,22.1661006 C32.2820801,22.2740753 32.398928,22.3191831 32.5728811,22.3341006 C32.8426861,22.3580499 33.1874481,22.4481133 33.1154832,22.8290182 C33.0645651,23.1049421 32.7887251,23.266904 32.4049631,23.266904 C32.1651815,23.266904 31.9342752,23.2129167 31.7784273,22.9939738 L31.9792596,22.7750309 C32.0901737,22.9279104 32.2850723,22.9909801 32.4589241,22.9939738 C32.6057953,22.9939738 32.7797485,22.9399865 32.806729,22.8020245 C32.8337095,22.6700499 32.7167602,22.619107 32.5009163,22.5979992 C32.2490645,22.5739992 31.9733259,22.481145 31.9733259,22.202126 C31.9733259,21.833145 32.3719475,21.7042148 32.6718265,21.7042148 C32.8996393,21.7042148 33.0675573,21.7551577 33.2055027,21.9022021 L32.9955925,22.1060753 Z",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M33.9703034,21.7420871 L33.8294672,22.534493 C33.7844828,22.7865184 33.8984399,22.9606579 34.1562254,22.9606579 C34.3990498,22.9606579 34.6059172,22.7593725 34.6478079,22.5134359 L34.7827104,21.7420871 L35.0915153,21.7420871 L34.8307884,23.2135459 L34.5519562,23.2135459 L34.5729016,23.0003366 C34.3990498,23.1652922 34.2280888,23.2430765 34.0213229,23.2430765 C33.658557,23.2430765 33.442713,22.982882 33.5206116,22.5361167 L33.6615492,21.7420871 L33.9703034,21.7420871 Z",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M36.4472345,23.2135459 L36.588172,22.4259603 C36.633055,22.1709412 36.5462813,22.0020279 36.2644061,22.0020279 C36.0185895,22.0020279 35.8116207,22.199863 35.7697299,22.4428059 L35.6348274,23.2135459 L35.3260225,23.2135459 L35.5869016,21.7420871 L35.8686246,21.7420871 L35.8476792,21.957123 C36.0185895,21.7981548 36.1953827,21.7197615 36.3872384,21.7197615 C36.7470121,21.7197615 36.9809614,21.9701632 36.9000199,22.4231696 L36.7590823,23.2135459 L36.4472345,23.2135459 Z",
                fill: tertiary
            }), Object(jsx.c)("g", {
                transform: "translate(37.174252, 21.709040)"
            }, Object(jsx.c)("mask", {
                fill: secondary
            }, Object(jsx.c)("polygon", {
                points: "0.0103575649 0.00128879493 1.81575683 0.00128879493 1.81575683 2.2832981 0.0103575649 2.2832981",
                transform: "matrix(1, 0, 0, 1, 0, 0)"
            })), Object(jsx.c)("path", {
                d: "M0.406639662,0.85909852 C0.406639662,1.11092093 0.571514824,1.26400338 0.808507022,1.26400338 C1.44691014,1.26400338 1.61787113,0.2832 0.979214434,0.2832 C0.676444603,0.2832 0.406639662,0.508028753 0.406639662,0.85909852 Z M0.319663069,1.70747061 C0.298717685,1.91043044 0.45456554,1.9925277 0.715495319,1.9925277 C0.943358778,1.9925277 1.18922614,1.86522114 1.24617932,1.54134799 L1.291113,1.288663 C1.15621053,1.4776186 0.910343173,1.55220634 0.72756554,1.55220634 C0.349686476,1.55220634 0.085916645,1.32717463 0.085916645,0.91912389 C0.085916645,0.337339535 0.517553836,0.00128879493 1.00619493,0.00128879493 C1.21316372,0.00128879493 1.39903498,0.099572093 1.46501547,0.267572093 L1.51598427,0.0330520085 L1.8157619,0.0330520085 L1.55787503,1.54824863 C1.46202328,2.1092296 1.04524564,2.28331839 0.664526528,2.28331839 C0.208748895,2.28331839 -0.0429507152,2.06265032 0.0198854356,1.70747061 L0.319663069,1.70747061 Z",
                fill: tertiary
            }))))));
        }, _fundingLogos[constants.h.MYBANK] = function(_ref) {
            var logoColor = _ref.logoColor;
            if (!MYBANK_LOGO_COLORS[logoColor]) throw new Error("No " + logoColor + " mybank logo available");
            var _MYBANK_LOGO_COLORS$l = MYBANK_LOGO_COLORS[logoColor], primary = _MYBANK_LOGO_COLORS$l.primary, secondary = _MYBANK_LOGO_COLORS$l.secondary, tertiary = _MYBANK_LOGO_COLORS$l.tertiary;
            return Object(jsx.c)("svg", {
                width: "58px",
                height: "32px",
                viewBox: "0 0 58 32",
                version: "1.1",
                xmlns: "http://www.w3.org/2000/svg"
            }, Object(jsx.c)("g", {
                stroke: "none",
                "stroke-width": "1",
                fill: "none",
                "fill-rule": "evenodd",
                transform: "matrix(1.333867, 0, 0, 1.333867, -0.00001, -0.00321)"
            }, Object(jsx.c)("g", {
                transform: "translate(-100.000000, -159.000000)"
            }, Object(jsx.c)("g", {
                transform: "translate(100.000000, 159.000000)"
            }, Object(jsx.c)("path", {
                d: "M29.010016,14.6206556 C29.010016,14.6206556 27.947442,14.8389924 27.9585564,14.0777038 C27.9698571,13.3164773 29.8942008,13.3619719 30.0914038,13.4236258 C30.0914038,13.4236258 30.1519432,14.2874637 29.010016,14.6206556 M29.3297879,9.81836571 C27.677716,9.80301439 26.9053582,10.753926 26.9053582,10.753926 C26.4037199,11.2864986 26.7253546,12.0076376 27.2173686,12.0597202 C27.924406,12.1345501 27.9170171,11.5413802 29.0022546,11.2784811 C29.9542434,11.0477763 29.9954723,11.9305703 29.9954723,11.9305703 C25.9352386,11.8295126 26.1290887,15.239929 27.5113104,15.9642377 C28.8367183,16.658714 30.0756326,15.7825701 30.0756326,15.7825701 C30.0756326,15.7825701 30.1222013,16.2545455 30.777951,16.2545455 C31.5283904,16.2545455 31.5272727,15.5049412 31.5272727,15.5049412 L31.5242302,12.1853897 C31.4748674,9.75671183 29.3297879,9.81836571 29.3297879,9.81836571",
                id: "Fill-1",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M42.4169651,14.9132636 L40.766254,12.4266353 L41.9794586,11.2784792 C41.9794586,11.2784792 42.5394372,10.7597112 42.0797024,10.2455911 C41.5701862,9.67606803 40.9629029,10.2382165 40.9629029,10.2382165 L39.4383789,11.6556411 L39.4383789,8.81056644 C39.4383789,8.40291433 39.1083605,8.07272727 38.7011934,8.07272727 C38.2936547,8.07272727 37.9636364,8.40291433 37.9636364,8.81056644 L37.9636364,15.5050966 C37.9636364,15.9126248 38.2936547,16.2429358 38.7011934,16.2429358 C39.1083605,16.2429358 39.4383789,15.9126248 39.4383789,15.5050966 L39.4383789,13.7227806 L39.7172538,13.4440304 L41.2106953,15.7865117 C41.2106953,15.7865117 41.697426,16.5998328 42.4143027,16.0821803 C42.9532914,15.6931198 42.4169651,14.9132636 42.4169651,14.9132636",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M37.0887651,12.0920353 C37.0887651,9.6760941 35.0962232,9.33568291 33.7411943,10.1020724 C33.7401529,10.1029393 33.7389278,10.1056016 33.7382539,10.1063446 C33.6363205,9.81249385 33.362313,9.6 33.0365425,9.6 C32.6248269,9.6 32.2909091,9.93768691 32.2909091,10.3541303 L32.2909091,15.3913243 C32.2909091,15.8078915 32.6248269,16.1454545 33.0365425,16.1454545 C33.4485644,16.1454545 33.7826048,15.8078915 33.7826048,15.3913243 L33.7723134,11.9929705 C33.7723134,11.9929705 33.9532086,11.7752139 34.2436332,11.5669922 C34.9412403,11.0671487 35.6063806,11.2374162 35.6063806,12.0917257 L35.6234716,15.4035835 C35.6234716,15.8135877 35.9518762,16.1454545 36.3573435,16.1454545 C36.7625045,16.1454545 37.0909091,15.8135877 37.0909091,15.4035835 L37.0887651,12.0920353 Z",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M15.5613016,16.2862697 C15.7330634,15.9971851 15.762994,15.7935853 15.762994,15.7935853 L14.0695172,11.3349218 C14.0695172,11.3349218 13.7622674,10.4721348 14.4393994,10.2166114 C15.1567468,9.94557914 15.4157136,10.6357839 15.4696009,10.7805123 C15.5234881,10.9252407 16.5395249,13.6504516 16.5395249,13.6504516 L17.5177483,10.7867779 C17.5177483,10.7867779 17.7979621,9.89638514 18.5815138,10.2138818 C19.2290232,10.4764773 18.8964002,11.3498103 18.8964002,11.3498103 C18.8964002,11.3498103 17.8952671,14.3335844 17.0561037,16.4983684 C16.5548597,17.7916804 16.1267792,17.9191009 15.6376676,18.0403799 C14.9830758,18.2027884 13.7454545,18.1223286 13.7454545,17.30247 C13.7454545,16.655814 14.4027561,16.615491 14.6992284,16.6251065 C14.7151175,16.6254167 15.3279543,16.6788911 15.5613016,16.2862697",
                fill: secondary
            }), Object(jsx.c)("path", {
                d: "M11.5669215,8.85710249 L10.0137262,13.1590392 L8.3203761,8.88327934 C8.3203761,8.88327934 8.06948196,8.07272727 7.36345596,8.07272727 C6.54545455,8.07272727 6.57202708,8.72317872 6.55361169,8.88327934 C6.53525811,9.04350403 6.55361169,15.569481 6.55361169,15.569481 C6.55361169,15.569481 6.54545455,16.2545455 7.29591229,16.2545455 C8.06280792,16.2545455 8.02603896,15.56334 8.03209502,15.56334 C8.03821288,15.56334 8.03209502,12.1182301 8.03209502,12.1182301 L9.27754342,15.56334 C9.27754342,15.56334 9.46151186,16.2407127 10.0381976,16.2283686 C10.6148833,16.2161486 10.7804982,15.56334 10.7804982,15.56334 L11.823501,12.1244331 L11.823501,15.56334 C11.823501,15.56334 11.823501,16.2545455 12.5780991,16.2545455 C13.3081022,16.2545455 13.3081022,15.56334 13.3081022,15.56334 L13.3090909,8.88948239 C13.3090909,8.88948239 13.3090909,8.07272727 12.5166733,8.07663519 C11.8595284,8.07973672 11.609932,8.71207526 11.5669215,8.85710249 C11.5619778,8.8740368 11.5596913,8.88327934 11.5596913,8.88327934",
                fill: secondary
            }), Object(jsx.c)("g", null, Object(jsx.c)("mask", {
                fill: tertiary
            }, Object(jsx.c)("polygon", {
                points: "3.086436e-05 0.00960615385 42.6159033 0.00960615385 42.6159033 24 3.086436e-05 24",
                transform: "matrix(1, 0, 0, 1, 0, 0)"
            })), Object(jsx.c)("g", null), Object(jsx.c)("path", {
                d: "M42.6159341,18.6971754 L29.5208652,18.6971754 L19.9057529,18.6956369 L19.9124196,18.7062215 C18.0119775,20.9263446 15.1892466,22.3382831 12.0318843,22.3382831 C6.30740974,22.3382831 1.66682976,17.7116369 1.66682976,12.0048677 C1.66682976,6.29803692 6.30740974,1.67182154 12.0318843,1.67182154 C15.2027652,1.67182154 18.0390147,3.09182154 19.9398272,5.32819077 L22.0210727,5.32819077 C19.8613082,2.12277538 16.1963507,0.00960615385 12.0318843,0.00960615385 C5.38703452,0.00960615385 3.086436e-05,5.38012923 3.086436e-05,12.0048677 C3.086436e-05,18.6296062 5.38703452,24.0000062 12.0318843,24.0000062 C15.5178286,24.0000062 18.6504994,22.5164985 20.846622,20.1542215 L41.6296327,20.1336062 L42.6159341,18.6971754 Z",
                fill: secondary
            })), Object(jsx.c)("path", {
                d: "M23.5642714,14.6942333 L21.476941,14.6942333 L21.476941,12.703212 L23.5642714,12.703212 C24.0691167,12.729228 24.5593003,12.986305 24.5593003,13.698846 C24.5593003,14.4306215 24.1135333,14.6942333 23.5642714,14.6942333 Z M21.476941,9.5856756 L23.4225205,9.5856756 C23.8122278,9.59572442 24.2213404,9.80372869 24.2213404,10.3852036 C24.2213404,10.9910915 23.8636056,11.1846082 23.4225205,11.1846082 L21.476941,11.1846082 L21.476941,9.5856756 Z M25.2086687,11.7878453 C25.2484033,11.7332241 25.7477042,11.3284357 25.7082776,10.252103 C25.6287468,8.0729285 23.7375637,8.09777311 23.3189641,8.08507338 C22.644646,8.06479081 22.2387368,8.0729285 21.0010496,8.08507338 C19.9559983,8.09543044 19.9636372,9.0459372 19.9636372,9.0459372 L19.9636364,16.1454545 L23.4862807,16.1454545 C25.3714882,16.1454545 26.0727273,15.1069128 26.0727273,13.6549518 C26.0727273,12.1940516 25.2086687,11.7878453 25.2086687,11.7878453 Z",
                fill: secondary
            })))));
        }, _fundingLogos[constants.h.P24] = function(_ref) {
            var logoColor = _ref.logoColor;
            if (!P24_LOGO_COLORS[logoColor]) throw new Error("No " + logoColor + " p24 logo available");
            var _P24_LOGO_COLORS$logo = P24_LOGO_COLORS[logoColor], primary = _P24_LOGO_COLORS$logo.primary, secondary = _P24_LOGO_COLORS$logo.secondary;
            return Object(jsx.c)("svg", {
                xmlns: "http://www.w3.org/2000/svg",
                version: "1.1",
                viewBox: "0 0 100 32",
                height: "32",
                width: "100",
                preserveAspectRatio: "xMinYMin meet"
            }, Object(jsx.c)("g", {
                transform: "matrix(1.2953205,0,0,1.4482638,-127.73674,-229.48747)"
            }, Object(jsx.c)("g", {
                transform: "translate(99,159)"
            }, Object(jsx.c)("path", {
                transform: "matrix(0.77200971,0,0,0.69048194,-0.38599675,-0.54304623)",
                d: "M 34.123047 14.666016 L 32.416016 14.667969 L 30.496094 27.771484 L 32.208984 27.773438 L 34.123047 14.666016 z M 2.4082031 14.669922 L 0.5 27.771484 L 2.2753906 27.773438 L 2.9785156 22.916016 L 6.421875 22.933594 C 6.421875 22.933594 7.7610468 22.994689 8.7128906 22.419922 C 9.6646511 21.844634 9.9179688 20.537109 9.9179688 20.537109 C 9.9179688 20.537109 10.021944 20.051453 10.107422 19.458984 C 10.201364 18.808401 10.297704 18.027313 10.347656 17.611328 C 10.369589 17.428799 10.382812 17.316406 10.382812 17.316406 C 10.382812 17.316406 10.406035 17.181738 10.408203 16.972656 C 10.411247 16.680039 10.373345 16.24144 10.173828 15.824219 C 10.107822 15.686199 10.023752 15.551336 9.9179688 15.423828 C 9.7749921 15.251532 9.573657 15.118146 9.3457031 15.015625 C 9.1093266 14.909344 8.8444066 14.836083 8.5878906 14.785156 C 8.2611582 14.720236 7.9481918 14.691729 7.7226562 14.679688 C 7.5151753 14.668598 7.3808594 14.669922 7.3808594 14.669922 L 4.5292969 14.669922 L 2.4082031 14.669922 z M 3.9023438 16.636719 L 6.5097656 16.644531 C 6.5097656 16.644531 6.6871684 16.640189 6.9335938 16.644531 C 7.2136679 16.6496 7.5842469 16.667097 7.8886719 16.712891 C 8.149399 16.752066 8.3620627 16.811675 8.4277344 16.90625 C 8.5143382 17.03109 8.5484972 17.190294 8.5605469 17.335938 C 8.5776425 17.542977 8.5477921 17.723762 8.546875 17.736328 C 8.5451652 17.758038 8.3882592 18.81021 8.1777344 20.056641 C 8.0971356 20.533644 7.7783765 20.790093 7.4101562 20.878906 C 6.8022654 21.025453 6.1484375 21 6.1484375 21 L 3.2695312 20.990234 L 3.9023438 16.636719 z M 27.246094 18.195312 C 26.565902 18.205016 26.253806 18.2403 26 18.302734 C 26 18.302734 24.790129 18.501565 24.103516 19.472656 C 23.416902 20.4437 23.212891 22.568359 23.212891 22.568359 C 23.212891 22.568359 22.804576 24.916796 22.923828 25.699219 C 23.042829 26.481642 23.256401 27.206424 24.033203 27.546875 C 24.810173 27.88723 25.46875 27.873047 25.46875 27.873047 C 25.46875 27.873047 26.853325 27.996517 27.896484 27.714844 C 28.939685 27.433792 29.490234 26.595703 29.490234 26.595703 C 29.490234 26.595703 29.735609 26.235379 29.912109 25.804688 C 30.088777 25.374043 30.140682 25.073949 30.148438 25.037109 L 30.257812 24.53125 L 28.484375 24.533203 C 28.484375 24.533203 28.385914 25.868868 27.429688 25.992188 C 26.473716 26.115218 25.960314 26.068498 25.775391 26.060547 C 25.593178 26.052871 24.567122 26.102566 24.650391 25.125 C 24.650808 25.111821 24.651179 25.091912 24.652344 25.064453 C 24.69996 23.94948 24.808594 23.660156 24.808594 23.660156 L 30.375 23.642578 L 30.613281 22.072266 C 30.883598 20.286624 30.683916 18.929319 29.257812 18.398438 C 28.779056 18.220288 27.947801 18.185366 27.246094 18.195312 z M 37.748047 18.197266 C 37.067855 18.206824 36.755758 18.242238 36.501953 18.304688 C 36.501953 18.304688 35.292082 18.503803 34.605469 19.474609 C 33.918854 20.445938 33.714844 22.570313 33.714844 22.570312 C 33.714844 22.570312 33.306572 24.918749 33.425781 25.701172 C 33.545028 26.483643 33.758145 27.207998 34.535156 27.548828 C 35.311959 27.889232 35.970703 27.875 35.970703 27.875 C 35.970703 27.875 37.355488 27.998135 38.398438 27.716797 C 39.441597 27.435412 39.992187 26.597656 39.992188 26.597656 C 39.992188 26.597656 40.237604 26.237189 40.414062 25.806641 C 40.590771 25.376138 40.642384 25.077855 40.650391 25.041016 L 40.759766 24.533203 L 38.986328 24.535156 C 38.986328 24.535156 38.887867 25.871106 37.931641 25.994141 C 36.975669 26.117315 36.462059 26.072303 36.277344 26.064453 C 36.095172 26.056777 35.06916 26.104467 35.152344 25.126953 C 35.152802 25.113774 35.153175 25.093967 35.154297 25.066406 C 35.201874 23.951433 35.310547 23.662109 35.310547 23.662109 L 40.876953 23.644531 L 41.115234 22.076172 C 41.385759 20.290531 41.185607 18.931462 39.759766 18.400391 C 39.280716 18.222193 38.449796 18.187223 37.748047 18.197266 z M 46.277344 18.304688 L 43.757812 24.96875 L 43.179688 18.316406 L 41.541016 18.318359 L 42.371094 27.773438 L 44.355469 27.765625 L 46.90625 21.148438 L 47.486328 27.765625 L 49.505859 27.765625 L 53.117188 18.316406 L 51.417969 18.318359 L 48.898438 24.996094 L 48.300781 18.3125 L 46.277344 18.304688 z M 11.253906 18.310547 L 9.7929688 27.720703 L 11.617188 27.720703 L 12.427734 22.507812 C 12.596271 21.449811 13.285209 20.144531 14.638672 20.144531 L 15.582031 20.140625 L 15.865234 18.310547 L 14.873047 18.310547 C 14.184891 18.310547 13.533952 18.621542 12.978516 18.96875 L 13.076172 18.310547 L 11.253906 18.310547 z M 23.574219 18.310547 L 17.048828 18.320312 L 16.789062 20.167969 L 20.960938 20.167969 L 15.732422 25.884766 L 15.451172 27.771484 L 22.191406 27.769531 L 22.457031 25.939453 L 17.880859 25.951172 L 23.335938 20.005859 L 23.574219 18.310547 z M 59.283203 18.3125 L 56.183594 25.228516 L 55.087891 18.320312 L 53.347656 18.316406 L 54.962891 27.882812 L 54.755859 28.283203 C 54.755859 28.283203 54.42297 29.081956 54.011719 29.267578 C 53.600426 29.452827 52.910156 29.304688 52.910156 29.304688 L 52.650391 31.068359 L 53.066406 31.152344 C 53.459811 31.231491 53.623329 31.198848 54.033203 31.152344 C 54.443329 31.10608 54.748768 30.903232 55.25 30.449219 C 55.751441 29.99568 56.560547 28.207031 56.560547 28.207031 L 61.027344 18.330078 L 59.283203 18.3125 z M 37.816406 20.023438 C 38.153219 20.022293 38.536406 20.045829 38.880859 20.126953 C 39.109271 20.180351 39.326106 20.327316 39.382812 20.544922 C 39.516491 21.058003 39.375 21.841797 39.375 21.841797 L 35.558594 21.835938 L 35.710938 21.144531 C 35.710938 21.144531 35.842858 20.605552 36.107422 20.375 C 36.372026 20.144305 36.710486 20.103629 37.029297 20.068359 C 37.188702 20.050872 37.479594 20.024582 37.816406 20.023438 z M 27.330078 20.027344 C 27.666911 20.026207 28.050203 20.04988 28.394531 20.130859 C 28.623194 20.184445 28.839945 20.329507 28.896484 20.546875 C 29.030121 21.059954 28.886719 21.84375 28.886719 21.84375 L 25.072266 21.839844 L 25.224609 21.148438 C 25.224609 21.148438 25.35653 20.607886 25.621094 20.376953 C 25.885906 20.146258 26.224367 20.107486 26.542969 20.072266 C 26.702373 20.054561 26.993245 20.028481 27.330078 20.027344 z ",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "m 18.656138,16.774358 c -0.0046,0.0239 -0.0083,0.04735 -0.01154,0.07058 -0.0065,0.118231 0.01306,-0.07708 0.01154,-0.07058",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "m 26.763669,16.775893 c -0.0046,0.02391 -0.0083,0.04743 -0.01154,0.07066 -0.0065,0.118089 0.01306,-0.07731 0.01154,-0.07066",
                fill: primary
            }), Object(jsx.c)("path", {
                transform: "matrix(0.77200971,0,0,0.69048194,-0.38599675,-0.54304623)",
                d: "M 51.226562 0.78710938 C 50.728893 0.78574323 50.439453 0.79296875 50.439453 0.79296875 L 48.318359 5.6542969 C 48.318359 5.6542969 49.531198 5.9719517 51.199219 6.5273438 C 54.144731 7.5791572 56.515625 9.2929688 56.515625 9.2929688 L 66.666016 3.234375 C 66.745656 3.1868271 63.084253 2.0998969 59.082031 1.3945312 C 56.08052 0.86568549 52.71957 0.7912078 51.226562 0.78710938 z M 47.589844 0.90820312 C 47.589844 0.90820313 43.781742 1.1966088 40.910156 1.8066406 C 38.038322 2.4166724 34.904297 3.3691406 34.904297 3.3691406 L 35.34375 6.2011719 C 35.34375 6.2011719 37.385444 5.5830734 39.835938 5.25 C 42.979007 4.7627651 46.330078 5.2851562 46.330078 5.2851562 L 47.589844 0.90820312 z M 32.949219 4.0429688 C 32.949219 4.0429687 31.321834 4.6211203 28.267578 6.0117188 C 25.213321 7.4021267 22.914062 8.8925781 22.914062 8.8925781 L 25.453125 10.84375 C 25.453125 10.84375 27.099522 9.6851386 28.839844 8.8378906 C 30.525001 7.9290065 33.464844 6.8066406 33.464844 6.8066406 L 32.949219 4.0429688 z M 71.046875 5.0175781 L 58.333984 10.615234 L 60.566406 12.546875 L 78.900391 12.546875 C 78.900391 12.546875 78.861436 11.867776 78.373047 10.908203 C 78.067288 10.306786 77.515959 9.6724399 76.935547 9.0117188 C 76.724772 8.771647 75.878829 8.0196942 75.248047 7.5527344 C 73.629269 6.3552786 72.725403 5.8908131 71.046875 5.0175781 z M 20.621094 10.361328 C 20.621094 10.361328 18.007768 12.208509 16.898438 13.080078 C 15.819753 13.883157 13.6875 15.744141 13.6875 15.744141 L 19.160156 15.744141 C 19.160156 15.744141 20.387652 14.611026 21.257812 13.884766 C 22.127974 13.158363 23.712891 12.011719 23.712891 12.011719 L 20.621094 10.361328 z M 66.779297 14.519531 C 65.231195 14.543948 64.467235 14.626145 63.683594 14.955078 C 62.899953 15.283726 62.446574 15.882838 62.158203 16.728516 C 61.840059 17.527168 61.65625 19.259766 61.65625 19.259766 L 63.453125 19.261719 L 63.560547 18.464844 C 63.560547 18.464844 63.753461 17.029388 64.181641 16.751953 C 64.31878 16.663088 64.538495 16.579747 64.792969 16.529297 C 65.262594 16.436347 65.860733 16.425312 66.345703 16.445312 C 67.093861 16.476103 67.374266 16.483376 68.134766 16.582031 C 68.895557 16.68089 68.701172 17.517578 68.701172 17.517578 L 68.552734 18.767578 C 68.552734 18.767578 68.488006 19.327955 68.3125 19.677734 C 68.157306 19.987057 67.733373 20.195678 67.488281 20.287109 C 66.896194 20.507571 64.871094 21.095703 64.871094 21.095703 L 63.275391 21.619141 C 63.275391 21.619141 62.297563 21.944394 61.748047 22.636719 C 61.19878 23.329281 60.983257 24.116118 60.908203 24.527344 C 60.833113 24.938283 60.412109 27.769531 60.412109 27.769531 L 69.009766 27.773438 L 69.296875 25.810547 L 62.496094 25.820312 L 62.619141 25.021484 C 62.619141 25.021484 62.697988 24.196554 62.990234 23.927734 C 63.082461 23.842591 63.127078 23.730658 63.669922 23.509766 C 63.993778 23.377829 65.103516 23.039062 65.103516 23.039062 L 67.669922 22.240234 C 67.669922 22.240234 69.069743 21.828553 69.621094 20.957031 C 70.172403 20.085747 70.384766 18.416016 70.384766 18.416016 C 70.384766 18.416016 70.533003 16.793571 70.419922 16.285156 C 70.307099 15.776804 69.886071 15.166455 69.375 14.90625 C 68.863719 14.646045 68.327565 14.495353 66.779297 14.519531 z ",
                fill: secondary
            }), Object(jsx.c)("g", {
                transform: "translate(53.596306,9.56338)"
            }, Object(jsx.c)("path", {
                d: "M 4.7408782,5.7106164 1.839113,5.7061141 5.3711256,1.8647573 Z M 6.112171,5.7095319 7.0417209,0.01876197 5.3948175,0.01774319 0.26289873,5.6444944 0.02981113,7.0693723 4.5178982,7.0688465 4.1894639,9.0682502 l 1.376733,0.00181 0.3251187,-2.001047 1.2714396,0.00269 0.2297076,-1.3639812 z",
                fill: secondary
            })))));
        }, _fundingLogos[constants.h.BLIK] = function(_ref) {
            var logoColor = _ref.logoColor;
            if (!BLIK_LOGO_COLORS[logoColor]) throw new Error("No " + logoColor + " blik logo available");
            var _BLIK_LOGO_COLORS$log = BLIK_LOGO_COLORS[logoColor], primary = _BLIK_LOGO_COLORS$log.primary, secondary = _BLIK_LOGO_COLORS$log.secondary, tertiary = _BLIK_LOGO_COLORS$log.tertiary, quaternary = _BLIK_LOGO_COLORS$log.quaternary, quinary = _BLIK_LOGO_COLORS$log.quinary, senary = _BLIK_LOGO_COLORS$log.senary;
            return Object(jsx.c)("svg", {
                width: "58px",
                height: "30px",
                viewBox: "0 0 58 30",
                version: "1.1",
                xmlns: "http://www.w3.org/2000/svg"
            }, Object(jsx.c)("defs", null, Object(jsx.c)("path", {
                d: "M4.81760131,0 C2.15699346,0 0,2.12049689 0,4.73608696 L0,4.73608696 L0,25.263913 C0,27.8795031 2.15699346,30 4.81760131,30 L4.81760131,30 L53.1823987,30 C55.8430065,30 58,27.8795031 58,25.263913 L58,25.263913 L58,4.73608696 C58,2.12049689 55.8430065,0 53.1823987,0 L53.1823987,0 L4.81760131,0 Z",
                id: "path-1"
            }), Object(jsx.c)("linearGradient", {
                x1: "50%",
                y1: "100%",
                x2: "50%",
                y2: "0%",
                id: "linearGradient-3"
            }, Object(jsx.c)("stop", {
                "stop-color": primary,
                offset: "0%"
            }), Object(jsx.c)("stop", {
                "stop-color": secondary,
                offset: "100%"
            })), Object(jsx.c)("radialGradient", {
                cx: "20.3705659%",
                cy: "18.0870534%",
                fx: "20.3705659%",
                fy: "18.0870534%",
                r: "117.639519%",
                gradientTransform: "translate(0.203706,0.180871),scale(0.983106,1.000000),rotate(54.479781),translate(-0.203706,-0.180871)",
                id: "radialGradient-4"
            }, Object(jsx.c)("stop", {
                "stop-color": tertiary,
                offset: "0%"
            }), Object(jsx.c)("stop", {
                "stop-color": quaternary,
                offset: "55.9042441%"
            }), Object(jsx.c)("stop", {
                "stop-color": quinary,
                offset: "100%"
            })), Object(jsx.c)("path", {
                d: "M3.67238562,6.95664596 C5.60913072,6.95664596 7.17892157,5.41322981 7.17892157,3.50925466 C7.17892157,1.60546584 5.60913072,0.0620496894 3.67238562,0.0620496894 C1.73564052,0.0620496894 0.165849673,1.60546584 0.165849673,3.50925466 C0.165849673,5.41322981 1.73564052,6.95664596 3.67238562,6.95664596 Z",
                id: "path-5"
            })), Object(jsx.c)("g", {
                stroke: "none",
                "stroke-width": "1",
                fill: "none",
                "fill-rule": "evenodd"
            }, Object(jsx.c)("g", {
                transform: "translate(-100.000000, -159.000000)"
            }, Object(jsx.c)("g", {
                transform: "translate(100.000000, 159.000000)"
            }, Object(jsx.c)("g", null, Object(jsx.c)("mask", {
                id: "mask-2",
                fill: "white"
            }, Object(jsx.c)("use", {
                href: "#path-1"
            })), Object(jsx.c)("g", {
                id: "Clip-2"
            }), Object(jsx.c)("path", {
                d: "M4.81760131,0 C2.15699346,0 0,2.12049689 0,4.73608696 L0,4.73608696 L0,25.263913 C0,27.8795031 2.15699346,30 4.81760131,30 L4.81760131,30 L53.1823987,30 C55.8430065,30 58,27.8795031 58,25.263913 L58,25.263913 L58,4.73608696 C58,2.12049689 55.8430065,0 53.1823987,0 L53.1823987,0 L4.81760131,0 Z",
                fill: "url(#linearGradient-3)",
                mask: "url(#mask-2)"
            })), Object(jsx.c)("g", {
                transform: "translate(6.254902, 4.472050)",
                fill: senary
            }, Object(jsx.c)("polygon", {
                points: "17.627451 21.6769565 21.5604575 21.6769565 21.5604575 0.0154658385 17.627451 0.0154658385"
            }), Object(jsx.c)("polygon", {
                points: "24.9248366 21.6769565 28.8578431 21.6769565 28.8578431 7.32913043 24.9248366 7.32913043"
            }), Object(jsx.c)("polygon", {
                points: "46.4852941 21.6770124 40.5751699 14.0838447 46.0114379 7.32918634 41.3676471 7.32918634 36.1552288 13.8822298 36.1552288 0.0155217391 32.2222222 0.0155217391 32.2222222 21.6770124 36.1552288 21.6770124 36.1552288 14.3106149 41.3676471 21.6770124"
            }), Object(jsx.c)("path", {
                d: "M7.60539216,17.9735963 C5.65575817,17.9735963 4.0751634,16.4197453 4.0751634,14.5030994 C4.0751634,12.5864534 5.65575817,11.0326025 7.60539216,11.0326025 C9.55502614,11.0326025 11.1356209,12.5864534 11.1356209,14.5030994 C11.1356209,16.4197453 9.55502614,17.9735963 7.60539216,17.9735963 M7.60539216,7.16614286 C6.3282549,7.16614286 5.12636601,7.4821677 4.0751634,8.03800621 L4.0751634,0.0155217391 L0.142156863,0.0155217391 L0.142156863,14.5030994 C0.142156863,18.5551491 3.48360131,21.8400559 7.60539216,21.8400559 C11.727183,21.8400559 15.0686275,18.5551491 15.0686275,14.5030994 C15.0686275,10.4510497 11.727183,7.16614286 7.60539216,7.16614286"
            })), Object(jsx.c)("g", {
                transform: "translate(14.026144, 3.354037)"
            }, Object(jsx.c)("mask", {
                id: "mask-6",
                fill: "white"
            }, Object(jsx.c)("use", {
                href: "#path-5"
            })), Object(jsx.c)("use", {
                fill: "url(#radialGradient-4)",
                href: "#path-5"
            }), Object(jsx.c)("path", {
                d: "M3.67238562,6.95664596 C5.60913072,6.95664596 7.17892157,5.41322981 7.17892157,3.50925466 C7.17892157,1.60546584 5.60913072,0.0620496894 3.67238562,0.0620496894 C1.73564052,0.0620496894 0.165849673,1.60546584 0.165849673,3.50925466 C0.165849673,5.41322981 1.73564052,6.95664596 3.67238562,6.95664596 Z",
                mask: "url(#mask-6)"
            }))))));
        }, _fundingLogos[constants.h.MAXIMA] = function(_ref) {
            var logoColor = _ref.logoColor;
            if (!MAXIMA_LOGO_COLORS[logoColor]) throw new Error("No " + logoColor + " maxima logo available");
            var _MAXIMA_LOGO_COLORS$l = MAXIMA_LOGO_COLORS[logoColor], primary = _MAXIMA_LOGO_COLORS$l.primary, secondary = _MAXIMA_LOGO_COLORS$l.secondary;
            return Object(jsx.c)("svg", {
                width: "93px",
                height: "20px",
                viewBox: "0 0 93 20",
                version: "1.1",
                xmlns: "http://www.w3.org/2000/svg"
            }, Object(jsx.c)("defs", null, Object(jsx.c)("polygon", {
                id: "path-1",
                points: "0.126046849 0.210564103 13.9960414 0.210564103 13.9960414 19.7435897 0.126046849 19.7435897"
            })), Object(jsx.c)("g", {
                id: "Page-1",
                stroke: "none",
                "stroke-width": "1",
                fill: "none",
                "fill-rule": "evenodd"
            }, Object(jsx.c)("g", {
                id: "SPB_&_AltPay_NewAssets",
                transform: "translate(-101.000000, -153.000000)"
            }, Object(jsx.c)("g", {
                id: "logo-maxima",
                transform: "translate(101.000000, 153.000000)"
            }, Object(jsx.c)("path", {
                d: "M24.7684479,3.31769231 L31.0927027,3.31769231 C31.6107,4.85923077 32.1393986,6.37589744 32.679563,7.86205128 C33.3708205,9.79794872 33.9293301,11.3192308 34.3477027,12.4258974 C34.4990507,12.8233333 34.6516726,13.2235897 34.8042945,13.6202564 L34.6631384,16.9894872 L30.5446397,16.9894872 C30.4111274,16.4687179 30.2518808,15.9366667 30.0765822,15.3917949 C29.8329986,14.6961538 29.656426,14.1761538 29.5481384,13.8374359 L24.6869137,13.8374359 L23.3049082,16.9894872 L17.5085877,16.9894872 C18.7168233,14.9294872 19.9696479,12.6705128 21.2706288,10.2146154 C22.4380973,8.01717949 23.6025082,5.72051282 24.7684479,3.31769231 Z M26.1713466,10.3571795 L28.6736836,10.3571795 L27.6769274,7.00128205 L26.1713466,10.3571795 Z",
                id: "Fill-1",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M81.6723452,3.31769231 L87.9971096,3.31769231 C88.5140877,4.85923077 89.0417671,6.37589744 89.5832055,7.86205128 C90.2754822,9.79794872 90.8309342,11.3192308 91.2516,12.4258974 C91.8325315,13.9528205 92.4188137,15.4738462 93,16.9894872 L87.4470082,16.9894872 C87.3114575,16.4687179 87.1555233,15.9366667 86.9781863,15.3917949 C86.7371507,14.6961538 86.5605781,14.1761538 86.4505068,13.8374359 L81.5915753,13.8374359 L80.2067671,16.9894872 L74.4119753,16.9894872 C75.618937,14.9294872 76.872526,12.6705128 78.174526,10.2146154 C79.3419945,8.01717949 80.5038575,5.72051282 81.6723452,3.31769231 Z M83.076263,10.3571795 L85.5747781,10.3571795 L84.5803151,7.00128205 L83.076263,10.3571795 Z",
                id: "Fill-3",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M58.2832529,3.31807692 L64.9953049,3.31807692 C65.0651186,3.78217949 65.2523926,4.97474359 65.5637515,6.89858974 C65.8231323,8.46730769 65.9920611,9.69115385 66.0746145,10.5621795 C66.3449515,9.41653846 66.7452337,7.9024359 67.2734227,6.01935897 C67.7088666,4.47730769 67.9565268,3.57576923 68.0248118,3.31807692 L74.8996775,3.31807692 C74.8996775,4.79141026 74.8619679,6.30371795 74.7875679,7.85192308 C74.7154611,9.39782051 74.6372392,11.0239744 74.5656419,12.7219231 C74.4904775,14.4196154 74.4530227,15.8429487 74.4530227,16.9888462 L69.9372995,16.9888462 C69.9372995,16.0196154 69.9696584,14.9288462 70.0379433,13.7142308 C70.202031,10.7967949 70.2830556,8.96705128 70.2830556,8.22884615 L67.8235241,16.9888462 L63.3681871,16.9888462 L61.9469433,8.22884615 C61.7958501,9.62141026 61.6679433,11.1034615 61.5588912,12.670641 C61.4498392,14.2398718 61.3950584,15.6798718 61.3950584,16.9888462 L57.1058474,16.9888462 C57.2806364,15.4737179 57.4635789,13.9188462 57.65442,12.3237179 C57.8439871,10.7267949 57.9960995,9.18371795 58.1097378,7.69730769 C58.2251597,6.21192308 58.2832529,4.75064103 58.2832529,3.31807692",
                id: "Fill-5",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M50.0900038,3.31807692 L55.5584038,3.31807692 C55.1650011,7.91525641 54.9698285,12.4742308 54.9698285,16.9888462 L50.1251655,16.9888462 L49.461171,16.3744872 C49.4754395,15.2557692 49.525634,14.0047436 49.6109901,12.6201282 C49.7131627,10.9747436 49.8178833,9.27397436 49.9259162,7.51397436 C50.0342038,5.75346154 50.0900038,4.355 50.0900038,3.31807692",
                id: "Fill-7",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M1.17743096,3.31807692 L7.8899926,3.31807692 C7.95878712,3.78217949 8.14631589,4.97474359 8.45869397,6.89858974 C8.71552685,8.46730769 8.88522,9.69115385 8.96726384,10.5621795 C9.23963918,9.41653846 9.6386474,7.9024359 10.1676008,6.01935897 C10.6030447,4.47730769 10.8507049,3.57576923 10.9194995,3.31807692 L17.7938556,3.31807692 C17.7938556,4.79141026 17.7556364,6.30371795 17.6812364,7.85192308 C17.6091296,9.39782051 17.5314173,11.0239744 17.4580364,12.7219231 C17.3836364,14.4196154 17.3464364,15.8429487 17.3464364,16.9888462 L12.8304584,16.9888462 C12.8304584,16.0196154 12.8630721,14.9288462 12.932631,13.7142308 C13.0949351,10.7967949 13.1764693,8.96705128 13.1764693,8.22884615 L10.716683,16.9888462 L6.26185562,16.9888462 L4.83882822,8.22884615 C4.68900904,9.62141026 4.56110219,11.1034615 4.45230493,12.670641 C4.3422337,14.2398718 4.29025562,15.6798718 4.29025562,16.9888462 L2.54794521e-05,16.9888462 C0.174050137,15.4737179 0.356992603,13.9188462 0.54732411,12.3237179 C0.737655616,10.7267949 0.890277534,9.18371795 1.00569945,7.69730769 C1.12010219,6.21192308 1.17743096,4.75064103 1.17743096,3.31807692",
                id: "Fill-9",
                fill: primary
            }), Object(jsx.c)("g", {
                id: "Group-13",
                transform: "translate(35.161644, 0.045846)"
            }, Object(jsx.c)("mask", {
                id: "mask-2",
                fill: "white"
            }, Object(jsx.c)("use", {
                href: "#path-1"
            })), Object(jsx.c)("g", {
                id: "Clip-12"
            }), Object(jsx.c)("path", {
                d: "M13.9960414,17.0754359 L13.5193208,17.5531282 C13.4044085,17.5285128 13.3037647,17.5190256 13.2135674,17.5190256 C13.0303701,17.5190256 12.8729071,17.6226154 12.7373564,17.828 C12.6698359,17.9638974 12.7513701,18.1431282 12.9760989,18.3746667 C13.065277,18.4656923 13.3167592,18.6572308 13.7239208,18.9572308 L13.7239208,19.0251795 C13.7239208,19.092359 13.7585729,19.3331282 13.825329,19.743641 C12.4433236,19.743641 11.2075701,19.4695385 10.1203619,18.9218462 C9.4420989,18.5805641 8.38674,17.8482564 6.95887151,16.7321026 C6.32596192,16.1867179 5.79955644,15.6851795 5.37940027,15.228 C4.95669616,14.7695385 4.52303589,14.2005641 4.07001123,13.5174872 L0.126046849,16.8015897 L0.228983836,14.338 L2.8113263,11.1905641 C2.33664411,10.6656923 1.91495918,10.0977436 1.55493452,9.48005128 C1.30345233,8.95466667 1.09961671,8.44979487 0.942663288,7.95825641 C0.784945479,7.46569231 0.670287945,6.96235897 0.602512603,6.4354359 C0.716660548,6.21005128 0.772460548,6.04748718 0.772460548,5.958 L0.670287945,5.51312821 L4.34085781,1.74953846 L7.26564411,6.57261538 L12.8387647,0.414666667 C12.9541866,0.27825641 13.0446386,0.210564103 13.11114,0.210564103 C13.2688578,0.210564103 13.3501373,0.518769231 13.3501373,1.13364103 C13.3501373,1.63441026 13.3167592,2.15928205 13.2484742,2.70697436 C13.1801893,3.25517949 13.1330523,3.63158974 13.11114,3.83748718 C12.907814,4.88312821 12.1250852,5.96723077 10.7655016,7.08671795 C9.8607263,7.83953846 9.20259205,8.49005128 8.79517562,9.03594872 C8.92970712,9.35133333 9.04461945,9.60441026 9.13379753,9.78902564 C9.67727425,10.9254359 10.1422742,11.8277436 10.5277784,12.4910769 C11.0931674,13.4482564 11.6287455,14.2572308 12.1250852,14.9192821 C12.6221893,15.578 13.2484742,16.2956923 13.9960414,17.0754359",
                id: "Fill-11",
                fill: secondary,
                mask: "url(#mask-2)"
            }))))));
        }, _fundingLogos[constants.h.BOLETO] = function(_ref) {
            var logoColor = _ref.logoColor;
            if (!BOLETO_LOGO_COLORS[logoColor]) throw new Error("No " + logoColor + " boleto logo available");
            var _BOLETO_LOGO_COLORS$l = BOLETO_LOGO_COLORS[logoColor], primary = _BOLETO_LOGO_COLORS$l.primary, secondary = _BOLETO_LOGO_COLORS$l.secondary;
            return Object(jsx.c)("svg", {
                width: "50px",
                height: "23px",
                viewBox: "0 0 50 23",
                version: "1.1",
                xmlns: "http://www.w3.org/2000/svg"
            }, Object(jsx.c)("g", {
                id: "Page-1",
                stroke: "none",
                "stroke-width": "1",
                fill: "none",
                "fill-rule": "evenodd"
            }, Object(jsx.c)("g", {
                id: "SPB_&_AltPay_NewAssets",
                transform: "translate(-100.000000, -159.000000)"
            }, Object(jsx.c)("g", {
                id: "Group-38-Copy-2",
                transform: "translate(100.000000, 159.000000)"
            }, Object(jsx.c)("polygon", {
                id: "Fill-1",
                fill: primary,
                points: "3.77543103 22.2594828 6.12112069 22.2594828 6.12112069 0.294827586 3.77543103 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-3",
                fill: primary,
                points: "6.86077586 22.2594828 7.58793103 22.2594828 7.58793103 0.294827586 6.86077586 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-4",
                fill: primary,
                points: "8.22112069 22.2594828 9.52241379 22.2594828 9.52241379 0.294827586 8.22112069 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-5",
                fill: primary,
                points: "10.7771552 22.2594828 11.5043103 22.2594828 11.5043103 0.294827586 10.7771552 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-6",
                fill: primary,
                points: "11.8202586 22.2594828 12.3806034 22.2594828 12.3806034 0.294827586 11.8202586 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-7",
                fill: primary,
                points: "1.99181034 22.2594828 2.71896552 22.2594828 2.71896552 0.294827586 1.99181034 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-8",
                fill: primary,
                points: "0.388793103 22.2594828 1.69008621 22.2594828 1.69008621 0.294827586 0.388793103 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-9",
                fill: primary,
                points: "16.2655172 22.2594828 18.6112069 22.2594828 18.6112069 0.294827586 16.2655172 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-10",
                fill: primary,
                points: "19.350431 22.2594828 20.0775862 22.2594828 20.0775862 0.294827586 19.350431 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-11",
                fill: primary,
                points: "20.7112069 22.2594828 22.0125 22.2594828 22.0125 0.294827586 20.7112069 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-12",
                fill: primary,
                points: "23.2668103 22.2594828 23.9939655 22.2594828 23.9939655 0.294827586 23.2668103 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-13",
                fill: primary,
                points: "24.3099138 22.2594828 24.8702586 22.2594828 24.8702586 0.294827586 24.3099138 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-14",
                fill: primary,
                points: "14.4814655 22.2594828 15.2086207 22.2594828 15.2086207 0.294827586 14.4814655 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-15",
                fill: primary,
                points: "12.8784483 22.2594828 14.1797414 22.2594828 14.1797414 0.294827586 12.8784483 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-16",
                fill: primary,
                points: "25.7918103 22.2594828 27.0931034 22.2594828 27.0931034 0.294827586 25.7918103 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-17",
                fill: primary,
                points: "28.3474138 22.2594828 29.074569 22.2594828 29.074569 0.294827586 28.3474138 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-18",
                fill: primary,
                points: "29.3909483 22.2594828 29.9512931 22.2594828 29.9512931 0.294827586 29.3909483 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-19",
                fill: primary,
                points: "32.0521552 22.2594828 32.7793103 22.2594828 32.7793103 0.294827586 32.0521552 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-20",
                fill: primary,
                points: "30.4491379 22.2594828 31.750431 22.2594828 31.750431 0.294827586 30.4491379 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-21",
                fill: primary,
                points: "33.7456897 22.2594828 34.4728448 22.2594828 34.4728448 0.294827586 33.7456897 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-22",
                fill: primary,
                points: "34.7887931 22.2594828 35.3491379 22.2594828 35.3491379 0.294827586 34.7887931 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-23",
                fill: primary,
                points: "37.450431 22.2594828 38.1775862 22.2594828 38.1775862 0.294827586 37.450431 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-24",
                fill: primary,
                points: "35.8474138 22.2594828 37.1487069 22.2594828 37.1487069 0.294827586 35.8474138 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-25",
                fill: primary,
                points: "38.8112069 22.2594828 41.1568966 22.2594828 41.1568966 0.294827586 38.8112069 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-26",
                fill: primary,
                points: "41.8961207 22.2594828 42.6232759 22.2594828 42.6232759 0.294827586 41.8961207 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-27",
                fill: primary,
                points: "43.2564655 22.2594828 44.5577586 22.2594828 44.5577586 0.294827586 43.2564655 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-28",
                fill: primary,
                points: "45.8125 22.2594828 46.5396552 22.2594828 46.5396552 0.294827586 45.8125 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-29",
                fill: primary,
                points: "46.8556034 22.2594828 47.4159483 22.2594828 47.4159483 0.294827586 46.8556034 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-30",
                fill: primary,
                points: "48.3375 22.2594828 49.6387931 22.2594828 49.6387931 0.294827586 48.3375 0.294827586"
            }), Object(jsx.c)("polygon", {
                id: "Fill-31",
                fill: secondary,
                points: "3.04224138 22.3090517 48.0056034 22.3090517 48.0056034 9.9987069 3.04224138 9.9987069"
            }), Object(jsx.c)("path", {
                d: "M3.89008621,21.837069 L3.89008621,10.6991379 L8.06939655,10.6991379 C8.91982759,10.6991379 9.6012931,10.8107759 10.1172414,11.0362069 C10.6306034,11.2616379 11.0327586,11.6090517 11.3228448,12.0784483 C11.6159483,12.5452586 11.7612069,13.0349138 11.7612069,13.5482759 C11.7612069,14.0228448 11.6314655,14.4715517 11.375,14.8913793 C11.1181034,15.3116379 10.7293103,15.6512931 10.2081897,15.9103448 C10.8823276,16.1073276 11.4008621,16.4443966 11.7612069,16.9215517 C12.1241379,17.3956897 12.3056034,17.9586207 12.3056034,18.6068966 C12.3056034,19.1301724 12.1939655,19.6150862 11.9737069,20.0637931 C11.7534483,20.512069 11.4810345,20.8568966 11.1568966,21.1008621 C10.8327586,21.3418103 10.4258621,21.5258621 9.93836207,21.650431 C9.44827586,21.775 8.84956897,21.837069 8.13922414,21.837069 L3.89008621,21.837069 Z M5.36767241,15.3814655 L7.7762931,15.3814655 C8.42974138,15.3814655 8.8987069,15.3375 9.18146552,15.2517241 C9.55732759,15.1400862 9.84008621,14.9538793 10.0293103,14.6943966 C10.2185345,14.4353448 10.3146552,14.1112069 10.3146552,13.7193966 C10.3146552,13.3487069 10.2262931,13.0219828 10.0474138,12.7422414 C9.87112069,12.4594828 9.61724138,12.2650862 9.28793103,12.1612069 C8.95862069,12.0577586 8.39310345,12.0056034 7.59482759,12.0056034 L5.36767241,12.0056034 L5.36767241,15.3814655 Z M5.36767241,20.5301724 L8.14181034,20.5301724 C8.61896552,20.5301724 8.95344828,20.512069 9.14784483,20.4758621 C9.48491379,20.4163793 9.77025862,20.3150862 9.99827586,20.1724138 C10.2262931,20.0301724 10.412931,19.8228448 10.5607759,19.550431 C10.7086207,19.2780172 10.7810345,18.9646552 10.7810345,18.6094828 C10.7810345,18.1918103 10.675,17.8314655 10.4594828,17.5228448 C10.2469828,17.2142241 9.9512931,16.9991379 9.57284483,16.874569 C9.19698276,16.750431 8.65258621,16.687931 7.94482759,16.687931 L5.36767241,16.687931 L5.36767241,20.5301724 Z",
                id: "Fill-32",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M13.6435345,17.800431 C13.6435345,16.3094828 14.0581897,15.2051724 14.8905172,14.487069 C15.5827586,13.8905172 16.4306034,13.5926724 17.4288793,13.5926724 C18.5357759,13.5926724 19.4431034,13.9556034 20.1482759,14.6814655 C20.8508621,15.4047414 21.2034483,16.4081897 21.2034483,17.6862069 C21.2034483,18.7232759 21.0478448,19.5375 20.737069,20.1310345 C20.4258621,20.725 19.9719828,21.1862069 19.3758621,21.5155172 C18.7818966,21.8448276 18.1314655,22.0081897 17.4288793,22.0081897 C16.2982759,22.0081897 15.3857759,21.6478448 14.6883621,20.924569 C13.9909483,20.2012931 13.6435345,19.1590517 13.6435345,17.800431 Z M15.0435345,17.8030172 C15.0435345,18.8349138 15.2689655,19.6073276 15.7202586,20.1181034 C16.1737069,20.6314655 16.7418103,20.8883621 17.4288793,20.8883621 C18.1077586,20.8883621 18.6732759,20.6314655 19.1267241,20.1155172 C19.5780172,19.599569 19.8034483,18.8142241 19.8034483,17.7590517 C19.8034483,16.7633621 19.575431,16.0090517 19.1215517,15.4982759 C18.6681034,14.9849138 18.1030172,14.7280172 17.4288793,14.7280172 C16.7418103,14.7280172 16.1737069,14.9823276 15.7202586,15.4926724 C15.2689655,16.0034483 15.0435345,16.7737069 15.0435345,17.8030172 Z",
                id: "Fill-33",
                fill: primary
            }), Object(jsx.c)("polygon", {
                id: "Fill-34",
                fill: primary,
                points: "22.7771552 21.837069 24.1461207 21.837069 24.1461207 10.6991379 22.7771552 10.6991379"
            }), Object(jsx.c)("path", {
                d: "M31.7711207,19.2237069 L33.1866379,19.4103448 C32.9663793,20.2323276 32.5543103,20.8724138 31.9525862,21.3262931 C31.3512931,21.7801724 30.5836207,22.0081897 29.6478448,22.0081897 C28.4706897,22.0081897 27.5375,21.6452586 26.8478448,20.9193966 C26.1581897,20.1961207 25.8133621,19.1771552 25.8133621,17.8676724 C25.8133621,16.5146552 26.1607759,15.4616379 26.8581897,14.7150862 C27.5556034,13.9659483 28.4603448,13.5926724 29.5724138,13.5926724 C30.6487069,13.5926724 31.5275862,13.9581897 32.2094828,14.6918103 C32.8909483,15.425431 33.2331897,16.4573276 33.2331897,17.7875 C33.2331897,17.8676724 33.2306034,17.9896552 33.225431,18.150431 L27.2133621,18.150431 C27.2650862,19.0344828 27.5142241,19.7137931 27.9650862,20.1831897 C28.4137931,20.6521552 28.9762931,20.8883621 29.6478448,20.8883621 C30.1482759,20.8883621 30.5758621,20.7560345 30.9284483,20.4913793 C31.2836207,20.2271552 31.5637931,19.8043103 31.7711207,19.2237069 Z M27.2909483,17.0301724 L31.7866379,17.0301724 C31.7271552,16.3512931 31.5534483,15.8431034 31.2706897,15.5034483 C30.837931,14.9771552 30.2724138,14.7125 29.5801724,14.7125 C28.9530172,14.7125 28.4267241,14.9224138 27.9987069,15.3426724 C27.5737069,15.7625 27.337931,16.325 27.2909483,17.0301724 Z",
                id: "Fill-35",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M37.887069,20.6159483 L38.0737069,21.8241379 C37.6900862,21.9047414 37.3452586,21.9461207 37.0443966,21.9461207 C36.549569,21.9461207 36.1655172,21.8681034 35.8909483,21.7099138 C35.6185345,21.5517241 35.4267241,21.3469828 35.3155172,21.0905172 C35.2038793,20.8336207 35.149569,20.2943966 35.149569,19.4724138 L35.149569,14.8215517 L34.1383621,14.8215517 L34.1383621,13.7637931 L35.149569,13.7637931 L35.149569,11.7672414 L36.5181034,10.9456897 L36.5181034,13.7637931 L37.887069,13.7637931 L37.887069,14.8215517 L36.5181034,14.8215517 L36.5181034,19.550431 C36.5181034,19.9418103 36.5413793,20.1935345 36.5909483,20.3047414 C36.6375,20.4163793 36.7155172,20.5043103 36.8241379,20.5719828 C36.9331897,20.6366379 37.0887931,20.6702586 37.2909483,20.6702586 C37.4413793,20.6702586 37.6409483,20.6521552 37.887069,20.6159483",
                id: "Fill-36",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M38.724569,17.800431 C38.724569,16.3094828 39.1396552,15.2051724 39.9715517,14.487069 C40.6637931,13.8905172 41.5116379,13.5926724 42.5099138,13.5926724 C43.6168103,13.5926724 44.524569,13.9556034 45.2297414,14.6814655 C45.9323276,15.4047414 46.2849138,16.4081897 46.2849138,17.6862069 C46.2849138,18.7232759 46.1293103,19.5375 45.8181034,20.1310345 C45.5068966,20.725 45.0534483,21.1862069 44.4568966,21.5155172 C43.8633621,21.8448276 43.2125,22.0081897 42.5099138,22.0081897 C41.3797414,22.0081897 40.4668103,21.6478448 39.7693966,20.924569 C39.0719828,20.2012931 38.724569,19.1590517 38.724569,17.800431 Z M40.124569,17.8030172 C40.124569,18.8349138 40.350431,19.6073276 40.8012931,20.1181034 C41.2551724,20.6314655 41.8228448,20.8883621 42.5099138,20.8883621 C43.1892241,20.8883621 43.7543103,20.6314655 44.2081897,20.1155172 C44.6590517,19.599569 44.8849138,18.8142241 44.8849138,17.7590517 C44.8849138,16.7633621 44.6564655,16.0090517 44.2030172,15.4982759 C43.7491379,14.9849138 43.1840517,14.7280172 42.5099138,14.7280172 C41.8228448,14.7280172 41.2551724,14.9823276 40.8012931,15.4926724 C40.350431,16.0034483 40.124569,16.7737069 40.124569,17.8030172 Z",
                id: "Fill-37",
                fill: primary
            })))));
        }, _fundingLogos[constants.h.OXXO] = function(_ref) {
            var logoColor = _ref.logoColor;
            if (!OXXO_LOGO_COLORS[logoColor]) throw new Error("No " + logoColor + " oxxo logo available");
            var _OXXO_LOGO_COLORS$log = OXXO_LOGO_COLORS[logoColor], primary = _OXXO_LOGO_COLORS$log.primary, secondary = _OXXO_LOGO_COLORS$log.secondary;
            return Object(jsx.c)("svg", {
                width: "42px",
                height: "20px",
                viewBox: "0 0 42 20",
                version: "1.1",
                xmlns: "http://www.w3.org/2000/svg"
            }, Object(jsx.c)("g", {
                id: "Page-1",
                stroke: "none",
                "stroke-width": "1",
                fill: "none",
                "fill-rule": "evenodd"
            }, Object(jsx.c)("g", {
                id: "SPB_&_AltPay_NewAssets",
                transform: "translate(-100.000000, -159.000000)"
            }, Object(jsx.c)("g", {
                id: "logo-OXXO",
                transform: "translate(100.000000, 159.000000)"
            }, Object(jsx.c)("path", {
                d: "M0.142456528,1.48437917 C0.142456528,0.77043992 0.728159303,0.186243119 1.44446761,0.186243119 L40.6503931,0.186243119 C41.3667014,0.186243119 41.9524042,0.77043992 41.9524042,1.48437917 L41.9524042,18.1011373 C41.9524042,18.8150765 41.3667014,19.3990362 40.6503931,19.3990362 L1.44446761,19.3990362 C0.728159303,19.3990362 0.142456528,18.8150765 0.142456528,18.1011373 L0.142456528,1.48437917 Z",
                id: "Fill-2",
                fill: secondary
            }), Object(jsx.c)("polygon", {
                id: "Fill-4",
                fill: "#FEFEFE",
                points: "0.142480318 17.5124813 41.952428 17.5124813 41.952428 2.07265562 0.142480318 2.07265562"
            }), Object(jsx.c)("path", {
                d: "M35.5752619,6.08262231 C33.662331,6.08262231 32.1029152,7.63763417 32.1029152,9.54463469 C32.1029152,11.4511608 33.662331,13.0064099 35.5752619,13.0064099 C37.4877171,13.0064099 39.0471329,11.4511608 39.0471329,9.54463469 C39.0471329,7.63763417 37.4877171,6.08262231 35.5752619,6.08262231",
                id: "Fill-6",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M6.95585459,6.08262231 C5.04268574,6.08262231 3.48326994,7.63763417 3.48326994,9.54463469 C3.48326994,11.4511608 5.04268574,13.0064099 6.95585459,13.0064099 C8.86807185,13.0064099 10.4277255,11.4511608 10.4277255,9.54463469 C10.4277255,7.63763417 8.86807185,6.08262231 6.95585459,6.08262231",
                id: "Fill-7",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M35.5752619,15.0141446 C32.5537303,15.0141446 30.0893537,12.5573397 30.0893537,9.54480072 C30.0893537,6.53155015 32.5537303,4.07521964 35.5752619,4.07521964 C38.5970315,4.07521964 41.0609322,6.53155015 41.0609322,9.54480072 C41.0609322,12.5573397 38.5970315,15.0141446 35.5752619,15.0141446 Z M12.4411918,9.54480072 C12.4411918,12.5573397 9.97729109,15.0141446 6.95575943,15.0141446 C3.93351408,15.0141446 1.46985124,12.5573397 1.46985124,9.54480072 C1.46985124,6.53155015 3.93351408,4.07521964 6.95575943,4.07521964 C9.97729109,4.07521964 12.4411918,6.53155015 12.4411918,9.54480072 Z M35.3028697,3.03585692 C32.0884035,2.9620911 30.5772808,5.01709763 28.384107,7.55170056 L26.3151155,9.94232969 L29.591435,13.8526295 C30.3719756,15.0542296 28.8822636,16.2465793 27.9580332,15.1472077 L24.9288888,11.5447794 L21.9772989,14.9562705 C21.0373673,16.0421223 19.5645461,14.8288999 20.3617394,13.6386849 L23.5659761,9.92382894 L21.4667717,7.42693908 L22.8173138,5.75949957 L24.9522028,8.31639828 L26.7923372,6.18217058 C27.6953948,5.13569219 28.6162946,3.74884741 29.8098246,3.03585692 L0.142385159,3.03585692 L0.142385159,16.549707 L7.07875226,16.549707 C10.2934564,16.549707 11.7529554,14.6332189 13.8866549,12.0492806 L15.8999784,9.61097649 L12.5334959,5.77752594 C11.726073,4.59418943 13.1874752,3.36815887 14.1371606,4.44594623 L17.2483795,7.9779294 L20.1209875,4.49931378 C21.0354641,3.39164059 22.5356435,4.57118208 21.7662842,5.77942346 L18.6486421,9.56757088 L20.8051797,12.0153626 L19.4463112,13.6197098 L17.2997653,11.2058361 L15.5095892,13.3813347 C14.6310351,14.4484486 13.7415376,15.8094397 12.5646605,16.549707 L41.9523328,16.549707 L41.9523328,3.03585692 L35.3028697,3.03585692 Z",
                id: "Fill-8",
                fill: primary
            })))));
        }, _fundingLogos[constants.h.MERCADOPAGO] = function(_ref) {
            var logoColor = _ref.logoColor;
            if (!MERCADOPAGO_LOGO_COLORS[logoColor]) throw new Error("No " + logoColor + " mercadopago logo available");
            var _MERCADOPAGO_LOGO_COL2 = MERCADOPAGO_LOGO_COLORS[logoColor], primary = _MERCADOPAGO_LOGO_COL2.primary, secondary = _MERCADOPAGO_LOGO_COL2.secondary, tertiary = _MERCADOPAGO_LOGO_COL2.tertiary, quaternary = _MERCADOPAGO_LOGO_COL2.quaternary;
            return Object(jsx.c)("svg", {
                width: "98px",
                height: "26px",
                viewBox: "0 0 98 26",
                version: "1.1",
                xmlns: "http://www.w3.org/2000/svg"
            }, Object(jsx.c)("title", null, "MercadoPago"), Object(jsx.c)("g", {
                id: "Page-1",
                stroke: "none",
                "stroke-width": "1",
                fill: "none",
                "fill-rule": "evenodd"
            }, Object(jsx.c)("g", {
                id: "MERCADO-PAGO-SPEC",
                transform: "translate(-1451.000000, -108.000000)"
            }, Object(jsx.c)("g", {
                id: "BTN_OXXO_SILVER",
                transform: "translate(1340.000000, 97.000000)"
            }, Object(jsx.c)("g", {
                id: "LOGO_MERCADOPAGO_2_26",
                transform: "translate(111.000000, 11.000000)"
            }, Object(jsx.c)("path", {
                d: "M35.6856062,11.9270732 C35.6856062,5.49784553 27.6975208,0.257102279 17.8434328,0.257102279 C7.98985878,0.257102279 0.00203049886,5.49784553 0.00203049886,11.9270732 C0.00203049886,12.0931114 -2.57025172e-05,12.5521584 -2.57025172e-05,12.6102461 C-2.57025172e-05,19.430666 6.98180606,24.954908 17.8411196,24.954908 C28.7677737,24.954908 35.6856062,19.4322082 35.6856062,12.6115312 L35.6856062,11.9270732 Z",
                id: "background_border",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M35.0023818,11.9212901 C35.0023818,17.9824577 27.3216986,22.8960079 17.8467227,22.8960079 C8.37200381,22.8960079 0.691577629,17.9824577 0.691577629,11.9212901 C0.691577629,5.85960846 8.37200381,0.946058252 17.8467227,0.946058252 C27.3216986,0.946058252 35.0023818,5.85960846 35.0023818,11.9212901",
                id: "background",
                fill: quaternary
            }), Object(jsx.c)("path", {
                d: "M12.1504795,8.4587241 C12.1414836,8.47594479 11.9703048,8.65303513 12.0810827,8.79542708 C12.3519872,9.14112593 13.1880901,9.33954936 14.0337029,9.14986479 C14.5372152,9.03677371 15.1826054,8.52349444 15.8076906,8.02743586 C16.485209,7.48922515 17.1573298,6.95024337 17.833049,6.73588438 C18.548607,6.50816007 19.0068829,6.60582964 19.3096586,6.6973306 C19.6419921,6.79654232 20.0326704,7.01527074 20.6559564,7.48279952 C21.8297904,8.36542396 26.5498006,12.4852804 27.3653415,13.1977542 C28.0222978,12.9008901 30.9413327,11.6442941 34.9082592,10.7698944 C34.5635885,8.65509133 33.2771775,6.72020584 31.3260994,5.13590268 C28.6070301,6.27812254 25.2839517,6.87390689 22.0343824,5.28677646 C22.0179328,5.2800938 20.2591096,4.4478463 18.5244467,4.4887133 C15.9462272,4.54834314 14.8291958,5.66434643 13.647137,6.84563412 L12.1504795,8.4587241 Z",
                id: "righthand",
                fill: secondary
            }), Object(jsx.c)("path", {
                d: "M27.1736521,13.645672 C27.1183917,13.5965802 21.6237076,8.78866731 20.3786777,7.85283866 C19.6584931,7.31257175 19.2577909,7.17480626 18.8370407,7.121088 C18.6180552,7.09281523 18.3155366,7.13342521 18.1040049,7.1915129 C17.5249272,7.34906933 16.7679881,7.85540892 16.0953532,8.3882221 C15.399329,8.94262539 14.7431438,9.46464351 14.1345082,9.60112388 C13.3562359,9.77538695 12.4062709,9.56976681 11.9726694,9.27650109 C11.7971212,9.15852654 11.6734921,9.02204617 11.6141193,8.88325258 C11.4539926,8.5118512 11.7493146,8.21498713 11.7978923,8.16538127 L13.3140838,6.52530365 C13.4904031,6.34924141 13.6680075,6.17343619 13.8494672,5.9999442 C13.3603483,6.06368644 12.907984,6.18860068 12.4676999,6.31120168 C11.9181801,6.46567381 11.3899934,6.61269221 10.855381,6.61243519 C10.6322832,6.61243519 9.43634504,6.41632498 9.20939182,6.35463894 C7.83739145,5.97912516 6.6329715,5.61337834 4.83405232,4.77342008 C2.67838221,6.37828525 1.23698504,8.38462374 0.820604265,10.5947832 C1.1303196,10.6765172 1.62920546,10.8250777 1.838938,10.8715993 C6.71701873,11.9562455 8.23629452,13.0735339 8.51208253,13.3069128 C8.81048875,12.9748363 9.24074889,12.7645897 9.72138596,12.7645897 C10.2611388,12.7653608 10.7474304,13.0365223 11.0430094,13.4557304 C11.3223958,13.2349458 11.7076765,13.0465463 12.2057913,13.0468033 C12.4319734,13.0468033 12.6666374,13.0886984 12.9033576,13.1691473 C13.4539055,13.3580608 13.7379183,13.7245787 13.8851937,14.0561412 C14.0699948,13.972608 14.296691,13.911179 14.5639972,13.9119501 C14.8266769,13.9119501 15.0998947,13.9720939 15.3754257,14.0908396 C16.2747568,14.4768914 16.4148355,15.3602869 16.3331015,16.0264961 C16.3971007,16.0187854 16.4616141,16.0159581 16.5271555,16.0159581 C17.5935529,16.0167292 18.4610129,16.8834181 18.4604988,17.9503296 C18.4604988,18.2803499 18.3759375,18.5908363 18.2291762,18.86354 C18.5193576,19.026751 19.259076,19.3955821 19.9083216,19.313334 C20.4272554,19.2480496 20.6243937,19.0704453 20.6948186,18.9709765 C20.7428823,18.9020938 20.7942874,18.8221589 20.7467377,18.7645853 L19.3703679,17.2355426 C19.3703679,17.2355426 19.1436717,17.0211836 19.2184661,16.9386785 C19.2963447,16.8536031 19.4361664,16.9754331 19.5351211,17.0581952 C20.2357717,17.6434415 21.0911515,18.5260659 21.0911515,18.5260659 C21.1055449,18.5355759 21.1620904,18.6476388 21.4784884,18.7044414 C21.750678,18.7530192 22.2323432,18.7247464 22.5662189,18.4505005 C22.6505232,18.3813608 22.7345704,18.2950003 22.8049953,18.2058126 C22.7993407,18.210182 22.7949713,18.2160936 22.7895738,18.2181498 C23.1414412,17.7678417 22.750763,17.3121361 22.750763,17.3121361 L21.1438416,15.5075623 C21.1438416,15.5075623 20.9140611,15.2952595 20.9919397,15.2096702 C21.0621076,15.1356469 21.2098971,15.2474529 21.3103939,15.3312431 C21.8193038,15.7566197 22.5382032,16.4780894 23.2272877,17.1530375 C23.3617118,17.2512211 23.9672631,17.6259638 24.7691817,17.0993192 C25.2554733,16.7800939 25.3533999,16.3881306 25.3395205,16.0922946 C25.3055932,15.7005882 25.0002473,15.4217159 25.0002473,15.4217159 L22.8049953,13.2148978 C22.8049953,13.2148978 22.5734156,13.0169884 22.6551496,12.9167486 C22.7222332,12.8324443 22.8728499,12.9540172 22.9712906,13.0365223 C23.6709131,13.6215116 25.5636465,15.3569456 25.5636465,15.3569456 C25.5906341,15.3759654 26.2447632,15.841695 27.0528503,15.3271307 C27.3417466,15.1423296 27.5265477,14.8637143 27.5424833,14.5403766 C27.569985,13.9790336 27.1736521,13.645672 27.1736521,13.645672",
                id: "lefthand",
                fill: secondary
            }), Object(jsx.c)("path", {
                d: "M16.5269242,16.4433139 C16.1866228,16.4392015 15.8144504,16.6414803 15.7656156,16.6119224 C15.738885,16.5941876 15.7864346,16.4574503 15.8183058,16.3785435 C15.850948,16.3001508 16.2991999,14.9515398 15.2065858,14.4832399 C14.370483,14.1239187 13.8595169,14.5282193 13.6837117,14.7107072 C13.6377042,14.7582568 13.6171422,14.7546585 13.6117447,14.6934865 C13.595038,14.4508547 13.4863164,13.7936414 12.7645897,13.5736278 C11.7334047,13.2577439 11.0702798,13.9776714 10.9019283,14.2375238 C10.8266199,13.6497073 10.3297902,13.1932306 9.72115464,13.1929727 C9.05957184,13.1922025 8.52316031,13.7281 8.52238914,14.3891687 C8.52213221,15.0502374 9.05828672,15.5863919 9.71961249,15.5863919 C10.041151,15.587163 10.3323605,15.4586504 10.5472335,15.2522592 C10.5541732,15.2586849 10.5567435,15.269994 10.5534021,15.2926122 C10.5030252,15.5887052 10.4102391,16.6646125 11.5370375,17.1025834 C11.9888877,17.2781316 12.3731404,17.1475628 12.6915945,16.924208 C12.7864368,16.8571244 12.8021154,16.8856542 12.788493,16.9745849 C12.7478831,17.251401 12.7992881,17.843844 13.6299934,18.180804 C14.2617613,18.4375722 14.63599,18.1746354 14.880935,17.9481962 C14.9876004,17.8510407 15.0166442,17.8667193 15.0222988,18.017079 C15.0523707,18.8177124 15.7175519,19.4535927 16.525125,19.4543644 C17.3573725,19.4551348 18.0318065,18.7822429 18.0320642,17.9502524 C18.0328346,17.1180049 17.3589146,16.4523097 16.5269242,16.4433139",
                id: "fingers",
                fill: secondary
            }), Object(jsx.c)("path", {
                d: "M16.5269242,19.3471586 C15.7725553,19.3463875 15.1595502,18.7603701 15.1317915,18.0134549 C15.1297353,17.9494557 15.1233097,17.779048 14.9793756,17.779048 C14.9200028,17.779048 14.8685977,17.8147745 14.8092249,17.8682357 C14.6437007,18.0219368 14.432426,18.1782081 14.1237388,18.1782081 C13.9839171,18.1782081 13.8322723,18.1455659 13.6721456,18.0800245 C12.8756246,17.7574579 12.8645725,17.2105083 12.8969577,16.9904948 C12.9056965,16.931893 12.9087808,16.870721 12.8684279,16.8234284 L12.8193361,16.7794771 L12.7697302,16.7794771 C12.7293772,16.7794771 12.6874821,16.7959267 12.6311936,16.8357656 C12.4006421,16.9974344 12.1798574,17.0760841 11.9552174,17.0760841 C11.8313313,17.0760841 11.7046179,17.0511527 11.5776475,17.0023179 C10.5289848,16.5941619 10.6117469,15.604358 10.6631519,15.3064658 C10.6706056,15.2463219 10.6556982,15.1992863 10.6174014,15.1681863 L10.5433782,15.1072713 L10.4739814,15.1735838 C10.2693893,15.3704651 10.0023402,15.4784157 9.72115464,15.4784157 C9.12074384,15.4776446 8.63188196,14.9898108 8.6323956,14.389143 C8.63291006,13.7882181 9.12202896,13.3006414 9.72269679,13.3014116 C10.2655339,13.3014116 10.7276652,13.7093114 10.796805,14.2516345 L10.8343307,14.5441292 L10.9949714,14.2966139 C11.0129631,14.2675701 11.4529902,13.6021319 12.2618485,13.602903 C12.4158065,13.602903 12.5746481,13.6278344 12.7345177,13.6771833 C13.3796509,13.8740645 13.4888866,14.4587968 13.5055933,14.7024567 C13.5171594,14.8443346 13.6181703,14.8512743 13.6379612,14.8512743 C13.6937357,14.8512743 13.7346027,14.8158048 13.7636465,14.7854758 C13.8854765,14.6585054 14.1504694,14.4472307 14.565308,14.4472307 C14.7549926,14.4477447 14.9572714,14.4927241 15.1657188,14.5824259 C16.1904782,15.022196 15.7257767,16.3245425 15.7201221,16.3381649 C15.6322195,16.554066 15.6286212,16.6494224 15.7113833,16.7044257 L15.7517362,16.7237026 L15.7818082,16.7237026 C15.8278157,16.7237026 15.8853893,16.7036547 15.9802316,16.6715265 C16.1197963,16.6232058 16.3302999,16.5507247 16.5271812,16.5512387 L16.5276952,16.5512387 C17.2992848,16.5594635 17.9266832,17.1876331 17.9264263,17.9502267 C17.9256551,18.7207882 17.2979997,19.3471586 16.5269242,19.3471586 M27.3862377,13.0700898 C25.6937269,11.5929662 21.7818038,8.19226611 20.722346,7.39703022 C20.1173088,6.94158162 19.7042693,6.70126308 19.3418638,6.59331251 C19.1791669,6.54396368 18.9537558,6.48818922 18.6635744,6.48793219 C18.3944691,6.48793219 18.1050587,6.53650995 17.8027971,6.63263736 C17.1180821,6.84930958 16.4359372,7.39137567 15.7761536,7.91570702 L15.7422263,7.94269466 C15.1276791,8.43104249 14.4925699,8.936611 14.0119329,9.04404752 C13.8019433,9.09134016 13.5862992,9.11550052 13.3711691,9.11550052 C12.8327014,9.11472945 12.34898,8.95948624 12.1677772,8.72842061 C12.1379623,8.69012386 12.1569822,8.6281808 12.2271501,8.53899306 L12.236403,8.5271699 L13.7253498,6.92256176 C14.891473,5.75643855 15.9930829,4.65534272 18.5286362,4.596998 C18.5702743,4.59571288 18.6131975,4.5949418 18.6550926,4.5949418 C20.2334842,4.5959699 21.8113617,5.3025321 21.988195,5.38452313 C23.4681459,6.10624981 24.9953895,6.47302473 26.5311149,6.47430986 C28.1313536,6.47482391 29.7824833,6.07874812 31.5184313,5.27939984 C31.3246344,5.11618885 31.1228696,4.95760432 30.9151933,4.80184707 C29.3902629,5.46291581 27.9372996,5.79704853 26.5352273,5.79653448 C25.1035971,5.79524935 23.672995,5.4516067 22.284031,4.77383132 C22.2107788,4.7388759 20.4686622,3.91742345 18.6558637,3.91665238 C18.608571,3.91665238 18.5602503,3.91742345 18.5129577,3.91819453 C16.3829901,3.96805741 15.1831966,4.72422546 14.3766516,5.38709338 C13.5919537,5.40611324 12.9149494,5.59528377 12.3127394,5.76337823 C11.7752998,5.91270986 11.3111123,6.04225054 10.858234,6.04199352 C10.6718907,6.04199352 10.3362159,6.02502986 10.3061439,6.02400176 C9.78541093,6.00832322 7.16272608,5.36498922 5.07645276,4.57489384 C4.86337889,4.72576762 4.65852983,4.88152487 4.4590783,5.0401094 C6.63839473,5.9335289 9.2908945,6.62492661 10.1280255,6.67890189 C10.3608903,6.69406638 10.6091766,6.72053997 10.8572059,6.72105402 C11.4110951,6.72105402 11.9636993,6.56555379 12.4985686,6.41596514 C12.8144526,6.32729146 13.1629787,6.23090702 13.5297536,6.16048212 C13.431827,6.25660954 13.3341575,6.35402208 13.2362309,6.45220569 L11.7233807,8.08868496 C11.6043781,8.20897274 11.3458107,8.52974016 11.5162184,8.92478784 C11.5840731,9.08414345 11.7215815,9.23655938 11.9140934,9.36635709 C12.2744427,9.60898885 12.9200899,9.77322794 13.5197296,9.77374199 C13.7469399,9.77399901 13.96207,9.75112377 14.1602364,9.70665842 C14.7943175,9.56426647 15.4594986,9.03453759 16.1642616,8.47422272 C16.7256046,8.02828405 17.5234107,7.46180057 18.1341026,7.29524826 C18.3047673,7.24898373 18.5142428,7.21993988 18.6828513,7.21993988 C18.7332282,7.22045393 18.7807779,7.22199608 18.8247292,7.22842171 C19.2285157,7.27956972 19.6184229,7.41682116 20.3149611,7.93961036 C21.5566497,8.87235471 27.0521049,13.6797535 27.1058232,13.7273032 C27.1096786,13.7301305 27.4600039,14.0323921 27.4355865,14.5348763 C27.4227352,14.8150337 27.266978,15.0640911 26.9965875,15.236555 C26.7621805,15.3853726 26.5200628,15.461195 26.2753749,15.461195 C25.9080859,15.4604239 25.6551731,15.2884741 25.6387235,15.2766509 C25.6184185,15.2602013 23.7357091,13.5337632 23.0432833,12.9539144 C22.9327625,12.8626705 22.825583,12.7801654 22.7171184,12.7801654 C22.6590307,12.7796514 22.6078827,12.8045828 22.5731843,12.8480201 C22.4642056,12.9821872 22.5862926,13.1682734 22.7302267,13.2908744 L24.929334,15.5012909 C24.9324183,15.5036041 25.2035799,15.757802 25.2331378,16.0968182 C25.2503585,16.4633361 25.0753243,16.7699672 24.7111197,17.0084865 C24.4515242,17.1794083 24.1888445,17.2662828 23.9315623,17.2662828 C23.5938312,17.2662828 23.356597,17.1125817 23.3041639,17.0760841 L22.988794,16.7650837 C22.4120295,16.1978291 21.8167592,15.6112977 21.3811015,15.2476071 C21.2749502,15.1591904 21.161088,15.0777134 21.0531374,15.0777134 C20.9996762,15.0777134 20.9516125,15.0975044 20.9146009,15.1363152 C20.864995,15.1915756 20.8302966,15.2910443 20.9541827,15.4555404 C21.0053307,15.5233951 21.0652176,15.5794266 21.0652176,15.5794266 L22.6700828,17.3819441 C22.6834481,17.3981367 23.0008742,17.7754496 22.7063233,18.1512204 L22.6495208,18.2231875 C22.6017141,18.2761347 22.549795,18.3247124 22.5004462,18.3671216 C22.2267144,18.5917616 21.8609675,18.6156649 21.7160053,18.6156649 C21.6388978,18.6156649 21.5641035,18.6089823 21.4993331,18.5971591 C21.3407486,18.5688863 21.2343402,18.524678 21.1829351,18.463763 L21.1636583,18.4434581 C21.0757556,18.3529852 20.2668974,17.5271633 19.5973469,16.9683906 C19.5094442,16.8943673 19.3994375,16.8013242 19.2853183,16.8013242 C19.2292868,16.8013242 19.1791669,16.8234284 19.1406131,16.8660946 C19.0079881,17.0110568 19.2069256,17.227986 19.2912299,17.3074068 L20.6601459,18.8169156 C20.6586038,18.8302809 20.6413831,18.861381 20.6082269,18.9091877 C20.559135,18.9770423 20.3930968,19.1430806 19.8965242,19.2052807 C19.8371513,19.2132484 19.7757223,19.2163327 19.7148074,19.2163327 C19.2028132,19.2163327 18.6566347,18.9677894 18.3751922,18.8184578 C18.5031907,18.5480673 18.5697602,18.2499181 18.5697602,17.9509978 C18.5702743,16.8244565 17.6555217,15.9079047 16.5289804,15.9071337 C16.50482,15.9071337 16.4791175,15.9079047 16.4552141,15.9086758 C16.4919687,15.3943684 16.4192306,14.420243 15.4194027,13.9915251 C15.1317915,13.8671249 14.8446944,13.8036397 14.5658221,13.8036397 C14.3476077,13.8036397 14.1376182,13.8409083 13.9402228,13.9167307 C13.7330605,13.5142293 13.3891609,13.2209636 12.9403949,13.0680336 C12.6926226,12.9821872 12.4458785,12.9387499 12.2073591,12.9387499 C11.7914924,12.9387499 11.4082679,13.061351 11.0664244,13.3044968 C10.7387173,12.8971119 10.2442009,12.6560223 9.72295381,12.6560223 C9.26724818,12.6560223 8.82876324,12.8385101 8.5036264,13.1603056 C8.07773569,12.8349118 6.38753816,11.7610606 1.86389514,10.733988 C1.64490969,10.6846392 1.14216846,10.540191 0.833995277,10.4502322 C0.783104293,10.6951772 0.744036467,10.9426925 0.71833395,11.1922639 C0.71833395,11.1922639 1.55263766,11.3922295 1.71687674,11.4289841 C6.3379323,12.4555426 7.86491885,13.5227111 8.12297212,13.7244759 C8.03558356,13.9342084 7.99009011,14.1609046 7.98957605,14.389143 C7.989062,15.3437345 8.76553505,16.1212356 9.72115464,16.1220067 C9.82807711,16.1220067 9.9342285,16.1127538 10.0385807,16.0934769 C10.1822578,16.7959267 10.6420758,17.3284829 11.3447826,17.6019576 C11.5501458,17.6808644 11.7578221,17.7214743 11.9616431,17.7214743 C12.093754,17.7217314 12.226379,17.7050247 12.3559197,17.6718685 C12.4854604,18.0016318 12.777698,18.412358 13.4302849,18.677608 C13.6592943,18.769623 13.8880467,18.8176867 14.1106305,18.8176867 C14.2923473,18.8176867 14.4699517,18.7858156 14.6393313,18.7236155 C14.9521309,19.4854381 15.6967329,19.9902375 16.5264101,19.9902375 C17.076444,19.9910066 17.6043737,19.7668807 17.9893974,19.3705478 C18.3194177,19.5538068 19.0151848,19.8853693 19.7181487,19.8863974 C19.8093926,19.8863974 19.894725,19.8797147 19.9800573,19.8696907 C20.6781377,19.7812741 21.0032745,19.5083133 21.1526062,19.2960105 C21.1795938,19.2589989 21.2037542,19.2196741 21.2243162,19.1788071 C21.3893264,19.2260997 21.5705291,19.2649105 21.7782054,19.2654245 C22.1596308,19.2654245 22.5256346,19.1353698 22.8954939,18.8657504 C23.2589275,18.6035847 23.5172377,18.2275569 23.5545064,17.9070465 C23.5552775,17.9029341 23.5560485,17.8980506 23.5565626,17.8934242 C23.6789066,17.9186126 23.8045919,17.9317209 23.9302772,17.9317209 C24.3227546,17.9317209 24.7090635,17.809377 25.0781516,17.5675163 C25.7898543,17.1007586 25.9137404,16.4913519 25.9019173,16.0921918 C26.0263175,16.1181513 26.1535449,16.1315166 26.2800013,16.1315166 C26.6488324,16.1315166 27.0104669,16.0207388 27.3556517,15.8007252 C27.7969639,15.5187686 28.0624709,15.0869663 28.1025668,14.5844821 C28.1303255,14.2428957 28.0455072,13.8982249 27.8653326,13.6018749 C29.0581864,13.0880816 31.7839383,12.0936512 34.9939257,11.3703824 C34.9743918,11.121325 34.9386653,10.8756089 34.8941999,10.6309209 C31.0102926,11.4927263 28.1120767,12.7470092 27.3862377,13.0700898",
                id: "handoutline",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M82.5260533,20.2673344 C82.2142818,20.68243 81.766544,20.8898493 81.1830968,20.8898493 C80.5993927,20.8898493 80.1495986,20.68243 79.8357709,20.2673344 C79.5196299,19.8535238 79.3628446,19.2636511 79.3628446,18.4995152 C79.3628446,17.7356364 79.5196299,17.1470488 79.8357709,16.7352945 C80.1495986,16.321998 80.5993927,16.1168919 81.1830968,16.1168919 C81.766544,16.1168919 82.2142818,16.321998 82.5260533,16.7352945 C82.839367,17.1470488 82.9948673,17.7356364 82.9948673,18.4995152 C82.9948673,19.2636511 82.839367,19.8535238 82.5260533,20.2673344 M84.1229507,15.6398532 C83.4778176,14.8322801 82.4998368,14.4295216 81.1882373,14.4295216 C79.8789511,14.4295216 78.9007133,14.8322801 78.2566082,15.6398532 C77.6119891,16.4461411 77.2901936,17.3989335 77.2901936,18.4995152 C77.2901936,19.6188599 77.6119891,20.5749935 78.2566082,21.3715145 C78.9007133,22.1646942 79.8789511,22.5630832 81.1882373,22.5630832 C82.4998368,22.5630832 83.4778176,22.1646942 84.1229507,21.3715145 C84.7665418,20.5749935 85.0873092,19.6188599 85.0873092,18.4995152 C85.0873092,17.3989335 84.7665418,16.4461411 84.1229507,15.6398532",
                id: "pago_o",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M71.2460667,18.5582712 C71.2460667,19.8971153 71.6331467,20.639147 72.4067924,20.7859084 C73.178896,20.9290714 73.750006,20.7496678 74.117552,20.2458985 C74.291815,20.0338527 74.4167293,19.6979208 74.4940938,19.2427292 C74.5709444,18.7870236 74.5768559,18.3354304 74.5090013,17.8892347 C74.4424318,17.4417538 74.281791,17.0438789 74.0301634,16.6945817 C73.7795639,16.3460555 73.4117608,16.1705074 72.9282965,16.1705074 C72.2705691,16.1705074 71.8269436,16.4141672 71.5943359,16.8973745 C71.360957,17.3836662 71.2460667,17.9365273 71.2460667,18.5582712 M74.5526956,21.905253 L74.5526956,21.4122787 C74.2049405,21.956658 73.7350985,22.293875 73.1457398,22.4308695 C72.555353,22.5658077 71.9708777,22.5174869 71.392057,22.2841081 C70.8114372,22.0522714 70.3128083,21.619955 69.8966846,20.9899863 C69.482103,20.3571904 69.2741696,19.5275131 69.2741696,18.4988984 C69.2741696,17.2970487 69.5497006,16.3206101 70.0999915,15.5736949 C70.6515675,14.8267798 71.5367622,14.4859644 72.7545475,14.4525511 C73.954855,14.420937 74.6526784,14.6926126 75.3358513,15.2100043 C76.0827664,15.7770018 76.5246005,16.646775 76.5246005,18.0043819 L76.5246005,22.1108731 C76.527677,23.4175891 75.6165228,25.8392803 72.7545475,25.6339171 C70.9815878,25.5054046 69.9976955,24.7780233 69.4484327,23.1299779 L71.565292,23.1299779 C71.7200212,23.4008825 71.9564843,23.6095869 72.2772517,23.754035 C72.5944208,23.9015675 72.9151882,23.9393502 73.2321002,23.8712385 C73.5508115,23.8033839 73.8415069,23.6134423 74.1039296,23.304241 C74.3635251,22.9934976 74.5131137,22.5269969 74.5526956,21.905253",
                id: "pago_g",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M66.540784,19.3679776 C66.5281898,20.0380422 66.335935,20.4981173 65.9678749,20.7515441 C65.6000719,21.0039428 65.1973135,21.1303992 64.7606277,21.1303992 C64.4840686,21.1303992 64.2501757,21.0540627 64.0579209,20.9024179 C63.865152,20.750516 63.7687676,20.5027437 63.7687676,20.1609002 C63.7687676,19.7779327 63.926324,19.494434 64.2416939,19.3114321 C64.4293223,19.2042526 64.7346682,19.1122375 65.161844,19.0392424 L65.6175496,18.9544241 C65.8455309,18.9112439 66.0241634,18.8657504 66.1531901,18.8161445 C66.2858151,18.7680808 66.4132996,18.7043386 66.540784,18.6236327 L66.540784,19.3679776 Z M67.5562905,15.0065175 C66.9026755,14.6762401 66.1552463,14.5089167 65.314774,14.5089167 C64.0206522,14.5089167 63.1089839,14.8461337 62.5774559,15.5192827 C62.2440942,15.9503139 62.0559518,16.5003478 62.0127716,17.1701554 L63.9453439,17.1701554 C63.9926365,16.8745764 64.0869647,16.6406835 64.2301277,16.4679626 C64.4293223,16.2340697 64.7683406,16.1168662 65.2461482,16.1168662 C65.6753803,16.1168662 65.9982039,16.175725 66.2189885,16.2960127 C66.4390021,16.4155294 66.5497799,16.6316876 66.5497799,16.9455154 C66.5497799,17.2030546 66.4063599,17.3924821 66.1179776,17.5145691 C65.9578509,17.584737 65.6918299,17.6430817 65.3178583,17.6901173 L64.6331432,17.7736505 C63.8556421,17.8720911 63.2647412,18.0368442 62.8655811,18.2661107 C62.1333164,18.6873749 61.7683406,19.3679776 61.7683406,20.3086897 C61.7683406,21.0337577 61.9942658,21.5951007 62.4499714,21.9904054 C62.9028498,22.3857101 63.4801283,22.5525195 64.1769235,22.5846476 C68.5442952,22.7797297 68.4954605,20.2822161 68.5352994,19.7630253 L68.5352994,16.8887128 C68.5352994,15.9667635 68.2093915,15.3398791 67.5562905,15.0065175 L67.5562905,15.0065175 Z",
                id: "pago_a",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M59.2065451,18.5572688 C59.2065451,17.7998156 59.0590126,17.2176536 58.7626626,16.8089836 C58.4675977,16.4026268 58.0445343,16.1967496 57.4932153,16.1967496 C56.9622013,16.1967496 56.5483907,16.4026268 56.2517837,16.8089836 C55.9772808,17.1785858 55.8400294,17.762804 55.8400294,18.5572688 C55.8400294,19.2977583 55.9873048,19.8488203 56.2828837,20.2184225 C56.5774346,20.6270925 57.0012691,20.8306564 57.5523311,20.8306564 C58.0635541,20.8306564 58.4675977,20.6270925 58.7626626,20.2184225 C59.0590126,19.8105235 59.2065451,19.2586905 59.2065451,18.5572688 L59.2065451,18.5572688 Z M55.8400294,23.9923231 C55.8400294,24.2642557 55.7413317,24.4976346 55.5434223,24.6914315 C55.3475691,24.8859996 55.111106,24.9831551 54.8350609,24.9831551 L53.8321487,24.9831551 L53.8321487,18.0031225 C53.8321487,16.6457726 54.2893965,15.7955333 55.0424803,15.2210821 C55.539824,14.8411989 56.2813416,14.4787934 57.6703056,14.4787934 C58.6081905,14.4787934 59.706459,14.842741 60.2999301,15.5660098 C60.9656253,16.3794945 61.2432125,17.2860223 61.2432125,18.4698802 C61.2432125,19.6946052 60.9478906,20.6826099 60.3577608,21.4421193 C59.767374,22.1810667 59.0086357,22.5488697 58.0836021,22.5488697 C57.5916559,22.5488697 57.1588255,22.4612241 56.7848539,22.2877321 C56.3898062,22.0929071 56.0764925,21.7921876 55.8400294,21.3837746 L55.8400294,23.9923231 Z",
                id: "pago_p",
                fill: tertiary
            }), Object(jsx.c)("path", {
                d: "M94.8863424,9.12010127 C94.5735428,9.5349399 94.1268331,9.74235921 93.5423578,9.74235921 C92.9591677,9.74235921 92.5098877,9.5349399 92.1950319,9.12010127 C91.879919,8.7057767 91.7226196,8.1156469 91.7226196,7.35099702 C91.7226196,6.58737523 91.879919,5.99878759 92.1950319,5.58651921 C92.5098877,5.17399381 92.9591677,4.96785962 93.5423578,4.96785962 C94.1268331,4.96785962 94.5735428,5.17399381 94.8863424,5.58651921 C95.198628,5.99878759 95.3551564,6.58737523 95.3551564,7.35099702 C95.3551564,8.1156469 95.198628,8.7057767 94.8863424,9.12010127 M96.4822117,4.49133496 C95.8381067,3.68427592 94.8606399,3.28100342 93.5485264,3.28100342 C92.2382121,3.28100342 91.2604883,3.68427592 90.6168973,4.49133496 C89.9722782,5.29787995 89.6499686,6.25118631 89.6499686,7.35099702 C89.6499686,8.47059866 89.9722782,9.42724635 90.6168973,10.2237674 C91.2604883,11.0174611 92.2382121,11.4158501 93.5485264,11.4158501 C94.8606399,11.4158501 95.8381067,11.0174611 96.4822117,10.2237674 C97.1268309,9.42724635 97.4481123,8.47059866 97.4481123,7.35099702 C97.4481123,6.25118631 97.1268309,5.29787995 96.4822117,4.49133496",
                id: "mercado_o",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M86.6429797,9.1366794 C86.349714,9.55717258 85.9191969,9.76690512 85.3552836,9.76690512 C84.7895712,9.76690512 84.368821,9.55511638 84.0917479,9.13308104 C83.8146747,8.71027464 83.6761382,8.09469935 83.6761382,7.39045038 C83.6761382,6.73683537 83.8115904,6.18962878 84.0848082,5.74857358 C84.3572549,5.30803244 84.7849448,5.08673377 85.368906,5.08673377 C85.7518735,5.08673377 86.0872913,5.20830667 86.3774727,5.45068141 C86.8488569,5.85241175 87.084292,6.57259628 87.084292,7.50534063 C87.084292,8.172835 86.9372736,8.71644324 86.6429797,9.1366794 L86.6429797,9.1366794 Z M89.0525907,0.930636741 C89.0525907,0.930636741 87.0290315,0.714478572 87.0290315,2.33990576 L87.0274894,4.49172049 C86.8036205,4.13214228 86.5124109,3.85095674 86.1530898,3.64842091 C85.7945396,3.44562805 85.3840704,3.34333203 84.9206541,3.34333203 C83.9172278,3.34333203 83.1173655,3.71730365 82.5169547,4.46344773 C81.9165439,5.21087692 81.6178806,6.28729834 81.6178806,7.58913084 C81.6178806,8.71849944 81.9221984,9.64481816 82.531091,10.3657738 C83.1399837,11.0859583 84.3343796,11.4020993 85.3951225,11.4020993 C89.0937147,11.4020993 89.0510486,8.23040864 89.0510486,8.23040864 L89.0525907,0.930636741 Z",
                id: "mercado_d",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M79.0090237,8.17810402 C78.9954014,8.84739757 78.8036606,9.30850072 78.4353435,9.56141349 C78.0667694,9.81432626 77.664268,9.94103967 77.2278393,9.94103967 C76.9512802,9.94103967 76.7173873,9.86444617 76.5246184,9.71254429 C76.3323636,9.56038539 76.2364932,9.31312718 76.2364932,8.9712837 C76.2364932,8.58780214 76.3935356,8.30481743 76.7083914,8.12181551 C76.8960198,8.01463601 77.2018797,7.92236397 77.6290556,7.8491118 L78.0852752,7.76455052 C78.3122285,7.72137029 78.490861,7.67536278 78.6214297,7.62601395 C78.7535407,7.57795024 78.8810252,7.51446503 79.0090237,7.43375912 L79.0090237,8.17810402 Z M80.0235021,3.81664388 C79.3704011,3.48533843 78.6229719,3.31827207 77.7817285,3.31827207 C76.4888919,3.31827207 75.5764525,3.65600315 75.0451815,4.32915207 C74.7107918,4.76069734 74.5236774,5.31047418 74.4799832,5.97976773 L76.4117843,5.97976773 C76.459334,5.6844458 76.5541763,5.4505529 76.6968253,5.27757496 C76.8960198,5.04368205 77.2345219,4.9267356 77.7133598,4.9267356 C78.1415638,4.9267356 78.4649014,4.98533734 78.6862001,5.10613917 C78.9062136,5.22514182 79.0169915,5.44181404 79.0169915,5.7548707 C79.0169915,6.01292397 78.8740855,6.20183747 78.5854462,6.32418146 C78.4248055,6.39460635 78.1585274,6.45295107 77.7850698,6.49972965 L77.1003548,6.5840339 C76.3223396,6.68196049 75.7319528,6.8464566 75.3317646,7.07623711 C74.600528,7.49775839 74.2350382,8.17810402 74.2350382,9.1193302 C74.2350382,9.84414118 74.4614773,10.4054842 74.9166689,10.8010459 C75.3700613,11.1966076 75.9473399,11.3626459 76.6441351,11.3950311 C81.0125349,11.5898561 80.9634431,9.0928566 81.003539,8.57340873 L81.003539,5.69883921 C81.003539,4.77740397 80.676089,4.14923445 80.0235021,3.81664388 L80.0235021,3.81664388 Z",
                id: "mercado_a",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M70.0623373,5.03054806 C70.5617372,5.03054806 70.9282551,5.18476317 71.1652323,5.49293635 C71.3279293,5.7211747 71.4291972,5.9784569 71.4690361,6.26349781 L73.6234211,6.26349781 C73.5054465,5.17628134 73.1250493,4.417286 72.4830004,3.98728289 C71.8383813,3.55907896 71.0130734,3.34343484 70.0039926,3.34343484 C68.8173074,3.34343484 67.8850771,3.70815356 67.2119282,4.43579182 C66.536723,5.16445818 66.199506,6.18253488 66.199506,7.49156408 C66.199506,8.65074761 66.5045949,9.59557214 67.1150297,10.3237244 C67.7259785,11.0513627 68.6787708,11.4158244 69.9728926,11.4158244 C71.2690705,11.4158244 72.2475653,10.9793957 72.9065779,10.1062812 C73.3203884,9.56550019 73.5522251,8.99104893 73.6010599,8.38395548 L71.4533575,8.38395548 C71.4096633,8.78517177 71.284235,9.11262184 71.0763016,9.36450651 C70.8691393,9.6156201 70.5200991,9.74233351 70.0260968,9.74233351 C69.3303296,9.74233351 68.8571463,9.42542147 68.6055186,8.7895412 C68.4680102,8.450525 68.3980993,8.00150202 68.3980993,7.4427293 C68.3980993,6.85645488 68.4680102,6.38661287 68.6055186,6.03166111 C68.8671703,5.36493781 69.3529478,5.03054806 70.0623373,5.03054806",
                id: "mercado_c",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M65.6216363,3.34333203 C61.1954058,3.34333203 61.4570575,7.26270887 61.4570575,7.26270887 L61.4570575,11.2437718 L63.4659662,11.2437718 L63.4659662,7.50971006 C63.4659662,6.89799015 63.5433308,6.44485477 63.6965178,6.15030393 C63.9720488,5.6282858 64.5102595,5.36612013 65.3139772,5.36612013 C65.3741211,5.36612013 65.4540559,5.36946146 65.5519825,5.37383088 C65.6496521,5.37871436 65.7606869,5.38745322 65.8886855,5.40236068 L65.8886855,3.35849651 C65.7992407,3.35232791 65.7416671,3.34975766 65.7164786,3.34744443 C65.6910331,3.34538823 65.659162,3.34333203 65.6216363,3.34333203",
                id: "mercado_r",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M55.542934,5.42361666 C55.8256617,5.13343524 56.2222515,4.98795899 56.7342456,4.98795899 C57.2051158,4.98795899 57.5991353,5.12443936 57.9178466,5.39919927 C58.2352726,5.6731881 58.412877,6.07568952 58.4486035,6.6043903 L55.01192,6.6043903 C55.08363,6.10756064 55.2612344,5.71456915 55.542934,5.42361666 L55.542934,5.42361666 Z M58.2432404,9.16384696 C58.1589362,9.28413474 58.0679493,9.38720183 57.9682235,9.46739368 C57.6844677,9.70128659 57.2989299,9.77222554 56.8450235,9.77222554 C56.4157915,9.77222554 56.0801166,9.70719817 55.7757988,9.51545739 C55.2748567,9.20754124 54.9926431,8.68603716 54.9625711,7.92087323 L60.5207405,7.92087323 C60.5281942,7.26211771 60.5071181,6.7575773 60.4539139,6.40648092 C60.3616419,5.80889739 60.158335,5.28199579 59.8465634,4.82886041 C59.4998365,4.31481007 59.0590383,3.93852522 58.5272532,3.69923478 C57.9957252,3.46225757 57.3978846,3.34274087 56.7342456,3.34274087 C55.614644,3.34274087 54.70606,3.69563643 54.0054094,4.40039945 C53.3045017,5.10670462 52.9526343,6.11912677 52.9526343,7.44100723 C52.9526343,8.85207542 53.3412563,9.87040915 54.1182434,10.4960084 C54.8939454,11.1218647 55.7909633,11.4354354 56.8059557,11.4354354 C58.0358211,11.4354354 58.9932399,11.0642911 59.6764128,10.3220024 C60.0449869,9.93132412 60.2757955,9.54475826 60.373208,9.16384696 L58.2432404,9.16384696 Z",
                id: "mercado_e",
                fill: primary
            }), Object(jsx.c)("path", {
                d: "M52.146372,11.2430778 L50.3114693,11.2430778 L50.3114693,6.6227933 C50.3114693,6.20075797 50.1719112,5.19681765 48.9615731,5.19681765 C48.1550281,5.19681765 47.5710669,5.77872264 47.5710669,6.6227933 L47.5710669,11.2430778 L45.7343651,11.2430778 L45.7343651,6.6227933 C45.7343651,6.20075797 45.6089368,5.19681765 44.3993763,5.19681765 C43.5784379,5.19681765 43.0078421,5.77872264 43.0078421,6.6227933 L43.0078421,11.2430778 L41.1719112,11.2430778 L41.1719112,6.6667446 C41.1719112,4.75910378 42.4375032,3.31667852 44.3993763,3.31667852 C45.3732447,3.31667852 46.1653963,3.72586259 46.6807318,4.38101975 C47.2227978,3.72586259 48.0293428,3.31667852 48.9615731,3.31667852 C50.9645703,3.31667852 52.146372,4.70075907 52.146372,6.6667446 L52.146372,11.2430778 Z",
                id: "mercado_m",
                fill: primary
            }))))));
        }, _fundingLogos);
        var _cardLogos;
        var cardLogos = ((_cardLogos = {})[constants.o.VISA] = '<?xml version="1.0" encoding="utf-8"?>\n<svg width="40" height="24" viewBox="0 0 40 24" preserveAspectRatio="xMinYMin meet" xmlns="http://www.w3.org/2000/svg">\n  <path d="M0 1.927C0 .863.892 0 1.992 0h36.016C39.108 0 40 .863 40 1.927v20.146C40 23.137 39.108 24 38.008 24H1.992C.892 24 0 23.137 0 22.073V1.927z" style="fill: rgb(33, 86, 154);"/>\n  <path d="M19.596 7.885l-2.11 9.478H14.93l2.11-9.478h2.554zm10.743 6.12l1.343-3.56.773 3.56H30.34zm2.85 3.358h2.36l-2.063-9.478H31.31c-.492 0-.905.274-1.088.695l-3.832 8.783h2.682l.532-1.415h3.276l.31 1.415zm-6.667-3.094c.01-2.502-3.6-2.64-3.577-3.76.008-.338.345-.7 1.083-.793.365-.045 1.373-.08 2.517.425l.448-2.01c-.615-.214-1.405-.42-2.39-.42-2.523 0-4.3 1.288-4.313 3.133-.016 1.364 1.268 2.125 2.234 2.58.996.464 1.33.762 1.325 1.177-.006.636-.793.918-1.526.928-1.285.02-2.03-.333-2.623-.6l-.462 2.08c.598.262 1.7.49 2.84.502 2.682 0 4.437-1.273 4.445-3.243zM15.948 7.884l-4.138 9.478h-2.7L7.076 9.8c-.123-.466-.23-.637-.606-.834-.615-.32-1.63-.62-2.52-.806l.06-.275h4.345c.554 0 1.052.354 1.178.966l1.076 5.486 2.655-6.45h2.683z" style="fill: rgb(255, 255, 255);"/>\n</svg>', 
        _cardLogos[constants.o.AMEX] = '<?xml version="1.0" encoding="utf-8"?>\n<svg width="40" height="24" viewBox="0 0 40 24" preserveAspectRatio="xMinYMin meet" xmlns="http://www.w3.org/2000/svg">\n  <path d="M38.333 24H1.667C.75 24 0 23.28 0 22.4V1.6C0 .72.75 0 1.667 0h36.666C39.25 0 40 .72 40 1.6v20.8c0 .88-.75 1.6-1.667 1.6z" style="fill: rgb(20, 119, 190);"/>\n  <path d="M6.26 12.32h2.313L7.415 9.66M27.353 9.977h-3.738v1.23h3.666v1.384h-3.675v1.385h3.821v1.005c.623-.77 1.33-1.466 2.025-2.235l.707-.77c-.934-1.004-1.87-2.08-2.804-3.075v1.077z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M38.25 7h-5.605l-1.328 1.4L30.072 7H16.984l-1.017 2.416L14.877 7h-9.58L1.25 16.5h4.826l.623-1.556h1.4l.623 1.556H29.99l1.327-1.483 1.328 1.483h5.605l-4.36-4.667L38.25 7zm-17.685 8.1h-1.557V9.883L16.673 15.1h-1.33L13.01 9.883l-.084 5.217H9.73l-.623-1.556h-3.27L5.132 15.1H3.42l2.884-6.772h2.42l2.645 6.233V8.33h2.646l2.107 4.51 1.868-4.51h2.575V15.1zm14.727 0h-2.024l-2.024-2.26-2.023 2.26H22.06V8.328H29.53l1.795 2.177 2.024-2.177h2.025L32.26 11.75l3.032 3.35z" style="fill: rgb(255, 255, 255);"/>\n</svg>', 
        _cardLogos[constants.o.MASTERCARD] = '<?xml version="1.0" encoding="utf-8"?>\n<svg width="40" height="24" viewBox="0 0 40 24" preserveAspectRatio="xMinYMin meet" xmlns="http://www.w3.org/2000/svg">\n  <path d="M0 1.927C0 .863.892 0 1.992 0h36.016C39.108 0 40 .863 40 1.927v20.146C40 23.137 39.108 24 38.008 24H1.992C.892 24 0 23.137 0 22.073V1.927z" style="fill: rgb(62, 57, 57);"/>\n  <path style="fill: rgb(255, 95, 0);" d="M 22.205 3.901 L 15.688 3.901 L 15.688 15.589 L 22.205 15.589"/>\n  <path d="M 16.1 9.747 C 16.1 7.371 17.218 5.265 18.935 3.901 C 17.67 2.912 16.078 2.312 14.342 2.312 C 10.223 2.312 6.892 5.636 6.892 9.746 C 6.892 13.853 10.223 17.178 14.342 17.178 C 16.078 17.178 17.67 16.58 18.935 15.588 C 17.216 14.246 16.099 12.119 16.099 9.745 Z" style="fill: rgb(235, 0, 27);"/>\n  <path d="M 30.996 9.747 C 30.996 13.854 27.663 17.179 23.547 17.179 C 21.81 17.179 20.216 16.581 18.954 15.589 C 20.691 14.227 21.788 12.12 21.788 9.746 C 21.788 7.37 20.671 5.264 18.954 3.9 C 20.216 2.911 21.81 2.311 23.547 2.311 C 27.663 2.311 30.996 5.657 30.996 9.745 Z" style="fill: rgb(247, 158, 27);"/>\n  <path d="M 7.167 22.481 L 7.167 20.43 C 7.167 19.641 6.685 19.127 5.857 19.127 C 5.443 19.127 4.993 19.262 4.683 19.71 C 4.44 19.332 4.096 19.127 3.579 19.127 C 3.233 19.127 2.888 19.23 2.612 19.607 L 2.612 19.197 L 1.886 19.197 L 1.886 22.481 L 2.612 22.481 L 2.612 20.668 C 2.612 20.086 2.921 19.812 3.406 19.812 C 3.888 19.812 4.131 20.121 4.131 20.669 L 4.131 22.481 L 4.856 22.481 L 4.856 20.668 C 4.856 20.086 5.204 19.812 5.651 19.812 C 6.137 19.812 6.377 20.121 6.377 20.669 L 6.377 22.481 L 7.171 22.481 Z M 17.909 19.197 L 16.734 19.197 L 16.734 18.204 L 16.007 18.204 L 16.007 19.197 L 15.352 19.197 L 15.352 19.845 L 16.007 19.845 L 16.007 21.351 C 16.007 22.106 16.319 22.551 17.146 22.551 C 17.459 22.551 17.804 22.449 18.044 22.309 L 17.839 21.695 C 17.632 21.831 17.389 21.867 17.216 21.867 C 16.872 21.867 16.734 21.66 16.734 21.319 L 16.734 19.847 L 17.909 19.847 L 17.909 19.198 Z M 24.053 19.127 C 23.639 19.127 23.364 19.332 23.191 19.607 L 23.191 19.197 L 22.465 19.197 L 22.465 22.481 L 23.191 22.481 L 23.191 20.633 C 23.191 20.086 23.434 19.777 23.882 19.777 C 24.018 19.777 24.192 19.812 24.33 19.847 L 24.538 19.162 C 24.401 19.127 24.192 19.127 24.052 19.127 Z M 14.765 19.469 C 14.42 19.229 13.937 19.127 13.418 19.127 C 12.588 19.127 12.036 19.538 12.036 20.188 C 12.036 20.736 12.453 21.044 13.175 21.146 L 13.524 21.181 C 13.903 21.249 14.108 21.351 14.108 21.523 C 14.108 21.765 13.832 21.934 13.35 21.934 C 12.864 21.934 12.484 21.764 12.244 21.592 L 11.898 22.139 C 12.278 22.411 12.794 22.549 13.313 22.549 C 14.28 22.549 14.831 22.105 14.831 21.488 C 14.831 20.908 14.383 20.599 13.692 20.496 L 13.348 20.462 C 13.037 20.428 12.795 20.36 12.795 20.155 C 12.795 19.914 13.038 19.777 13.418 19.777 C 13.83 19.777 14.245 19.949 14.453 20.052 L 14.764 19.469 Z M 34.033 19.127 C 33.618 19.127 33.342 19.332 33.171 19.607 L 33.171 19.197 L 32.445 19.197 L 32.445 22.481 L 33.171 22.481 L 33.171 20.633 C 33.171 20.086 33.414 19.777 33.862 19.777 C 33.998 19.777 34.17 19.812 34.307 19.847 L 34.515 19.162 C 34.38 19.127 34.172 19.127 34.033 19.127 Z M 24.779 20.838 C 24.779 21.834 25.47 22.551 26.54 22.551 C 27.025 22.551 27.369 22.449 27.715 22.173 L 27.369 21.593 C 27.092 21.798 26.816 21.901 26.504 21.901 C 25.919 21.901 25.505 21.49 25.505 20.84 C 25.505 20.226 25.919 19.813 26.507 19.78 C 26.816 19.78 27.092 19.883 27.369 20.089 L 27.715 19.507 C 27.369 19.233 27.024 19.13 26.54 19.13 C 25.47 19.13 24.779 19.85 24.779 20.841 Z M 31.478 20.838 L 31.478 19.198 L 30.75 19.198 L 30.75 19.608 C 30.51 19.3 30.165 19.128 29.717 19.128 C 28.784 19.128 28.058 19.848 28.058 20.84 C 28.058 21.835 28.784 22.552 29.716 22.552 C 30.197 22.552 30.543 22.382 30.748 22.074 L 30.748 22.484 L 31.477 22.484 L 31.477 20.84 Z M 28.818 20.838 C 28.818 20.259 29.196 19.779 29.819 19.779 C 30.406 19.779 30.821 20.224 30.821 20.84 C 30.821 21.424 30.406 21.902 29.819 21.902 C 29.196 21.869 28.818 21.424 28.818 20.841 Z M 20.148 19.128 C 19.183 19.128 18.494 19.813 18.494 20.84 C 18.494 21.869 19.183 22.552 20.185 22.552 C 20.671 22.552 21.154 22.417 21.533 22.108 L 21.188 21.595 C 20.914 21.799 20.565 21.937 20.222 21.937 C 19.772 21.937 19.323 21.732 19.219 21.149 L 21.671 21.149 L 21.671 20.878 C 21.705 19.815 21.083 19.13 20.15 19.13 Z M 20.148 19.748 C 20.6 19.748 20.911 20.019 20.98 20.532 L 19.253 20.532 C 19.321 20.087 19.633 19.748 20.148 19.748 Z M 38.141 20.84 L 38.141 17.898 L 37.412 17.898 L 37.412 19.61 C 37.173 19.302 36.828 19.13 36.38 19.13 C 35.446 19.13 34.721 19.85 34.721 20.841 C 34.721 21.837 35.446 22.554 36.379 22.554 C 36.861 22.554 37.206 22.383 37.41 22.076 L 37.41 22.486 L 38.14 22.486 L 38.14 20.841 Z M 35.481 20.84 C 35.481 20.261 35.861 19.78 36.484 19.78 C 37.069 19.78 37.486 20.226 37.486 20.841 C 37.486 21.426 37.069 21.904 36.484 21.904 C 35.861 21.87 35.481 21.426 35.481 20.843 Z M 11.237 20.84 L 11.237 19.2 L 10.515 19.2 L 10.515 19.61 C 10.272 19.302 9.928 19.13 9.478 19.13 C 8.545 19.13 7.82 19.85 7.82 20.841 C 7.82 21.837 8.545 22.554 9.477 22.554 C 9.96 22.554 10.304 22.383 10.512 22.076 L 10.512 22.486 L 11.236 22.486 L 11.236 20.841 Z M 8.546 20.84 C 8.546 20.261 8.926 19.78 9.548 19.78 C 10.134 19.78 10.55 20.226 10.55 20.841 C 10.55 21.426 10.134 21.904 9.548 21.904 C 8.926 21.87 8.546 21.426 8.546 20.843 Z" style="fill: rgb(255, 255, 255);"/>\n</svg>', 
        _cardLogos[constants.o.MAESTRO] = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 23.999999" width="40" height="24" preserveAspectRatio="xMinYMin meet" version="1.1">\n    <path d="M 0,1.927 C 0,0.86299997 0.892,0 1.992,0 H 38.008 C 39.108,0 40,0.86299997 40,1.927 V 22.073 C 40,23.137 39.108,24 38.008,24 H 1.992 C 0.892,24 0,23.137 0,22.073 Z" style="fill:#3e3939" />\n    <path d="m 23.74623,18.221667 v 0.929759 h -0.621716 v 0.609196 h 0.621716 v 1.394324 c 0,0.71165 0.275786,1.135118 1.064369,1.135118 a 1.564348,1.564348 0 0 0 0.833339,-0.237293 l -0.192215,-0.571003 a 1.2309624,1.2309624 0 0 1 -0.589785,0.17343 c -0.333383,0 -0.442649,-0.192213 -0.442649,-0.512774 v -1.388065 h 1.086908 V 19.151426 H 24.419289 V 18.221667 Z M 10.802242,19.066278 A 1.1860835,1.1860835 0 0 0 9.8436827,19.612862 1.1251765,1.1251765 0 0 0 8.830654,19.068153 1.0129794,1.0129794 0 0 0 7.9328276,19.523328 V 19.145165 H 7.2660325 v 3.061001 H 7.939089 v -1.704869 a 0.71485573,0.71485573 0 0 1 0.7500683,-0.814556 c 0.4423764,0 0.6667964,0.288356 0.6667964,0.807671 v 1.702363 h 0.6736813 v -1.695478 a 0.72126699,0.72126699 0 0 1 0.750068,-0.814556 c 0.4552,0 0.673058,0.288356 0.673058,0.807671 v 1.702363 l 0.669926,0.0094 v -1.923369 a 1.1379991,1.1379991 0 0 0 -1.202112,-1.214633 1.1860835,1.1860835 0 0 0 -0.118329,-0.002 z m 10.549158,0.002 c -0.782176,0 -1.282253,0.372027 -1.282253,0.981097 0,0.50008 0.372102,0.80792 1.058106,0.904089 l 0.320567,0.04445 c 0.365439,0.05128 0.538444,0.147461 0.538444,0.320563 0,0.237218 -0.243528,0.371902 -0.69873,0.371902 a 1.6316662,1.6316662 0 0 1 -1.019289,-0.320606 l -0.320562,0.519663 a 2.2086798,2.2086798 0 0 0 1.323576,0.396946 c 0.881546,0 1.394948,-0.461335 1.394948,-0.999881 0,-0.538545 -0.403858,-0.820441 -1.07063,-0.916612 l -0.320563,-0.04509 c -0.288506,-0.03848 -0.519662,-0.07675 -0.519662,-0.301152 0,-0.224394 0.218082,-0.359382 0.583526,-0.359382 a 1.9714631,1.9714631 0 0 1 0.961688,0.262961 l 0.298023,-0.538445 A 2.2888207,2.2888207 0 0 0 21.3514,19.06818 Z m 6.45947,0 0.0132,0.01254 a 0.90398792,0.90398792 0 0 0 -0.80829,0.448915 v -0.371917 h -0.659908 v 3.061628 h 0.666794 v -1.714927 c 0,-0.506487 0.205162,-0.788884 0.641127,-0.788884 a 1.0835034,1.0835034 0 0 1 0.416355,0.07701 l 0.205363,-0.641127 a 1.4200945,1.4200945 0 0 0 -0.474583,-0.08326 z m 2.301544,0 a 1.7246296,1.7246296 0 0 0 -0.656779,0.13148 1.5835818,1.5835818 0 0 0 -0.519661,0.339973 1.564348,1.564348 0 0 0 -0.343103,0.509644 1.7021902,1.7021902 0 0 0 0,1.282252 1.564348,1.564348 0 0 0 0.343103,0.509647 1.5835818,1.5835818 0 0 0 0.519661,0.339972 1.8143872,1.8143872 0 0 0 1.314183,0 1.6028157,1.6028157 0 0 0 0.522793,-0.339972 1.5483199,1.5483199 0 0 0 0.345606,-0.509647 1.6989845,1.6989845 0 0 0 0,-1.282252 1.5515252,1.5515252 0 0 0 -0.345606,-0.509644 1.6028157,1.6028157 0 0 0 -0.532186,-0.343105 1.7246296,1.7246296 0 0 0 -0.641125,-0.122092 z m -15.816534,0.0025 a 1.1604384,1.1604384 0 0 0 -0.05759,6.27e-4 1.602816,1.602816 0 0 0 0,3.205632 1.1604384,1.1604384 0 0 0 0.961689,-0.448915 v 0.371903 h 0.666796 l 0.0062,-1.522675 v -1.528937 h -0.673017 v 0.371902 a 1.1604384,1.1604384 0 0 0 -0.904087,-0.449539 z m 3.747834,0.0039 a 1.6029727,1.6029727 0 0 0 0.04446,3.205629 1.859266,1.859266 0 0 0 1.253452,-0.429506 l -0.320573,-0.493394 a 1.458562,1.458562 0 0 1 -0.89094,0.320563 0.84949219,0.84949219 0 0 1 -0.917235,-0.750067 h 2.273368 c 0.0096,-0.07692 0.0094,-0.160682 0.0094,-0.250439 0,-0.961691 -0.596025,-1.602816 -1.451926,-1.602816 z m -0.05135,0.589784 a 0.78858528,0.78858528 0 0 1 0.03819,0 0.75973457,0.75973457 0 0 1 0.775738,0.743808 h -1.589666 a 0.78858528,0.78858528 0 0 1 0.775738,-0.743808 z m 12.120042,0.03256 a 0.99374563,0.99374563 0 0 1 0.385051,0.08952 0.91681058,0.91681058 0 0 1 0.320563,0.201604 0.92963292,0.92963292 0 0 1 0.201606,0.320564 1.1123539,1.1123539 0 0 1 0,0.795147 0.92642727,0.92642727 0 0 1 -0.201606,0.320562 0.91681058,0.91681058 0 0 1 -0.320563,0.202231 1.0418302,1.0418302 0 0 1 -0.760083,0 0.89757672,0.89757672 0 0 1 -0.304286,-0.202231 0.9360443,0.9360443 0 0 1 -0.202231,-0.320562 1.1123539,1.1123539 0 0 1 0,-0.795147 0.93924994,0.93924994 0 0 1 0.202231,-0.320564 0.90078228,0.90078228 0 0 1 0.304286,-0.201604 0.99374563,0.99374563 0 0 1 0.381918,-0.07073 z M 14.309018,19.80595 a 0.92642727,0.92642727 0 1 1 0.01565,1.852627 0.91681058,0.91681058 0 0 1 -0.936018,-0.981097 h 0.0069 a 0.92642727,0.92642727 0 0 1 0.913439,-0.871499 z m 18.111818,1.952179 -0.01629,0.0031 a 0.3205631,0.3205631 0 0 0 -0.10581,0.0194 0.3205631,0.3205631 0 0 0 -0.09955,0.06386 0.3205631,0.3205631 0 0 0 -0.067,0.09641 0.30132932,0.30132932 0 0 0 0,0.236665 0.3205631,0.3205631 0 0 0 0.288631,0.185952 0.30132932,0.30132932 0 0 0 0.12147,-0.02567 0.3205631,0.3205631 0 0 0 0.09956,-0.06384 0.3205631,0.3205631 0 0 0 0.06763,-0.09642 0.2981237,0.2981237 0 0 0 0,-0.236664 0.3205631,0.3205631 0 0 0 -0.06763,-0.09641 0.3205631,0.3205631 0 0 0 -0.09956,-0.06387 0.3205631,0.3205631 0 0 0 -0.12147,-0.02255 z m 0,0.067 a 0.23080544,0.23080544 0 0 1 0.09266,0.01941 0.2372167,0.2372167 0 0 1 0.07387,0.384424 0.24042232,0.24042232 0 0 1 -0.07387,0.05135 0.2275998,0.2275998 0 0 1 -0.09266,0.01941 v -0.01321 a 0.2372167,0.2372167 0 0 1 -0.170301,-0.07014 0.2372167,0.2372167 0 0 1 0,-0.320564 0.23401105,0.23401105 0 0 1 0.07701,-0.05134 0.24042232,0.24042232 0 0 1 0.09329,-0.0194 z m 0.01878,0.09329 -0.134612,0.0031 v 0.281748 h 0.06134 v -0.105802 h 0.0288 l 0.08639,0.105811 h 0.07388 l -0.09329,-0.105811 a 0.11219709,0.11219709 0 0 0 0.06761,-0.02879 0.07693513,0.07693513 0 0 0 0.02255,-0.05761 0.08014078,0.08014078 0 0 0 -0.0288,-0.067 0.12822525,0.12822525 0 0 0 -0.08391,-0.02567 z m -0.07014,0.05448 0.07014,0.01878 a 0.06731826,0.06731826 0 0 1 0.03881,0 0.03205633,0.03205633 0 0 1 0,0.02943 0.03205633,0.03205633 0 0 1 0,0.0288 0.06731826,0.06731826 0 0 1 -0.03881,0 h -0.07014 z" style="fill:#ffffff;stroke-width:0.77356213" />\n    <g transform="matrix(0.21220782,0,0,0.21220782,2.1400282,0.14227739)">\n        <rect x="68.410004" y="15.14" width="31.5" height="56.610001" style="fill:#7673c0" />\n        <path d="m 382.25,296.22 a 35.94,35.94 0 0 1 13.75,-28.3 36,36 0 1 0 0,56.61 35.94,35.94 0 0 1 -13.75,-28.31 z" transform="translate(-311.84,-252.78)" id="path8" style="fill:#eb001b" />\n        <path d="m 450.81,318.53 v -1.16 h 0.47 v -0.24 h -1.19 v 0.24 h 0.47 v 1.16 z m 2.31,0 v -1.4 h -0.36 l -0.42,1 -0.42,-1 h -0.36 v 1.4 h 0.26 v -1.05 l 0.39,0.91 h 0.27 l 0.39,-0.91 v 1.06 z" transform="translate(-311.84,-252.78)" style="fill:#00a1df" />\n        <path d="m 454.25,296.22 a 36,36 0 0 1 -58.25,28.3 36,36 0 0 0 0,-56.61 36,36 0 0 1 58.25,28.3 z" transform="translate(-311.84,-252.78)" style="fill:#00a1df" />\n    </g>\n</svg>\n', 
        _cardLogos[constants.o.DISCOVER] = '<?xml version="1.0" encoding="utf-8"?>\n<svg width="40" height="24" viewBox="0 0 40 24" preserveAspectRatio="xMinYMin meet" xmlns="http://www.w3.org/2000/svg">\n  <path d="M38.333 24H1.667C.75 24 0 23.28 0 22.4V1.6C0 .72.75 0 1.667 0h36.666C39.25 0 40 .72 40 1.6v20.8c0 .88-.75 1.6-1.667 1.6z" style="fill: rgb(17, 49, 82);"/>\n  <path d="M 5.498 13.349 C 5.16 13.654 4.722 13.787 4.028 13.787 L 3.738 13.787 L 3.738 10.141 L 4.028 10.141 C 4.722 10.141 5.143 10.265 5.498 10.587 C 5.868 10.917 6.093 11.431 6.093 11.959 C 6.093 12.489 5.869 13.019 5.498 13.349 Z M 4.243 9.206 L 2.666 9.206 L 2.666 14.721 L 4.236 14.721 C 5.069 14.721 5.671 14.524 6.199 14.084 C 6.829 13.564 7.199 12.779 7.199 11.968 C 7.199 10.34 5.985 9.206 4.243 9.206 Z M 7.696 14.721 L 8.77 14.721 L 8.77 9.207 L 7.696 9.207 M 11.393 11.323 C 10.748 11.083 10.559 10.926 10.559 10.628 C 10.559 10.281 10.897 10.018 11.359 10.018 C 11.681 10.018 11.946 10.15 12.226 10.464 L 12.788 9.727 C 12.326 9.322 11.773 9.115 11.17 9.115 C 10.195 9.115 9.452 9.793 9.452 10.695 C 9.452 11.455 9.798 11.845 10.807 12.208 C 11.227 12.356 11.442 12.455 11.55 12.522 C 11.765 12.662 11.872 12.862 11.872 13.092 C 11.872 13.54 11.518 13.872 11.038 13.872 C 10.528 13.872 10.114 13.614 9.868 13.136 L 9.173 13.806 C 9.668 14.532 10.263 14.856 11.08 14.856 C 12.196 14.856 12.98 14.111 12.98 13.044 C 12.98 12.168 12.617 11.771 11.395 11.324 Z M 13.316 11.968 C 13.316 13.588 14.586 14.845 16.223 14.845 C 16.685 14.845 17.081 14.755 17.57 14.525 L 17.57 13.258 C 17.14 13.688 16.76 13.862 16.273 13.862 C 15.191 13.862 14.423 13.077 14.423 11.962 C 14.423 10.902 15.215 10.067 16.223 10.067 C 16.735 10.067 17.123 10.25 17.57 10.687 L 17.57 9.421 C 17.098 9.181 16.71 9.081 16.248 9.081 C 14.621 9.081 13.316 10.364 13.316 11.968 Z M 26.088 12.911 L 24.62 9.206 L 23.446 9.206 L 25.783 14.862 L 26.361 14.862 L 28.741 9.207 L 27.576 9.207 M 29.226 14.721 L 32.272 14.721 L 32.272 13.787 L 30.299 13.787 L 30.299 12.299 L 32.199 12.299 L 32.199 11.365 L 30.299 11.365 L 30.299 10.141 L 32.272 10.141 L 32.272 9.206 L 29.226 9.206 M 34.373 11.745 L 34.059 11.745 L 34.059 10.075 L 34.389 10.075 C 35.059 10.075 35.423 10.355 35.423 10.893 C 35.423 11.447 35.059 11.745 34.373 11.745 Z M 36.528 10.835 C 36.528 9.802 35.818 9.207 34.578 9.207 L 32.986 9.207 L 32.986 14.721 L 34.059 14.721 L 34.059 12.506 L 34.199 12.506 L 35.686 14.721 L 37.006 14.721 L 35.273 12.398 C 36.083 12.233 36.528 11.678 36.528 10.835 Z" style="fill: rgb(255, 255, 255);"/>\n  <g id="MarkingBase_1_" transform="matrix(0.089776, 0, 0, 0.089776, 2.192296, 5.72498)">\n    <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="224.3917" y1="44.1731" x2="201.33" y2="80.2807" gradientTransform="matrix(1 0 0 -1 0 141.7323)">\n      <stop offset="0" style="stop-color:#F89F21"/>\n      <stop offset="0.2502" style="stop-color:#F79A23"/>\n      <stop offset="0.5331" style="stop-color:#F78E22"/>\n      <stop offset="0.6196" style="stop-color:#F68721"/>\n      <stop offset="0.7232" style="stop-color:#F48220"/>\n      <stop offset="1" style="stop-color:#F27623"/>\n    </linearGradient>\n    <circle fill="url(#SVGID_1_)" cx="207.343" cy="70.866" r="33.307"/>\n    <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="220.7487" y1="44.664" x2="187.0436" y2="110.5426" gradientTransform="matrix(1 0 0 -1 0 141.7323)">\n      <stop offset="0" style="stop-color:#F68721;stop-opacity:0"/>\n      <stop offset="0.3587" style="stop-color:#E27027;stop-opacity:0.2704"/>\n      <stop offset="0.703" style="stop-color:#D4612C;stop-opacity:0.5299"/>\n      <stop offset="0.9816" style="stop-color:#D15D2D;stop-opacity:0.74"/>\n    </linearGradient>\n    <circle opacity="0.65" fill="url(#SVGID_2_)" cx="207.343" cy="70.866" r="33.307"/>\n  </g>\n  <g id="Orange_1_" enable-background="new    " transform="matrix(0.469224, 0, 0, 0.469224, 13.785085, 6.199149)">\n    <g id="Orange">\n      <g>\n        <path d="M13,38c20.1,0,40,0,40,0c1.7,0,3-1.3,3-3V18C56,18,51.2,31.8,13,38z" style="fill: rgb(255, 129, 38);"/>\n      </g>\n    </g>\n  </g>\n</svg>', 
        _cardLogos[constants.o.HIPER] = '<?xml version="1.0" encoding="utf-8"?>\n<svg width="40" height="24" viewBox="0 0 40 24" preserveAspectRatio="xMinYMin meet" xmlns="http://www.w3.org/2000/svg">\n  <path d="M0 1.927C0 .863.892 0 1.992 0h36.016C39.108 0 40 .863 40 1.927v20.146C40 23.137 39.108 24 38.008 24H1.992C.892 24 0 23.137 0 22.073V1.927z" style="fill: rgb(243, 97, 24);"/>\n  <path id="path16" style="fill: rgb(255, 255, 255); fill-opacity: 1; fill-rule: nonzero; stroke: none;" d="M 3.206 6.45 L 3.206 16.929 L 5.586 16.929 L 5.586 12.545 L 9.489 12.545 L 9.489 16.929 L 11.853 16.929 L 11.853 6.45 L 9.489 6.45 L 9.489 10.477 L 5.586 10.477 L 5.586 6.45 L 3.206 6.45"/>\n  <path id="path18" style="fill: rgb(255, 255, 255); fill-opacity: 1; fill-rule: nonzero; stroke: none;" d="M 32.319 13.882 C 32.351 13.71 32.397 13.353 32.397 12.949 C 32.397 11.068 31.464 9.155 29.008 9.155 C 26.364 9.155 25.167 11.285 25.167 13.213 C 25.167 15.592 26.644 17.085 29.225 17.085 C 30.251 17.085 31.2 16.929 31.977 16.618 L 31.666 15.017 C 31.029 15.219 30.376 15.328 29.567 15.328 C 28.463 15.328 27.499 14.861 27.422 13.882 Z M 27.406 12.265 C 27.468 11.628 27.873 10.725 28.868 10.725 C 29.956 10.725 30.205 11.689 30.205 12.265 L 27.406 12.265"/>\n  <path id="path20" style="fill: rgb(255, 255, 255); fill-opacity: 1; fill-rule: nonzero; stroke: none;" d="M 33.155 16.929 L 35.519 16.929 L 35.519 13.073 C 35.519 12.887 35.533 12.7 35.565 12.545 C 35.72 11.814 36.31 11.348 37.182 11.348 C 37.446 11.348 37.648 11.378 37.819 11.41 L 37.819 9.186 C 37.648 9.155 37.539 9.155 37.321 9.155 C 36.591 9.155 35.658 9.621 35.269 10.725 L 35.207 10.725 L 35.129 9.326 L 33.092 9.326 C 33.123 9.979 33.155 10.709 33.155 11.829 L 33.155 16.929"/>\n  <path id="path22" style="fill: rgb(254, 234, 1); fill-opacity: 1; fill-rule: evenodd; stroke: none;" d="M 14.256 6.028 C 14.927 6.028 15.472 6.572 15.472 7.243 C 15.472 7.914 14.927 8.458 14.256 8.458 C 13.585 8.458 13.041 7.914 13.041 7.243 C 13.041 6.572 13.585 6.028 14.256 6.028"/>\n  <path id="path24" style="fill: rgb(255, 255, 255); fill-opacity: 1; fill-rule: evenodd; stroke: none;" d="M 19.247 15.159 L 20.433 15.159 C 21.624 15.159 22.163 14.395 22.163 13.6 C 22.163 12.805 22.106 11.006 20.633 11.006 C 18.943 11.006 19.218 13.238 19.224 14.408 C 19.226 14.658 19.24 14.908 19.247 15.159 Z M 13.041 9.315 L 15.472 9.315 L 15.472 13.6 C 15.472 14.395 15.912 15.157 16.887 15.159 C 16.894 13.229 16.886 11.243 16.822 9.315 L 18.852 9.315 C 18.896 9.687 18.936 10.059 18.973 10.432 C 19.932 8.514 22.954 8.937 23.971 10.555 C 25.022 12.228 25.379 17.017 20.433 17.017 L 19.282 17.017 C 19.293 17.988 19.295 18.963 19.295 19.936 L 16.865 19.936 C 16.865 19.001 16.871 18.022 16.878 17.016 C 14.252 17.007 13.041 15.339 13.041 13.6 L 13.041 9.315"/>\n</svg>', 
        _cardLogos[constants.o.ELO] = '<?xml version="1.0" encoding="utf-8"?>\n<svg width="40" height="24" viewBox="0 0 40 24" preserveAspectRatio="xMinYMin meet" xmlns="http://www.w3.org/2000/svg">\n  <path d="M38.333 24H1.667C.75 24 0 23.28 0 22.4V1.6C0 .72.75 0 1.667 0h36.666C39.25 0 40 .72 40 1.6v20.8c0 .88-.75 1.6-1.667 1.6z" style="fill: rgb(21, 21, 21);"/>\n  <path class="st0" d="M 9.229 8.55 C 9.592 8.431 9.977 8.365 10.382 8.365 C 12.14 8.365 13.602 9.613 13.939 11.268 L 16.427 10.762 C 15.855 7.946 13.365 5.824 10.379 5.824 C 9.693 5.824 9.037 5.935 8.42 6.142 L 9.229 8.55 Z" style="fill: rgb(255, 205, 5);"/>\n  <path class="st1" d="M 6.292 16.616 L 7.973 14.716 C 7.221 14.052 6.749 13.08 6.749 11.999 C 6.749 10.917 7.221 9.945 7.973 9.279 L 6.292 7.38 C 5.015 8.51 4.209 10.16 4.209 11.999 C 4.209 13.836 5.019 15.488 6.292 16.616" style="fill: rgb(0, 164, 224);"/>\n  <path class="st2" d="M 13.939 12.723 C 13.602 14.379 12.136 15.626 10.382 15.626 C 9.977 15.626 9.592 15.562 9.229 15.442 L 8.422 17.849 C 9.039 18.055 9.698 18.167 10.382 18.167 C 13.365 18.167 15.855 16.05 16.427 13.235 L 13.939 12.723 Z" style="fill: rgb(239, 66, 35);"/>\n  <path d="M 18.603 14.794 C 18.521 14.663 18.412 14.453 18.343 14.296 C 17.948 13.381 17.932 12.434 18.264 11.526 C 18.631 10.527 19.33 9.765 20.233 9.378 C 21.366 8.889 22.626 8.986 23.713 9.632 C 24.406 10.028 24.897 10.641 25.269 11.506 C 25.319 11.615 25.358 11.737 25.398 11.835 L 18.603 14.794 Z M 20.87 10.845 C 20.066 11.194 19.65 11.949 19.734 12.834 L 23.151 11.363 C 22.565 10.675 21.802 10.444 20.87 10.845 Z M 23.578 14.044 C 23.578 14.044 23.578 14.044 23.578 14.044 L 23.508 13.998 C 23.302 14.331 22.985 14.595 22.584 14.768 C 21.82 15.1 21.113 15.014 20.602 14.569 L 20.559 14.643 C 20.559 14.643 20.559 14.643 20.559 14.643 L 19.688 15.936 C 19.905 16.088 20.134 16.213 20.376 16.315 C 21.333 16.712 22.311 16.693 23.279 16.273 C 23.978 15.971 24.527 15.509 24.9 14.924 L 23.578 14.044 Z" style="fill: rgb(255, 255, 255);"/>\n  <path d="M 27.77 7.466 L 27.77 14.673 L 28.891 15.13 L 28.254 16.614 L 27.018 16.1 C 26.742 15.979 26.552 15.797 26.409 15.588 C 26.272 15.377 26.171 15.085 26.171 14.698 L 26.171 7.466 L 27.77 7.466 Z" style="fill: rgb(255, 255, 255);"/>\n  <g transform="matrix(0.037801, 0, 0, 0.037801, 1.0913, 0.089785)">\n    <path d="M782.7,337.2c0-16.2,7.2-30.8,18.5-40.7l-30.4-33.9c-20.6,18.2-33.6,44.9-33.6,74.6c0,29.7,12.9,56.4,33.6,74.7l30.4-34&#10;&#9;&#9;C789.8,367.9,782.6,353.4,782.7,337.2z" style="fill: rgb(255, 255, 255);"/>\n    <path d="M836.7,391.4c-6,0-11.8-1-17.1-2.8L805,431.7c9.9,3.3,20.6,5.1,31.6,5.2c48.2,0,88.4-34.1,97.7-79.6l-44.7-9.1&#10;&#9;&#9;C884.6,372.9,862.8,391.4,836.7,391.4z" style="fill: rgb(255, 255, 255);"/>\n    <path d="M836.8,237.6c-11,0-21.7,1.8-31.6,5.1l14.4,43.2c5.4-1.8,11.2-2.8,17.1-2.8c26.2,0,48,18.6,53,43.3l44.7-9.1&#10;&#9;&#9;C925.2,272,885,237.7,836.8,237.6z" style="fill: rgb(255, 255, 255);"/>\n  </g>\n</svg>', 
        _cardLogos[constants.o.JCB] = '<?xml version="1.0" encoding="utf-8"?>\n<svg width="40" height="24" viewBox="0 0 40 24" preserveAspectRatio="xMinYMin meet" xmlns="http://www.w3.org/2000/svg">\n  <defs>\n    <pattern id="pattern-0" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse" viewBox="0 0 100 100">\n      <path d="M 0 0 L 50 0 L 50 100 L 0 100 Z" style="fill: black;"/>\n    </pattern>\n  </defs>\n  <path d="M38.333 24H1.667C.75 24 0 23.28 0 22.4V1.6C0 .72.75 0 1.667 0h36.666C39.25 0 40 .72 40 1.6v20.8c0 .88-.75 1.6-1.667 1.6z" style="fill: rgb(255, 255, 255); stroke: rgb(233, 234, 231);"/>\n  <g transform="matrix(0.100306, 0, 0, 0.100306, 4.733743, 10.105099)" id="g6321">\n    <g transform="matrix(1.8215159,0,0,1.8215159,-8.5437653,-109.83667)" id="g6323">\n      <path style="fill:#ffffff" id="path6325" d="m 174,108.3 c 0,14 -11.4,25.4 -25.4,25.4 l -138.2,0 0,-100.6 c 0,-14 11.4,-25.4 25.4,-25.4 l 138.2,0 0,100.6 z" class="st0"/>\n      <g id="g6327">\n        <linearGradient gradientTransform="matrix(1.125,0,0,1.125,-11.9755,-13.8615)" y2="81.398598" x2="157.3299" y1="81.398598" x1="117.3856" gradientUnits="userSpaceOnUse" id="SVGID_1_">\n          <stop id="stop6330" style="stop-color:#007940" offset="0"/>\n          <stop id="stop6332" style="stop-color:#00873F" offset="0.2285"/>\n          <stop id="stop6334" style="stop-color:#40A737" offset="0.7433"/>\n          <stop id="stop6336" style="stop-color:#5CB531" offset="1"/>\n        </linearGradient>\n        <path style="fill:url(#SVGID_1_)" id="path6338" d="m 129,82.5 10.5,0 c 0.3,0 1,-0.1 1.3,-0.1 2,-0.4 3.7,-2.2 3.7,-4.7 0,-2.4 -1.7,-4.2 -3.7,-4.7 -0.3,-0.1 -0.9,-0.1 -1.3,-0.1 l -10.5,0 0,9.6 z" class="st1"/>\n        <linearGradient gradientTransform="matrix(1.125,0,0,1.125,-11.9755,-13.8615)" y2="75.171402" x2="157.3318" y1="75.171402" x1="117.3844" gradientUnits="userSpaceOnUse" id="SVGID_2_">\n          <stop id="stop6341" style="stop-color:#007940" offset="0"/>\n          <stop id="stop6343" style="stop-color:#00873F" offset="0.2285"/>\n          <stop id="stop6345" style="stop-color:#40A737" offset="0.7433"/>\n          <stop id="stop6347" style="stop-color:#5CB531" offset="1"/>\n        </linearGradient>\n        <path style="fill:url(#SVGID_2_)" id="path6349" d="m 138.3,16.2 c -10,0 -18.2,8.1 -18.2,18.2 l 0,18.9 25.7,0 c 0.6,0 1.3,0 1.8,0.1 5.8,0.3 10.1,3.3 10.1,8.5 0,4.1 -2.9,7.6 -8.3,8.3 l 0,0.2 c 5.9,0.4 10.4,3.7 10.4,8.8 0,5.5 -5,9.1 -11.6,9.1 l -28.2,0 0,37 26.7,0 c 10,0 18.2,-8.1 18.2,-18.2 l 0,-90.9 -26.6,0 z" class="st2"/>\n        <linearGradient gradientTransform="matrix(1.125,0,0,1.125,-11.9755,-13.8615)" y2="68.399101" x2="157.33051" y1="68.399101" x1="117.3846" gradientUnits="userSpaceOnUse" id="SVGID_3_">\n          <stop id="stop6352" style="stop-color:#007940" offset="0"/>\n          <stop id="stop6354" style="stop-color:#00873F" offset="0.2285"/>\n          <stop id="stop6356" style="stop-color:#40A737" offset="0.7433"/>\n          <stop id="stop6358" style="stop-color:#5CB531" offset="1"/>\n        </linearGradient>\n        <path style="fill:url(#SVGID_3_)" id="path6360" d="m 143.2,63.1 c 0,-2.4 -1.7,-4 -3.7,-4.3 -0.2,0 -0.7,-0.1 -1,-0.1 l -9.5,0 0,8.8 9.5,0 c 0.3,0 0.9,0 1,-0.1 2,-0.3 3.7,-1.9 3.7,-4.3 z" class="st3"/>\n      </g>\n      <linearGradient gradientTransform="matrix(1.125,0,0,1.125,-11.9755,-13.8615)" y2="75.171402" x2="68.522102" y1="75.171402" x1="27.9594" gradientUnits="userSpaceOnUse" id="SVGID_4_">\n        <stop id="stop6363" style="stop-color:#1F286F" offset="0"/>\n        <stop id="stop6365" style="stop-color:#004E94" offset="0.4751"/>\n        <stop id="stop6367" style="stop-color:#0066B1" offset="0.8261"/>\n        <stop id="stop6369" style="stop-color:#006FBC" offset="1"/>\n      </linearGradient>\n      <path style="fill:url(#SVGID_4_)" id="path6371" d="m 37.7,16.2 c -10,0 -18.2,8.1 -18.2,18.2 l 0,44.9 c 5.1,2.5 10.4,4.1 15.7,4.1 6.3,0 9.7,-3.8 9.7,-9 l 0,-21.2 15.6,0 0,21.1 c 0,8.2 -5.1,14.9 -22.4,14.9 -10.5,0 -18.7,-2.3 -18.7,-2.3 l 0,38.3 26.7,0 c 10,0 18.2,-8.1 18.2,-18.2 l 0,-90.8 -26.6,0 z" class="st4"/>\n      <linearGradient gradientTransform="matrix(1.125,0,0,1.125,-11.9755,-13.8615)" y2="75.171402" x2="111.8553" y1="75.171402" x1="72.459503" gradientUnits="userSpaceOnUse" id="SVGID_5_">\n        <stop id="stop6374" style="stop-color:#6C2C2F" offset="0"/>\n        <stop id="stop6376" style="stop-color:#882730" offset="0.1735"/>\n        <stop id="stop6378" style="stop-color:#BE1833" offset="0.5731"/>\n        <stop id="stop6380" style="stop-color:#DC0436" offset="0.8585"/>\n        <stop id="stop6382" style="stop-color:#E60039" offset="1"/>\n      </linearGradient>\n      <path style="fill:url(#SVGID_5_)" id="path6384" d="m 88,16.2 c -10,0 -18.2,8.1 -18.2,18.2 l 0,23.8 c 4.6,-3.9 12.6,-6.4 25.5,-5.8 6.9,0.3 14.3,2.2 14.3,2.2 l 0,7.7 c -3.7,-1.9 -8.1,-3.6 -13.8,-4 -9.8,-0.7 -15.7,4.1 -15.7,12.5 0,8.5 5.9,13.3 15.7,12.5 5.7,-0.4 10.1,-2.2 13.8,-4 l 0,7.7 c 0,0 -7.3,1.9 -14.3,2.2 -12.9,0.6 -20.9,-1.9 -25.5,-5.8 l 0,42 26.7,0 c 10,0 18.2,-8.1 18.2,-18.2 l 0,-91 -26.7,0 z" class="st5"/>\n    </g>\n    <g id="g6386"/>\n  </g>\n</svg>', 
        _cardLogos[constants.o.CUP] = '<?xml version="1.0" encoding="UTF-8"?>\n<svg width="40px" height="24px" viewBox="0 0 40 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n    \x3c!-- Generator: Sketch 51.2 (57519) - http://www.bohemiancoding.com/sketch --\x3e\n    <title>unionpay</title>\n    <desc>Created with Sketch.</desc>\n    <defs></defs>\n    <g id="unionpay" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n        <g>\n            <path d="M38,24 L2,24 C0.9,24 0,23.1 0,22 L0,2 C0,0.9 0.9,0 2,0 L38,0 C39.1,0 40,0.9 40,2 L40,22 C40,23.1 39.1,24 38,24" id="Fill-1" fill="#FFFFFF"></path>\n            <path d="M38,0 L2,0 C0.9,0 0,0.9 0,2 L0,22 C0,23.1 0.9,24 2,24 L38,24 C39.1,24 40,23.1 40,22 L40,2 C40,0.9 39.1,0 38,0 M38,1 C38.551,1 39,1.449 39,2 L39,22 C39,22.551 38.551,23 38,23 L2,23 C1.449,23 1,22.551 1,22 L1,2 C1,1.449 1.449,1 2,1 L38,1" id="Fill-3" fill="#C8C8C8"></path>\n            <path d="M11.6294,3.3945 L18.4974,3.3945 C19.4564,3.3945 20.0524,4.1755 19.8284,5.1375 L16.6294,18.8655 C16.4054,19.8245 15.4474,20.6055 14.4904,20.6055 L7.6204,20.6055 C6.6624,20.6055 6.0664,19.8245 6.2894,18.8655 L9.4894,5.1375 C9.7124,4.1755 10.6694,3.3945 11.6294,3.3945" id="Fill-5" fill="#D80029"></path>\n            <path d="M17.9287,3.3945 L24.7967,3.3945 C25.7537,3.3945 26.3547,4.1755 26.1257,5.1375 L22.9297,18.8655 C22.7037,19.8245 21.7437,20.6055 20.7837,20.6055 L13.9177,20.6055 C12.9587,20.6055 12.3627,19.8245 12.5877,18.8655 L15.7837,5.1375 C16.0077,4.1755 16.9697,3.3945 17.9287,3.3945" id="Fill-7" fill="#0E2E62"></path>\n            <path d="M25.5161,3.3945 L32.3771,3.3945 C33.3361,3.3945 33.9351,4.1755 33.7091,5.1375 L30.5121,18.8655 C30.2891,19.8245 29.3291,20.6055 28.3711,20.6055 L21.5001,20.6055 C20.5421,20.6055 19.9431,19.8245 20.1691,18.8655 L23.3661,5.1375 C23.5901,4.1755 24.5511,3.3945 25.5161,3.3945" id="Fill-9" fill="#0C606C"></path>\n            <path d="M24.4546,16.3071 L25.1006,16.3071 L25.2466,15.6821 L24.5976,15.6821 L24.4546,16.3071 Z M24.8526,14.5921 L24.6816,15.3221 C24.6816,15.3221 24.9176,15.1981 25.0506,15.1611 C25.1796,15.1271 25.3786,15.1051 25.3786,15.1051 L25.5006,14.5921 L24.8526,14.5921 Z M25.1026,13.5291 L24.9406,14.2371 C24.9406,14.2371 25.1706,14.1281 25.3006,14.0941 C25.4316,14.0581 25.6296,14.0401 25.6296,14.0401 L25.7516,13.5291 L25.1026,13.5291 Z M26.5356,13.5291 L25.8886,16.2961 L26.1126,16.2961 L25.9756,16.8721 L25.7516,16.8721 L25.7106,17.0491 L24.9126,17.0491 L24.9556,16.8721 L23.3366,16.8721 L23.4636,16.3421 L23.6286,16.3401 L24.2886,13.5291 L24.4186,12.9631 L25.2336,12.9631 L25.1686,13.2481 C25.1686,13.2481 25.3736,13.0911 25.5716,13.0391 C25.7756,12.9841 26.9526,12.9641 26.9526,12.9641 L26.8176,13.5291 L26.5356,13.5291 Z" id="Fill-11" fill="#FFFFFF"></path>\n            <path d="M26.9966,12.9678 L27.8616,12.9678 L27.8726,13.2878 C27.8666,13.3418 27.9146,13.3668 28.0136,13.3688 L28.1616,13.3688 L28.0306,13.9018 L27.5596,13.9018 C27.1566,13.9318 27.0016,13.7578 27.0136,13.5618 L26.9966,12.9678" id="Fill-13" fill="#FFFFFF"></path>\n            <path d="M27.1436,15.4956 L26.3166,15.4956 L26.4276,15.0226 L27.3706,15.0226 L27.4736,14.5886 L26.5416,14.5886 L26.6686,14.0536 L29.2616,14.0536 L29.1336,14.5886 L28.2656,14.5886 L28.1616,15.0226 L29.0326,15.0226 L28.9216,15.4956 L27.9786,15.4956 L27.8216,15.6976 L28.2056,15.6976 L28.3396,16.2966 C28.3516,16.3536 28.3596,16.3926 28.3786,16.4196 C28.3956,16.4386 28.5126,16.4486 28.5806,16.4486 L28.6976,16.4486 L28.5596,17.0356 L28.2656,17.0356 C28.2206,17.0356 28.1526,17.0346 28.0576,17.0246 C27.9706,17.0176 27.9036,16.9636 27.8406,16.9376 C27.7836,16.9106 27.6996,16.8476 27.6706,16.7326 L27.5386,16.1376 L27.1546,16.7246 C27.0266,16.9106 26.8526,17.0496 26.5396,17.0496 L25.9386,17.0496 L26.0596,16.5326 L26.2906,16.5326 C26.3556,16.5326 26.4156,16.5056 26.4546,16.4836 C26.4986,16.4646 26.5356,16.4426 26.5796,16.3806 L27.1436,15.4956" id="Fill-15" fill="#FFFFFF"></path>\n            <path d="M18.0044,14.1973 L20.1934,14.1973 L20.0684,14.7183 L19.1874,14.7183 L19.0834,15.1663 L19.9734,15.1663 L19.8434,15.7033 L18.9514,15.7033 L18.7794,16.4263 C18.7584,16.5053 18.9974,16.5203 19.0834,16.5203 L19.5254,16.4583 L19.3824,17.0503 L18.3764,17.0503 C18.2934,17.0503 18.2344,17.0433 18.1454,17.0223 C18.0594,17.0003 18.0184,16.9613 17.9734,16.9053 C17.9374,16.8493 17.8764,16.7963 17.9074,16.6723 L18.1364,15.7123 L17.6394,15.7123 L17.7704,15.1663 L18.2714,15.1663 L18.3764,14.7183 L17.8784,14.7183 L18.0044,14.1973" id="Fill-17" fill="#FFFFFF"></path>\n            <path d="M19.4194,13.2588 L20.3174,13.2588 L20.1894,13.8018 L18.9614,13.8018 L18.8354,13.9198 C18.7844,13.9738 18.7614,13.9518 18.6914,13.9888 C18.6234,14.0278 18.4814,14.0938 18.2914,14.0938 L17.9004,14.0938 L18.0264,13.5718 L18.1414,13.5718 C18.2444,13.5718 18.3104,13.5588 18.3434,13.5378 C18.3804,13.5158 18.4214,13.4598 18.4644,13.3688 L18.6664,12.9618 L19.5584,12.9618 L19.4194,13.2588" id="Fill-19" fill="#FFFFFF"></path>\n            <path d="M21.1973,14.1572 C21.1973,14.1572 21.4273,13.9322 21.8443,13.8582 C21.9383,13.8422 22.5393,13.8462 22.5393,13.8462 L22.6063,13.5452 L21.3453,13.5452 L21.1973,14.1572 Z M22.3963,14.3842 L21.1463,14.3842 L21.0853,14.6352 L22.1703,14.6352 C22.2953,14.6232 22.3233,14.6392 22.3313,14.6342 L22.3963,14.3842 Z M20.6843,12.9632 L21.4543,12.9632 L21.3633,13.3512 C21.3633,13.3512 21.5903,13.1552 21.7603,13.0912 C21.9223,13.0252 22.3023,12.9702 22.3023,12.9702 L23.5393,12.9632 L23.2033,14.3672 C23.1463,14.6112 23.0763,14.7642 23.0263,14.8342 C22.9833,14.9052 22.9343,14.9662 22.8283,15.0262 C22.7283,15.0832 22.6333,15.1142 22.5453,15.1222 C22.4663,15.1322 22.3403,15.1322 22.1653,15.1332 L20.9773,15.1332 L20.7093,16.2452 C20.6813,16.3562 20.6723,16.4072 20.6943,16.4382 C20.7123,16.4622 20.7553,16.4932 20.8113,16.4932 L21.3323,16.4422 L21.1933,17.0552 L20.6003,17.0552 C20.4153,17.0552 20.2773,17.0502 20.1853,17.0422 C20.0933,17.0352 19.9953,17.0422 19.9293,16.9922 C19.8733,16.9412 19.7873,16.8822 19.7843,16.8172 C19.7873,16.7572 19.8063,16.6562 19.8333,16.5212 L20.6843,12.9632 Z" id="Fill-21" fill="#FFFFFF"></path>\n            <path d="M23.0562,15.2319 L23.0082,15.5689 C22.9802,15.6729 22.9602,15.7539 22.8882,15.8259 C22.8062,15.8939 22.7132,15.9679 22.4822,15.9679 L22.0622,15.9839 L22.0792,16.3649 C22.0832,16.4769 22.1092,16.4639 22.1282,16.4819 C22.1512,16.5019 22.1652,16.5079 22.1862,16.5139 L22.3222,16.5079 L22.7222,16.4829 L22.5922,17.0439 L22.1282,17.0439 C21.8022,17.0439 21.5562,17.0339 21.4752,16.9709 C21.3932,16.9189 21.3802,16.8579 21.3752,16.7559 L21.3112,15.2649 L22.0562,15.2649 L22.0642,15.5689 L22.2422,15.5689 C22.3052,15.5689 22.3442,15.5649 22.3702,15.5479 C22.3892,15.5289 22.4032,15.5069 22.4162,15.4709 L22.4692,15.2319 L23.0562,15.2319" id="Fill-23" fill="#FFFFFF"></path>\n            <path d="M12.4448,7.7773 C12.4168,7.9033 11.9418,10.0983 11.9398,10.1003 C11.8368,10.5433 11.7588,10.8603 11.5118,11.0673 C11.3628,11.1853 11.1948,11.2413 11.0048,11.2413 C10.6918,11.2413 10.5078,11.0883 10.4738,10.7923 L10.4658,10.6903 C10.4658,10.6903 10.5628,10.0983 10.5628,10.0963 C10.5628,10.0963 11.0648,8.0893 11.1558,7.8233 C11.1578,7.8083 11.1608,7.7983 11.1638,7.7903 C10.1898,7.8023 10.0168,7.7953 10.0048,7.7773 C9.9988,7.7983 9.9738,7.9253 9.9738,7.9253 L9.4628,10.1823 L9.4148,10.3743 L9.3348,10.9983 C9.3348,11.1853 9.3698,11.3383 9.4428,11.4663 C9.6748,11.8713 10.3408,11.9313 10.7158,11.9313 C11.1998,11.9313 11.6508,11.8263 11.9588,11.6443 C12.4908,11.3253 12.6318,10.8333 12.7528,10.3993 L12.8108,10.1743 C12.8108,10.1743 13.3288,8.0923 13.4158,7.8233 C13.4178,7.8083 13.4218,7.7983 13.4238,7.7903 C12.7188,7.8013 12.5118,7.7953 12.4448,7.7773" id="Fill-25" fill="#FFFFFF"></path>\n            <path d="M15.2935,11.9106 C14.9485,11.9056 14.8275,11.9056 14.4245,11.9246 L14.4055,11.8966 C14.4425,11.7416 14.4815,11.5876 14.5165,11.4346 L14.5645,11.2266 C14.6395,10.8986 14.7155,10.5206 14.7195,10.4026 C14.7285,10.3336 14.7505,10.1606 14.5525,10.1606 C14.4695,10.1606 14.3815,10.1996 14.2925,10.2416 C14.2475,10.4136 14.1445,10.9026 14.0985,11.1246 C14.0005,11.5956 13.9905,11.6496 13.9475,11.8796 L13.9185,11.9106 C13.5605,11.9056 13.4395,11.9056 13.0315,11.9246 L13.0135,11.8926 C13.0795,11.6086 13.1485,11.3326 13.2115,11.0526 C13.3855,10.2976 13.4265,10.0106 13.4725,9.6276 L13.5045,9.6006 C13.9065,9.5466 14.0015,9.5326 14.4355,9.4436 L14.4695,9.4836 L14.4035,9.7266 C14.4785,9.6846 14.5505,9.6406 14.6255,9.6006 C14.8275,9.5026 15.0535,9.4706 15.1805,9.4706 C15.3675,9.4706 15.5725,9.5256 15.6605,9.7426 C15.7475,9.9376 15.6885,10.1786 15.5805,10.6526 L15.5275,10.8916 C15.4135,11.4216 15.3975,11.5196 15.3345,11.8796 L15.2935,11.9106" id="Fill-27" fill="#FFFFFF"></path>\n            <path d="M16.6963,11.9106 C16.4873,11.9056 16.3543,11.9056 16.2243,11.9106 C16.0943,11.9106 15.9663,11.9146 15.7733,11.9246 L15.7623,11.9056 L15.7513,11.8926 C15.8033,11.6936 15.8313,11.6216 15.8583,11.5526 C15.8843,11.4806 15.9093,11.4106 15.9553,11.2066 C16.0143,10.9436 16.0533,10.7546 16.0783,10.5966 C16.1083,10.4366 16.1223,10.3066 16.1423,10.1526 L16.1613,10.1396 L16.1743,10.1236 C16.3833,10.0986 16.5133,10.0776 16.6503,10.0546 C16.7823,10.0356 16.9213,10.0106 17.1363,9.9716 L17.1423,9.9866 L17.1523,10.0046 C17.1083,10.1696 17.0713,10.3336 17.0303,10.4996 C16.9913,10.6646 16.9533,10.8296 16.9173,10.9926 C16.8353,11.3386 16.8083,11.4716 16.7883,11.5626 C16.7723,11.6526 16.7673,11.6976 16.7363,11.8796 L16.7173,11.8966 L16.6963,11.9106" id="Fill-29" fill="#FFFFFF"></path>\n            <path d="M18.8965,10.6846 C18.8765,10.7706 18.7985,11.1066 18.6915,11.2486 C18.6185,11.3496 18.5295,11.4126 18.4375,11.4126 C18.4085,11.4126 18.2365,11.4126 18.2325,11.1616 C18.2325,11.0356 18.2545,10.9076 18.2875,10.7676 C18.3775,10.3706 18.4865,10.0316 18.7585,10.0316 C18.9745,10.0316 18.9875,10.2766 18.8965,10.6846 M19.7975,10.7226 C19.9195,10.1886 19.8285,9.9396 19.7085,9.7916 C19.5255,9.5596 19.2115,9.4836 18.8795,9.4836 C18.6825,9.4836 18.2135,9.5056 17.8445,9.8486 C17.5825,10.0906 17.4525,10.4256 17.3825,10.7426 C17.3075,11.0676 17.2205,11.6586 17.7575,11.8716 C17.9245,11.9426 18.1635,11.9656 18.3155,11.9656 C18.7125,11.9656 19.1165,11.8536 19.4175,11.5286 C19.6555,11.2726 19.7605,10.8806 19.7975,10.7226" id="Fill-31" fill="#FFFFFF"></path>\n            <path d="M28.7817,9.5107 C28.3477,9.5897 28.2337,9.6107 27.8217,9.6667 L27.7857,9.6907 C27.7837,9.7247 27.7777,9.7567 27.7717,9.7927 C27.7097,9.6877 27.6207,9.5947 27.4737,9.5377 C27.2867,9.4687 26.8547,9.5587 26.4857,9.9007 C26.2207,10.1417 26.0987,10.4697 26.0217,10.7907 C25.9497,11.1087 25.8627,11.6977 26.3987,11.9057 C26.5687,11.9777 26.7237,11.9987 26.8767,11.9907 C27.0457,11.9847 27.1937,11.8967 27.3367,11.7747 C27.3217,11.8257 27.3107,11.8767 27.2967,11.9287 L27.3217,11.9577 C27.7077,11.9427 27.8277,11.9427 28.2447,11.9477 L28.2827,11.9147 C28.3417,11.5587 28.4027,11.2087 28.5587,10.5227 C28.6347,10.1967 28.7127,9.8717 28.7937,9.5467 L28.7817,9.5107 M27.4107,11.2907 C27.3417,11.3917 27.1717,11.4537 27.0787,11.4537 C27.0507,11.4537 26.8807,11.4537 26.8767,11.2057 C26.8747,11.0787 26.8977,10.9507 26.9297,10.8127 C27.0187,10.4157 27.1277,10.0797 27.4047,10.0797 C27.5797,10.0797 27.6667,10.2537 27.6427,10.5387 C27.6267,10.6017 27.6187,10.6597 27.6017,10.7337 C27.5717,10.8587 27.5367,10.9807 27.5067,11.1027 C27.4797,11.1767 27.4487,11.2457 27.4107,11.2907" id="Fill-33" fill="#FFFFFF"></path>\n            <path d="M22.1577,11.9106 C21.8087,11.9056 21.6947,11.9056 21.2867,11.9246 L21.2717,11.8966 C21.3087,11.7416 21.3477,11.5876 21.3827,11.4346 L21.4317,11.2266 C21.5037,10.8986 21.5797,10.5206 21.5897,10.4026 C21.5927,10.3336 21.6147,10.1606 21.4167,10.1606 C21.3367,10.1606 21.2457,10.1996 21.1567,10.2416 C21.1117,10.4136 21.0117,10.9026 20.9637,11.1246 C20.8677,11.5956 20.8597,11.6496 20.8157,11.8796 L20.7837,11.9106 C20.4287,11.9056 20.3077,11.9056 19.8967,11.9246 L19.8777,11.8926 C19.9477,11.6086 20.0137,11.3326 20.0777,11.0526 C20.2507,10.2976 20.2907,10.0106 20.3407,9.6276 L20.3727,9.6006 C20.7727,9.5466 20.8677,9.5326 21.3027,9.4436 L21.3367,9.4836 L21.2717,9.7266 C21.3407,9.6846 21.4147,9.6406 21.4887,9.6006 C21.6927,9.5026 21.9187,9.4706 22.0427,9.4706 C22.2317,9.4706 22.4397,9.5256 22.5257,9.7426 C22.6087,9.9376 22.5547,10.1786 22.4457,10.6526 L22.3907,10.8916 C22.2787,11.4216 22.2607,11.5196 22.1987,11.8796 L22.1577,11.9106" id="Fill-35" fill="#FFFFFF"></path>\n            <path d="M25.1504,7.7729 L24.8644,7.7789 C24.1174,7.7889 23.8204,7.7859 23.6934,7.7679 C23.6834,7.8229 23.6634,7.9199 23.6634,7.9199 L23.3994,9.1629 C23.3994,9.1629 22.7584,11.7979 22.7284,11.9239 C23.3774,11.9119 23.6474,11.9119 23.7574,11.9259 C23.7834,11.8019 23.9354,11.0669 23.9374,11.0629 C23.9374,11.0629 24.0654,10.5229 24.0744,10.5089 C24.0744,10.5089 24.1104,10.4499 24.1544,10.4269 L24.2154,10.4269 C24.7754,10.4269 25.4114,10.4269 25.9104,10.0589 C26.2474,9.8139 26.4764,9.4389 26.5834,8.9909 C26.6084,8.8799 26.6294,8.7489 26.6294,8.6159 C26.6294,8.4449 26.5944,8.2749 26.4944,8.1349 C26.2434,7.7809 25.7364,7.7789 25.1504,7.7729 M25.5254,9.0659 C25.4634,9.3409 25.2884,9.5699 25.0564,9.6849 C24.8664,9.7799 24.6384,9.7869 24.3974,9.7869 L24.2404,9.7869 L24.2554,9.7249 C24.2554,9.7249 24.5394,8.4899 24.5394,8.4919 L24.5454,8.4289 L24.5514,8.3809 L24.6664,8.3889 C24.6664,8.3889 25.2534,8.4409 25.2664,8.4449 C25.4964,8.5349 25.5934,8.7639 25.5254,9.0659" id="Fill-37" fill="#FFFFFF"></path>\n            <path d="M17.0757,9.7915 C17.3027,9.6335 17.3337,9.4145 17.1407,9.2965 C16.9457,9.1865 16.6047,9.2195 16.3747,9.3795 C16.1427,9.5355 16.1177,9.7565 16.3117,9.8725 C16.5047,9.9865 16.8457,9.9485 17.0757,9.7915" id="Fill-39" fill="#FFFFFF"></path>\n            <path d="M31.6587,9.5098 L31.6217,9.4688 C31.1967,9.5568 31.1197,9.5698 30.7267,9.6218 L30.6967,9.6478 C30.6967,9.6548 30.6967,9.6628 30.6957,9.6688 L30.6927,9.6628 C30.3997,10.3378 30.4117,10.1908 30.1737,10.7218 C30.1707,10.6958 30.1707,10.6768 30.1707,10.6558 L30.1107,9.5098 L30.0747,9.4688 C29.6287,9.5568 29.6167,9.5698 29.2057,9.6218 L29.1727,9.6478 C29.1687,9.6668 29.1667,9.6788 29.1637,9.6958 L29.1687,9.7008 C29.2187,9.9658 29.2067,9.9058 29.2597,10.3208 C29.2817,10.5228 29.3147,10.7308 29.3377,10.9338 C29.3807,11.2698 29.4037,11.4368 29.4507,11.9478 C29.1727,12.4128 29.1077,12.5858 28.8417,12.9888 L28.6527,13.2908 C28.6307,13.3238 28.6117,13.3418 28.5827,13.3548 C28.5547,13.3668 28.5127,13.3738 28.4587,13.3738 L28.3167,13.3738 L28.1927,13.9118 L28.7297,13.9018 C29.0437,13.9018 29.2417,13.7458 29.3477,13.5498 L29.6807,12.9768 L31.6587,9.5098" id="Fill-41" fill="#FFFFFF"></path>\n        </g>\n    </g>\n</svg>', 
        _cardLogos);
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return _inheritsLoose;
        }));
        var _babel_runtime_helpers_esm_setPrototypeOf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);
        function _inheritsLoose(subClass, superClass) {
            subClass.prototype = Object.create(superClass.prototype);
            subClass.prototype.constructor = subClass;
            Object(_babel_runtime_helpers_esm_setPrototypeOf__WEBPACK_IMPORTED_MODULE_0__.a)(subClass, superClass);
        }
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "c", (function() {
            return create;
        }));
        __webpack_require__.d(__webpack_exports__, "d", (function() {
            return interface_destroyAll;
        }));
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return src_error.b;
        }));
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return CONSTANTS;
        }));
        var interface_namespaceObject = {};
        __webpack_require__.r(interface_namespaceObject);
        __webpack_require__.d(interface_namespaceObject, "create", (function() {
            return create;
        }));
        __webpack_require__.d(interface_namespaceObject, "getByTag", (function() {
            return getByTag;
        }));
        __webpack_require__.d(interface_namespaceObject, "getCurrentScriptDir", (function() {
            return lib.t;
        }));
        __webpack_require__.d(interface_namespaceObject, "destroyAll", (function() {
            return interface_destroyAll;
        }));
        __webpack_require__.d(interface_namespaceObject, "postRobot", (function() {
            return postRobot;
        }));
        __webpack_require__.d(interface_namespaceObject, "PopupOpenError", (function() {
            return src_error.b;
        }));
        __webpack_require__.d(interface_namespaceObject, "IntegrationError", (function() {
            return src_error.a;
        }));
        __webpack_require__.d(interface_namespaceObject, "RenderError", (function() {
            return src_error.c;
        }));
        __webpack_require__.d(interface_namespaceObject, "CONSTANTS", (function() {
            return CONSTANTS;
        }));
        var src = __webpack_require__(13);
        var assertThisInitialized = __webpack_require__(22);
        var inheritsLoose = __webpack_require__(19);
        function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
            var desc = {};
            Object.keys(descriptor).forEach((function(key) {
                desc[key] = descriptor[key];
            }));
            desc.enumerable = !!desc.enumerable;
            desc.configurable = !!desc.configurable;
            ("value" in desc || desc.initializer) && (desc.writable = !0);
            desc = decorators.slice().reverse().reduce((function(desc, decorator) {
                return decorator(target, property, desc) || desc;
            }), desc);
            if (context && void 0 !== desc.initializer) {
                desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
                desc.initializer = void 0;
            }
            if (void 0 === desc.initializer) {
                Object.defineProperty(target, property, desc);
                desc = null;
            }
            return desc;
        }
        var zalgo_promise_src = __webpack_require__(2);
        var cross_domain_utils_src = __webpack_require__(7);
        var lib = __webpack_require__(6);
        var base_BaseComponent = function() {
            function BaseComponent() {
                this.clean = void 0;
                this.event = void 0;
                this.component = void 0;
                this.clean = (obj = this, tasks = [], cleaned = !1, {
                    set: function(name, item) {
                        if (cleaned) return item;
                        obj[name] = item;
                        this.register((function() {
                            delete obj[name];
                        }));
                        return item;
                    },
                    register: function(name, method) {
                        if ("function" == typeof name) {
                            method = name;
                            name = "<anonymous-cleanup-handler>";
                        }
                        if ("function" != typeof method) throw new TypeError("Expected to be passed function to clean.register");
                        cleaned ? method() : tasks.push({
                            complete: !1,
                            name: name,
                            run: function() {
                                if (!this.complete) {
                                    this.complete = !0;
                                    method && method();
                                }
                            }
                        });
                    },
                    hasTasks: function() {
                        return Boolean(tasks.filter((function(item) {
                            return !item.complete;
                        })).length);
                    },
                    all: function() {
                        var results = [];
                        cleaned = !0;
                        for (;tasks.length; ) results.push(tasks.pop().run());
                        return zalgo_promise_src.a.all(results).then((function() {}));
                    },
                    run: function(name) {
                        var results = [];
                        for (var _i2 = 0; _i2 < tasks.length; _i2++) {
                            var item = tasks[_i2];
                            item.name === name && results.push(item.run());
                        }
                        return zalgo_promise_src.a.all(results).then(lib.F);
                    }
                });
                var obj, tasks, cleaned;
                this.event = Object(lib.p)();
            }
            var _proto = BaseComponent.prototype;
            _proto.addProp = function(options, name, def) {
                Object(lib.g)(options, this, name, def);
            };
            _proto.on = function(eventName, handler) {
                return this.event.on(eventName, handler);
            };
            _proto.listeners = function() {
                throw new Error("Expected listeners to be implemented");
            };
            _proto.error = function(err) {
                throw new Error("Expected error to be implemented - got " + Object(lib.S)(err));
            };
            _proto.listen = function(win, domain) {
                var _this = this;
                if (!win) throw this.component.createError("window to listen to not set");
                if (!domain) throw new Error("Must pass domain to listen to");
                if (this.listeners) {
                    var listeners = this.listeners();
                    var _loop = function(_i4, _Object$keys2) {
                        var listenerName = _Object$keys2[_i4];
                        var name = listenerName.replace(/^zoid_/, "");
                        var errorHandler = function(err) {
                            _this.error(err);
                        };
                        var listener = Object(src.on)(listenerName, {
                            window: win,
                            domain: domain,
                            errorHandler: errorHandler
                        }, (function(_ref) {
                            var source = _ref.source, data = _ref.data;
                            _this.component.log("listener_" + name);
                            return listeners[listenerName].call(_this, source, data);
                        }));
                        var errorListener = Object(src.on)(listenerName, {
                            window: win,
                            errorHandler: errorHandler
                        }, (function(_ref2) {
                            var origin = _ref2.origin;
                            _this.component.logError("unexpected_listener_" + name, {
                                origin: origin,
                                domain: domain.toString()
                            });
                            _this.error(new Error("Unexpected " + name + " message from domain " + origin + " -- expected message from " + domain.toString()));
                        }));
                        _this.clean.register((function() {
                            listener.cancel();
                            errorListener.cancel();
                        }));
                    };
                    for (var _i4 = 0, _Object$keys2 = Object.keys(listeners); _i4 < _Object$keys2.length; _i4++) _loop(_i4, _Object$keys2);
                }
            };
            return BaseComponent;
        }();
        var esm_extends = __webpack_require__(11);
        var client = __webpack_require__(5);
        var belter_src = __webpack_require__(14);
        var base32 = __webpack_require__(30);
        var base32_default = __webpack_require__.n(base32);
        var constants = __webpack_require__(8);
        function normalize(str) {
            return str.replace(/^[^a-z0-9A-Z]+|[^a-z0-9A-Z]+$/g, "").replace(/[^a-z0-9A-Z]+/g, "_");
        }
        var isZoidComponentWindow = Object(lib.D)((function() {
            return !!window.name && "xcomponent" === window.name.split("__")[0];
        }));
        var getComponentMeta = Object(lib.D)((function() {
            if (!window.name) throw new Error("Can not get component meta without window name");
            var _window$name$split2 = window.name.split("__"), zoidcomp = _window$name$split2[0], name = _window$name$split2[1], version = _window$name$split2[2], encodedOptions = _window$name$split2[3];
            if ("xcomponent" !== zoidcomp) throw new Error("Window not rendered by zoid - got " + zoidcomp);
            var componentMeta;
            try {
                componentMeta = JSON.parse(base32_default.a.decode(encodedOptions.toUpperCase()));
            } catch (err) {
                throw new Error("Can not decode component-meta: " + encodedOptions + " " + Object(lib.S)(err));
            }
            componentMeta.name = name;
            componentMeta.version = version.replace(/_/g, ".");
            return componentMeta;
        }));
        function window_getParentDomain() {
            return getComponentMeta().domain;
        }
        function getWindowByRef(_ref) {
            var ref = _ref.ref, uid = _ref.uid, distance = _ref.distance;
            var result;
            ref === constants.WINDOW_REFERENCES.OPENER ? result = Object(cross_domain_utils_src.m)(window) : ref === constants.WINDOW_REFERENCES.TOP ? result = Object(cross_domain_utils_src.o)(window) : ref === constants.WINDOW_REFERENCES.PARENT && (result = distance ? Object(cross_domain_utils_src.l)(window, distance) : Object(cross_domain_utils_src.n)(window));
            if (ref === constants.WINDOW_REFERENCES.GLOBAL) {
                var ancestor = Object(cross_domain_utils_src.f)(window);
                if (ancestor) for (var _i2 = 0, _getAllFramesInWindow2 = Object(cross_domain_utils_src.e)(ancestor); _i2 < _getAllFramesInWindow2.length; _i2++) {
                    var frame = _getAllFramesInWindow2[_i2];
                    var global = Object(lib.w)(frame);
                    if (global && global.windows && global.windows[uid]) {
                        result = global.windows[uid];
                        break;
                    }
                }
            }
            if (!result) throw new Error("Unable to find window by ref");
            return result;
        }
        var window_getParentComponentWindow = Object(lib.D)((function() {
            var componentMeta = getComponentMeta();
            if (!componentMeta) throw new Error("Can not get parent component window - window not rendered by zoid");
            return getWindowByRef(componentMeta.componentParent);
        }));
        var window_getParentRenderWindow = Object(lib.D)((function() {
            var componentMeta = getComponentMeta();
            if (!componentMeta) throw new Error("Can not get parent component window - window not rendered by zoid");
            return getWindowByRef(componentMeta.renderParent);
        }));
        var src_error = __webpack_require__(23);
        function normalizeChildProp(component, props, key, value) {
            var prop = component.getProp(key);
            return prop ? "function" == typeof prop.childDecorate ? prop.childDecorate(value) : value : component.looseProps ? value : void 0;
        }
        var child_ChildComponent = function(_BaseComponent) {
            Object(inheritsLoose.a)(ChildComponent, _BaseComponent);
            function ChildComponent(component) {
                var _this;
                (_this = _BaseComponent.call(this) || this).component = void 0;
                _this.props = void 0;
                _this.context = void 0;
                _this.onPropHandlers = void 0;
                _this.onInit = void 0;
                _this.watchingForResize = void 0;
                _this.autoResize = void 0;
                _this.component = component;
                if (!_this.hasValidParentDomain()) {
                    _this.error(new src_error.c("Can not be rendered by domain: " + _this.getParentDomain()));
                    return Object(assertThisInitialized.a)(_this);
                }
                _this.component.log("construct_child");
                _this.onPropHandlers = [];
                var _loop = function(_i2, _ref2) {
                    var item = _ref2[_i2];
                    var _loop2 = function(_i4, _ref4) {
                        var _ref4$_i = _ref4[_i4], name = _ref4$_i[0], getter = _ref4$_i[1];
                        Object.defineProperty(item, name, {
                            configurable: !0,
                            get: function() {
                                _this.props || _this.setProps(_this.getInitialProps(), window_getParentDomain());
                                delete item[name];
                                item[name] = getter();
                                return item[name];
                            }
                        });
                    };
                    for (var _i4 = 0, _ref4 = [ [ "xchild", function() {
                        return Object(assertThisInitialized.a)(_this);
                    } ], [ "xprops", function() {
                        return _this.props;
                    } ] ]; _i4 < _ref4.length; _i4++) _loop2(_i4, _ref4);
                };
                for (var _i2 = 0, _ref2 = [ _this.component, window ]; _i2 < _ref2.length; _i2++) _loop(_i2, _ref2);
                _this.component.log("init_child");
                _this.setWindows();
                _this.onInit = _this.sendToParent(constants.POST_MESSAGE.INIT, {
                    exports: _this.exports()
                }).then((function(_ref5) {
                    var origin = _ref5.origin, data = _ref5.data;
                    _this.context = data.context;
                    _this.setProps(data.props, origin);
                    _this.watchForResize();
                    return Object(assertThisInitialized.a)(_this);
                })).catch((function(err) {
                    _this.error(err);
                    throw err;
                }));
                return _this;
            }
            var _proto = ChildComponent.prototype;
            _proto.hasValidParentDomain = function() {
                return Object(cross_domain_utils_src.B)(this.component.allowedParentDomains, this.getParentDomain());
            };
            _proto.init = function() {
                return this.onInit;
            };
            _proto.getParentDomain = function() {
                return window_getParentDomain();
            };
            _proto.onProps = function(handler) {
                this.onPropHandlers.push(handler);
            };
            _proto.getParentComponentWindow = function() {
                return window_getParentComponentWindow();
            };
            _proto.getParentRenderWindow = function() {
                return window_getParentRenderWindow();
            };
            _proto.getInitialProps = function() {
                var _this2 = this;
                var componentMeta = getComponentMeta();
                var props = componentMeta.props;
                if (props.type === constants.INITIAL_PROPS.RAW) props = props.value; else {
                    if (props.type !== constants.INITIAL_PROPS.UID) throw new Error("Unrecognized props type: " + props.type);
                    var parentComponentWindow = window_getParentComponentWindow();
                    if (!Object(cross_domain_utils_src.v)(parentComponentWindow)) {
                        if ("file:" === window.location.protocol) throw new Error("Can not get props from file:// domain");
                        throw new Error("Parent component window is on a different domain - expected " + Object(cross_domain_utils_src.h)() + " - can not retrieve props");
                    }
                    var global = Object(lib.w)(parentComponentWindow);
                    if (!global) throw new Error("Can not find global for parent component - can not retrieve props");
                    props = JSON.parse(global.props[componentMeta.uid]);
                }
                if (!props) throw new Error("Initial props not found");
                return Object(lib.k)(props, (function(_ref6) {
                    var fullKey = _ref6.fullKey, self = _ref6.self, args = _ref6.args;
                    return _this2.onInit.then((function() {
                        var func = Object(lib.s)(_this2.props, fullKey);
                        if ("function" != typeof func) throw new TypeError("Expected " + fullKey + " to be function, got " + typeof func);
                        return func.apply(self, args);
                    }));
                }));
            };
            _proto.setProps = function(props, origin, required) {
                void 0 === required && (required = !0);
                this.props = this.props || {};
                var normalizedProps = function(component, props, origin, required) {
                    void 0 === required && (required = !0);
                    var result = {};
                    for (var _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) {
                        var key = _Object$keys2[_i2];
                        var prop = component.getProp(key);
                        var value = props[key];
                        if (!prop || !prop.sameDomain || origin === Object(cross_domain_utils_src.h)(window)) {
                            result[key] = normalizeChildProp(component, 0, key, value);
                            prop && prop.alias && !result[prop.alias] && (result[prop.alias] = value);
                        }
                    }
                    if (required) for (var _i4 = 0, _component$getPropNam2 = component.getPropNames(); _i4 < _component$getPropNam2.length; _i4++) {
                        var _key = _component$getPropNam2[_i4];
                        props.hasOwnProperty(_key) || (result[_key] = normalizeChildProp(component, 0, _key, props[_key]));
                    }
                    return result;
                }(this.component, props, origin, required);
                Object(lib.q)(this.props, normalizedProps);
                this.props.logLevel && Object(lib.O)(this.props.logLevel);
                for (var _i6 = 0, _this$onPropHandlers2 = this.onPropHandlers; _i6 < _this$onPropHandlers2.length; _i6++) _this$onPropHandlers2[_i6].call(this, this.props);
            };
            _proto.sendToParent = function(name, data, options) {
                void 0 === data && (data = {});
                void 0 === options && (options = {});
                var parentWindow = window_getParentComponentWindow();
                if (!parentWindow) throw new Error("Can not find parent component window to message");
                this.component.log("send_to_parent_" + name);
                return Object(src.send)(parentWindow, name, data, Object(esm_extends.a)({
                    domain: window_getParentDomain()
                }, options));
            };
            _proto.setWindows = function() {
                if (window.__activeZoidComponent__) throw this.component.createError("Can not attach multiple components to the same window");
                window.__activeZoidComponent__ = this;
                if (!window_getParentComponentWindow()) throw this.component.createError("Can not find parent window");
                var componentMeta = getComponentMeta();
                if (componentMeta.tag !== this.component.tag) throw this.component.createError("Parent is " + componentMeta.tag + " - can not attach " + this.component.tag);
                this.watchForClose();
            };
            _proto.watchForClose = function() {
                var _this3 = this;
                window.addEventListener("unload", (function() {
                    return _this3.checkClose();
                }));
            };
            _proto.enableAutoResize = function(_temp) {
                var _ref7 = void 0 === _temp ? {} : _temp, _ref7$width = _ref7.width, _ref7$height = _ref7.height;
                this.autoResize = {
                    width: void 0 === _ref7$width || _ref7$width,
                    height: void 0 === _ref7$height || _ref7$height
                };
                this.watchForResize();
            };
            _proto.getAutoResize = function() {
                var width = !1;
                var height = !1;
                var autoResize = this.autoResize || this.component.autoResize;
                if ("object" == typeof autoResize) {
                    width = Boolean(autoResize.width);
                    height = Boolean(autoResize.height);
                } else if (autoResize) {
                    width = !0;
                    height = !0;
                }
                return {
                    width: width,
                    height: height,
                    element: autoResize.element ? Object(lib.u)(autoResize.element) : document.body
                };
            };
            _proto.watchForResize = function() {
                var _this4 = this;
                var _this$getAutoResize = this.getAutoResize(), width = _this$getAutoResize.width, height = _this$getAutoResize.height, element = _this$getAutoResize.element;
                if ((width || height) && this.context !== constants.CONTEXT_TYPES.POPUP && !this.watchingForResize) {
                    this.watchingForResize = !0;
                    Object(belter_src.h)(element, (function(_ref8) {
                        _this4.resize(width ? _ref8.width : void 0, height ? _ref8.height : void 0);
                    }), {
                        width: width,
                        height: height
                    });
                }
            };
            _proto.exports = function() {
                var self = this;
                return {
                    updateProps: function(props) {
                        var _this5 = this;
                        return zalgo_promise_src.a.try((function() {
                            return self.setProps(props, _this5.origin, !1);
                        }));
                    },
                    close: function() {
                        return zalgo_promise_src.a.try((function() {
                            return self.destroy();
                        }));
                    }
                };
            };
            _proto.resize = function(width, height) {
                var _this6 = this;
                return zalgo_promise_src.a.resolve().then((function() {
                    _this6.component.log("resize", {
                        width: Object(lib.R)(width),
                        height: Object(lib.R)(height)
                    });
                    if (_this6.context !== constants.CONTEXT_TYPES.POPUP) return _this6.sendToParent(constants.POST_MESSAGE.RESIZE, {
                        width: width,
                        height: height
                    }).then(lib.F);
                }));
            };
            _proto.hide = function() {
                return this.sendToParent(constants.POST_MESSAGE.HIDE).then(lib.F);
            };
            _proto.show = function() {
                return this.sendToParent(constants.POST_MESSAGE.SHOW).then(lib.F);
            };
            _proto.userClose = function() {
                return this.close(constants.CLOSE_REASONS.USER_CLOSED);
            };
            _proto.close = function(reason) {
                void 0 === reason && (reason = constants.CLOSE_REASONS.CHILD_CALL);
                this.component.log("close_child");
                this.sendToParent(constants.POST_MESSAGE.CLOSE, {
                    reason: reason
                });
            };
            _proto.checkClose = function() {
                this.sendToParent(constants.POST_MESSAGE.CHECK_CLOSE, {}, {
                    fireAndForget: !0
                });
            };
            _proto.destroy = function() {
                return Object(client.h)().then((function() {
                    window.close();
                }));
            };
            _proto.focus = function() {
                this.component.log("focus");
                window.focus();
            };
            _proto.error = function(err) {
                var stringifiedError = Object(lib.S)(err);
                this.component.logError("error", {
                    error: stringifiedError
                });
                return this.sendToParent(constants.POST_MESSAGE.ERROR, {
                    error: stringifiedError
                }).then(lib.F);
            };
            return ChildComponent;
        }(base_BaseComponent);
        function _defineProperties(target, props) {
            for (var i = 0; i < props.length; i++) {
                var descriptor = props[i];
                descriptor.enumerable = descriptor.enumerable || !1;
                descriptor.configurable = !0;
                "value" in descriptor && (descriptor.writable = !0);
                Object.defineProperty(target, descriptor.key, descriptor);
            }
        }
        function _createClass(Constructor, protoProps, staticProps) {
            protoProps && _defineProperties(Constructor.prototype, protoProps);
            staticProps && _defineProperties(Constructor, staticProps);
            return Constructor;
        }
        var RENDER_DRIVERS = {};
        RENDER_DRIVERS[constants.CONTEXT_TYPES.IFRAME] = {
            focusable: !1,
            renderedIntoContainerTemplate: !0,
            allowResize: !0,
            openOnClick: !1,
            needsBridge: !1,
            open: function(url) {
                var _this = this;
                var attributes = this.component.attributes.iframe || {};
                this.iframe = Object(lib.y)({
                    url: url,
                    attributes: Object(esm_extends.a)({
                        name: this.childWindowName,
                        title: this.component.name,
                        scrolling: this.component.scrolling ? "yes" : "no"
                    }, attributes),
                    class: [ constants.CLASS_NAMES.COMPONENT_FRAME, constants.CLASS_NAMES.INVISIBLE ]
                }, this.element);
                return Object(lib.f)(this.iframe).then((function(frameWindow) {
                    _this.window = frameWindow;
                    var detectClose = function() {
                        return zalgo_promise_src.a.try((function() {
                            return _this.props.onClose(constants.CLOSE_REASONS.CLOSE_DETECTED);
                        })).finally((function() {
                            return _this.destroy();
                        }));
                    };
                    var iframeWatcher = Object(lib.W)(_this.iframe, detectClose);
                    var elementWatcher = Object(lib.W)(_this.element, detectClose);
                    _this.clean.register("destroyWindow", (function() {
                        iframeWatcher.cancel();
                        elementWatcher.cancel();
                        Object(src.cleanUpWindow)(_this.window);
                        delete _this.window;
                        if (_this.iframe) {
                            Object(lib.l)(_this.iframe);
                            delete _this.iframe;
                        }
                    }));
                }));
            },
            openPrerender: function() {
                var _this2 = this;
                var attributes = this.component.attributes.iframe || {};
                this.prerenderIframe = Object(lib.y)({
                    attributes: Object(esm_extends.a)({
                        name: "__prerender__" + this.childWindowName,
                        scrolling: this.component.scrolling ? "yes" : "no"
                    }, attributes),
                    class: [ constants.CLASS_NAMES.PRERENDER_FRAME, constants.CLASS_NAMES.VISIBLE ]
                }, this.element);
                return Object(lib.f)(this.prerenderIframe).then((function(prerenderFrameWindow) {
                    _this2.prerenderWindow = prerenderFrameWindow;
                    _this2.clean.register("destroyPrerender", (function() {
                        if (_this2.prerenderIframe) {
                            Object(lib.l)(_this2.prerenderIframe);
                            delete _this2.prerenderIframe;
                        }
                    }));
                }));
            },
            switchPrerender: function() {
                var _this3 = this;
                Object(lib.a)(this.prerenderIframe, constants.CLASS_NAMES.INVISIBLE);
                Object(lib.L)(this.prerenderIframe, constants.CLASS_NAMES.VISIBLE);
                Object(lib.a)(this.iframe, constants.CLASS_NAMES.VISIBLE);
                Object(lib.L)(this.iframe, constants.CLASS_NAMES.INVISIBLE);
                setTimeout((function() {
                    _this3.prerenderIframe && Object(lib.l)(_this3.prerenderIframe);
                }), 1e3);
            },
            delegateOverrides: {
                openContainer: constants.DELEGATE.CALL_DELEGATE,
                destroyComponent: constants.DELEGATE.CALL_DELEGATE,
                destroyContainer: constants.DELEGATE.CALL_DELEGATE,
                cancelContainerEvents: constants.DELEGATE.CALL_DELEGATE,
                createPrerenderTemplate: constants.DELEGATE.CALL_DELEGATE,
                elementReady: constants.DELEGATE.CALL_DELEGATE,
                showContainer: constants.DELEGATE.CALL_DELEGATE,
                showComponent: constants.DELEGATE.CALL_DELEGATE,
                hideContainer: constants.DELEGATE.CALL_DELEGATE,
                hideComponent: constants.DELEGATE.CALL_DELEGATE,
                hide: constants.DELEGATE.CALL_DELEGATE,
                show: constants.DELEGATE.CALL_DELEGATE,
                resize: constants.DELEGATE.CALL_DELEGATE,
                loadUrl: constants.DELEGATE.CALL_DELEGATE,
                hijackSubmit: constants.DELEGATE.CALL_DELEGATE,
                openPrerender: constants.DELEGATE.CALL_DELEGATE,
                switchPrerender: constants.DELEGATE.CALL_DELEGATE,
                renderTemplate: constants.DELEGATE.CALL_ORIGINAL,
                openContainerFrame: constants.DELEGATE.CALL_ORIGINAL,
                getOutlet: constants.DELEGATE.CALL_ORIGINAL,
                open: function(original, override) {
                    return function() {
                        var _this4 = this;
                        return override.apply(this, arguments).then((function() {
                            _this4.clean.set("window", Object(cross_domain_utils_src.c)(window_getParentComponentWindow(), _this4.childWindowName));
                            if (!_this4.window) throw new Error("Unable to find parent component iframe window");
                        }));
                    };
                }
            },
            resize: function(width, height) {
                if (width) {
                    this.container.style.width = Object(lib.T)(width);
                    this.element.style.width = Object(lib.T)(width);
                }
                if (height) {
                    this.container.style.height = Object(lib.T)(height);
                    this.element.style.height = Object(lib.T)(height);
                }
            },
            show: function() {
                Object(lib.Q)(this.element);
            },
            hide: function() {
                Object(lib.x)(this.element);
            },
            loadUrl: function(url) {
                this.iframe.setAttribute("src", url);
            }
        };
        RENDER_DRIVERS[constants.CONTEXT_TYPES.POPUP] = {
            focusable: !0,
            renderedIntoContainerTemplate: !1,
            allowResize: !1,
            openOnClick: !0,
            needsBridge: !0,
            open: function(url) {
                var _this5 = this;
                void 0 === url && (url = "");
                return zalgo_promise_src.a.try((function() {
                    var _ref = _this5.component.dimensions || {}, _ref$width = _ref.width, width = void 0 === _ref$width ? constants.DEFAULT_DIMENSIONS.WIDTH : _ref$width, _ref$height = _ref.height, height = void 0 === _ref$height ? constants.DEFAULT_DIMENSIONS.HEIGHT : _ref$height;
                    var _getPosition = function(_ref2) {
                        var width = _ref2.width, height = _ref2.height;
                        var x = 0;
                        var y = 0;
                        width && (window.outerWidth ? x = Math.round((window.outerWidth - width) / 2) + window.screenX : window.screen.width && (x = Math.round((window.screen.width - width) / 2)));
                        height && (window.outerHeight ? y = Math.round((window.outerHeight - height) / 2) + window.screenY : window.screen.height && (y = Math.round((window.screen.height - height) / 2)));
                        return {
                            x: x,
                            y: y
                        };
                    }({
                        width: width = Object(lib.G)(width, window.outerWidth),
                        height: height = Object(lib.G)(height, window.outerWidth)
                    }), x = _getPosition.x, y = _getPosition.y;
                    var attributes = _this5.component.attributes.popup || {};
                    _this5.window = Object(lib.I)(url || "", Object(esm_extends.a)({
                        name: _this5.childWindowName,
                        width: width,
                        height: height,
                        top: y,
                        left: x,
                        status: 1,
                        toolbar: 0,
                        menubar: 0,
                        resizable: 1,
                        scrollbars: 1
                    }, attributes));
                    _this5.prerenderWindow = _this5.window;
                    _this5.clean.register("destroyWindow", (function() {
                        if (_this5.window) {
                            _this5.window.close();
                            Object(src.cleanUpWindow)(_this5.window);
                            delete _this5.window;
                            delete _this5.prerenderWindow;
                        }
                    }));
                    _this5.resize(width, height);
                }));
            },
            openPrerender: function() {
                return zalgo_promise_src.a.try(lib.F);
            },
            resize: function() {},
            hide: function() {
                throw new Error("Can not hide popup");
            },
            show: function() {
                throw new Error("Can not show popup");
            },
            delegateOverrides: {
                openContainer: constants.DELEGATE.CALL_DELEGATE,
                destroyContainer: constants.DELEGATE.CALL_DELEGATE,
                elementReady: constants.DELEGATE.CALL_DELEGATE,
                showContainer: constants.DELEGATE.CALL_DELEGATE,
                showComponent: constants.DELEGATE.CALL_DELEGATE,
                hideContainer: constants.DELEGATE.CALL_DELEGATE,
                hideComponent: constants.DELEGATE.CALL_DELEGATE,
                hide: constants.DELEGATE.CALL_DELEGATE,
                show: constants.DELEGATE.CALL_DELEGATE,
                cancelContainerEvents: constants.DELEGATE.CALL_DELEGATE,
                open: constants.DELEGATE.CALL_ORIGINAL,
                loadUrl: constants.DELEGATE.CALL_ORIGINAL,
                createPrerenderTemplate: constants.DELEGATE.CALL_ORIGINAL,
                destroyComponent: constants.DELEGATE.CALL_ORIGINAL,
                resize: constants.DELEGATE.CALL_ORIGINAL,
                renderTemplate: constants.DELEGATE.CALL_ORIGINAL,
                openContainerFrame: constants.DELEGATE.CALL_ORIGINAL,
                getOutlet: constants.DELEGATE.CALL_ORIGINAL
            },
            loadUrl: function(url) {
                if (Object(cross_domain_utils_src.v)(this.window)) try {
                    if (this.window.location && this.window.location.replace) {
                        this.window.location.replace(url);
                        return;
                    }
                } catch (err) {}
                this.window.location = url;
            }
        };
        function validateProp(prop, key, value, props, required) {
            void 0 === required && (required = !0);
            if (null != value && "" !== value) {
                if (!value || "function" != typeof value.then || !prop.promise) {
                    if ("function" === prop.type) {
                        if ("function" != typeof value) throw new TypeError("Prop is not of type function: " + key);
                    } else if ("string" === prop.type) {
                        if ("string" != typeof value) throw new TypeError("Prop is not of type string: " + key);
                    } else if ("object" === prop.type) {
                        if (!1 !== prop.sendToChild) try {
                            JSON.stringify(value);
                        } catch (err) {
                            throw new Error("Unable to serialize prop: " + key);
                        }
                    } else if ("number" === prop.type && isNaN(parseInt(value, 10))) throw new TypeError("Prop is not a number: " + key);
                    "function" == typeof prop.validate && value && prop.validate(value, props);
                }
            } else if (required && !1 !== prop.required && !prop.hasOwnProperty("def")) throw new Error("Prop is required: " + key);
        }
        function normalizeProp(component, instance, props, key, value) {
            var prop = component.getProp(key);
            var resultValue;
            !(resultValue = prop.value ? prop.value : !prop.def || props.hasOwnProperty(key) && function(value) {
                return null != value && "" !== value;
            }(value) ? value : prop.def.call(component, props)) && prop.alias && props[prop.alias] && (resultValue = props[prop.alias]);
            var decorated = !1;
            if (prop.decorate && null != resultValue) {
                resultValue = prop.decorate.call(instance, resultValue, props);
                decorated = !0;
            }
            var type = prop.type;
            if ("boolean" === type) resultValue = Boolean(resultValue); else if ("function" === type) {
                if (!resultValue && prop.noop) {
                    resultValue = lib.F;
                    !decorated && prop.decorate && (resultValue = prop.decorate.call(instance, lib.F, props));
                }
                if (resultValue && "function" == typeof resultValue) {
                    resultValue = resultValue.bind(instance);
                    prop.denodeify && (resultValue = Object(lib.j)(resultValue));
                    prop.promisify && (resultValue = Object(lib.K)(resultValue));
                    var original = resultValue;
                    resultValue = function() {
                        component.log("call_prop_" + key);
                        return original.apply(this, arguments);
                    };
                    prop.once && (resultValue = Object(lib.H)(resultValue));
                    prop.memoize && (resultValue = Object(lib.D)(resultValue));
                }
            } else "string" === type || "object" === type || "number" === type && void 0 !== resultValue && (resultValue = parseInt(resultValue, 10));
            return resultValue;
        }
        function getQueryParam(prop, key, value) {
            return zalgo_promise_src.a.try((function() {
                return "function" == typeof prop.queryParam ? prop.queryParam(value) : "string" == typeof prop.queryParam ? prop.queryParam : key;
            }));
        }
        function getQueryValue(prop, key, value) {
            return zalgo_promise_src.a.try((function() {
                return "function" == typeof prop.queryValue ? prop.queryValue(value) : value;
            }));
        }
        var _class, _class2, _temp;
        lib.v.props = lib.v.props || {};
        lib.v.windows = lib.v.windows || {};
        var parent_ParentComponent = (_applyDecoratedDescriptor((_class = (_temp = _class2 = function(_BaseComponent) {
            Object(inheritsLoose.a)(ParentComponent, _BaseComponent);
            function ParentComponent(component, context, _ref) {
                var _this;
                var props = _ref.props;
                (_this = _BaseComponent.call(this) || this).html = void 0;
                _this.context = void 0;
                _this.props = void 0;
                _this.childWindowName = void 0;
                _this.onInit = void 0;
                _this.window = void 0;
                _this.handledErrors = void 0;
                _this.container = void 0;
                _this.element = void 0;
                _this.outlet = void 0;
                _this.iframe = void 0;
                _this.prerenderIframe = void 0;
                _this.prerenderWindow = void 0;
                _this.childExports = void 0;
                _this.timeout = void 0;
                _this.component = component;
                _this.validateParentDomain();
                _this.context = context;
                try {
                    _this.setProps(props);
                } catch (err) {
                    props.onError && props.onError(err);
                    throw err;
                }
                _this.props.logLevel && Object(lib.O)(_this.props.logLevel);
                _this.childWindowName = _this.buildChildWindowName({
                    renderTo: window
                });
                _this.registerActiveComponent();
                _this.component.log("construct_parent");
                _this.watchForUnload();
                _this.onInit = new zalgo_promise_src.a;
                _this.onInit.catch((function(err) {
                    return _this.error(err);
                }));
                return _this;
            }
            var _proto = ParentComponent.prototype;
            _proto.render = function(element, loadUrl) {
                var _this2 = this;
                void 0 === loadUrl && (loadUrl = !0);
                return this.tryInit((function() {
                    _this2.component.log("render_" + _this2.context, {
                        context: _this2.context,
                        element: element,
                        loadUrl: Object(lib.R)(loadUrl)
                    });
                    var tasks = {};
                    tasks.onRender = _this2.props.onRender();
                    tasks.getDomain = _this2.getDomain();
                    tasks.elementReady = zalgo_promise_src.a.try((function() {
                        if (element) return _this2.elementReady(element);
                    }));
                    tasks.openContainer = tasks.elementReady.then((function() {
                        return _this2.openContainer(element);
                    }));
                    tasks.showContainer = tasks.openContainer.then((function() {
                        return _this2.showContainer();
                    }));
                    tasks.openPrerender = tasks.openContainer.then((function() {
                        return _this2.openPrerender();
                    }));
                    tasks.switchPrerender = zalgo_promise_src.a.all([ tasks.openPrerender, _this2.onInit ]).then((function() {
                        return _this2.switchPrerender();
                    }));
                    tasks.open = _this2.driver.openOnClick ? _this2.open() : tasks.openContainer.then((function() {
                        return _this2.open();
                    }));
                    tasks.listen = zalgo_promise_src.a.hash({
                        domain: tasks.getDomain,
                        open: tasks.open
                    }).then((function(_ref2) {
                        _this2.listen(_this2.window, _ref2.domain);
                    }));
                    tasks.watchForClose = tasks.open.then((function() {
                        return _this2.watchForClose();
                    }));
                    tasks.linkDomain = zalgo_promise_src.a.all([ tasks.getDomain, tasks.open ]).then((function(_ref3) {
                        var domain = _ref3[0];
                        if (src.bridge && "string" == typeof domain) return src.bridge.linkUrl(_this2.window, domain);
                    }));
                    if (!_this2.html) {
                        tasks.createPrerenderTemplate = tasks.openPrerender.then((function() {
                            return _this2.createPrerenderTemplate();
                        }));
                        tasks.showComponent = tasks.createPrerenderTemplate.then((function() {
                            return _this2.showComponent();
                        }));
                    }
                    tasks.openBridge = zalgo_promise_src.a.all([ tasks.getDomain, tasks.open ]).then((function(_ref4) {
                        var domain = _ref4[0];
                        return _this2.openBridge("string" == typeof domain ? domain : null);
                    }));
                    if (_this2.html) tasks.loadHTML = tasks.open.then((function() {
                        return _this2.loadHTML();
                    })); else if (loadUrl) {
                        tasks.buildUrl = _this2.buildUrl();
                        tasks.loadUrl = zalgo_promise_src.a.all([ tasks.buildUrl, tasks.open, tasks.linkDomain, tasks.listen, tasks.open, tasks.openBridge, tasks.createPrerenderTemplate ]).then((function(_ref5) {
                            return _this2.loadUrl(_ref5[0]);
                        }));
                        tasks.runTimeout = tasks.loadUrl.then((function() {
                            return _this2.runTimeout();
                        }));
                    }
                    return zalgo_promise_src.a.hash(tasks);
                })).then((function() {
                    return _this2.props.onEnter();
                })).then((function() {
                    return _this2;
                }));
            };
            _proto.getOutlet = function() {
                var outlet = document.createElement("div");
                Object(lib.a)(outlet, constants.CLASS_NAMES.OUTLET);
                return outlet;
            };
            _proto.validateParentDomain = function() {
                var domain = Object(cross_domain_utils_src.h)();
                if (!Object(cross_domain_utils_src.B)(this.component.allowedParentDomains, domain)) throw new src_error.c("Can not be rendered by domain: " + domain);
            };
            _proto.renderTo = function(win, element) {
                var _this3 = this;
                return this.tryInit((function() {
                    if (win === window) return _this3.render(element);
                    if (!Object(cross_domain_utils_src.w)(window, win)) throw new Error("Can only renderTo an adjacent frame");
                    if (element && "string" != typeof element) throw new Error("Element passed to renderTo must be a string selector, got " + typeof element + " " + element);
                    _this3.checkAllowRenderTo(win);
                    _this3.component.log("render_" + _this3.context + "_to_win", {
                        element: Object(lib.R)(element),
                        context: _this3.context
                    });
                    _this3.childWindowName = _this3.buildChildWindowName({
                        renderTo: win
                    });
                    _this3.delegate(win);
                    return _this3.render(element);
                }));
            };
            _proto.prefetch = function() {
                var _this4 = this;
                return zalgo_promise_src.a.try((function() {
                    _this4.html = _this4.buildUrl().then((function(url) {
                        return Object(lib.J)(url).then((function(html) {
                            return '\n                        <base href="' + url.split("/").slice(0, 3).join("/") + '">\n\n                        ' + html + "\n\n                        <script>\n                            if (window.history && window.history.pushState) {\n                                window.history.pushState({}, '', '/" + url.split("/").slice(3).join("/") + "');\n                            }\n                        <\/script>\n                    ";
                        }));
                    }));
                }));
            };
            _proto.loadHTML = function() {
                var _this5 = this;
                return zalgo_promise_src.a.try((function() {
                    if (!_this5.html) throw new Error("Html not prefetched");
                    return _this5.html.then((function(html) {
                        return Object(lib.Y)(_this5.window, html);
                    }));
                }));
            };
            _proto.checkAllowRenderTo = function(win) {
                if (!win) throw this.component.createError("Must pass window to renderTo");
                if (!Object(cross_domain_utils_src.v)(win)) {
                    var origin = Object(cross_domain_utils_src.h)();
                    var domain = this.component.getDomain(null, this.props.env);
                    if (!domain) throw new Error("Could not determine domain to allow remote render");
                    if (!Object(cross_domain_utils_src.B)(domain, origin)) throw new Error("Can not render remotely to " + domain.toString() + " - can only render to " + origin);
                }
            };
            _proto.registerActiveComponent = function() {
                var _this6 = this;
                ParentComponent.activeComponents.push(this);
                this.clean.register((function() {
                    ParentComponent.activeComponents.splice(ParentComponent.activeComponents.indexOf(_this6), 1);
                }));
            };
            _proto.getComponentParentRef = function() {
                if (this.component.getDomain(null, this.props.env) === Object(cross_domain_utils_src.h)(window)) {
                    var uid = Object(lib.U)();
                    lib.v.windows = lib.v.windows || {};
                    lib.v.windows[uid] = window;
                    this.clean.register((function() {
                        delete lib.v.windows[uid];
                    }));
                    return {
                        ref: constants.WINDOW_REFERENCES.GLOBAL,
                        uid: uid
                    };
                }
                return this.context === constants.CONTEXT_TYPES.POPUP ? {
                    ref: constants.WINDOW_REFERENCES.OPENER
                } : Object(cross_domain_utils_src.x)(window) ? {
                    ref: constants.WINDOW_REFERENCES.TOP
                } : {
                    ref: constants.WINDOW_REFERENCES.PARENT,
                    distance: Object(cross_domain_utils_src.g)(window)
                };
            };
            _proto.getRenderParentRef = function(renderToWindow) {
                void 0 === renderToWindow && (renderToWindow = window);
                if (renderToWindow === window) return this.getComponentParentRef();
                var uid = Object(lib.U)();
                lib.v.windows[uid] = renderToWindow;
                this.clean.register((function() {
                    delete lib.v.windows[uid];
                }));
                return {
                    ref: constants.WINDOW_REFERENCES.GLOBAL,
                    uid: uid
                };
            };
            _proto.buildChildWindowName = function(_temp2) {
                var _ref6$renderTo = (void 0 === _temp2 ? {} : _temp2).renderTo, renderTo = void 0 === _ref6$renderTo ? window : _ref6$renderTo;
                var childDomain = this.component.getDomain(null, this.props.env);
                var sameDomain = Object(cross_domain_utils_src.v)(renderTo);
                var uid = Object(lib.U)();
                var tag = this.component.tag;
                var sProps = Object(lib.N)(this.getPropsForChild());
                var componentParent = this.getComponentParentRef();
                var renderParent = this.getRenderParentRef(renderTo);
                var props = sameDomain || this.component.unsafeRenderTo ? {
                    type: constants.INITIAL_PROPS.RAW,
                    value: sProps
                } : {
                    type: constants.INITIAL_PROPS.UID,
                    uid: uid
                };
                if (props.type === constants.INITIAL_PROPS.UID) {
                    lib.v.props[uid] = JSON.stringify(sProps);
                    this.clean.register((function() {
                        delete lib.v.props[uid];
                    }));
                }
                return function(name, version, options) {
                    void 0 === options && (options = {});
                    options.id = Object(lib.U)();
                    options.domain = Object(cross_domain_utils_src.h)(window);
                    var encodedName = normalize(name);
                    var encodedVersion = normalize(version);
                    var encodedOptions = (str = JSON.stringify(options), base32_default.a.encode(str).replace(/\=/g, "").toLowerCase());
                    var str;
                    if (!encodedName) throw new Error("Invalid name: " + name + " - must contain alphanumeric characters");
                    if (!encodedVersion) throw new Error("Invalid version: " + version + " - must contain alphanumeric characters");
                    return [ "xcomponent", encodedName, encodedVersion, encodedOptions, "" ].join("__");
                }(this.component.name, this.component.version, {
                    uid: uid,
                    tag: tag,
                    componentParent: componentParent,
                    renderParent: renderParent,
                    props: props,
                    childDomain: childDomain
                });
            };
            _proto.sendToParent = function(name, data) {
                if (!window_getParentComponentWindow()) throw new Error("Can not find parent component window to message");
                this.component.log("send_to_parent_" + name);
                return Object(src.send)(window_getParentComponentWindow(), name, data, {
                    domain: window_getParentDomain()
                });
            };
            _proto.setProps = function(props, required) {
                void 0 === required && (required = !0);
                !function(component, props, required) {
                    void 0 === required && (required = !0);
                    if ((props = props || {}).env && "object" == typeof component.url && !component.url[props.env]) throw new Error("Invalid env: " + props.env);
                    for (var _i2 = 0, _component$getPropNam2 = component.getPropNames(); _i2 < _component$getPropNam2.length; _i2++) {
                        var key = _component$getPropNam2[_i2];
                        var prop = component.getProp(key);
                        if (prop.alias && props.hasOwnProperty(prop.alias)) {
                            var value = props[prop.alias];
                            delete props[prop.alias];
                            props[key] || (props[key] = value);
                        }
                    }
                    for (var _i4 = 0, _Object$keys2 = Object.keys(props); _i4 < _Object$keys2.length; _i4++) {
                        var _key = _Object$keys2[_i4];
                        var _prop = component.getProp(_key);
                        _prop && validateProp(_prop, _key, props[_key], props, required);
                    }
                    for (var _i6 = 0, _component$getPropNam4 = component.getPropNames(); _i6 < _component$getPropNam4.length; _i6++) {
                        var _key2 = _component$getPropNam4[_i6];
                        var _prop2 = component.getProp(_key2);
                        var _value2 = props[_key2];
                        _prop2 && !props.hasOwnProperty(_key2) && validateProp(_prop2, _key2, _value2, props, required);
                    }
                }(this.component, props, required);
                this.component.validate && this.component.validate(this.component, props);
                this.props = this.props || {};
                Object(lib.q)(this.props, function(component, instance, props) {
                    var result = {};
                    props = props || {};
                    for (var _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) {
                        var key = _Object$keys2[_i2];
                        result[key] = -1 !== component.getPropNames().indexOf(key) ? normalizeProp(component, instance, props, key, props[key]) : props[key];
                    }
                    for (var _i4 = 0, _component$getPropNam2 = component.getPropNames(); _i4 < _component$getPropNam2.length; _i4++) {
                        var _key = _component$getPropNam2[_i4];
                        if (!(props.hasOwnProperty(_key) || instance.props && instance.props.hasOwnProperty(_key))) {
                            var normalizedProp = normalizeProp(component, instance, props, _key, props[_key]);
                            void 0 !== normalizedProp && (result[_key] = normalizedProp);
                        }
                    }
                    return result;
                }(this.component, this, props));
            };
            _proto.buildUrl = function() {
                var _this7 = this;
                return zalgo_promise_src.a.all([ this.props.url, (propsDef = Object(esm_extends.a)({}, this.component.props, this.component.builtinProps), 
                props = this.props, params = {}, zalgo_promise_src.a.all(Object.keys(props).map((function(key) {
                    var prop = propsDef[key];
                    if (prop) return zalgo_promise_src.a.resolve().then((function() {
                        var value = props[key];
                        if (value && prop.queryParam) return value;
                    })).then((function(value) {
                        if (value) return zalgo_promise_src.a.all([ getQueryParam(prop, key, value), getQueryValue(prop, 0, value) ]).then((function(_ref) {
                            var queryParam = _ref[0], queryValue = _ref[1];
                            var result;
                            if ("boolean" == typeof queryValue) result = "1"; else if ("string" == typeof queryValue) result = queryValue.toString(); else {
                                if ("function" == typeof queryValue) return;
                                if ("object" == typeof queryValue && null !== queryValue) {
                                    if ("json" !== prop.serialization) {
                                        result = Object(lib.m)(queryValue, key);
                                        for (var _i6 = 0, _Object$keys4 = Object.keys(result); _i6 < _Object$keys4.length; _i6++) {
                                            var dotkey = _Object$keys4[_i6];
                                            params[dotkey] = result[dotkey];
                                        }
                                        return;
                                    }
                                    result = JSON.stringify(queryValue);
                                } else "number" == typeof queryValue && (result = queryValue.toString());
                            }
                            params[queryParam] = result;
                        }));
                    }));
                }))).then((function() {
                    Object.keys(params).forEach((function(key) {
                        params[key] = escape(params[key]);
                    }));
                    return params;
                }))) ]).then((function(_ref7) {
                    var url = _ref7[0], query = _ref7[1];
                    return url && !_this7.component.getValidDomain(url) ? url : zalgo_promise_src.a.try((function() {
                        return url || _this7.component.getUrl(_this7.props.env, _this7.props);
                    })).then((function(finalUrl) {
                        query.xcomponent = "1";
                        return Object(lib.r)(finalUrl, {
                            query: query
                        });
                    }));
                }));
                var propsDef, props, params;
            };
            _proto.getDomain = function() {
                var _this8 = this;
                return zalgo_promise_src.a.try((function() {
                    return _this8.props.url;
                })).then((function(url) {
                    return _this8.component.getDomain(url, _this8.props.env) || (_this8.component.buildUrl ? zalgo_promise_src.a.try((function() {
                        return _this8.component.buildUrl(_this8.props);
                    })).then((function(builtUrl) {
                        return _this8.component.getDomain(builtUrl, _this8.props.env);
                    })) : void 0);
                })).then((function(domain) {
                    if (!domain) throw new Error("Could not determine domain");
                    return domain;
                }));
            };
            _proto.getPropsForChild = function() {
                var result = {};
                for (var _i2 = 0, _Object$keys2 = Object.keys(this.props); _i2 < _Object$keys2.length; _i2++) {
                    var key = _Object$keys2[_i2];
                    var prop = this.component.getProp(key);
                    prop && !1 === prop.sendToChild || (result[key] = this.props[key]);
                }
                return result;
            };
            _proto.updateProps = function(props) {
                var _this9 = this;
                this.setProps(props, !1);
                return this.onInit.then((function() {
                    if (_this9.childExports) return _this9.childExports.updateProps(_this9.getPropsForChild());
                    throw new Error("Child exports were not available");
                }));
            };
            _proto.openBridge = function(domain) {
                var _this10 = this;
                return zalgo_promise_src.a.try((function() {
                    if (src.bridge && _this10.driver.needsBridge) {
                        var needsBridgeParams = {
                            win: _this10.window
                        };
                        domain && (needsBridgeParams.domain = domain);
                        var needsBridge = src.bridge.needsBridge(needsBridgeParams);
                        var bridgeUrl = _this10.component.getBridgeUrl(_this10.props.env);
                        if (bridgeUrl) {
                            bridgeUrl = Object(lib.r)(bridgeUrl, {
                                query: {
                                    version: _this10.component.version
                                }
                            });
                            var bridgeDomain = _this10.component.getBridgeDomain(_this10.props.env);
                            if (!bridgeDomain) throw new Error("Can not determine domain for bridge");
                            return needsBridge ? src.bridge.openBridge(bridgeUrl, bridgeDomain).then((function(result) {
                                if (result) return result;
                            })) : void 0;
                        }
                        if (needsBridge && domain && !src.bridge.hasBridge(domain, domain)) throw new Error("Bridge url needed to render " + _this10.context);
                    }
                }));
            };
            _proto.open = function() {
                var _this11 = this;
                return zalgo_promise_src.a.try((function() {
                    _this11.component.log("open_" + _this11.context, {
                        windowName: _this11.childWindowName
                    });
                    var win = _this11.props.win;
                    if (!win) return _this11.driver.open.call(_this11);
                    _this11.clean.set("window", win);
                    window.addEventListener("beforeunload", (function() {
                        return win.close();
                    }));
                    window.addEventListener("unload", (function() {
                        return win.close();
                    }));
                    Object(cross_domain_utils_src.b)(_this11.window).name = _this11.childWindowName;
                }));
            };
            _proto.openPrerender = function() {
                var _this12 = this;
                return zalgo_promise_src.a.try((function() {
                    if (_this12.component.prerenderTemplate) return _this12.driver.openPrerender.call(_this12);
                }));
            };
            _proto.switchPrerender = function() {
                var _this13 = this;
                return zalgo_promise_src.a.try((function() {
                    if (_this13.prerenderWindow && _this13.driver.switchPrerender) return _this13.driver.switchPrerender.call(_this13);
                }));
            };
            _proto.elementReady = function(element) {
                return Object(lib.n)(element).then(lib.F);
            };
            _proto.delegate = function(win) {
                var _this14 = this;
                this.component.log("delegate_" + this.context);
                var props = {
                    uid: this.props.uid,
                    dimensions: this.props.dimensions,
                    onClose: this.props.onClose,
                    onDisplay: this.props.onDisplay
                };
                for (var _i4 = 0, _this$component$getPr2 = this.component.getPropNames(); _i4 < _this$component$getPr2.length; _i4++) {
                    var propName = _this$component$getPr2[_i4];
                    this.component.getProp(propName).allowDelegate && (props[propName] = this.props[propName]);
                }
                var delegate = Object(src.send)(win, constants.POST_MESSAGE.DELEGATE + "_" + this.component.name, {
                    context: this.context,
                    env: this.props.env,
                    options: {
                        context: this.context,
                        childWindowName: this.childWindowName,
                        isWindowClosed: function() {
                            return Object(cross_domain_utils_src.z)(_this14.window);
                        },
                        props: props,
                        overrides: {
                            focus: function() {
                                return _this14.focus();
                            },
                            userClose: function() {
                                return _this14.userClose();
                            },
                            getDomain: function() {
                                return _this14.getDomain();
                            },
                            error: function(err) {
                                return _this14.error(err);
                            },
                            on: function(eventName, handler) {
                                return _this14.on(eventName, handler);
                            }
                        }
                    }
                }).then((function(_ref8) {
                    var data = _ref8.data;
                    _this14.clean.register(data.destroy);
                    return data;
                })).catch((function(err) {
                    throw new Error("Unable to delegate rendering. Possibly the component is not loaded in the target window.\n\n" + Object(lib.S)(err));
                }));
                var overrides = this.driver.delegateOverrides;
                var _loop = function(_i6, _Object$keys4) {
                    var key = _Object$keys4[_i6];
                    var val = overrides[key];
                    if (val === constants.DELEGATE.CALL_ORIGINAL) return "continue";
                    var original = _this14[key];
                    _this14[key] = function() {
                        var _arguments = arguments, _this15 = this;
                        return delegate.then((function(data) {
                            var override = data.overrides[key];
                            if (val === constants.DELEGATE.CALL_DELEGATE) return override.apply(_this15, _arguments);
                            if ("function" == typeof val) return val(original, override).apply(_this15, _arguments);
                            throw new Error("Expected delgate to be CALL_ORIGINAL, CALL_DELEGATE, or factory method");
                        }));
                    };
                };
                for (var _i6 = 0, _Object$keys4 = Object.keys(overrides); _i6 < _Object$keys4.length; _i6++) _loop(_i6, _Object$keys4);
            };
            _proto.watchForClose = function() {
                var _this16 = this;
                var closeWindowListener = Object(cross_domain_utils_src.C)(this.window, (function() {
                    _this16.component.log("detect_close_child");
                    return zalgo_promise_src.a.try((function() {
                        return _this16.props.onClose(constants.CLOSE_REASONS.CLOSE_DETECTED);
                    })).finally((function() {
                        return _this16.destroy();
                    }));
                }), 3e3);
                this.clean.register("destroyCloseWindowListener", closeWindowListener.cancel);
            };
            _proto.watchForUnload = function() {
                var _this17 = this;
                var onunload = Object(lib.H)((function() {
                    _this17.component.log("navigate_away");
                    Object(client.h)();
                    _this17.destroyComponent();
                }));
                var unloadWindowListener = Object(lib.b)(window, "unload", onunload);
                this.clean.register("destroyUnloadWindowListener", unloadWindowListener.cancel);
            };
            _proto.loadUrl = function(url) {
                var _this18 = this;
                return zalgo_promise_src.a.try((function() {
                    _this18.component.log("load_url");
                    if (window.location.href.split("#")[0] === url.split("#")[0]) {
                        var _query;
                        url = Object(lib.r)(url, {
                            query: (_query = {}, _query[Object(lib.U)()] = "1", _query)
                        });
                    }
                    return _this18.driver.loadUrl.call(_this18, url);
                }));
            };
            _proto.hijack = function(targetElement) {
                targetElement.target = this.childWindowName;
            };
            _proto.runTimeout = function() {
                var _this19 = this;
                var timeout = this.props.timeout;
                if (timeout) {
                    var id = this.timeout = setTimeout((function() {
                        _this19.component.log("timed_out", {
                            timeout: timeout.toString()
                        });
                        var error = _this19.component.createError("Loading component timed out after " + timeout + " milliseconds");
                        _this19.onInit.reject(error);
                        _this19.props.onTimeout(error);
                    }), timeout);
                    this.clean.register((function() {
                        clearTimeout(id);
                        delete _this19.timeout;
                    }));
                }
            };
            _proto.listeners = function() {
                var _ref9;
                return (_ref9 = {})[constants.POST_MESSAGE.INIT] = function(source, data) {
                    this.childExports = data.exports;
                    this.onInit.resolve(this);
                    this.timeout && clearTimeout(this.timeout);
                    return {
                        props: this.getPropsForChild(),
                        context: this.context
                    };
                }, _ref9[constants.POST_MESSAGE.CLOSE] = function(source, data) {
                    this.close(data.reason);
                }, _ref9[constants.POST_MESSAGE.CHECK_CLOSE] = function() {
                    this.checkClose();
                }, _ref9[constants.POST_MESSAGE.RESIZE] = function(source, data) {
                    var _this20 = this;
                    return zalgo_promise_src.a.try((function() {
                        if (_this20.driver.allowResize) return _this20.resize(data.width, data.height);
                    }));
                }, _ref9[constants.POST_MESSAGE.HIDE] = function() {
                    this.hide();
                }, _ref9[constants.POST_MESSAGE.SHOW] = function() {
                    this.show();
                }, _ref9[constants.POST_MESSAGE.ERROR] = function(source, data) {
                    this.error(new Error(data.error));
                }, _ref9;
            };
            _proto.resize = function(width, height) {
                var _this21 = this;
                return zalgo_promise_src.a.try((function() {
                    _this21.component.log("resize", {
                        height: Object(lib.R)(height),
                        width: Object(lib.R)(width)
                    });
                    _this21.driver.resize.call(_this21, width, height);
                    _this21.props.onResize && _this21.props.onResize();
                }));
            };
            _proto.hide = function() {
                this.container && Object(lib.x)(this.container);
                return this.driver.hide.call(this);
            };
            _proto.show = function() {
                this.container && Object(lib.Q)(this.container);
                return this.driver.show.call(this);
            };
            _proto.checkClose = function() {
                var _this22 = this;
                var closeWindowListener = Object(cross_domain_utils_src.C)(this.window, (function() {
                    _this22.userClose();
                }), 50, 500);
                this.clean.register(closeWindowListener.cancel);
            };
            _proto.userClose = function() {
                return this.close(constants.CLOSE_REASONS.USER_CLOSED);
            };
            _proto.close = function(reason) {
                var _this23 = this;
                void 0 === reason && (reason = constants.CLOSE_REASONS.PARENT_CALL);
                return zalgo_promise_src.a.try((function() {
                    _this23.component.log("close", {
                        reason: reason
                    });
                    _this23.event.triggerOnce(constants.EVENTS.CLOSE);
                    return _this23.props.onClose(reason);
                })).then((function() {
                    return zalgo_promise_src.a.all([ _this23.closeComponent(), _this23.closeContainer() ]);
                })).then((function() {
                    return _this23.destroy();
                }));
            };
            _proto.closeContainer = function(reason) {
                var _this24 = this;
                void 0 === reason && (reason = constants.CLOSE_REASONS.PARENT_CALL);
                return zalgo_promise_src.a.try((function() {
                    _this24.event.triggerOnce(constants.EVENTS.CLOSE);
                    return _this24.props.onClose(reason);
                })).then((function() {
                    return zalgo_promise_src.a.all([ _this24.closeComponent(reason), _this24.hideContainer() ]);
                })).then((function() {
                    return _this24.destroyContainer();
                }));
            };
            _proto.destroyContainer = function() {
                var _this25 = this;
                return zalgo_promise_src.a.try((function() {
                    _this25.clean.run("destroyContainerEvents");
                    _this25.clean.run("destroyContainerTemplate");
                }));
            };
            _proto.closeComponent = function(reason) {
                var _this26 = this;
                void 0 === reason && (reason = constants.CLOSE_REASONS.PARENT_CALL);
                var win = this.window;
                return zalgo_promise_src.a.try((function() {
                    return _this26.cancelContainerEvents();
                })).then((function() {
                    _this26.event.triggerOnce(constants.EVENTS.CLOSE);
                    return _this26.props.onClose(reason);
                })).then((function() {
                    return _this26.hideComponent();
                })).then((function() {
                    return _this26.destroyComponent();
                })).then((function() {
                    _this26.childExports && _this26.context === constants.CONTEXT_TYPES.POPUP && !Object(cross_domain_utils_src.z)(win) && _this26.childExports.close().catch(lib.F);
                }));
            };
            _proto.destroyComponent = function() {
                this.clean.run("destroyUnloadWindowListener");
                this.clean.run("destroyCloseWindowListener");
                this.clean.run("destroyContainerEvents");
                this.clean.run("destroyWindow");
            };
            _proto.showContainer = function() {
                var _this27 = this;
                return zalgo_promise_src.a.try((function() {
                    if (_this27.props.onDisplay) return _this27.props.onDisplay();
                })).then((function() {
                    if (_this27.container) return Object(lib.P)(_this27.container, constants.ANIMATION_NAMES.SHOW_CONTAINER, _this27.clean.register);
                }));
            };
            _proto.showComponent = function() {
                var _this28 = this;
                return zalgo_promise_src.a.try((function() {
                    if (_this28.props.onDisplay) return _this28.props.onDisplay();
                })).then((function() {
                    if (_this28.element) return Object(lib.P)(_this28.element, constants.ANIMATION_NAMES.SHOW_COMPONENT, _this28.clean.register);
                }));
            };
            _proto.hideContainer = function() {
                var _this29 = this;
                return zalgo_promise_src.a.try((function() {
                    return _this29.container ? Object(lib.c)(_this29.container, constants.ANIMATION_NAMES.HIDE_CONTAINER, _this29.clean.register) : zalgo_promise_src.a.resolve();
                }));
            };
            _proto.hideComponent = function() {
                var _this30 = this;
                return zalgo_promise_src.a.try((function() {
                    return _this30.element ? Object(lib.c)(_this30.element, constants.ANIMATION_NAMES.HIDE_COMPONENT, _this30.clean.register) : zalgo_promise_src.a.resolve();
                }));
            };
            _proto.focus = function() {
                if (!this.window || Object(cross_domain_utils_src.z)(this.window)) throw new Error("No window to focus");
                this.component.log("focus");
                this.window.focus();
            };
            _proto.createPrerenderTemplate = function() {
                var _this31 = this;
                return zalgo_promise_src.a.try((function() {
                    return _this31.component.prerenderTemplate ? zalgo_promise_src.a.try((function() {
                        return _this31.prerenderIframe ? Object(lib.e)(_this31.prerenderIframe).then((function() {
                            return _this31.prerenderWindow;
                        })) : _this31.prerenderWindow;
                    })).then((function(win) {
                        var doc;
                        try {
                            doc = win.document;
                        } catch (err) {
                            return;
                        }
                        var el;
                        try {
                            el = _this31.renderTemplate(_this31.component.prerenderTemplate, {
                                jsxDom: lib.C.bind(doc),
                                document: doc
                            });
                        } catch (err) {
                            _this31.component.logError("preprender_error", {
                                err: err.stack ? err.stack : err.toString()
                            });
                            console.error(err.stack ? err.stack : err);
                            return;
                        }
                        try {
                            Object(lib.X)(win, el);
                        } catch (err) {
                            _this31.component.logError("preprender_error", {
                                err: err.stack ? err.stack : err.toString()
                            });
                            console.error(err.stack ? err.stack : err);
                        }
                        var _ref10 = "object" == typeof _this31.component.autoResize && null !== _this31.component.autoResize ? _this31.component.autoResize : {}, _ref10$width = _ref10.width, width = void 0 !== _ref10$width && _ref10$width, _ref10$height = _ref10.height, height = void 0 !== _ref10$height && _ref10$height, _ref10$element = _ref10.element, element = void 0 === _ref10$element ? "body" : _ref10$element;
                        (element = Object(belter_src.b)(element, doc)) && (width || height) && Object(belter_src.h)(element, (function(_ref11) {
                            _this31.resize(width ? _ref11.width : void 0, height ? _ref11.height : void 0);
                        }), {
                            width: width,
                            height: height,
                            win: win
                        });
                    })) : zalgo_promise_src.a.resolve();
                }));
            };
            _proto.renderTemplate = function(renderer, options) {
                var _this32 = this;
                void 0 === options && (options = {});
                var _ref12 = this.component.dimensions || {}, _ref12$width = _ref12.width, width = void 0 === _ref12$width ? constants.DEFAULT_DIMENSIONS.WIDTH + "px" : _ref12$width, _ref12$height = _ref12.height, height = void 0 === _ref12$height ? constants.DEFAULT_DIMENSIONS.HEIGHT + "px" : _ref12$height;
                return renderer.call(this, Object(esm_extends.a)({
                    id: constants.CLASS_NAMES.ZOID + "-" + this.component.tag + "-" + this.props.uid,
                    props: renderer.__xdomain__ ? null : this.props,
                    tag: this.component.tag,
                    context: this.context,
                    outlet: this.getOutlet(),
                    CLASS: constants.CLASS_NAMES,
                    ANIMATION: constants.ANIMATION_NAMES,
                    CONTEXT: constants.CONTEXT_TYPES,
                    EVENT: constants.EVENTS,
                    actions: {
                        close: function() {
                            return _this32.userClose();
                        },
                        focus: function() {
                            return _this32.focus();
                        }
                    },
                    on: function(eventName, handler) {
                        return _this32.on(eventName, handler);
                    },
                    jsxDom: lib.C,
                    document: document,
                    dimensions: {
                        width: width,
                        height: height
                    }
                }, options));
            };
            _proto.openContainer = function(element) {
                var _this33 = this;
                return zalgo_promise_src.a.try((function() {
                    var el;
                    if (!(el = element ? Object(lib.u)(element) : document.body)) throw new Error("Could not find element to open container into");
                    Object(belter_src.f)(el) && (el = Object(belter_src.d)(el));
                    if (_this33.component.containerTemplate) {
                        var container = _this33.renderTemplate(_this33.component.containerTemplate, {
                            container: el
                        });
                        _this33.container = container;
                        Object(lib.x)(_this33.container);
                        Object(lib.d)(el, _this33.container);
                        if (_this33.driver.renderedIntoContainerTemplate) {
                            _this33.element = _this33.getOutlet();
                            Object(lib.x)(_this33.element);
                            if (!_this33.element) throw new Error("Could not find element to render component into");
                            Object(lib.x)(_this33.element);
                        }
                        _this33.clean.register("destroyContainerTemplate", (function() {
                            _this33.container && _this33.container.parentNode && _this33.container.parentNode.removeChild(_this33.container);
                            delete _this33.container;
                        }));
                    } else if (_this33.driver.renderedIntoContainerTemplate) throw new Error("containerTemplate needed to render " + _this33.context);
                }));
            };
            _proto.cancelContainerEvents = function() {
                this.clean.run("destroyContainerEvents");
            };
            _proto.destroy = function() {
                var _this34 = this;
                return zalgo_promise_src.a.try((function() {
                    if (_this34.clean.hasTasks()) {
                        _this34.component.log("destroy");
                        Object(client.h)();
                        return _this34.clean.all();
                    }
                })).then((function() {
                    if (_this34.props && _this34.props.onDestroy) return _this34.props.onDestroy();
                }));
            };
            _proto.tryInit = function(method) {
                var _this35 = this;
                return zalgo_promise_src.a.try(method).catch((function(err) {
                    _this35.onInit.reject(err);
                })).then((function() {
                    return _this35.onInit;
                }));
            };
            _proto.error = function(err) {
                var _this36 = this;
                return zalgo_promise_src.a.try((function() {
                    _this36.handledErrors = _this36.handledErrors || [];
                    if (-1 === _this36.handledErrors.indexOf(err)) {
                        _this36.handledErrors.push(err);
                        _this36.onInit.reject(err);
                        return _this36.destroy();
                    }
                })).then((function() {
                    if (_this36.props.onError) return _this36.props.onError(err);
                })).catch((function(errErr) {
                    throw new Error("An error was encountered while handling error:\n\n " + Object(lib.S)(err) + "\n\n" + Object(lib.S)(errErr));
                })).then((function() {
                    if (!_this36.props.onError) throw err;
                }));
            };
            ParentComponent.destroyAll = function() {
                var results = [];
                for (;ParentComponent.activeComponents.length; ) results.push(ParentComponent.activeComponents[0].destroy());
                return zalgo_promise_src.a.all(results).then(lib.F);
            };
            _createClass(ParentComponent, [ {
                key: "driver",
                get: function() {
                    if (!this.context) throw new Error("Context not set");
                    return RENDER_DRIVERS[this.context];
                }
            } ]);
            return ParentComponent;
        }(base_BaseComponent), _class2.activeComponents = [], _temp)).prototype, "getOutlet", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "getOutlet"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "prefetch", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "prefetch"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "loadHTML", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "loadHTML"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "buildUrl", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "buildUrl"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "open", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "open"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "openPrerender", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "openPrerender"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "switchPrerender", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "switchPrerender"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "close", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "close"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "closeContainer", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "closeContainer"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "destroyContainer", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "destroyContainer"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "closeComponent", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "closeComponent"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "showContainer", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "showContainer"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "showComponent", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "showComponent"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "hideContainer", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "hideContainer"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "hideComponent", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "hideComponent"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "createPrerenderTemplate", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "createPrerenderTemplate"), _class.prototype), 
        _applyDecoratedDescriptor(_class.prototype, "openContainer", [ lib.E ], Object.getOwnPropertyDescriptor(_class.prototype, "openContainer"), _class.prototype), 
        _class);
        var delegate_DelegateComponent = function(_BaseComponent) {
            Object(inheritsLoose.a)(DelegateComponent, _BaseComponent);
            function DelegateComponent(component, source, options) {
                var _this;
                (_this = _BaseComponent.call(this) || this).source = void 0;
                _this.context = void 0;
                _this.props = void 0;
                _this.focus = void 0;
                _this.userClose = void 0;
                _this.getDomain = void 0;
                _this.error = void 0;
                _this.on = void 0;
                _this.childWindowName = void 0;
                _this.isWindowClosed = void 0;
                _this.component = component;
                _this.clean.set("source", source);
                _this.context = options.context;
                _this.props = {
                    uid: options.props.uid,
                    dimensions: options.props.dimensions,
                    onClose: options.props.onClose,
                    onDisplay: options.props.onDisplay
                };
                for (var _i2 = 0, _component$getPropNam2 = component.getPropNames(); _i2 < _component$getPropNam2.length; _i2++) {
                    var propName = _component$getPropNam2[_i2];
                    _this.component.getProp(propName).allowDelegate && (_this.props[propName] = options.props[propName]);
                }
                _this.focus = function() {
                    return zalgo_promise_src.a.all([ _this.isWindowClosed().then((function(closed) {
                        closed || window.open("", _this.childWindowName);
                    })), options.overrides.focus.call(Object(assertThisInitialized.a)(_this)) ]).then(lib.F);
                };
                _this.clean.register("destroyFocusOverride", (function() {
                    _this.focus = lib.F;
                }));
                _this.userClose = options.overrides.userClose;
                _this.getDomain = options.overrides.getDomain;
                _this.error = options.overrides.error;
                _this.on = options.overrides.on;
                for (var _i4 = 0, _Object$keys2 = Object.keys(RENDER_DRIVERS[options.context].delegateOverrides); _i4 < _Object$keys2.length; _i4++) {
                    var key = _Object$keys2[_i4];
                    _this[key] = parent_ParentComponent.prototype[key];
                }
                _this.childWindowName = options.childWindowName;
                _this.isWindowClosed = options.isWindowClosed;
                parent_ParentComponent.prototype.registerActiveComponent.call(Object(assertThisInitialized.a)(_this));
                _this.watchForClose();
                return _this;
            }
            var _proto = DelegateComponent.prototype;
            _proto.watchForClose = function() {
                var _this2 = this;
                var closeWindowListener = Object(cross_domain_utils_src.C)(this.source, (function() {
                    return _this2.destroy();
                }), 3e3);
                this.clean.register("destroyCloseWindowListener", closeWindowListener.cancel);
            };
            _proto.getOverrides = function(context) {
                var overrides = {};
                var self = this;
                var _loop = function(_i6, _Object$keys4) {
                    var key = _Object$keys4[_i6];
                    overrides[key] = function() {
                        return parent_ParentComponent.prototype[key].apply(self, arguments);
                    };
                };
                for (var _i6 = 0, _Object$keys4 = Object.keys(RENDER_DRIVERS[context].delegateOverrides); _i6 < _Object$keys4.length; _i6++) _loop(_i6, _Object$keys4);
                return overrides;
            };
            _proto.destroy = function() {
                return this.clean.all();
            };
            _createClass(DelegateComponent, [ {
                key: "driver",
                get: function() {
                    if (!this.context) throw new Error("Context not set");
                    return RENDER_DRIVERS[this.context];
                }
            } ]);
            return DelegateComponent;
        }(base_BaseComponent);
        var drivers = __webpack_require__(25);
        function defaultContainerTemplate(_ref) {
            var id = _ref.id, CLASS = _ref.CLASS, outlet = _ref.outlet, jsxDom = _ref.jsxDom, _ref$dimensions = _ref.dimensions;
            return jsxDom("div", {
                id: id,
                class: CLASS.ZOID + " " + CLASS.ZOID + "-tag-" + _ref.tag + " " + CLASS.ZOID + "-context-" + _ref.context
            }, jsxDom("style", null, "\n                    #" + id + ", #" + id + " > ." + CLASS.OUTLET + " {\n                        width: " + _ref$dimensions.width + ";\n                        height: " + _ref$dimensions.height + ";\n                    }\n\n                    #" + id + " > ." + CLASS.OUTLET + " {\n                        display: inline-block;\n                        position: relative;\n                    }\n\n                    #" + id + " > ." + CLASS.OUTLET + " > iframe {\n                        height: 100%;\n                        width: 100%;\n                        position: absolute;\n                        top: 0;\n                        left: 0;\n                        transition: opacity .2s ease-in-out;\n                    }\n\n                    #" + id + " > ." + CLASS.OUTLET + " > iframe." + CLASS.VISIBLE + " {\n                        opacity: 1;\n                    }\n\n                    #" + id + " > ." + CLASS.OUTLET + " > iframe." + CLASS.INVISIBLE + " {\n                        opacity: 0;\n                    }\n                "), outlet);
        }
        function defaultPrerenderTemplate(_ref) {
            var jsxDom = _ref.jsxDom;
            return jsxDom("html", null, jsxDom("head", null, jsxDom("style", null, "\n                        html, body {\n                            width: 100%;\n                            height: 100%;\n                            overflow: hidden;\n                            top: 0;\n                            left: 0;\n                            margin: 0;\n                            text-align: center;\n                        }\n\n                        .spinner {\n                            position: absolute;\n                            max-height: 60vmin;\n                            max-width: 60vmin;\n                            height: 40px;\n                            width: 40px;\n                            top: 50%;\n                            left: 50%;\n                            transform: translateX(-50%) translateY(-50%);\n                            z-index: 10;\n                        }\n\n                        .spinner .loader {\n                            height: 100%;\n                            width: 100%;\n                            box-sizing: border-box;\n                            border: 3px solid rgba(0, 0, 0, .2);\n                            border-top-color: rgba(33, 128, 192, 0.8);\n                            border-radius: 100%;\n                            animation: rotation .7s infinite linear;\n\n                        }\n\n                        @keyframes rotation {\n                            from {\n                                transform: rotate(0deg)\n                            }\n                            to {\n                                transform: rotate(359deg)\n                            }\n                        }\n                    ")), jsxDom("body", null, jsxDom("div", {
                class: "spinner"
            }, jsxDom("div", {
                id: "loader",
                class: "loader"
            }))));
        }
        var component_class, component_class2, component_temp;
        var component_drivers = {
            angular: drivers.angular,
            angular2: drivers.angular2,
            glimmer: drivers.glimmer,
            react: drivers.react,
            vue: drivers.vue,
            script: drivers.script
        };
        var component_Component = (_applyDecoratedDescriptor((component_class = (component_temp = component_class2 = function(_BaseComponent) {
            Object(inheritsLoose.a)(Component, _BaseComponent);
            function Component(options) {
                var _this;
                (_this = _BaseComponent.call(this) || this).name = void 0;
                _this.looseProps = void 0;
                _this.tag = void 0;
                _this.url = void 0;
                _this.domain = void 0;
                _this.bridgeUrl = void 0;
                _this.bridgeDomain = void 0;
                _this.props = void 0;
                _this.builtinProps = void 0;
                _this.dimensions = void 0;
                _this.scrolling = void 0;
                _this.autoResize = void 0;
                _this.listenForResize = void 0;
                _this.defaultLogLevel = void 0;
                _this.allowedParentDomains = void 0;
                _this.version = void 0;
                _this.defaultEnv = void 0;
                _this.buildUrl = void 0;
                _this.contexts = void 0;
                _this.defaultContext = void 0;
                _this.containerTemplate = void 0;
                _this.prerenderTemplate = void 0;
                _this.validate = void 0;
                _this.unsafeRenderTo = void 0;
                _this.driverCache = void 0;
                _this.xchild = void 0;
                _this.xprops = void 0;
                !function(options) {
                    if (!options) throw new Error("Expecred options to be passed");
                    if (!options.tag || !options.tag.match(/^[a-z0-9-]+$/)) throw new Error("Invalid options.tag: " + options.tag);
                    !function(options) {
                        if (options.props && "object" != typeof options.props) throw new Error("Expected options.props to be an object");
                        if (options.props) for (var _i2 = 0, _Object$keys2 = Object.keys(options.props); _i2 < _Object$keys2.length; _i2++) {
                            var key = _Object$keys2[_i2];
                            var prop = options.props[key];
                            if (!prop || "object" != typeof prop) throw new Error("Expected options.props." + key + " to be an object");
                            if (!prop.type) throw new Error("Expected prop.type");
                            if (-1 === constants.PROP_TYPES_LIST.indexOf(prop.type)) throw new Error("Expected prop.type to be one of " + constants.PROP_TYPES_LIST.join(", "));
                            if (prop.required && prop.def) throw new Error("Required prop can not have a default value");
                        }
                    }(options);
                    if (options.dimensions) {
                        if (options.dimensions && !Object(lib.B)(options.dimensions.width) && !Object(lib.A)(options.dimensions.width)) throw new Error("Expected options.dimensions.width to be a px or % string value");
                        if (options.dimensions && !Object(lib.B)(options.dimensions.height) && !Object(lib.A)(options.dimensions.height)) throw new Error("Expected options.dimensions.height to be a px or % string value");
                    }
                    if (options.contexts) {
                        var anyEnabled = !1;
                        for (var _i4 = 0, _Object$keys4 = Object.keys(options.contexts); _i4 < _Object$keys4.length; _i4++) {
                            var context = _Object$keys4[_i4];
                            if (-1 === constants.CONTEXT_TYPES_LIST.indexOf(context)) throw new Error("Unsupported context type: " + context);
                            (options.contexts && options.contexts[context] || options.contexts && void 0 === options.contexts[context]) && (anyEnabled = !0);
                        }
                        if (!anyEnabled) throw new Error("No context type is enabled");
                    }
                    if (options.defaultContext) {
                        if (-1 === constants.CONTEXT_TYPES_LIST.indexOf(options.defaultContext)) throw new Error("Unsupported context type: " + (options.defaultContext || "unknown"));
                        if (options.contexts && options.defaultContext && !options.contexts[options.defaultContext]) throw new Error("Disallowed default context type: " + (options.defaultContext || "unknown"));
                    }
                    if (options.url && options.buildUrl) throw new Error("Can not pass both options.url and options.buildUrl");
                    if (options.defaultEnv) {
                        if ("string" != typeof options.defaultEnv) throw new TypeError("Expected options.defaultEnv to be a string");
                        if (!options.buildUrl && "object" != typeof options.url) throw new Error("Expected options.url to be an object mapping env->url");
                        if (options.url && "object" == typeof options.url && !options.url[options.defaultEnv]) throw new Error("No url found for default env: " + options.defaultEnv);
                    }
                    if (options.url && "object" == typeof options.url) {
                        if (!options.defaultEnv) throw new Error("Must pass options.defaultEnv with env->url mapping");
                        for (var _i6 = 0, _Object$keys6 = Object.keys(options.url); _i6 < _Object$keys6.length; _i6++) {
                            var env = _Object$keys6[_i6];
                            if (!options.url[env]) throw new Error("No url specified for env: " + env);
                        }
                    }
                    if (options.prerenderTemplate && "function" != typeof options.prerenderTemplate) throw new Error("Expected options.prerenderTemplate to be a function");
                    if (options.containerTemplate && "function" != typeof options.containerTemplate) throw new Error("Expected options.containerTemplate to be a function");
                }(options);
                _this.addProp(options, "tag");
                _this.addProp(options, "defaultLogLevel", "info");
                _this.addProp(options, "allowedParentDomains", constants.WILDCARD);
                Object(lib.O)(_this.defaultLogLevel);
                if (Component.components[_this.tag]) throw new Error("Can not register multiple components with the same tag");
                _this.addProp(options, "name", _this.tag.replace(/-/g, "_"));
                _this.builtinProps = {
                    env: {
                        type: "string",
                        required: !1,
                        queryParam: !0,
                        def: function() {
                            return this.defaultEnv;
                        }
                    },
                    uid: {
                        type: "string",
                        def: function() {
                            return Object(lib.U)();
                        },
                        queryParam: !0
                    },
                    logLevel: {
                        type: "string",
                        required: !1,
                        queryParam: !0,
                        def: function() {
                            return this.defaultLogLevel;
                        }
                    },
                    url: {
                        type: "string",
                        required: !1,
                        promise: !0,
                        sendToChild: !1
                    },
                    win: {
                        type: "object",
                        required: !1,
                        sendToChild: !1
                    },
                    dimensions: {
                        type: "object",
                        required: !1
                    },
                    version: {
                        type: "string",
                        required: !1,
                        queryParam: !0,
                        def: function() {
                            return this.version;
                        }
                    },
                    timeout: {
                        type: "number",
                        required: !1,
                        sendToChild: !1
                    },
                    onDisplay: {
                        type: "function",
                        required: !1,
                        noop: !0,
                        promisify: !0,
                        memoize: !0,
                        sendToChild: !1
                    },
                    onEnter: {
                        type: "function",
                        required: !1,
                        noop: !0,
                        promisify: !0,
                        sendToChild: !1
                    },
                    onRender: {
                        type: "function",
                        required: !1,
                        noop: !0,
                        promisify: !0,
                        sendToChild: !1
                    },
                    onClose: {
                        type: "function",
                        required: !1,
                        noop: !0,
                        once: !0,
                        promisify: !0,
                        sendToChild: !1
                    },
                    onDestroy: {
                        type: "function",
                        required: !1,
                        noop: !0,
                        once: !0,
                        promisify: !0,
                        sendToChild: !1
                    },
                    onResize: {
                        type: "function",
                        required: !1,
                        noop: !0,
                        sendToChild: !1
                    },
                    onTimeout: {
                        type: "function",
                        required: !1,
                        memoize: !0,
                        promisify: !0,
                        sendToChild: !1,
                        def: function() {
                            return function(err) {
                                if (this.props.onError) return this.props.onError(err);
                                throw err;
                            };
                        }
                    },
                    onError: {
                        type: "function",
                        required: !1,
                        promisify: !0,
                        sendToChild: !0,
                        once: !0,
                        def: function() {
                            return function(err) {
                                setTimeout((function() {
                                    throw err;
                                }));
                            };
                        }
                    }
                };
                _this.props = options.props || {};
                options.props || (_this.looseProps = !0);
                _this.addProp(options, "dimensions");
                _this.addProp(options, "scrolling");
                _this.addProp(options, "listenForResize");
                _this.addProp(options, "version", "latest");
                _this.addProp(options, "defaultEnv");
                _this.addProp(options, "buildUrl");
                _this.addProp(options, "url");
                _this.addProp(options, "domain");
                _this.addProp(options, "bridgeUrl");
                _this.addProp(options, "bridgeDomain");
                _this.addProp(options, "attributes", {});
                _this.addProp(options, "contexts", {
                    iframe: !0,
                    popup: !1
                });
                _this.addProp(options, "defaultContext");
                _this.addProp(options, "autoResize", !1);
                _this.addProp(options, "containerTemplate", defaultContainerTemplate);
                _this.addProp(options, "prerenderTemplate", defaultPrerenderTemplate);
                _this.addProp(options, "validate");
                _this.addProp(options, "unsafeRenderTo", !1);
                Component.components[_this.tag] = Object(assertThisInitialized.a)(_this);
                _this.registerDrivers();
                _this.registerChild();
                _this.listenDelegate();
                return _this;
            }
            var _proto = Component.prototype;
            _proto.getPropNames = function() {
                var props = Object.keys(this.props);
                for (var _i2 = 0, _Object$keys2 = Object.keys(this.builtinProps); _i2 < _Object$keys2.length; _i2++) {
                    var key = _Object$keys2[_i2];
                    -1 === props.indexOf(key) && props.push(key);
                }
                return props;
            };
            _proto.getProp = function(name) {
                return this.props[name] || this.builtinProps[name];
            };
            _proto.registerDrivers = function() {
                this.driverCache = {};
                for (var _i4 = 0, _Object$keys4 = Object.keys(component_drivers); _i4 < _Object$keys4.length; _i4++) {
                    var driverName = _Object$keys4[_i4];
                    if (0 !== driverName.indexOf("_")) {
                        var glob = component_drivers[driverName].global();
                        glob && this.driver(driverName, glob);
                    }
                }
            };
            _proto.driver = function(name, dep) {
                if (!component_drivers[name]) throw new Error("Could not find driver for framework: " + name);
                this.driverCache[name] || (this.driverCache[name] = component_drivers[name].register(this, dep));
                return this.driverCache[name];
            };
            _proto.registerChild = function() {
                var _this2 = this;
                return zalgo_promise_src.a.try((function() {
                    if (_this2.isChild()) return new child_ChildComponent(_this2);
                }));
            };
            _proto.listenDelegate = function() {
                var _this3 = this;
                Object(src.on)(constants.POST_MESSAGE.ALLOW_DELEGATE + "_" + this.name, (function() {
                    return !0;
                }));
                Object(src.on)(constants.POST_MESSAGE.DELEGATE + "_" + this.name, (function(_ref) {
                    var source = _ref.source, origin = _ref.origin, data = _ref.data;
                    var domain = _this3.getDomain(null, data.env || _this3.defaultEnv);
                    if (!domain) throw new Error("Could not determine domain to allow remote render");
                    if (!Object(cross_domain_utils_src.B)(domain, origin)) throw new Error("Can not render from " + origin + " - expected " + domain.toString());
                    var delegate = _this3.delegate(source, data.options);
                    return {
                        overrides: delegate.getOverrides(data.context),
                        destroy: function() {
                            return delegate.destroy();
                        }
                    };
                }));
            };
            _proto.canRenderTo = function(win) {
                return Object(src.send)(win, constants.POST_MESSAGE.ALLOW_DELEGATE + "_" + this.name).then((function(_ref2) {
                    return _ref2.data;
                })).catch((function() {
                    return !1;
                }));
            };
            _proto.getValidDomain = function(url) {
                if (url) {
                    var domain = Object(cross_domain_utils_src.i)(url);
                    if ("string" == typeof this.domain && domain === this.domain) return domain;
                    var domains = this.domain;
                    if (domains && "object" == typeof domains && !(domains instanceof RegExp)) for (var _i6 = 0, _Object$keys6 = Object.keys(domains); _i6 < _Object$keys6.length; _i6++) {
                        var env = _Object$keys6[_i6];
                        if ("test" !== env && domain === domains[env]) return domain;
                    }
                }
            };
            _proto.getDomain = function(url, env) {
                var domain = this.getForEnv(this.domain, env);
                if (domain) return domain;
                if (domain = this.getValidDomain(url)) return domain;
                var envUrl = this.getForEnv(this.url, env);
                return envUrl ? Object(cross_domain_utils_src.i)(envUrl) : url ? Object(cross_domain_utils_src.i)(url) : void 0;
            };
            _proto.getBridgeUrl = function(env) {
                return this.getForEnv(this.bridgeUrl, env);
            };
            _proto.getForEnv = function(item, env) {
                if (item) {
                    if ("string" == typeof item || item instanceof RegExp) return item;
                    env || (env = this.defaultEnv);
                    if (env) return env && "object" == typeof item && item[env] ? item[env] : void 0;
                }
            };
            _proto.getBridgeDomain = function(env) {
                var bridgeDomain = this.getForEnv(this.bridgeDomain, env);
                if (bridgeDomain) return bridgeDomain;
                var bridgeUrl = this.getBridgeUrl(env);
                return bridgeUrl ? Object(cross_domain_utils_src.i)(bridgeUrl) : void 0;
            };
            _proto.getUrl = function(env, props) {
                var url = this.getForEnv(this.url, env);
                if (url) return url;
                if (this.buildUrl) return this.buildUrl(props);
                throw new Error("Unable to get url");
            };
            _proto.isZoidComponent = function() {
                return isZoidComponentWindow();
            };
            _proto.isChild = function() {
                if (!isZoidComponentWindow()) return !1;
                var _getComponentMeta = getComponentMeta(), tag = _getComponentMeta.tag, childDomain = _getComponentMeta.childDomain;
                return (!childDomain || childDomain === Object(cross_domain_utils_src.h)()) && tag === this.tag;
            };
            _proto.createError = function(message, tag) {
                return new Error("[" + (tag || this.tag) + "] " + message);
            };
            _proto.init = function(props, context, element) {
                return new parent_ParentComponent(this, this.getRenderContext(context, element), {
                    props: props
                });
            };
            _proto.delegate = function(source, options) {
                return new delegate_DelegateComponent(this, source, options);
            };
            _proto.validateRenderContext = function(context, element) {
                if (context && !this.contexts[context]) throw new Error("[" + this.tag + "] Can not render to " + context);
                if (!element && context === constants.CONTEXT_TYPES.IFRAME) throw new Error("[" + this.tag + "] Context type " + constants.CONTEXT_TYPES.IFRAME + " requires an element selector");
            };
            _proto.getDefaultContext = function() {
                if (this.defaultContext) return this.defaultContext;
                if (this.contexts[constants.CONTEXT_TYPES.IFRAME]) return constants.CONTEXT_TYPES.IFRAME;
                if (this.contexts[constants.CONTEXT_TYPES.POPUP]) return constants.CONTEXT_TYPES.POPUP;
                throw new Error("Can not determine default context");
            };
            _proto.getRenderContext = function(context, element) {
                context = context || this.getDefaultContext();
                this.validateRenderContext(context, element);
                return context;
            };
            _proto.render = function(props, element) {
                var _this4 = this;
                return zalgo_promise_src.a.try((function() {
                    return new parent_ParentComponent(_this4, _this4.getRenderContext(null, element), {
                        props: props
                    }).render(element);
                }));
            };
            _proto.renderIframe = function(props, element) {
                var _this5 = this;
                return zalgo_promise_src.a.try((function() {
                    return new parent_ParentComponent(_this5, _this5.getRenderContext(constants.CONTEXT_TYPES.IFRAME, element), {
                        props: props
                    }).render(element);
                }));
            };
            _proto.renderPopup = function(props) {
                var _this6 = this;
                return zalgo_promise_src.a.try((function() {
                    return new parent_ParentComponent(_this6, _this6.getRenderContext(constants.CONTEXT_TYPES.POPUP), {
                        props: props
                    }).render();
                }));
            };
            _proto.renderTo = function(win, props, element) {
                var _this7 = this;
                return zalgo_promise_src.a.try((function() {
                    return new parent_ParentComponent(_this7, _this7.getRenderContext(null, element), {
                        props: props
                    }).renderTo(win, element);
                }));
            };
            _proto.renderIframeTo = function(win, props, element) {
                var _this8 = this;
                return zalgo_promise_src.a.try((function() {
                    return new parent_ParentComponent(_this8, _this8.getRenderContext(constants.CONTEXT_TYPES.IFRAME, element), {
                        props: props
                    }).renderTo(win, element);
                }));
            };
            _proto.renderPopupTo = function(win, props) {
                var _this9 = this;
                return zalgo_promise_src.a.try((function() {
                    return new parent_ParentComponent(_this9, _this9.getRenderContext(constants.CONTEXT_TYPES.POPUP), {
                        props: props
                    }).renderTo(win);
                }));
            };
            _proto.prerender = function(props, element) {
                var instance = new parent_ParentComponent(this, this.getRenderContext(null, element), {
                    props: props
                });
                instance.prefetch();
                return {
                    render: function(innerProps, innerElement) {
                        innerProps && instance.updateProps(innerProps);
                        return instance.render(innerElement);
                    },
                    renderTo: function(win, innerProps, innerElement) {
                        innerProps && instance.updateProps(innerProps);
                        return instance.renderTo(win, innerElement);
                    },
                    get html() {
                        return instance.html;
                    },
                    set html(value) {
                        instance.html = value;
                    }
                };
            };
            _proto.log = function(event, payload) {
                void 0 === payload && (payload = {});
                Object(lib.z)(this.name, event, payload);
            };
            _proto.logWarning = function(event, payload) {
                Object(lib.V)(this.name, event, payload);
            };
            _proto.logError = function(event, payload) {
                Object(lib.o)(this.name, event, payload);
            };
            Component.getByTag = function(tag) {
                return Component.components[tag];
            };
            return Component;
        }(base_BaseComponent), component_class2.components = {}, component_temp)).prototype, "getPropNames", [ lib.D ], Object.getOwnPropertyDescriptor(component_class.prototype, "getPropNames"), component_class.prototype), 
        component_class);
        function create(options) {
            return new component_Component(options);
        }
        function getByTag(tag) {
            return component_Component.getByTag(tag);
        }
        function interface_destroyAll() {
            return parent_ParentComponent.destroyAll();
        }
        var postRobot = src;
        var CONSTANTS = constants;
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.r(__webpack_exports__);
        __webpack_require__.d(__webpack_exports__, "openTunnelToOpener", (function() {
            return openTunnelToOpener;
        }));
        __webpack_require__.d(__webpack_exports__, "needsBridgeForBrowser", (function() {
            return needsBridgeForBrowser;
        }));
        __webpack_require__.d(__webpack_exports__, "needsBridgeForWin", (function() {
            return needsBridgeForWin;
        }));
        __webpack_require__.d(__webpack_exports__, "needsBridgeForDomain", (function() {
            return needsBridgeForDomain;
        }));
        __webpack_require__.d(__webpack_exports__, "needsBridge", (function() {
            return needsBridge;
        }));
        __webpack_require__.d(__webpack_exports__, "getBridgeName", (function() {
            return getBridgeName;
        }));
        __webpack_require__.d(__webpack_exports__, "isBridge", (function() {
            return isBridge;
        }));
        __webpack_require__.d(__webpack_exports__, "documentBodyReady", (function() {
            return documentBodyReady;
        }));
        __webpack_require__.d(__webpack_exports__, "registerRemoteWindow", (function() {
            return registerRemoteWindow;
        }));
        __webpack_require__.d(__webpack_exports__, "findRemoteWindow", (function() {
            return findRemoteWindow;
        }));
        __webpack_require__.d(__webpack_exports__, "registerRemoteSendMessage", (function() {
            return registerRemoteSendMessage;
        }));
        __webpack_require__.d(__webpack_exports__, "rejectRemoteSendMessage", (function() {
            return rejectRemoteSendMessage;
        }));
        __webpack_require__.d(__webpack_exports__, "sendBridgeMessage", (function() {
            return sendBridgeMessage;
        }));
        __webpack_require__.d(__webpack_exports__, "hasBridge", (function() {
            return hasBridge;
        }));
        __webpack_require__.d(__webpack_exports__, "openBridge", (function() {
            return openBridge;
        }));
        __webpack_require__.d(__webpack_exports__, "linkUrl", (function() {
            return linkUrl;
        }));
        __webpack_require__.d(__webpack_exports__, "destroyBridges", (function() {
            return destroyBridges;
        }));
        var src = __webpack_require__(7);
        var conf = __webpack_require__(10);
        var lib = __webpack_require__(15);
        var global = __webpack_require__(9);
        global.a.tunnelWindows = global.a.tunnelWindows || {};
        global.a.tunnelWindowId = 0;
        function deleteTunnelWindow(id) {
            try {
                global.a.tunnelWindows[id] && delete global.a.tunnelWindows[id].source;
            } catch (err) {}
            delete global.a.tunnelWindows[id];
        }
        function getTunnelWindow(id) {
            return global.a.tunnelWindows[id];
        }
        global.a.openTunnelToParent = function(_ref2) {
            var name = _ref2.name, source = _ref2.source, canary = _ref2.canary, sendMessage = _ref2.sendMessage;
            var parentWindow = Object(src.n)(window);
            if (!parentWindow) throw new Error("No parent window found to open tunnel to");
            var id = function(_ref) {
                var name = _ref.name, source = _ref.source, canary = _ref.canary, sendMessage = _ref.sendMessage;
                !function() {
                    var tunnelWindows = global.a.tunnelWindows;
                    for (var _i2 = 0, _Object$keys2 = Object.keys(tunnelWindows); _i2 < _Object$keys2.length; _i2++) {
                        var key = _Object$keys2[_i2];
                        var tunnelWindow = tunnelWindows[key];
                        try {
                            Object(lib.j)(tunnelWindow.source);
                        } catch (err) {
                            deleteTunnelWindow(key);
                            continue;
                        }
                        Object(src.z)(tunnelWindow.source) && deleteTunnelWindow(key);
                    }
                }();
                global.a.tunnelWindowId += 1;
                global.a.tunnelWindows[global.a.tunnelWindowId] = {
                    name: name,
                    source: source,
                    canary: canary,
                    sendMessage: sendMessage
                };
                return global.a.tunnelWindowId;
            }({
                name: name,
                source: source,
                canary: canary,
                sendMessage: sendMessage
            });
            return global.a.send(parentWindow, conf.b.POST_MESSAGE_NAMES.OPEN_TUNNEL, {
                name: name,
                sendMessage: function() {
                    var tunnelWindow = getTunnelWindow(id);
                    try {
                        Object(lib.j)(tunnelWindow && tunnelWindow.source);
                    } catch (err) {
                        deleteTunnelWindow(id);
                        return;
                    }
                    if (tunnelWindow && tunnelWindow.source && !Object(src.z)(tunnelWindow.source)) {
                        try {
                            tunnelWindow.canary();
                        } catch (err) {
                            return;
                        }
                        tunnelWindow.sendMessage.apply(this, arguments);
                    }
                }
            }, {
                domain: conf.b.WILDCARD
            });
        };
        var zalgo_promise_src = __webpack_require__(2);
        var cross_domain_safe_weakmap_src = __webpack_require__(17);
        function needsBridgeForBrowser() {
            return !!Object(src.p)(window).match(/MSIE|trident|edge\/12|edge\/13/i) || !conf.a.ALLOW_POSTMESSAGE_POPUP;
        }
        function needsBridgeForWin(win) {
            return !Object(src.w)(window, win);
        }
        function needsBridgeForDomain(domain, win) {
            if (domain) {
                if (Object(src.h)() !== Object(src.i)(domain)) return !0;
            } else if (win && !Object(src.v)(win)) return !0;
            return !1;
        }
        function needsBridge(_ref) {
            var win = _ref.win, domain = _ref.domain;
            return !(!needsBridgeForBrowser() || domain && !needsBridgeForDomain(domain, win) || win && !needsBridgeForWin(win));
        }
        function getBridgeName(domain) {
            var sanitizedDomain = (domain = domain || Object(src.i)(domain)).replace(/[^a-zA-Z0-9]+/g, "_");
            return conf.b.BRIDGE_NAME_PREFIX + "_" + sanitizedDomain;
        }
        function isBridge() {
            return Boolean(window.name && window.name === getBridgeName(Object(src.h)()));
        }
        var documentBodyReady = new zalgo_promise_src.a((function(resolve) {
            if (window.document && window.document.body) return resolve(window.document.body);
            var interval = setInterval((function() {
                if (window.document && window.document.body) {
                    clearInterval(interval);
                    return resolve(window.document.body);
                }
            }), 10);
        }));
        global.a.remoteWindows = global.a.remoteWindows || new cross_domain_safe_weakmap_src.a;
        function registerRemoteWindow(win) {
            global.a.remoteWindows.set(win, {
                sendMessagePromise: new zalgo_promise_src.a
            });
        }
        function findRemoteWindow(win) {
            return global.a.remoteWindows.get(win);
        }
        function registerRemoteSendMessage(win, domain, sendMessage) {
            var remoteWindow = findRemoteWindow(win);
            if (!remoteWindow) throw new Error("Window not found to register sendMessage to");
            var sendMessageWrapper = function(remoteWin, message, remoteDomain) {
                if (remoteWin !== win) throw new Error("Remote window does not match window");
                if (!Object(src.B)(remoteDomain, domain)) throw new Error("Remote domain " + remoteDomain + " does not match domain " + domain);
                sendMessage(message);
            };
            remoteWindow.sendMessagePromise.resolve(sendMessageWrapper);
            remoteWindow.sendMessagePromise = zalgo_promise_src.a.resolve(sendMessageWrapper);
        }
        function rejectRemoteSendMessage(win, err) {
            var remoteWindow = findRemoteWindow(win);
            if (!remoteWindow) throw new Error("Window not found on which to reject sendMessage");
            remoteWindow.sendMessagePromise.asyncReject(err);
        }
        function sendBridgeMessage(win, message, domain) {
            var messagingChild = Object(src.t)(window, win);
            var messagingParent = Object(src.t)(win, window);
            if (!messagingChild && !messagingParent) throw new Error("Can only send messages to and from parent and popup windows");
            var remoteWindow = findRemoteWindow(win);
            if (!remoteWindow) throw new Error("Window not found to send message to");
            return remoteWindow.sendMessagePromise.then((function(sendMessage) {
                return sendMessage(win, message, domain);
            }));
        }
        var awaitRemoteBridgeForWindow = Object(lib.r)((function(win) {
            return zalgo_promise_src.a.try((function() {
                for (var _i2 = 0, _getFrames2 = Object(src.k)(win); _i2 < _getFrames2.length; _i2++) {
                    var frame = _getFrames2[_i2];
                    try {
                        if (frame && frame !== window && Object(src.v)(frame) && frame[conf.b.WINDOW_PROPS.POSTROBOT]) return frame;
                    } catch (err) {
                        continue;
                    }
                }
                try {
                    var _frame = Object(src.j)(win, getBridgeName(Object(src.h)()));
                    if (!_frame) return;
                    return Object(src.v)(_frame) && _frame[conf.b.WINDOW_PROPS.POSTROBOT] ? _frame : new zalgo_promise_src.a((function(resolve) {
                        var interval;
                        var timeout;
                        interval = setInterval((function() {
                            if (_frame && Object(src.v)(_frame) && _frame[conf.b.WINDOW_PROPS.POSTROBOT]) {
                                clearInterval(interval);
                                clearTimeout(timeout);
                                return resolve(_frame);
                            }
                        }), 100);
                        timeout = setTimeout((function() {
                            clearInterval(interval);
                            return resolve();
                        }), 2e3);
                    }));
                } catch (err) {}
            }));
        }));
        function openTunnelToOpener() {
            return zalgo_promise_src.a.try((function() {
                var opener = Object(src.m)(window);
                if (opener && needsBridge({
                    win: opener
                })) {
                    registerRemoteWindow(opener);
                    return awaitRemoteBridgeForWindow(opener).then((function(bridge) {
                        return bridge ? window.name ? bridge[conf.b.WINDOW_PROPS.POSTROBOT].openTunnelToParent({
                            name: window.name,
                            source: window,
                            canary: function() {},
                            sendMessage: function(message) {
                                try {
                                    Object(lib.j)(window);
                                } catch (err) {
                                    return;
                                }
                                if (window && !window.closed) try {
                                    global.a.receiveMessage({
                                        data: message,
                                        origin: this.origin,
                                        source: this.source
                                    });
                                } catch (err) {
                                    zalgo_promise_src.a.reject(err);
                                }
                            }
                        }).then((function(_ref) {
                            var source = _ref.source, origin = _ref.origin, data = _ref.data;
                            if (source !== opener) throw new Error("Source does not match opener");
                            registerRemoteSendMessage(source, origin, data.sendMessage);
                        })).catch((function(err) {
                            rejectRemoteSendMessage(opener, err);
                            throw err;
                        })) : rejectRemoteSendMessage(opener, new Error("Can not register with opener: window does not have a name")) : rejectRemoteSendMessage(opener, new Error("Can not register with opener: no bridge found in opener"));
                    }));
                }
            }));
        }
        global.a.bridges = global.a.bridges || {};
        global.a.bridgeFrames = global.a.bridgeFrames || {};
        global.a.popupWindowsByWin = global.a.popupWindowsByWin || new cross_domain_safe_weakmap_src.a;
        global.a.popupWindowsByName = global.a.popupWindowsByName || {};
        function hasBridge(url, domain) {
            domain = domain || Object(src.i)(url);
            return Boolean(global.a.bridges[domain]);
        }
        function openBridge(url, domain) {
            domain = domain || Object(src.i)(url);
            if (global.a.bridges[domain]) return global.a.bridges[domain];
            global.a.bridges[domain] = zalgo_promise_src.a.try((function() {
                if (Object(src.h)() === domain) throw new Error("Can not open bridge on the same domain as current domain: " + domain);
                var name = getBridgeName(domain);
                if (Object(src.j)(window, name)) throw new Error("Frame with name " + name + " already exists on page");
                var iframe = function(name, url) {
                    var iframe = document.createElement("iframe");
                    iframe.setAttribute("name", name);
                    iframe.setAttribute("id", name);
                    iframe.setAttribute("style", "display: none; margin: 0; padding: 0; border: 0px none; overflow: hidden;");
                    iframe.setAttribute("frameborder", "0");
                    iframe.setAttribute("border", "0");
                    iframe.setAttribute("scrolling", "no");
                    iframe.setAttribute("allowTransparency", "true");
                    iframe.setAttribute("tabindex", "-1");
                    iframe.setAttribute("hidden", "true");
                    iframe.setAttribute("title", "");
                    iframe.setAttribute("role", "presentation");
                    iframe.src = url;
                    return iframe;
                }(name, url);
                global.a.bridgeFrames[domain] = iframe;
                return documentBodyReady.then((function(body) {
                    body.appendChild(iframe);
                    var bridge = iframe.contentWindow;
                    !function(source, domain) {
                        global.a.on(conf.b.POST_MESSAGE_NAMES.OPEN_TUNNEL, {
                            window: source,
                            domain: domain
                        }, (function(_ref) {
                            var origin = _ref.origin, data = _ref.data;
                            if (origin !== domain) throw new Error("Domain " + domain + " does not match origin " + origin);
                            if (!data.name) throw new Error("Register window expected to be passed window name");
                            if (!data.sendMessage) throw new Error("Register window expected to be passed sendMessage method");
                            if (!global.a.popupWindowsByName[data.name]) throw new Error("Window with name " + data.name + " does not exist, or was not opened by this window");
                            if (!global.a.popupWindowsByName[data.name].domain) throw new Error("We do not have a registered domain for window " + data.name);
                            if (global.a.popupWindowsByName[data.name].domain !== origin) throw new Error("Message origin " + origin + " does not matched registered window origin " + global.a.popupWindowsByName[data.name].domain);
                            registerRemoteSendMessage(global.a.popupWindowsByName[data.name].win, domain, data.sendMessage);
                            return {
                                sendMessage: function(message) {
                                    if (window && !window.closed) {
                                        var winDetails = global.a.popupWindowsByName[data.name];
                                        if (winDetails) try {
                                            global.a.receiveMessage({
                                                data: message,
                                                origin: winDetails.domain,
                                                source: winDetails.win
                                            });
                                        } catch (err) {
                                            zalgo_promise_src.a.reject(err);
                                        }
                                    }
                                }
                            };
                        }));
                    }(bridge, domain);
                    return new zalgo_promise_src.a((function(resolve, reject) {
                        iframe.onload = resolve;
                        iframe.onerror = reject;
                    })).then((function() {
                        return Object(lib.k)(bridge, conf.a.BRIDGE_TIMEOUT, "Bridge " + url);
                    })).then((function() {
                        return bridge;
                    }));
                }));
            }));
            return global.a.bridges[domain];
        }
        var windowOpen = window.open;
        window.open = function(url, name, options, last) {
            var domain = url;
            if (url && 0 === url.indexOf(conf.b.MOCK_PROTOCOL)) {
                var _url$split = url.split("|");
                domain = _url$split[0];
                url = _url$split[1];
            }
            domain && (domain = Object(src.i)(domain));
            var win = windowOpen.call(this, url, name, options, last);
            if (!win) return win;
            url && registerRemoteWindow(win);
            for (var _i2 = 0, _Object$keys2 = Object.keys(global.a.popupWindowsByName); _i2 < _Object$keys2.length; _i2++) {
                var winName = _Object$keys2[_i2];
                Object(src.z)(global.a.popupWindowsByName[winName].win) && delete global.a.popupWindowsByName[winName];
            }
            if (name && win) {
                var winOptions = global.a.popupWindowsByWin.get(win) || global.a.popupWindowsByName[name] || {};
                winOptions.name = winOptions.name || name;
                winOptions.win = winOptions.win || win;
                winOptions.domain = winOptions.domain || domain;
                global.a.popupWindowsByWin.set(win, winOptions);
                global.a.popupWindowsByName[name] = winOptions;
            }
            return win;
        };
        function linkUrl(win, url) {
            var winOptions = global.a.popupWindowsByWin.get(win);
            if (winOptions) {
                winOptions.domain = Object(src.i)(url);
                registerRemoteWindow(win);
            }
        }
        function destroyBridges() {
            for (var _i4 = 0, _Object$keys4 = Object.keys(global.a.bridgeFrames); _i4 < _Object$keys4.length; _i4++) {
                var frame = global.a.bridgeFrames[_Object$keys4[_i4]];
                frame.parentNode && frame.parentNode.removeChild(frame);
            }
            global.a.bridgeFrames = {};
            global.a.bridges = {};
        }
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return _assertThisInitialized;
        }));
        function _assertThisInitialized(self) {
            if (void 0 === self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return self;
        }
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return PopupOpenError;
        }));
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return IntegrationError;
        }));
        __webpack_require__.d(__webpack_exports__, "c", (function() {
            return RenderError;
        }));
        function PopupOpenError(message) {
            this.message = message;
        }
        PopupOpenError.prototype = Object.create(Error.prototype);
        function IntegrationError(message) {
            this.message = message;
        }
        IntegrationError.prototype = Object.create(Error.prototype);
        function RenderError(message) {
            this.message = message;
        }
        RenderError.prototype = Object.create(Error.prototype);
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return checkout.a;
        }));
        __webpack_require__.d(__webpack_exports__, "d", (function() {
            return checkout.c;
        }));
        __webpack_require__.d(__webpack_exports__, "c", (function() {
            return checkout.b;
        }));
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return awaitBraintreeClient;
        }));
        __webpack_require__.d(__webpack_exports__, "e", (function() {
            return mapPaymentToBraintree;
        }));
        var checkout = __webpack_require__(28);
        var src = __webpack_require__(2);
        function awaitBraintreeClient(braintree, auth) {
            return src.a.resolve(auth).then((function(authorization) {
                return braintree.client.create({
                    authorization: authorization
                });
            })).then((function(client) {
                return braintree.paypalCheckout.create({
                    client: client
                });
            }));
        }
        var SUPPORTED_REST_FIELDS = {
            intent: 1,
            transactions: [ {
                amount: {
                    total: 1,
                    currency: 1
                }
            } ],
            payer: {
                external_selected_funding_instrument_type: 1,
                shipping_address: {
                    line1: 1,
                    line2: 1,
                    city: 1,
                    state: 1,
                    postal_code: 1,
                    country_code: 1,
                    phone: 1,
                    recipient_name: 1
                }
            },
            application_context: {
                brand_name: 1,
                shipping_preference: 1,
                landing_page: 1
            }
        };
        function mapPaymentToBraintree(payment) {
            !function validate(obj, supported, name) {
                var supportedKeys = Object.keys(supported);
                for (var _i2 = 0, _Object$keys2 = Object.keys(obj); _i2 < _Object$keys2.length; _i2++) {
                    var key = _Object$keys2[_i2];
                    if (-1 === supportedKeys.indexOf(key)) throw new Error("Unsupported REST key for Braintree: " + name + "." + key);
                    "object" == typeof obj[key] && validate(obj[key], supported[key], name + "." + key);
                }
            }(payment, SUPPORTED_REST_FIELDS, "payment");
            var btPayment = {};
            btPayment.intent = payment.intent || "sale";
            btPayment.flow = "checkout";
            btPayment.amount = payment.transactions[0].amount.total;
            btPayment.currency = payment.transactions[0].amount.currency;
            if (payment.payer) {
                "CREDIT" === payment.payer.external_selected_funding_instrument_type && (btPayment.offerCredit = !0);
                payment.payer.shipping_address && (btPayment.shippingAddressOverride = {
                    line1: payment.payer.shipping_address.line1,
                    line2: payment.payer.shipping_address.line2,
                    city: payment.payer.shipping_address.city,
                    state: payment.payer.shipping_address.state,
                    postalCode: payment.payer.shipping_address.postal_code,
                    countryCode: payment.payer.shipping_address.country_code,
                    phone: payment.payer.shipping_address.phone,
                    recipientName: payment.payer.shipping_address.recipient_name
                });
            }
            if (payment.application_context) {
                btPayment.displayName = payment.application_context.brand_name;
                btPayment.landingPageType = payment.application_context.landing_page;
                if (payment.application_context) if ("NO_SHIPPING" === payment.application_context.shipping_preference) btPayment.enableShippingAddress = !1; else if ("GET_FROM_FILE" === payment.application_context.shipping_preference) {
                    btPayment.enableShippingAddress = !0;
                    btPayment.shippingAddressEditable = !0;
                } else if ("SET_PROVIDED_ADDRESS" === payment.application_context.shipping_preference) {
                    btPayment.enableShippingAddress = !0;
                    btPayment.shippingAddressEditable = !1;
                }
            }
            return btPayment;
        }
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        var _script__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31);
        __webpack_require__.d(__webpack_exports__, "script", (function() {
            return _script__WEBPACK_IMPORTED_MODULE_0__.a;
        }));
        var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32);
        __webpack_require__.d(__webpack_exports__, "react", (function() {
            return _react__WEBPACK_IMPORTED_MODULE_1__.a;
        }));
        var _vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
        __webpack_require__.d(__webpack_exports__, "vue", (function() {
            return _vue__WEBPACK_IMPORTED_MODULE_2__.a;
        }));
        var _angular__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34);
        __webpack_require__.d(__webpack_exports__, "angular", (function() {
            return _angular__WEBPACK_IMPORTED_MODULE_3__.a;
        }));
        var _ember__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35);
        __webpack_require__.o(_ember__WEBPACK_IMPORTED_MODULE_4__, "angular2") && __webpack_require__.d(__webpack_exports__, "angular2", (function() {
            return _ember__WEBPACK_IMPORTED_MODULE_4__.angular2;
        }));
        __webpack_require__.o(_ember__WEBPACK_IMPORTED_MODULE_4__, "glimmer") && __webpack_require__.d(__webpack_exports__, "glimmer", (function() {
            return _ember__WEBPACK_IMPORTED_MODULE_4__.glimmer;
        }));
        var _glimmer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36);
        __webpack_require__.d(__webpack_exports__, "glimmer", (function() {
            return _glimmer__WEBPACK_IMPORTED_MODULE_5__.a;
        }));
        var _angular2__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(37);
        __webpack_require__.d(__webpack_exports__, "angular2", (function() {
            return _angular2__WEBPACK_IMPORTED_MODULE_6__.a;
        }));
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return _setPrototypeOf;
        }));
        function _setPrototypeOf(o, p) {
            return (_setPrototypeOf = Object.setPrototypeOf || function(o, p) {
                o.__proto__ = p;
                return o;
            })(o, p);
        }
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return componentTemplate;
        }));
        __webpack_require__.d(__webpack_exports__, "c", (function() {
            return getContainerStyle;
        }));
        __webpack_require__.d(__webpack_exports__, "d", (function() {
            return getSandboxStyle;
        }));
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return containerTemplate;
        }));
        function componentTemplate(_ref) {
            var jsxDom = _ref.jsxDom;
            return jsxDom("html", null, jsxDom("head", null, jsxDom("title", null, "PayPal"), jsxDom("meta", {
                name: "viewport",
                content: "width=device-width, initial-scale=1"
            })), jsxDom("body", null, jsxDom("div", {
                class: "preloader spinner"
            }, jsxDom("style", null, "\n\n    body {\n        width: 100%;\n        height: 100%;\n        overflow: hidden;\n        position: fixed;\n        top: 0;\n        left: 0;\n        margin: 0;\n    }\n\n    .spinner {\n        height: 100%;\n        width: 100%;\n        position: absolute;\n        z-index: 10\n    }\n\n    .spinner .spinWrap {\n        width: 200px;\n        height: 100px;\n        position: absolute;\n        top: 50%;\n        left: 50%;\n        margin-left: -100px;\n        margin-top: -50px\n    }\n\n    .spinner .loader,\n    .spinner .spinnerImage {\n        height: 100px;\n        width: 100px;\n        position: absolute;\n        top: 0;\n        left: 50%;\n        opacity: 1;\n        filter: alpha(opacity=100)\n    }\n\n    .spinner .spinnerImage {\n        margin: 28px 0 0 -25px;\n        background: url(https://www.paypalobjects.com/images/checkout/hermes/icon_ot_spin_lock_skinny.png) no-repeat\n    }\n\n    .spinner .loader {\n        margin: 0 0 0 -55px;\n        background-color: transparent;\n        -webkit-animation: rotation .7s infinite linear;\n        -moz-animation: rotation .7s infinite linear;\n        -o-animation: rotation .7s infinite linear;\n        animation: rotation .7s infinite linear;\n        border-left: 5px solid #cbcbca;\n        border-right: 5px solid #cbcbca;\n        border-bottom: 5px solid #cbcbca;\n        border-top: 5px solid #2380be;\n        border-radius: 100%\n    }\n\n    @-webkit-keyframes rotation {\n        from {\n            -webkit-transform: rotate(0deg)\n        }\n        to {\n            -webkit-transform: rotate(359deg)\n        }\n    }\n    @-moz-keyframes rotation {\n        from {\n            -moz-transform: rotate(0deg)\n        }\n        to {\n            -moz-transform: rotate(359deg)\n        }\n    }\n    @-o-keyframes rotation {\n        from {\n            -o-transform: rotate(0deg)\n        }\n        to {\n            -o-transform: rotate(359deg)\n        }\n    }\n    @keyframes rotation {\n        from {\n            transform: rotate(0deg)\n        }\n        to {\n            transform: rotate(359deg)\n        }\n    }\n"), jsxDom("div", {
                class: "spinWrap"
            }, jsxDom("p", {
                class: "spinnerImage"
            }), jsxDom("p", {
                class: "loader"
            })))));
        }
        var src = __webpack_require__(14);
        var zalgo_promise_src = __webpack_require__(2);
        var resources = __webpack_require__(18);
        var constants = __webpack_require__(0);
        var lib = __webpack_require__(3);
        var containerContent = __webpack_require__(29);
        function getContainerStyle(_ref) {
            var id = _ref.id, tag = _ref.tag, CONTEXT = _ref.CONTEXT, CLASS = _ref.CLASS, ANIMATION = _ref.ANIMATION;
            return "\n        #" + id + " {\n            position: absolute;\n            z-index: 2147483647;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n\n            -webkit-transform: translate3d(0, 0, 0);\n            -moz-transform: translate3d(0, 0, 0);\n            -ms-transform: translate3d(0, 0, 0);\n            -o-transform: translate3d(0, 0, 0);\n            transform: translate3d(0, 0, 0);\n        }\n\n        #" + id + "." + tag + "-background-color-" + constants.q.BLACK + " {\n            background-color: black;\n            background-color: rgba(0, 0, 0, 0.75);\n\n            background: -webkit-radial-gradient(50% 50%, ellipse closest-corner, rgba(0,0,0,1) 1%, rgba(0,0,0,0.75) 100%);\n            background: -moz-radial-gradient(50% 50%, ellipse closest-corner, rgba(0,0,0,1) 1%, rgba(0,0,0,0.75) 100%);\n            background: -ms-radial-gradient(50% 50%, ellipse closest-corner, rgba(0,0,0,1) 1%, rgba(0,0,0,0.75) 100%);\n            background: radial-gradient(50% 50%, ellipse closest-corner, rgba(0,0,0,1) 1%, rgba(0,0,0,0.75) 100%);\n\n            color: #fff;\n        }\n\n        #" + id + "." + tag + "-background-color-" + constants.q.WHITE + " {\n            background-color: white;\n            background-color: rgba(255, 255, 255, 0.4);\n\n            background: -webkit-radial-gradient(50% 50%, ellipse closest-corner, rgba(255, 255, 255,1) 1%, rgba(255, 255, 255,0.4) 100%);\n            background: -moz-radial-gradient(50% 50%, ellipse closest-corner, rgba(255, 255, 255,1) 1%, rgba(255, 255, 255,0.4) 100%);\n            background: -ms-radial-gradient(50% 50%, ellipse closest-corner, rgba(255, 255, 255,1) 1%, rgba(255, 255, 255,0.4) 100%);\n            background: radial-gradient(50% 50%, ellipse closest-corner, rgba(255, 255, 255,1) 1%, rgba(255, 255, 255,0.4) 100%);\n\n            color: #333;\n        }\n\n        #" + id + "." + tag + "-background-color-" + constants.q.BLACK + " a {\n            color: #fff;\n        }\n\n        #" + id + "." + tag + "-background-color-" + constants.q.WHITE + " a {\n            color: #333;\n        }\n\n        #" + id + "." + tag + "-background-color-" + constants.q.BLACK + " .paypal-checkout-close:before,\n        #" + id + "." + tag + "-background-color-" + constants.q.BLACK + " .paypal-checkout-close:after {\n            background-color: #fff;\n        }\n\n        #" + id + "." + tag + "-background-color-" + constants.q.WHITE + " .paypal-checkout-close:before,\n        #" + id + "." + tag + "-background-color-" + constants.q.WHITE + " .paypal-checkout-close:after {\n            background-color: #111;\n        }\n\n        #" + id + "." + tag + "-context-" + CONTEXT.POPUP + " {\n            cursor: pointer;\n        }\n\n        #" + id + "." + tag + "-context-" + CONTEXT.POPUP + " {\n            cursor: pointer;\n        }\n\n        #" + id + " a {\n            text-decoration: none;\n        }\n\n        #" + id + ' .paypal-checkout-modal {\n            font-family: "HelveticaNeue", "HelveticaNeue-Light", "Helvetica Neue Light", helvetica, arial, sans-serif;\n            font-size: 14px;\n            text-align: center;\n\n            -webkit-box-sizing: border-box;\n            -moz-box-sizing: border-box;\n            -ms-box-sizing: border-box;\n            box-sizing: border-box;\n            max-width: 350px;\n            top: 50%;\n            left: 50%;\n            position: absolute;\n            transform: translateX(-50%) translateY(-50%);\n            -webkit-transform: translateX(-50%) translateY(-50%);\n            -moz-transform: translateX(-50%) translateY(-50%);\n            -o-transform: translateX(-50%) translateY(-50%);\n            -ms-transform: translateX(-50%) translateY(-50%);\n            cursor: pointer;\n            text-align: center;\n        }\n\n        #' + id + "." + tag + "-loading .paypal-checkout-message, #" + id + "." + tag + "-loading .paypal-checkout-continue {\n            display: none;\n        }\n\n        .paypal-checkout-loader {\n            display: none;\n        }\n\n        #" + id + "." + tag + "-loading .paypal-checkout-loader {\n            display: block;\n        }\n\n        #" + id + " .paypal-checkout-modal .paypal-checkout-logo {\n            cursor: pointer;\n            margin-bottom: 30px;\n            display: inline-block;\n        }\n\n        #" + id + " .paypal-checkout-modal .paypal-checkout-logo img {\n            height: 36px;\n        }\n\n        #" + id + " .paypal-checkout-modal .paypal-checkout-logo img.paypal-checkout-logo-pp {\n            margin-right: 10px;\n        }\n\n        #" + id + " .paypal-checkout-modal .paypal-checkout-message {\n            font-size: 15px;\n            line-height: 1.5;\n            padding: 10px 0;\n        }\n\n        #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " .paypal-checkout-message, #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " .paypal-checkout-continue {\n            display: none;\n        }\n\n        #" + id + " .paypal-checkout-modal .paypal-checkout-continue {\n            font-size: 15px;\n            line-height: 1.35;\n            padding: 10px 0;\n            font-weight: bold;\n        }\n\n        #" + id + " .paypal-checkout-modal .paypal-checkout-continue a {\n            border-bottom: 1px solid currentColor;\n        }\n\n        #" + id + " .paypal-checkout-close {\n            position: absolute;\n            right: 16px;\n            top: 16px;\n            width: 16px;\n            height: 16px;\n            opacity: 0.6;\n        }\n\n        #" + id + "." + tag + "-loading .paypal-checkout-close {\n            display: none;\n        }\n\n        #" + id + " .paypal-checkout-close:hover {\n            opacity: 1;\n        }\n\n        #" + id + " .paypal-checkout-close:before, .paypal-checkout-close:after {\n            position: absolute;\n            left: 8px;\n            content: ' ';\n            height: 16px;\n            width: 2px;\n        }\n\n        #" + id + " .paypal-checkout-close:before {\n            transform: rotate(45deg);\n            -webkit-transform: rotate(45deg);\n            -moz-transform: rotate(45deg);\n            -o-transform: rotate(45deg);\n            -ms-transform: rotate(45deg);\n        }\n\n        #" + id + " .paypal-checkout-close:after {\n            transform: rotate(-45deg);\n            -webkit-transform: rotate(-45deg);\n            -moz-transform: rotate(-45deg);\n            -o-transform: rotate(-45deg);\n            -ms-transform: rotate(-45deg);\n        }\n\n        #" + id + " .paypal-checkout-iframe-container {\n            display: none;\n        }\n\n        #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " .paypal-checkout-iframe-container,\n        #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " .paypal-checkout-iframe-container > ." + CLASS.OUTLET + ",\n        #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " .paypal-checkout-iframe-container > ." + CLASS.OUTLET + " > iframe {\n            max-height: calc(95vh - 60px);\n            max-width: 95vw;\n        }\n\n        #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " .paypal-checkout-iframe-container {\n\n            display: block;\n\n            position: absolute;\n\n            top: 50%;\n            left: 50%;\n\n            min-width: 450px;\n\n            transform: translate(-50%, -50%);\n            -webkit-transform: translate(-50%, -50%);\n            -moz-transform: translate(-50%, -50%);\n            -o-transform: translate(-50%, -50%);\n            -ms-transform: translate(-50%, -50%);\n\n            transform: translate3d(-50%, -50%, 0);\n            -webkit-transform: translate3d(-50%, -50%, 0);\n            -moz-transform: translate3d(-50%, -50%, 0);\n            -o-transform: translate3d(-50%, -50%, 0);\n            -ms-transform: translate3d(-50%, -50%, 0);\n\n            border-radius: 10px;\n            overflow: hidden;\n        }\n\n        #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " ." + CLASS.OUTLET + " {\n\n            position: relative;\n\n            -webkit-transition: all 0.3s ease;\n            -moz-transition: all 0.3s ease;\n            -ms-transition: all 0.3s ease;\n            -o-transition: all 0.3 ease;\n            transition: all 0.3s ease;\n\n            -webkit-animation-duration: 0.3s;\n            animation-duration: 0.3s;\n            -webkit-animation-fill-mode: both;\n            animation-fill-mode: both;\n\n            min-width: 450px;\n            max-width: 450px;\n            width: 450px;\n            height: 535px;\n\n            background-color: white;\n\n            overflow: auto;\n            -webkit-overflow-scrolling: touch;\n        }\n\n        #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " ." + CLASS.OUTLET + " > iframe {\n            position: absolute;\n            top: 0;\n            left: 0;\n            transition: opacity .4s ease-in-out;\n        }\n\n        #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " ." + CLASS.OUTLET + " > iframe." + CLASS.COMPONENT_FRAME + " {\n            z-index: 100;\n        }\n\n        #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " ." + CLASS.OUTLET + " > iframe." + CLASS.PRERENDER_FRAME + " {\n            z-index: 200;\n        }\n\n        #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " ." + CLASS.OUTLET + " > iframe." + CLASS.VISIBLE + " {\n            opacity: 1;\n            z-index: 200;\n        }\n\n        #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " ." + CLASS.OUTLET + " > iframe." + CLASS.INVISIBLE + " {\n            opacity: 0;\n            z-index: 100;\n        }\n\n        @media screen and (-ms-high-contrast: active) {\n            #" + id + " .paypal-checkout-close {\n                opacity: 1;\n            }\n\n            #" + id + " .paypal-checkout-close:before , .paypal-checkout-close:after {\n                background-color: currentColor;\n            }\n        }\n\n        @media screen and (max-width: 470px) {\n\n            #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " .paypal-checkout-iframe-container,\n            #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " ." + CLASS.OUTLET + " {\n                min-width: 100%;\n                min-width: calc(100% - 20px);\n                min-width: -webkit-calc(100% - 20px);\n                min-width: -moz-calc(100% - 20px);\n                min-width: -o-calc(100% - 20px);\n                min-width: -ms-calc(100% - 20px);\n\n                max-width: 100%;\n                max-width: calc(100% - 20px);\n                max-width: -webkit-calc(100% - 20px);\n                max-width: -moz-calc(100% - 20px);\n                max-width: -o-calc(100% - 20px);\n                max-width: -ms-calc(100% - 20px);\n            }\n        }\n\n        #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " ." + CLASS.OUTLET + " iframe {\n            width: 1px;\n            min-width: 100%;\n            height: 100%;\n        }\n\n        @-webkit-keyframes " + ANIMATION.SHOW_COMPONENT + " {\n            from {\n                opacity: 0;\n                transform: scale3d(.3, .3, .3);\n                -webkit-transform: scale3d(.3, .3, .3);\n            }\n\n            to {\n                opacity: 1;\n                transform: scale3d(1, 1, 1);\n                -webkit-transform: scale3d(1, 1, 1);\n            }\n        }\n\n        @keyframes " + ANIMATION.SHOW_COMPONENT + " {\n            from {\n                opacity: 0;\n                transform: scale3d(.3, .3, .3);\n                -webkit-transform: scale3d(.3, .3, .3);\n            }\n\n            to {\n                opacity: 1;\n                transform: scale3d(1, 1, 1);\n                -webkit-transform: scale3d(1, 1, 1);\n            }\n        }\n\n        @-webkit-keyframes " + ANIMATION.HIDE_COMPONENT + " {\n            from {\n                transform: scale3d(1, 1, 1);\n                -webkit-transform: scale3d(1, 1, 1);\n            }\n\n            to {\n                opacity: 0;\n                transform: scale3d(.3, .3, .3);\n                -webkit-transform: scale3d(.3, .3, .3);\n            }\n        }\n\n        @keyframes " + ANIMATION.HIDE_COMPONENT + " {\n            from {\n                transform: scale3d(1, 1, 1);\n                -webkit-transform: scale3d(1, 1, 1);\n            }\n\n            to {\n                opacity: 0;\n                transform: scale3d(.3, .3, .3);\n                -webkit-transform: scale3d(.3, .3, .3);\n            }\n        }\n\n        .paypal-spinner {\n            height: 30px;\n            width: 30px;\n            display: inline-block;\n            box-sizing: content-box;\n            opacity: 1;\n            filter: alpha(opacity=100);\n            -webkit-animation: rotation .7s infinite linear;\n            -moz-animation: rotation .7s infinite linear;\n            -o-animation: rotation .7s infinite linear;\n            animation: rotation .7s infinite linear;\n            border-left: 8px solid rgba(0, 0, 0, .2);\n            border-right: 8px solid rgba(0, 0, 0, .2);\n            border-bottom: 8px solid rgba(0, 0, 0, .2);\n            border-top: 8px solid #fff;\n            border-radius: 100%\n        }\n\n        @-webkit-keyframes rotation {\n            from {\n                -webkit-transform: rotate(0deg)\n            }\n            to {\n                -webkit-transform: rotate(359deg)\n            }\n        }\n        @-moz-keyframes rotation {\n            from {\n                -moz-transform: rotate(0deg)\n            }\n            to {\n                -moz-transform: rotate(359deg)\n            }\n        }\n        @-o-keyframes rotation {\n            from {\n                -o-transform: rotate(0deg)\n            }\n            to {\n                -o-transform: rotate(359deg)\n            }\n        }\n        @keyframes rotation {\n            from {\n                transform: rotate(0deg)\n            }\n            to {\n                transform: rotate(359deg)\n            }\n        }\n    ";
        }
        function getSandboxStyle(_ref) {
            var id = _ref.id, ANIMATION = _ref.ANIMATION;
            return "\n        #" + id + ".paypal-checkout-sandbox {\n            display: block;\n            position: fixed;\n            top: 0;\n            left: 0;\n\n            width: 100%;\n            height: 100%;\n            width: 100vw;\n            height: 100vh;\n            max-width: 100%;\n            max-height: 100%;\n            min-width: 100%;\n            min-height: 100%;\n\n            z-index: 2147483647;\n\n            -webkit-animation-duration: 1s;\n            animation-duration: 1s;\n\n            animation-fill-mode:forwards;\n            animation-iteration-count: 1;\n\n            -webkit-animation-fill-mode:forwards;\n            -webkit-animation-iteration-count: 1;\n        }\n\n        #" + id + ".paypal-checkout-sandbox .paypal-checkout-sandbox-iframe {\n            display: block;\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n        }\n\n        @-webkit-keyframes " + ANIMATION.SHOW_CONTAINER + " {\n            from {\n                opacity: 0;\n            }\n\n            to {\n                opacity: 1;\n            }\n        }\n\n        @keyframes " + ANIMATION.SHOW_CONTAINER + " {\n            from {\n                opacity: 0;\n            }\n\n            to {\n                opacity: 1;\n            }\n        }\n\n        @-webkit-keyframes " + ANIMATION.HIDE_CONTAINER + " {\n            from {\n                opacity: 1;\n            }\n\n            50% {\n                opacity: 1;\n            }\n\n            to {\n                opacity: 0;\n            }\n        }\n\n        @keyframes " + ANIMATION.HIDE_CONTAINER + " {\n            from {\n                opacity: 1;\n            }\n\n            50% {\n                opacity: 1;\n            }\n\n            to {\n                opacity: 0;\n            }\n        }\n    ";
        }
        var _LOGO_COLOR;
        var LOGO_COLOR = ((_LOGO_COLOR = {})[constants.q.BLACK] = constants.i.WHITE, _LOGO_COLOR[constants.q.WHITE] = constants.i.BLACK, 
        _LOGO_COLOR);
        function containerTemplate(_ref) {
            var id = _ref.id, props = _ref.props, CLASS = _ref.CLASS, ANIMATION = _ref.ANIMATION, CONTEXT = _ref.CONTEXT, EVENT = _ref.EVENT, on = _ref.on, tag = _ref.tag, context = _ref.context, actions = _ref.actions, outlet = _ref.outlet, jsxDom = _ref.jsxDom;
            var _props$locale$split = props.locale.split("_");
            var content = containerContent.a[_props$locale$split[1]][_props$locale$split[0]];
            function focus(event) {
                event.preventDefault();
                event.stopPropagation();
                Object(lib.G)() && Object(src.j)() ? window.alert("Please switch tabs to reactivate the PayPal window") : zalgo_promise_src.a.try(actions.focus).catch(lib.K);
            }
            var overlayColor = (props.style || {}).overlayColor || constants.q.BLACK;
            var logoColor = LOGO_COLOR[overlayColor];
            var ppLogo = "function" == typeof resources.b.pp ? resources.b.pp({
                logoColor: logoColor
            }) : resources.b.pp[logoColor];
            var paypalLogo = "function" == typeof resources.b.paypal ? resources.b.paypal({
                logoColor: logoColor
            }) : resources.b.paypal[logoColor];
            var el = jsxDom("div", {
                id: id,
                onClick: focus,
                class: tag + "-context-" + context + " paypal-checkout-overlay " + tag + "-background-color-" + overlayColor + " " + tag + "-logo-color-" + logoColor
            }, jsxDom("a", {
                href: "#",
                class: "paypal-checkout-close",
                onClick: function(event) {
                    event.preventDefault();
                    event.stopPropagation();
                    actions.close();
                },
                "aria-label": "close",
                role: "button"
            }), jsxDom("div", {
                class: "paypal-checkout-modal"
            }, jsxDom("div", {
                class: "paypal-checkout-logo"
            }, jsxDom("img", {
                class: "paypal-checkout-logo-pp",
                alt: "pp",
                src: "data:image/svg+xml;base64," + Object(src.a)(ppLogo.toString())
            }), jsxDom("img", {
                class: "paypal-checkout-logo-paypal",
                alt: "paypal",
                src: "data:image/svg+xml;base64," + Object(src.a)(paypalLogo.toString())
            })), jsxDom("div", {
                class: "paypal-checkout-message"
            }, content.windowMessage), jsxDom("div", {
                class: "paypal-checkout-continue"
            }, jsxDom("a", {
                onClick: focus,
                href: "#"
            }, content.continue)), jsxDom("div", {
                class: "paypal-checkout-loader"
            }, jsxDom("div", {
                class: "paypal-spinner"
            }))), jsxDom("div", {
                class: "paypal-checkout-iframe-container"
            }, outlet), jsxDom("style", null, getContainerStyle({
                id: id,
                tag: tag,
                CONTEXT: CONTEXT,
                CLASS: CLASS,
                ANIMATION: ANIMATION
            })));
            var container = jsxDom("html", null, jsxDom("body", null, el));
            on(EVENT.CLOSE, (function() {
                el.className += " " + tag + "-loading";
            }));
            return jsxDom("div", {
                id: id,
                class: "paypal-checkout-sandbox"
            }, jsxDom("style", null, getSandboxStyle({
                id: id,
                ANIMATION: ANIMATION
            })), jsxDom("iframe", {
                title: "PayPal Checkout Overlay",
                name: "__paypal_checkout_sandbox_" + id + "__",
                scrolling: "no",
                class: "paypal-checkout-sandbox-iframe"
            }, container));
        }
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return determineParameterFromToken;
        }));
        __webpack_require__.d(__webpack_exports__, "c", (function() {
            return getPaymentType;
        }));
        __webpack_require__.d(__webpack_exports__, "b", (function() {
            return determineUrl;
        }));
        var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
        var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);
        function determineParameterFromToken(token) {
            return token && 0 === token.indexOf("BA-") ? "ba_token" : "token";
        }
        function getPaymentType(payment) {
            return 0 === payment.indexOf("BA-") ? _constants__WEBPACK_IMPORTED_MODULE_1__.C.BA_TOKEN : 0 === payment.indexOf("PAY-") || 0 === payment.indexOf("PAYID-") ? _constants__WEBPACK_IMPORTED_MODULE_1__.C.PAY_ID : (payment.indexOf("EC-"), 
            _constants__WEBPACK_IMPORTED_MODULE_1__.C.EC_TOKEN);
        }
        function determineUrl(env, fundingSource, payment) {
            return getPaymentType(payment) === _constants__WEBPACK_IMPORTED_MODULE_1__.C.BA_TOKEN ? _config__WEBPACK_IMPORTED_MODULE_0__.a.billingUrls[env] : fundingSource === _constants__WEBPACK_IMPORTED_MODULE_1__.v.IDEAL || fundingSource === _constants__WEBPACK_IMPORTED_MODULE_1__.v.BANCONTACT || fundingSource === _constants__WEBPACK_IMPORTED_MODULE_1__.v.GIROPAY || fundingSource === _constants__WEBPACK_IMPORTED_MODULE_1__.v.SOFORT || fundingSource === _constants__WEBPACK_IMPORTED_MODULE_1__.v.EPS || fundingSource === _constants__WEBPACK_IMPORTED_MODULE_1__.v.MYBANK || fundingSource === _constants__WEBPACK_IMPORTED_MODULE_1__.v.P24 || fundingSource === _constants__WEBPACK_IMPORTED_MODULE_1__.v.BLIK || fundingSource === _constants__WEBPACK_IMPORTED_MODULE_1__.v.MAXIMA || fundingSource === _constants__WEBPACK_IMPORTED_MODULE_1__.v.BOLETO || fundingSource === _constants__WEBPACK_IMPORTED_MODULE_1__.v.OXXO || fundingSource === _constants__WEBPACK_IMPORTED_MODULE_1__.v.MERCADOPAGO ? _config__WEBPACK_IMPORTED_MODULE_0__.a.altpayUrls[env] : _config__WEBPACK_IMPORTED_MODULE_0__.a.checkoutUrls[env];
        }
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return containerContent;
        }));
        var containerContent = {
            AT: {
                de: {
                    windowMessage: "Sie sehen das sichere Browserfenster von PayPal nicht? Hier können Sie es wieder öffnen und Ihren Einkauf abschließen.",
                    continue: "Weiter"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            ZW: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            ZM: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            ZA: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            YT: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            YE: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                ar: {
                    windowMessage: "لا ترى متصفح PayPal الآمن؟ سنساعدك في إعادة فتح النافذة لاستكمال مشترياتك.   ",
                    continue: "متابعة"
                }
            },
            WS: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            WF: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            VU: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat. ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            VG: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            VE: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            VC: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            VA: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            UY: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            UG: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            TZ: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            TV: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat. ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            TT: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            TO: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            TN: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                ar: {
                    windowMessage: "لا ترى متصفح PayPal الآمن؟ سنساعدك في إعادة فتح النافذة لاستكمال مشترياتك.   ",
                    continue: "متابعة"
                }
            },
            TM: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            TJ: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            TG: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            TD: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            TC: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            SZ: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            SV: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            ST: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            SR: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            SO: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            SN: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            SM: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            SL: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            SJ: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            SH: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            SC: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            SB: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat. ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            SA: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                ar: {
                    windowMessage: "لا ترى متصفح PayPal الآمن؟ سنساعدك في إعادة فتح النافذة لاستكمال مشترياتك.   ",
                    continue: "متابعة"
                }
            },
            RW: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            RS: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            RE: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            QA: {
                ar: {
                    windowMessage: "لا ترى متصفح PayPal الآمن؟ سنساعدك في إعادة فتح النافذة لاستكمال مشترياتك.   ",
                    continue: "متابعة"
                },
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            PY: {
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            PW: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat. ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            PN: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat. ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            PM: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            PG: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat. ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            PF: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            PE: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            PA: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            OM: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                ar: {
                    windowMessage: "لا ترى متصفح PayPal الآمن؟ سنساعدك في إعادة فتح النافذة لاستكمال مشترياتك.   ",
                    continue: "متابعة"
                }
            },
            NU: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat. ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            NR: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat. ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            NP: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            NI: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            NG: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            NF: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat. ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            NE: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            NC: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            NA: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            MZ: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            MW: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            MV: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            MU: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            MT: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            MS: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            MR: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            MQ: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            MN: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            ML: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            MK: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            MH: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat. ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            MG: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            ME: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            MD: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            MC: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            MA: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                ar: {
                    windowMessage: "لا ترى متصفح PayPal الآمن؟ سنساعدك في إعادة فتح النافذة لاستكمال مشترياتك.   ",
                    continue: "متابعة"
                }
            },
            LS: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            LK: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            LI: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            LC: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            LA: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            KZ: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            KY: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            KW: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                ar: {
                    windowMessage: "لا ترى متصفح PayPal الآمن؟ سنساعدك في إعادة فتح النافذة لاستكمال مشترياتك.   ",
                    continue: "متابعة"
                }
            },
            KN: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            KM: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            KI: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat. ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            KH: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            KG: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            KE: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            JO: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                ar: {
                    windowMessage: "لا ترى متصفح PayPal الآمن؟ سنساعدك في إعادة فتح النافذة لاستكمال مشترياتك.   ",
                    continue: "متابعة"
                }
            },
            JM: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            IS: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            HR: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            HN: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            GY: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            GW: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            GT: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            GP: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            GN: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            GM: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            GL: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                da: {
                    windowMessage: "Kan du ikke se PayPals sikre browser? Vi hjælper dig med at genstarte vinduet, så du kan betale.",
                    continue: "Fortsæt"
                }
            },
            GI: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            GF: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            GE: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            GD: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            GA: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            FO: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                da: {
                    windowMessage: "Kan du ikke se PayPals sikre browser? Vi hjælper dig med at genstarte vinduet, så du kan betale.",
                    continue: "Fortsæt"
                }
            },
            FM: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            FK: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            FJ: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat. ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            ET: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            ER: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            EG: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                ar: {
                    windowMessage: "لا ترى متصفح PayPal الآمن؟ سنساعدك في إعادة فتح النافذة لاستكمال مشترياتك.   ",
                    continue: "متابعة"
                }
            },
            EC: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            DZ: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                ar: {
                    windowMessage: "لا ترى متصفح PayPal الآمن؟ سنساعدك في إعادة فتح النافذة لاستكمال مشترياتك.   ",
                    continue: "متابعة"
                }
            },
            DO: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            DM: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            DJ: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            CY: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            CV: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            CR: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            CO: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            CM: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            CL: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            CK: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            CI: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            CG: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            CD: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            BZ: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            BY: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            BW: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            BT: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            BS: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            BO: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            BN: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            BM: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            BJ: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            BI: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            BH: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                ar: {
                    windowMessage: "لا ترى متصفح PayPal الآمن؟ سنساعدك في إعادة فتح النافذة لاستكمال مشترياتك.   ",
                    continue: "متابعة"
                }
            },
            BG: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            BF: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                }
            },
            BB: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            BA: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            AZ: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            AW: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            AO: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            AN: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            AM: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            AL: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            AI: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            AG: {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            AE: {
                ar: {
                    windowMessage: "لا ترى متصفح PayPal الآمن؟ سنساعدك في إعادة فتح النافذة لاستكمال مشترياتك.   ",
                    continue: "متابعة"
                },
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            AD: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            CN: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成付款。  ",
                    continue: "继续"
                }
            },
            GB: {
                fr: {
                    windowMessage: "Vous ne voyez pas le navigateur sécurisé PayPal ? Nous allons vous aider à relancer la fenêtre pour effectuer votre achat.  ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We'll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            AR: {
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                }
            },
            US: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat. ",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Click to Continue"
                }
            },
            VN: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your payment.  ",
                    continue: "Continue"
                }
            },
            UA: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                ru: {
                    windowMessage: "Не отображается безопасная страница PayPal в браузере? Мы поможем вам повторно загрузить окно, чтобы завершить покупку.  ",
                    continue: "Продолжить"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            TW: {
                zh: {
                    windowMessage: "看不到安全連線的 PayPal 瀏覽器?我們將會重新啟動視窗以完成付款。  ",
                    continue: "繼續"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your payment.  ",
                    continue: "Continue"
                }
            },
            TR: {
                tr: {
                    windowMessage: "Güvenli PayPal tarayıcısını görmüyor musunuz? Alışverişinizi tamamlamak için pencereyi yeniden başlatmanıza yardımcı olacağız.  ",
                    continue: "Devam"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            TH: {
                th: {
                    windowMessage: "ถ้าคุณไม่เห็นเบราว์เซอร์ที่มีระบบความปลอดภัยของ PayPal เราจะช่วยคุณเปิดหน้าต่างอีกครั้งเพื่อชำระเงินให้เรียบร้อย ",
                    continue: "ดำเนินการต่อ"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your payment.  ",
                    continue: "Continue"
                }
            },
            SK: {
                sk: {
                    windowMessage: "Nezobrazuje sa vám zabezpečený prehliadač PayPal? Pomôžeme vám znova otvoriť okno, aby ste mohli nákup dokončiť.  ",
                    continue: "Pokračovať"
                },
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            SI: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            SG: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your payment.  ",
                    continue: "Continue"
                }
            },
            SE: {
                sv: {
                    windowMessage: "Ser du inte den säkra PayPal-webbläsaren? Vi hjälper dig att starta om fönstret för att slutföra ditt köp. ",
                    continue: "Fortsätt"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            RU: {
                ru: {
                    windowMessage: "Не отображается безопасная страница PayPal в браузере? Мы поможем вам повторно загрузить окно, чтобы завершить покупку.",
                    continue: "Продолжить"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            RO: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            PT: {
                pt: {
                    windowMessage: "Não vê a indicação de sessão segura PayPal no browser? Vamos ajudar a reabrir a janela para que possa concluir a sua compra.",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            PL: {
                pl: {
                    windowMessage: "Nie widzisz bezpiecznej przeglądarki PayPal? Pomożemy Ci ponownie uruchomić to okno w celu dokonania zakupu.  ",
                    continue: "Kontynuuj"
                },
                en: {
                    windowMessage: "You don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            PH: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your payment.  ",
                    continue: "Continue"
                }
            },
            NZ: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成付款。  ",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à relancer la fenêtre pour effectuer votre paiement.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Le ayudaremos a abrir de nuevo la ventana para completar su pago.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your payment.  ",
                    continue: "Continue"
                }
            },
            NO: {
                no: {
                    windowMessage: "Ser du ikke den sikre PayPal-nettleseren? Vi hjelper deg med å starte vinduet på nytt så du kan fullføre kjøpet.  ",
                    continue: "Fortsett"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            NL: {
                nl: {
                    windowMessage: "Ziet u geen beveiligde PayPal-browser? We helpen u het venster opnieuw te openen om uw aankoop te voltooien.  ",
                    continue: "Doorgaan"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            MY: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your payment.  ",
                    continue: "Continue"
                }
            },
            MX: {
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            LV: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                ru: {
                    windowMessage: "Не отображается безопасная страница PayPal в браузере? Мы поможем вам повторно загрузить окно, чтобы завершить покупку.  ",
                    continue: "Продолжить"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            LU: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                de: {
                    windowMessage: "Das PayPal-Fenster wird nicht angezeigt? Hier können Sie es wieder öffnen und Ihren Einkauf abschließen.",
                    continue: "Weiter"
                }
            },
            LT: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                ru: {
                    windowMessage: "Не отображается безопасная страница PayPal в браузере? Мы поможем вам повторно загрузить окно, чтобы завершить покупку.  ",
                    continue: "Продолжить"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            KR: {
                ko: {
                    windowMessage: "보안 PayPal 브라우저가 보이지 않으신가요? 창을 다시 실행하여 결제를 완료할 수 있도록 도와드리겠습니다.  ",
                    continue: "계속"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your payment.  ",
                    continue: "Continue"
                }
            },
            JP: {
                ja: {
                    windowMessage: "セキュアなブラウザが表示されない場合は、ウィンドウを再起動して、支払いを完了できるようお手伝いいたします。",
                    continue: "続行"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your payment.  ",
                    continue: "Continue"
                }
            },
            IT: {
                it: {
                    windowMessage: "Non vedi la pagina sicura di PayPal? Ti aiuteremo a riaprire la finestra per completare l'acquisto.  ",
                    continue: "Continua"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            IN: {
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            IL: {
                he: {
                    windowMessage: "לא רואה את דפדפן PayPal המאובטח? נעזור לך לפתוח מחדש את החלון כדי להשלים את הקנייה שלך.  ",
                    continue: "המשך"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            IE: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            HU: {
                hu: {
                    windowMessage: "Nem látja a biztonságos PayPal-böngészőt? Segítünk újra betölteni az ablakot, hogy befejezhesse a vásárlást.  ",
                    continue: "Folytatás"
                },
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            ID: {
                id: {
                    windowMessage: "Browser PayPal yang aman tidak terlihat? Kami akan membantu menampilkan ulang jendela untuk menyelesaikan pembayaran Anda.  ",
                    continue: "Lanjutkan"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your payment.  ",
                    continue: "Continue"
                }
            },
            HK: {
                zh: {
                    windowMessage: "看不到安全的 PayPal 瀏覽器視窗?我們會助你重新開啟視窗,以完成付款。",
                    continue: "繼續"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your payment.  ",
                    continue: "Continue"
                }
            },
            "GROUP-LATAM": {
                zh: {
                    windowMessage: "没看到PayPal付款页面?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas la page de Paiement PayPal ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No puede ver la página de pago de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don’t see the PayPal payment page? We’ll help you re-launch the window to complete your purchase.",
                    continue: "Continue"
                }
            },
            "GROUP-EMEA": {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                ru: {
                    windowMessage: "Не отображается безопасная страница PayPal в браузере? Мы поможем вам повторно загрузить окно, чтобы завершить покупку.  ",
                    continue: "Продолжить"
                },
                pt: {
                    windowMessage: "Não vê a indicação de sessão segura PayPal no browser? Vamos ajudar a reabrir a janela para que possa concluir a sua compra.",
                    continue: "Continuar"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                de: {
                    windowMessage: "Sie sehen das sichere Browserfenster von PayPal nicht? Hier können Sie es wieder öffnen und Ihren Einkauf abschließen.",
                    continue: "Weiter"
                },
                da: {
                    windowMessage: "Kan du ikke se PayPals sikre browser? Vi hjælper dig med at genstarte vinduet, så du kan betale.",
                    continue: "Fortsæt"
                },
                ar: {
                    windowMessage: "لا ترى متصفح PayPal الآمن؟ سنساعدك في إعادة فتح النافذة لاستكمال مشترياتك.   ",
                    continue: "متابعة"
                }
            },
            "GROUP-APAC": {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。",
                    continue: "继续"
                },
                ko: {
                    windowMessage: "보안 PayPal 브라우저가 보이지 않으신가요? 창을 다시 실행하여 구매를 완료할 수 있도록 도와드리겠습니다. ",
                    continue: "계속"
                },
                id: {
                    windowMessage: "Browser PayPal yang aman tidak terlihat? Kami akan membantu menampilkan ulang jendela untuk menyelesaikan pembelian Anda. ",
                    continue: "Lanjutkan"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat. ",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda completar su compra. ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            GR: {
                el: {
                    windowMessage: "Δεν βλέπετε το ασφαλές πρόγραμμα περιήγησης PayPal; Θα σας βοηθήσουμε να επανεκκινήσετε το παράθυρο για να ολοκληρώσετε την αγορά σας.  ",
                    continue: "Συνέχεια"
                },
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            FR: {
                fr: {
                    windowMessage: "Vous ne voyez pas le navigateur sécurisé PayPal ? Nous allons vous aider à relancer la fenêtre pour effectuer votre achat.  ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            ES: {
                es: {
                    windowMessage: "¿No ve el símbolo de navegación segura de PayPal? Le ayudaremos a abrir de nuevo la ventana para completar la compra. ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            FI: {
                fi: {
                    windowMessage: "Eikö suojattua PayPal-selainta näy? Autamme avaamaan ikkunan uudelleen oston viimeistelyä varten.  ",
                    continue: "Jatka"
                },
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            EE: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                ru: {
                    windowMessage: "Не отображается безопасная страница PayPal в браузере? Мы поможем вам повторно загрузить окно, чтобы завершить покупку.  ",
                    continue: "Продолжить"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            DK: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                da: {
                    windowMessage: "Kan du ikke se PayPals sikre browser? Vi hjælper dig med at genstarte vinduet, så du kan betale.",
                    continue: "Fortsæt"
                }
            },
            CZ: {
                cs: {
                    windowMessage: "Nezobrazuje se vám bezpečný prohlížeč PayPal? Pomůžeme vám okno znovu otevřít, abyste mohli nákup dokončit.",
                    continue: "Pokračovat"
                },
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成购物。  ",
                    continue: "继续"
                },
                fr: {
                    windowMessage: "Le navigateur sécurisé de PayPal n'apparaît pas ? Nous allons vous aider à rouvrir la fenêtre pour finaliser votre achat.",
                    continue: "Continuer"
                },
                es: {
                    windowMessage: "¿No ve el navegador seguro de PayPal? Abriremos la ventana nuevamente para que pueda concluir su compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            DE: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                de: {
                    windowMessage: "Sie sehen das sichere Browserfenster von PayPal nicht? Hier können Sie es wieder öffnen und Ihren Einkauf abschließen.",
                    continue: "Weiter"
                }
            },
            CH: {
                fr: {
                    windowMessage: "Vous ne voyez pas le navigateur sécurisé PayPal ? Nous allons vous aider à relancer la fenêtre pour effectuer votre achat.  ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                },
                de: {
                    windowMessage: "Sie sehen das sichere Browserfenster von PayPal nicht? Hier können Sie es wieder öffnen und Ihren Einkauf abschließen.",
                    continue: "Weiter"
                }
            },
            CA: {
                fr: {
                    windowMessage: "Vous ne voyez pas le navigateur sécurisé de PayPal ? Nous vous aiderons à relancer la fenêtre afin d'effectuer votre achat.  ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you relaunch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            C2: {
                zh: {
                    windowMessage: "没有找到安全的PayPal浏览器?我们将帮助您重启窗口以完成付款。  ",
                    continue: "继续"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your payment.  ",
                    continue: "Continue"
                }
            },
            BE: {
                nl: {
                    windowMessage: "Ziet u de beveiligde PayPal-browser niet? We helpen u het venster opnieuw te openen om uw aankoop te voltooien.  ",
                    continue: "Doorgaan"
                },
                fr: {
                    windowMessage: "Vous ne voyez pas le navigateur sécurisé PayPal ? Nous allons vous aider à relancer la fenêtre pour effectuer votre achat.  ",
                    continue: "Continuer"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            BR: {
                pt: {
                    windowMessage: "Não está vendo o navegador seguro do PayPal? Ajudaremos você a reabrir a janela para concluir a compra.  ",
                    continue: "Continuar"
                },
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            },
            AU: {
                en: {
                    windowMessage: "Don't see the secure PayPal browser? We'll help you re-launch the window to complete your purchase.  ",
                    continue: "Continue"
                }
            }
        };
    }, function(module, exports, __webpack_require__) {
        var __WEBPACK_AMD_DEFINE_RESULT__;
        !function() {
            "use strict";
            var root = "object" == typeof window ? window : {};
            !root.HI_BASE32_NO_NODE_JS && "object" == typeof process && process.versions && process.versions.node && (root = window);
            var COMMON_JS = !root.HI_BASE32_NO_COMMON_JS && "object" == typeof module && module.exports;
            var AMD = __webpack_require__(42);
            var BASE32_ENCODE_CHAR = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567".split("");
            var BASE32_DECODE_CHAR = {
                A: 0,
                B: 1,
                C: 2,
                D: 3,
                E: 4,
                F: 5,
                G: 6,
                H: 7,
                I: 8,
                J: 9,
                K: 10,
                L: 11,
                M: 12,
                N: 13,
                O: 14,
                P: 15,
                Q: 16,
                R: 17,
                S: 18,
                T: 19,
                U: 20,
                V: 21,
                W: 22,
                X: 23,
                Y: 24,
                Z: 25,
                2: 26,
                3: 27,
                4: 28,
                5: 29,
                6: 30,
                7: 31
            };
            var blocks = [ 0, 0, 0, 0, 0, 0, 0, 0 ];
            var throwInvalidUtf8 = function(position, partial) {
                partial.length > 10 && (partial = "..." + partial.substr(-10));
                var err = new Error("Decoded data is not valid UTF-8. Maybe try base32.decode.asBytes()? Partial data after reading " + position + " bytes: " + partial + " <-");
                err.position = position;
                throw err;
            };
            var decodeAsBytes = function(base32Str) {
                if ("" === base32Str) return [];
                if (!/^[A-Z2-7=]+$/.test(base32Str)) throw new Error("Invalid base32 characters");
                var v1, v2, v3, v4, v5, v6, v7, v8, bytes = [], index = 0, length = (base32Str = base32Str.replace(/=/g, "")).length;
                for (var i = 0, count = length >> 3 << 3; i < count; ) {
                    v1 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v2 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v3 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v4 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v5 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v6 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v7 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v8 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    bytes[index++] = 255 & (v1 << 3 | v2 >>> 2);
                    bytes[index++] = 255 & (v2 << 6 | v3 << 1 | v4 >>> 4);
                    bytes[index++] = 255 & (v4 << 4 | v5 >>> 1);
                    bytes[index++] = 255 & (v5 << 7 | v6 << 2 | v7 >>> 3);
                    bytes[index++] = 255 & (v7 << 5 | v8);
                }
                var remain = length - count;
                if (2 === remain) {
                    v1 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v2 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    bytes[index++] = 255 & (v1 << 3 | v2 >>> 2);
                } else if (4 === remain) {
                    v1 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v2 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v3 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v4 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    bytes[index++] = 255 & (v1 << 3 | v2 >>> 2);
                    bytes[index++] = 255 & (v2 << 6 | v3 << 1 | v4 >>> 4);
                } else if (5 === remain) {
                    v1 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v2 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v3 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v4 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v5 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    bytes[index++] = 255 & (v1 << 3 | v2 >>> 2);
                    bytes[index++] = 255 & (v2 << 6 | v3 << 1 | v4 >>> 4);
                    bytes[index++] = 255 & (v4 << 4 | v5 >>> 1);
                } else if (7 === remain) {
                    v1 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v2 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v3 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v4 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v5 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v6 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v7 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    bytes[index++] = 255 & (v1 << 3 | v2 >>> 2);
                    bytes[index++] = 255 & (v2 << 6 | v3 << 1 | v4 >>> 4);
                    bytes[index++] = 255 & (v4 << 4 | v5 >>> 1);
                    bytes[index++] = 255 & (v5 << 7 | v6 << 2 | v7 >>> 3);
                }
                return bytes;
            };
            var decode = function(base32Str, asciiOnly) {
                if (!asciiOnly) return function(bytes) {
                    var b, c, str = "", length = bytes.length, i = 0, followingChars = 0;
                    for (;i < length; ) if ((b = bytes[i++]) <= 127) str += String.fromCharCode(b); else {
                        if (b > 191 && b <= 223) {
                            c = 31 & b;
                            followingChars = 1;
                        } else if (b <= 239) {
                            c = 15 & b;
                            followingChars = 2;
                        } else if (b <= 247) {
                            c = 7 & b;
                            followingChars = 3;
                        } else throwInvalidUtf8(i, str);
                        for (var j = 0; j < followingChars; ++j) {
                            ((b = bytes[i++]) < 128 || b > 191) && throwInvalidUtf8(i, str);
                            c <<= 6;
                            c += 63 & b;
                        }
                        c >= 55296 && c <= 57343 && throwInvalidUtf8(i, str);
                        c > 1114111 && throwInvalidUtf8(i, str);
                        if (c <= 65535) str += String.fromCharCode(c); else {
                            c -= 65536;
                            str += String.fromCharCode(55296 + (c >> 10));
                            str += String.fromCharCode(56320 + (1023 & c));
                        }
                    }
                    return str;
                }(decodeAsBytes(base32Str));
                if ("" === base32Str) return "";
                if (!/^[A-Z2-7=]+$/.test(base32Str)) throw new Error("Invalid base32 characters");
                var v1, v2, v3, v4, v5, v6, v7, v8, str = "", length = base32Str.indexOf("=");
                -1 === length && (length = base32Str.length);
                for (var i = 0, count = length >> 3 << 3; i < count; ) {
                    v1 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v2 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v3 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v4 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v5 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v6 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v7 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v8 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    str += String.fromCharCode(255 & (v1 << 3 | v2 >>> 2)) + String.fromCharCode(255 & (v2 << 6 | v3 << 1 | v4 >>> 4)) + String.fromCharCode(255 & (v4 << 4 | v5 >>> 1)) + String.fromCharCode(255 & (v5 << 7 | v6 << 2 | v7 >>> 3)) + String.fromCharCode(255 & (v7 << 5 | v8));
                }
                var remain = length - count;
                if (2 === remain) {
                    v1 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v2 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    str += String.fromCharCode(255 & (v1 << 3 | v2 >>> 2));
                } else if (4 === remain) {
                    v1 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v2 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v3 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v4 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    str += String.fromCharCode(255 & (v1 << 3 | v2 >>> 2)) + String.fromCharCode(255 & (v2 << 6 | v3 << 1 | v4 >>> 4));
                } else if (5 === remain) {
                    v1 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v2 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v3 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v4 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v5 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    str += String.fromCharCode(255 & (v1 << 3 | v2 >>> 2)) + String.fromCharCode(255 & (v2 << 6 | v3 << 1 | v4 >>> 4)) + String.fromCharCode(255 & (v4 << 4 | v5 >>> 1));
                } else if (7 === remain) {
                    v1 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v2 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v3 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v4 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v5 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v6 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    v7 = BASE32_DECODE_CHAR[base32Str.charAt(i++)];
                    str += String.fromCharCode(255 & (v1 << 3 | v2 >>> 2)) + String.fromCharCode(255 & (v2 << 6 | v3 << 1 | v4 >>> 4)) + String.fromCharCode(255 & (v4 << 4 | v5 >>> 1)) + String.fromCharCode(255 & (v5 << 7 | v6 << 2 | v7 >>> 3));
                }
                return str;
            };
            var exports = {
                encode: function(input, asciiOnly) {
                    var notString = "string" != typeof input;
                    notString && input.constructor === ArrayBuffer && (input = new Uint8Array(input));
                    return notString ? function(bytes) {
                        var v1, v2, v3, v4, v5, base32Str = "", length = bytes.length;
                        for (var i = 0, count = 5 * parseInt(length / 5); i < count; ) {
                            v1 = bytes[i++];
                            v2 = bytes[i++];
                            v3 = bytes[i++];
                            v4 = bytes[i++];
                            v5 = bytes[i++];
                            base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[31 & (v1 << 2 | v2 >>> 6)] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[31 & (v2 << 4 | v3 >>> 4)] + BASE32_ENCODE_CHAR[31 & (v3 << 1 | v4 >>> 7)] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[31 & (v4 << 3 | v5 >>> 5)] + BASE32_ENCODE_CHAR[31 & v5];
                        }
                        var remain = length - count;
                        if (1 === remain) base32Str += BASE32_ENCODE_CHAR[(v1 = bytes[i]) >>> 3] + BASE32_ENCODE_CHAR[v1 << 2 & 31] + "======"; else if (2 === remain) {
                            v1 = bytes[i++];
                            base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[31 & (v1 << 2 | (v2 = bytes[i]) >>> 6)] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[v2 << 4 & 31] + "====";
                        } else if (3 === remain) {
                            v1 = bytes[i++];
                            v2 = bytes[i++];
                            base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[31 & (v1 << 2 | v2 >>> 6)] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[31 & (v2 << 4 | (v3 = bytes[i]) >>> 4)] + BASE32_ENCODE_CHAR[v3 << 1 & 31] + "===";
                        } else if (4 === remain) {
                            v1 = bytes[i++];
                            v2 = bytes[i++];
                            v3 = bytes[i++];
                            base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[31 & (v1 << 2 | v2 >>> 6)] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[31 & (v2 << 4 | v3 >>> 4)] + BASE32_ENCODE_CHAR[31 & (v3 << 1 | (v4 = bytes[i]) >>> 7)] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[v4 << 3 & 31] + "=";
                        }
                        return base32Str;
                    }(input) : asciiOnly ? function(str) {
                        var v1, v2, v3, v4, v5, base32Str = "", length = str.length;
                        for (var i = 0, count = 5 * parseInt(length / 5); i < count; ) {
                            v1 = str.charCodeAt(i++);
                            v2 = str.charCodeAt(i++);
                            v3 = str.charCodeAt(i++);
                            v4 = str.charCodeAt(i++);
                            v5 = str.charCodeAt(i++);
                            base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[31 & (v1 << 2 | v2 >>> 6)] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[31 & (v2 << 4 | v3 >>> 4)] + BASE32_ENCODE_CHAR[31 & (v3 << 1 | v4 >>> 7)] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[31 & (v4 << 3 | v5 >>> 5)] + BASE32_ENCODE_CHAR[31 & v5];
                        }
                        var remain = length - count;
                        if (1 === remain) {
                            v1 = str.charCodeAt(i);
                            base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[v1 << 2 & 31] + "======";
                        } else if (2 === remain) {
                            v1 = str.charCodeAt(i++);
                            v2 = str.charCodeAt(i);
                            base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[31 & (v1 << 2 | v2 >>> 6)] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[v2 << 4 & 31] + "====";
                        } else if (3 === remain) {
                            v1 = str.charCodeAt(i++);
                            v2 = str.charCodeAt(i++);
                            v3 = str.charCodeAt(i);
                            base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[31 & (v1 << 2 | v2 >>> 6)] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[31 & (v2 << 4 | v3 >>> 4)] + BASE32_ENCODE_CHAR[v3 << 1 & 31] + "===";
                        } else if (4 === remain) {
                            v1 = str.charCodeAt(i++);
                            v2 = str.charCodeAt(i++);
                            v3 = str.charCodeAt(i++);
                            v4 = str.charCodeAt(i);
                            base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[31 & (v1 << 2 | v2 >>> 6)] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[31 & (v2 << 4 | v3 >>> 4)] + BASE32_ENCODE_CHAR[31 & (v3 << 1 | v4 >>> 7)] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[v4 << 3 & 31] + "=";
                        }
                        return base32Str;
                    }(input) : function(str) {
                        var v1, v2, v3, v4, v5, code, i, end = !1, base32Str = "", index = 0, start = 0, length = str.length;
                        if ("" === str) return base32Str;
                        do {
                            blocks[0] = blocks[5];
                            blocks[1] = blocks[6];
                            blocks[2] = blocks[7];
                            for (i = start; index < length && i < 5; ++index) if ((code = str.charCodeAt(index)) < 128) blocks[i++] = code; else if (code < 2048) {
                                blocks[i++] = 192 | code >> 6;
                                blocks[i++] = 128 | 63 & code;
                            } else if (code < 55296 || code >= 57344) {
                                blocks[i++] = 224 | code >> 12;
                                blocks[i++] = 128 | code >> 6 & 63;
                                blocks[i++] = 128 | 63 & code;
                            } else {
                                code = 65536 + ((1023 & code) << 10 | 1023 & str.charCodeAt(++index));
                                blocks[i++] = 240 | code >> 18;
                                blocks[i++] = 128 | code >> 12 & 63;
                                blocks[i++] = 128 | code >> 6 & 63;
                                blocks[i++] = 128 | 63 & code;
                            }
                            start = i - 5;
                            index === length && ++index;
                            index > length && i < 6 && (end = !0);
                            v1 = blocks[0];
                            base32Str += i > 4 ? BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[31 & (v1 << 2 | (v2 = blocks[1]) >>> 6)] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[31 & (v2 << 4 | (v3 = blocks[2]) >>> 4)] + BASE32_ENCODE_CHAR[31 & (v3 << 1 | (v4 = blocks[3]) >>> 7)] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[31 & (v4 << 3 | (v5 = blocks[4]) >>> 5)] + BASE32_ENCODE_CHAR[31 & v5] : 1 === i ? BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[v1 << 2 & 31] + "======" : 2 === i ? BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[31 & (v1 << 2 | (v2 = blocks[1]) >>> 6)] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[v2 << 4 & 31] + "====" : 3 === i ? BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[31 & (v1 << 2 | (v2 = blocks[1]) >>> 6)] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[31 & (v2 << 4 | (v3 = blocks[2]) >>> 4)] + BASE32_ENCODE_CHAR[v3 << 1 & 31] + "===" : BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[31 & (v1 << 2 | (v2 = blocks[1]) >>> 6)] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[31 & (v2 << 4 | (v3 = blocks[2]) >>> 4)] + BASE32_ENCODE_CHAR[31 & (v3 << 1 | (v4 = blocks[3]) >>> 7)] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[v4 << 3 & 31] + "=";
                        } while (!end);
                        return base32Str;
                    }(input);
                },
                decode: decode
            };
            decode.asBytes = decodeAsBytes;
            if (COMMON_JS) module.exports = exports; else {
                root.base32 = exports;
                AMD && void 0 !== (__WEBPACK_AMD_DEFINE_RESULT__ = function() {
                    return exports;
                }.call(exports, __webpack_require__, exports, module)) && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__);
            }
        }();
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return script;
        }));
        var script = {
            global: function() {
                return window.document;
            },
            register: function register(component, document) {
                function render(element) {
                    if (element && element.tagName && "script" === element.tagName.toLowerCase() && element.attributes.type && "application/x-component" === element.attributes.type.value && element.parentNode) {
                        var tag = element.getAttribute("data-component");
                        if (tag && tag === component.tag) {
                            component.log("instantiate_script_component");
                            var props = element.innerText ? eval("(" + element.innerText + ")") : {};
                            var container = document.createElement("div");
                            if (!element.parentNode) throw new Error("Element has no parent");
                            element.parentNode.replaceChild(container, element);
                            component.render(props, container);
                        }
                    }
                }
                function scan() {
                    var scriptTags = [].slice.call(document.getElementsByTagName("script"));
                    for (var _i2 = 0; _i2 < scriptTags.length; _i2++) render(scriptTags[_i2]);
                }
                scan();
                document.addEventListener("DOMContentLoaded", scan);
                window.addEventListener("load", scan);
                document.addEventListener("DOMNodeInserted", (function(event) {
                    render(event.target);
                }));
            }
        };
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return react;
        }));
        var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
        var _lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);
        var react = {
            global: function() {
                if (window.React && window.ReactDOM) return {
                    React: window.React,
                    ReactDOM: window.ReactDOM
                };
            },
            register: function(component, _ref) {
                var React = _ref.React, ReactDOM = _ref.ReactDOM;
                component.react = React.createClass ? React.createClass({
                    displayName: "react",
                    render: function() {
                        return React.createElement("div", null);
                    },
                    componentDidMount: function() {
                        component.log("instantiate_react_component");
                        var el = ReactDOM.findDOMNode(this);
                        var parent = component.init(Object(_lib__WEBPACK_IMPORTED_MODULE_1__.q)({}, this.props), null, el);
                        this.setState({
                            parent: parent
                        });
                        parent.render(el);
                    },
                    componentDidUpdate: function() {
                        this.state && this.state.parent && this.state.parent.updateProps(Object(_lib__WEBPACK_IMPORTED_MODULE_1__.q)({}, this.props));
                    },
                    componentWillUnmount: function() {
                        this.state && this.state.parent && this.state.parent.destroy();
                    }
                }) : function(_React$Component) {
                    Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__.a)(_class, _React$Component);
                    function _class() {
                        return _React$Component.apply(this, arguments) || this;
                    }
                    var _proto = _class.prototype;
                    _proto.render = function() {
                        return React.createElement("div", null);
                    };
                    _proto.componentDidMount = function() {
                        component.log("instantiate_react_component");
                        var el = ReactDOM.findDOMNode(this);
                        var parent = component.init(Object(_lib__WEBPACK_IMPORTED_MODULE_1__.q)({}, this.props), null, el);
                        this.setState({
                            parent: parent
                        });
                        parent.render(el);
                    };
                    _proto.componentDidUpdate = function() {
                        this.state && this.state.parent && this.state.parent.updateProps(Object(_lib__WEBPACK_IMPORTED_MODULE_1__.q)({}, this.props));
                    };
                    _proto.componentWillUnmount = function() {
                        this.state && this.state.parent && this.state.parent.destroy();
                    };
                    return _class;
                }(React.Component);
                return component.react;
            }
        };
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return vue;
        }));
        var _lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6);
        var vue = {
            global: function() {},
            register: function(component) {
                return {
                    render: function(createElement) {
                        return createElement("div");
                    },
                    inheritAttrs: !1,
                    mounted: function() {
                        var el = this.$el;
                        this.parent = component.init(Object(_lib__WEBPACK_IMPORTED_MODULE_0__.q)({}, this.$attrs), null, el);
                        this.parent.render(el);
                    },
                    beforeUpdate: function() {
                        this.parent && this.$attrs && this.parent.updateProps(Object(_lib__WEBPACK_IMPORTED_MODULE_0__.q)({}, this.$attrs));
                    }
                };
            }
        };
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return angular;
        }));
        var _lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6);
        var angular = {
            global: function() {
                return window.angular;
            },
            register: function(component, ng) {
                return ng.module(component.tag, []).directive(Object(_lib__WEBPACK_IMPORTED_MODULE_0__.h)(component.tag), (function() {
                    var scope = {};
                    for (var _i2 = 0, _component$getPropNam2 = component.getPropNames(); _i2 < _component$getPropNam2.length; _i2++) scope[_component$getPropNam2[_i2]] = "=";
                    component.looseProps && (scope.props = "=");
                    return {
                        scope: scope,
                        restrict: "E",
                        controller: [ "$scope", "$element", function($scope, $element) {
                            if (component.looseProps && !$scope.props) throw new Error("For angular bindings to work, prop definitions must be passed to zoid.create");
                            component.log("instantiate_angular_component");
                            function safeApply() {
                                if ("$apply" !== $scope.$root.$$phase && "$digest" !== $scope.$root.$$phase) try {
                                    $scope.$apply();
                                } catch (err) {}
                            }
                            var getProps = function() {
                                var scopeProps;
                                if ($scope.props) scopeProps = $scope.props; else {
                                    scopeProps = {};
                                    for (var _i4 = 0, _Object$keys2 = Object.keys(scope); _i4 < _Object$keys2.length; _i4++) {
                                        var _key = _Object$keys2[_i4];
                                        void 0 !== $scope[_key] && (scopeProps[_key] = $scope[_key]);
                                    }
                                }
                                return Object(_lib__WEBPACK_IMPORTED_MODULE_0__.M)(scopeProps, {
                                    function: function(value) {
                                        return function() {
                                            var result = value.apply(this, arguments);
                                            safeApply();
                                            return result;
                                        };
                                    }
                                });
                            };
                            var parent = component.init(getProps(), null, $element[0]);
                            parent.render($element[0]);
                            $scope.$watch((function() {
                                parent.updateProps(getProps());
                            }));
                        } ]
                    };
                }));
            }
        };
    }, function(module, exports) {}, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return glimmer;
        }));
        var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
        var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);
        var glimmer = {
            global: function() {},
            register: function(component, GlimmerComponent) {
                return function(_GlimmerComponent) {
                    Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__.a)(_class, _GlimmerComponent);
                    function _class() {
                        return _GlimmerComponent.apply(this, arguments) || this;
                    }
                    _class.prototype.didInsertElement = function() {
                        component.render(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__.a)({}, this.args), this.element);
                    };
                    return _class;
                }(GlimmerComponent);
            }
        };
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.d(__webpack_exports__, "a", (function() {
            return angular2;
        }));
        var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
        var _lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);
        var angular2 = {
            global: function() {},
            register: function(zoid, _ref) {
                var AngularComponent = _ref.Component, NgModule = _ref.NgModule, ElementRef = _ref.ElementRef, NgZone = _ref.NgZone;
                zoid.log("initializing angular2 component");
                var getProps = function(component) {
                    return Object(_lib__WEBPACK_IMPORTED_MODULE_1__.M)(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__.a)({}, component.internalProps, component.props), {
                        function: function(value) {
                            if ("function" == typeof value) return function() {
                                var _arguments = arguments, _this = this;
                                return component.zone.run((function() {
                                    return value.apply(_this, _arguments);
                                }));
                            };
                        }
                    });
                };
                var ComponentInstance = AngularComponent({
                    selector: zoid.tag,
                    template: "<div></div>",
                    inputs: [ "props" ]
                }).Class({
                    constructor: [ ElementRef, NgZone, function(elementRef, zone) {
                        this.elementRef = elementRef;
                        this.zone = zone;
                    } ],
                    ngOnInit: function() {
                        var targetElement = this.elementRef.nativeElement;
                        var parent = zoid.init(getProps(this), null, targetElement);
                        parent.render(targetElement);
                        this.parent = parent;
                    },
                    ngOnChanges: function() {
                        this.parent && this.parent.updateProps(getProps(this));
                    }
                });
                return NgModule({
                    declarations: [ ComponentInstance ],
                    exports: [ ComponentInstance ]
                }).Class({
                    constructor: function() {}
                });
            }
        };
    }, function(module, exports, __webpack_require__) {
        !function(e, t, n) {
            module.exports ? module.exports = n() : __webpack_require__(43)("bowser", n);
        }(0, 0, (function() {
            function t(t) {
                function n(e) {
                    var n = t.match(e);
                    return n && n.length > 1 && n[1] || "";
                }
                function r(e) {
                    var n = t.match(e);
                    return n && n.length > 1 && n[2] || "";
                }
                var N, i = n(/(ipod|iphone|ipad)/i).toLowerCase(), u = !/like android/i.test(t) && /android/i.test(t), a = /nexus\s*[0-6]\s*/i.test(t), f = !a && /nexus\s*[0-9]+/i.test(t), l = /CrOS/.test(t), c = /silk/i.test(t), h = /sailfish/i.test(t), p = /tizen/i.test(t), d = /(web|hpw)(o|0)s/i.test(t), v = /windows phone/i.test(t), g = (/SamsungBrowser/i.test(t), 
                !v && /windows/i.test(t)), y = !i && !c && /macintosh/i.test(t), b = !u && !h && !p && !d && /linux/i.test(t), w = r(/edg([ea]|ios)\/(\d+(\.\d+)?)/i), E = n(/version\/(\d+(\.\d+)?)/i), S = /tablet/i.test(t) && !/tablet pc/i.test(t), x = !S && /[^-]mobi/i.test(t), T = /xbox/i.test(t);
                /opera/i.test(t) ? N = {
                    name: "Opera",
                    opera: e,
                    version: E || n(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)
                } : /opr\/|opios/i.test(t) ? N = {
                    name: "Opera",
                    opera: e,
                    version: n(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i) || E
                } : /SamsungBrowser/i.test(t) ? N = {
                    name: "Samsung Internet for Android",
                    samsungBrowser: e,
                    version: E || n(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)
                } : /Whale/i.test(t) ? N = {
                    name: "NAVER Whale browser",
                    whale: e,
                    version: n(/(?:whale)[\s\/](\d+(?:\.\d+)+)/i)
                } : /MZBrowser/i.test(t) ? N = {
                    name: "MZ Browser",
                    mzbrowser: e,
                    version: n(/(?:MZBrowser)[\s\/](\d+(?:\.\d+)+)/i)
                } : /coast/i.test(t) ? N = {
                    name: "Opera Coast",
                    coast: e,
                    version: E || n(/(?:coast)[\s\/](\d+(\.\d+)?)/i)
                } : /focus/i.test(t) ? N = {
                    name: "Focus",
                    focus: e,
                    version: n(/(?:focus)[\s\/](\d+(?:\.\d+)+)/i)
                } : /yabrowser/i.test(t) ? N = {
                    name: "Yandex Browser",
                    yandexbrowser: e,
                    version: E || n(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)
                } : /ucbrowser/i.test(t) ? N = {
                    name: "UC Browser",
                    ucbrowser: e,
                    version: n(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i)
                } : /mxios/i.test(t) ? N = {
                    name: "Maxthon",
                    maxthon: e,
                    version: n(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i)
                } : /epiphany/i.test(t) ? N = {
                    name: "Epiphany",
                    epiphany: e,
                    version: n(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i)
                } : /puffin/i.test(t) ? N = {
                    name: "Puffin",
                    puffin: e,
                    version: n(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i)
                } : /sleipnir/i.test(t) ? N = {
                    name: "Sleipnir",
                    sleipnir: e,
                    version: n(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i)
                } : /k-meleon/i.test(t) ? N = {
                    name: "K-Meleon",
                    kMeleon: e,
                    version: n(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i)
                } : v ? (N = {
                    name: "Windows Phone",
                    osname: "Windows Phone",
                    windowsphone: e
                }, w ? (N.msedge = e, N.version = w) : (N.msie = e, N.version = n(/iemobile\/(\d+(\.\d+)?)/i))) : /msie|trident/i.test(t) ? N = {
                    name: "Internet Explorer",
                    msie: e,
                    version: n(/(?:msie |rv:)(\d+(\.\d+)?)/i)
                } : l ? N = {
                    name: "Chrome",
                    osname: "Chrome OS",
                    chromeos: e,
                    chromeBook: e,
                    chrome: e,
                    version: n(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)
                } : /edg([ea]|ios)/i.test(t) ? N = {
                    name: "Microsoft Edge",
                    msedge: e,
                    version: w
                } : /vivaldi/i.test(t) ? N = {
                    name: "Vivaldi",
                    vivaldi: e,
                    version: n(/vivaldi\/(\d+(\.\d+)?)/i) || E
                } : h ? N = {
                    name: "Sailfish",
                    osname: "Sailfish OS",
                    sailfish: e,
                    version: n(/sailfish\s?browser\/(\d+(\.\d+)?)/i)
                } : /seamonkey\//i.test(t) ? N = {
                    name: "SeaMonkey",
                    seamonkey: e,
                    version: n(/seamonkey\/(\d+(\.\d+)?)/i)
                } : /firefox|iceweasel|fxios/i.test(t) ? (N = {
                    name: "Firefox",
                    firefox: e,
                    version: n(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)
                }, /\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(t) && (N.firefoxos = e, N.osname = "Firefox OS")) : c ? N = {
                    name: "Amazon Silk",
                    silk: e,
                    version: n(/silk\/(\d+(\.\d+)?)/i)
                } : /phantom/i.test(t) ? N = {
                    name: "PhantomJS",
                    phantom: e,
                    version: n(/phantomjs\/(\d+(\.\d+)?)/i)
                } : /slimerjs/i.test(t) ? N = {
                    name: "SlimerJS",
                    slimer: e,
                    version: n(/slimerjs\/(\d+(\.\d+)?)/i)
                } : /blackberry|\bbb\d+/i.test(t) || /rim\stablet/i.test(t) ? N = {
                    name: "BlackBerry",
                    osname: "BlackBerry OS",
                    blackberry: e,
                    version: E || n(/blackberry[\d]+\/(\d+(\.\d+)?)/i)
                } : d ? (N = {
                    name: "WebOS",
                    osname: "WebOS",
                    webos: e,
                    version: E || n(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)
                }, /touchpad\//i.test(t) && (N.touchpad = e)) : /bada/i.test(t) ? N = {
                    name: "Bada",
                    osname: "Bada",
                    bada: e,
                    version: n(/dolfin\/(\d+(\.\d+)?)/i)
                } : p ? N = {
                    name: "Tizen",
                    osname: "Tizen",
                    tizen: e,
                    version: n(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i) || E
                } : /qupzilla/i.test(t) ? N = {
                    name: "QupZilla",
                    qupzilla: e,
                    version: n(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i) || E
                } : /chromium/i.test(t) ? N = {
                    name: "Chromium",
                    chromium: e,
                    version: n(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i) || E
                } : /chrome|crios|crmo/i.test(t) ? N = {
                    name: "Chrome",
                    chrome: e,
                    version: n(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)
                } : u ? N = {
                    name: "Android",
                    version: E
                } : /safari|applewebkit/i.test(t) ? (N = {
                    name: "Safari",
                    safari: e
                }, E && (N.version = E)) : i ? (N = {
                    name: "iphone" == i ? "iPhone" : "ipad" == i ? "iPad" : "iPod"
                }, E && (N.version = E)) : N = /googlebot/i.test(t) ? {
                    name: "Googlebot",
                    googlebot: e,
                    version: n(/googlebot\/(\d+(\.\d+))/i) || E
                } : {
                    name: n(/^(.*)\/(.*) /),
                    version: r(/^(.*)\/(.*) /)
                }, !N.msedge && /(apple)?webkit/i.test(t) ? (/(apple)?webkit\/537\.36/i.test(t) ? (N.name = N.name || "Blink", 
                N.blink = e) : (N.name = N.name || "Webkit", N.webkit = e), !N.version && E && (N.version = E)) : !N.opera && /gecko\//i.test(t) && (N.name = N.name || "Gecko", 
                N.gecko = e, N.version = N.version || n(/gecko\/(\d+(\.\d+)?)/i)), N.windowsphone || !u && !N.silk ? !N.windowsphone && i ? (N[i] = e, 
                N.ios = e, N.osname = "iOS") : y ? (N.mac = e, N.osname = "macOS") : T ? (N.xbox = e, 
                N.osname = "Xbox") : g ? (N.windows = e, N.osname = "Windows") : b && (N.linux = e, 
                N.osname = "Linux") : (N.android = e, N.osname = "Android");
                var k = "";
                N.windows ? k = function(e) {
                    switch (e) {
                      case "NT":
                        return "NT";

                      case "XP":
                        return "XP";

                      case "NT 5.0":
                        return "2000";

                      case "NT 5.1":
                        return "XP";

                      case "NT 5.2":
                        return "2003";

                      case "NT 6.0":
                        return "Vista";

                      case "NT 6.1":
                        return "7";

                      case "NT 6.2":
                        return "8";

                      case "NT 6.3":
                        return "8.1";

                      case "NT 10.0":
                        return "10";

                      default:
                        return;
                    }
                }(n(/Windows ((NT|XP)( \d\d?.\d)?)/i)) : N.windowsphone ? k = n(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i) : N.mac ? k = (k = n(/Mac OS X (\d+([_\.\s]\d+)*)/i)).replace(/[_\s]/g, ".") : i ? k = (k = n(/os (\d+([_\s]\d+)*) like mac os x/i)).replace(/[_\s]/g, ".") : u ? k = n(/android[ \/-](\d+(\.\d+)*)/i) : N.webos ? k = n(/(?:web|hpw)os\/(\d+(\.\d+)*)/i) : N.blackberry ? k = n(/rim\stablet\sos\s(\d+(\.\d+)*)/i) : N.bada ? k = n(/bada\/(\d+(\.\d+)*)/i) : N.tizen && (k = n(/tizen[\/\s](\d+(\.\d+)*)/i)), 
                k && (N.osversion = k);
                var L = !N.windows && k.split(".")[0];
                S || f || "ipad" == i || u && (3 == L || L >= 4 && !x) || N.silk ? N.tablet = e : (x || "iphone" == i || "ipod" == i || u || a || N.blackberry || N.webos || N.bada) && (N.mobile = e);
                return N.msedge || N.msie && N.version >= 10 || N.yandexbrowser && N.version >= 15 || N.vivaldi && N.version >= 1 || N.chrome && N.version >= 20 || N.samsungBrowser && N.version >= 4 || N.whale && 1 === s([ N.version, "1.0" ]) || N.mzbrowser && 1 === s([ N.version, "6.0" ]) || N.focus && 1 === s([ N.version, "1.0" ]) || N.firefox && N.version >= 20 || N.safari && N.version >= 6 || N.opera && N.version >= 10 || N.ios && N.osversion && N.osversion.split(".")[0] >= 6 || N.blackberry && N.version >= 10.1 || N.chromium && N.version >= 20 ? N.a = e : N.msie && N.version < 10 || N.chrome && N.version < 20 || N.firefox && N.version < 20 || N.safari && N.version < 6 || N.opera && N.version < 10 || N.ios && N.osversion && N.osversion.split(".")[0] < 6 || N.chromium && N.version < 20 ? N.c = e : N.x = e, 
                N;
            }
            function r(e) {
                return e.split(".").length;
            }
            function i(e, t) {
                var r, n = [];
                if ([].map) return [].map.call(e, t);
                for (r = 0; r < e.length; r++) n.push(t(e[r]));
                return n;
            }
            function s(e) {
                var t = Math.max(r(e[0]), r(e[1])), n = i(e, (function(e) {
                    var n = t - r(e);
                    return i((e += new Array(n + 1).join(".0")).split("."), (function(e) {
                        return new Array(20 - e.length).join("0") + e;
                    })).reverse();
                }));
                for (;--t >= 0; ) {
                    if (n[0][t] > n[1][t]) return 1;
                    if (n[0][t] !== n[1][t]) return -1;
                    if (0 === t) return 0;
                }
            }
            function o(e, r, i) {
                var o = n;
                "string" == typeof r && (i = r, r = void 0), void 0 === r && (r = !1), i && (o = t(i));
                var u = "" + o.version;
                for (var a in e) if (e.hasOwnProperty(a) && o[a]) {
                    if ("string" != typeof e[a]) throw new Error("Browser version in the minVersion map should be a string: " + a + ": " + String(e));
                    return s([ u, e[a] ]) < 0;
                }
                return r;
            }
            var e = !0, n = t("undefined" != typeof navigator && navigator.userAgent || "");
            return n.test = function(e) {
                for (var t = 0; t < e.length; ++t) {
                    var r = e[t];
                    if ("string" == typeof r && r in n) return !0;
                }
                return !1;
            }, n.isUnsupportedBrowser = o, n.compareVersions = s, n.check = function(e, t, n) {
                return !o(e, t, n);
            }, n._detect = t, n.detect = t, n;
        }));
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.r(__webpack_exports__);
        __webpack_require__.d(__webpack_exports__, "emulateIERestrictions", (function() {
            return emulateIERestrictions;
        }));
        var src = __webpack_require__(7);
        var conf = __webpack_require__(10);
        function emulateIERestrictions(sourceWindow, targetWindow) {
            if (!conf.a.ALLOW_POSTMESSAGE_POPUP && !1 === Object(src.w)(sourceWindow, targetWindow)) throw new Error("Can not send and receive post messages between two different windows (disabled to emulate IE)");
        }
    }, function(module, exports) {
        var k_r_submitter = /^(?:submit|button|image|reset|file)$/i;
        var k_r_success_contrls = /^(?:input|select|textarea|keygen)/i;
        var brackets = /(\[[^\[\]]*\])/g;
        function hash_serializer(result, key, value) {
            if (key.match(brackets)) !function hash_assign(result, keys, value) {
                if (0 === keys.length) return value;
                var key = keys.shift();
                var between = key.match(/^\[(.+?)\]$/);
                if ("[]" === key) {
                    result = result || [];
                    if (Array.isArray(result)) result.push(hash_assign(null, keys, value)); else {
                        result._values = result._values || [];
                        result._values.push(hash_assign(null, keys, value));
                    }
                    return result;
                }
                if (between) {
                    var string = between[1];
                    var index = +string;
                    isNaN(index) ? (result = result || {})[string] = hash_assign(result[string], keys, value) : (result = result || [])[index] = hash_assign(result[index], keys, value);
                } else result[key] = hash_assign(result[key], keys, value);
                return result;
            }(result, function(string) {
                var keys = [];
                var children = new RegExp(brackets);
                var match = /^([^\[\]]*)/.exec(string);
                match[1] && keys.push(match[1]);
                for (;null !== (match = children.exec(string)); ) keys.push(match[1]);
                return keys;
            }(key), value); else {
                var existing = result[key];
                if (existing) {
                    Array.isArray(existing) || (result[key] = [ existing ]);
                    result[key].push(value);
                } else result[key] = value;
            }
            return result;
        }
        function str_serialize(result, key, value) {
            value = value.replace(/(\r)?\n/g, "\r\n");
            value = (value = encodeURIComponent(value)).replace(/%20/g, "+");
            return result + (result ? "&" : "") + encodeURIComponent(key) + "=" + value;
        }
        module.exports = function(form, options) {
            "object" != typeof options ? options = {
                hash: !!options
            } : void 0 === options.hash && (options.hash = !0);
            var result = options.hash ? {} : "";
            var serializer = options.serializer || (options.hash ? hash_serializer : str_serialize);
            var elements = form && form.elements ? form.elements : [];
            var radio_store = Object.create(null);
            for (var i = 0; i < elements.length; ++i) {
                var element = elements[i];
                if ((options.disabled || !element.disabled) && element.name && k_r_success_contrls.test(element.nodeName) && !k_r_submitter.test(element.type)) {
                    var key = element.name;
                    var val = element.value;
                    "checkbox" !== element.type && "radio" !== element.type || element.checked || (val = void 0);
                    if (options.empty) {
                        "checkbox" !== element.type || element.checked || (val = "");
                        "radio" === element.type && (radio_store[element.name] || element.checked ? element.checked && (radio_store[element.name] = !0) : radio_store[element.name] = !1);
                        if (null == val && "radio" == element.type) continue;
                    } else if (!val) continue;
                    if ("select-multiple" !== element.type) result = serializer(result, key, val); else {
                        val = [];
                        var selectOptions = element.options;
                        var isSelectedOptions = !1;
                        for (var j = 0; j < selectOptions.length; ++j) {
                            var option = selectOptions[j];
                            if (option.selected && (option.value || options.empty && !option.value)) {
                                isSelectedOptions = !0;
                                result = options.hash && "[]" !== key.slice(key.length - 2) ? serializer(result, key + "[]", option.value) : serializer(result, key, option.value);
                            }
                        }
                        !isSelectedOptions && options.empty && (result = serializer(result, key, ""));
                    }
                }
            }
            if (options.empty) for (var key in radio_store) radio_store[key] || (result = serializer(result, key, ""));
            return result;
        };
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.r(__webpack_exports__);
        var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21);
        __webpack_require__.d(__webpack_exports__, "openBridge", (function() {
            return _index__WEBPACK_IMPORTED_MODULE_0__.openBridge;
        }));
        __webpack_require__.d(__webpack_exports__, "linkUrl", (function() {
            return _index__WEBPACK_IMPORTED_MODULE_0__.linkUrl;
        }));
        __webpack_require__.d(__webpack_exports__, "isBridge", (function() {
            return _index__WEBPACK_IMPORTED_MODULE_0__.isBridge;
        }));
        __webpack_require__.d(__webpack_exports__, "needsBridge", (function() {
            return _index__WEBPACK_IMPORTED_MODULE_0__.needsBridge;
        }));
        __webpack_require__.d(__webpack_exports__, "needsBridgeForBrowser", (function() {
            return _index__WEBPACK_IMPORTED_MODULE_0__.needsBridgeForBrowser;
        }));
        __webpack_require__.d(__webpack_exports__, "hasBridge", (function() {
            return _index__WEBPACK_IMPORTED_MODULE_0__.hasBridge;
        }));
        __webpack_require__.d(__webpack_exports__, "needsBridgeForWin", (function() {
            return _index__WEBPACK_IMPORTED_MODULE_0__.needsBridgeForWin;
        }));
        __webpack_require__.d(__webpack_exports__, "needsBridgeForDomain", (function() {
            return _index__WEBPACK_IMPORTED_MODULE_0__.needsBridgeForDomain;
        }));
        __webpack_require__.d(__webpack_exports__, "openTunnelToOpener", (function() {
            return _index__WEBPACK_IMPORTED_MODULE_0__.openTunnelToOpener;
        }));
        __webpack_require__.d(__webpack_exports__, "destroyBridges", (function() {
            return _index__WEBPACK_IMPORTED_MODULE_0__.destroyBridges;
        }));
    }, function(module, exports) {
        (function(__webpack_amd_options__) {
            module.exports = __webpack_amd_options__;
        }).call(this, {});
    }, function(module, exports) {
        module.exports = function() {
            throw new Error("define cannot be used indirect");
        };
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.r(__webpack_exports__);
        __webpack_require__.d(__webpack_exports__, "postRobot", (function() {
            return postRobot;
        }));
        __webpack_require__.d(__webpack_exports__, "Promise", (function() {
            return zalgo_promise_src.a;
        }));
        __webpack_require__.d(__webpack_exports__, "PopupOpenError", (function() {
            return src.b;
        }));
        __webpack_require__.d(__webpack_exports__, "rest", (function() {
            return rest;
        }));
        __webpack_require__.d(__webpack_exports__, "Button", (function() {
            return component_Button;
        }));
        __webpack_require__.d(__webpack_exports__, "Card", (function() {
            return Card;
        }));
        __webpack_require__.d(__webpack_exports__, "setup", (function() {
            return setup;
        }));
        __webpack_require__.d(__webpack_exports__, "config", (function() {
            return config.a;
        }));
        __webpack_require__.d(__webpack_exports__, "ENV", (function() {
            return constants.t;
        }));
        __webpack_require__.d(__webpack_exports__, "USERS", (function() {
            return constants.G;
        }));
        __webpack_require__.d(__webpack_exports__, "SOURCE", (function() {
            return constants.F;
        }));
        __webpack_require__.d(__webpack_exports__, "FUNDING", (function() {
            return constants.v;
        }));
        __webpack_require__.d(__webpack_exports__, "CARD", (function() {
            return constants.o;
        }));
        __webpack_require__.d(__webpack_exports__, "request", (function() {
            return lib.S;
        }));
        __webpack_require__.d(__webpack_exports__, "isEligible", (function() {
            return lib.C;
        }));
        __webpack_require__.d(__webpack_exports__, "isFundingRemembered", (function() {
            return lib.D;
        }));
        __webpack_require__.d(__webpack_exports__, "forceIframe", (function() {
            return lib.a;
        }));
        __webpack_require__.d(__webpack_exports__, "isWebView", (function() {
            return lib.a;
        }));
        __webpack_require__.d(__webpack_exports__, "allowIframe", (function() {
            return lib.a;
        }));
        __webpack_require__.d(__webpack_exports__, "logExperimentTreatment", (function() {
            return logExperimentTreatment;
        }));
        __webpack_require__.d(__webpack_exports__, "logFundingEligibility", (function() {
            return logFundingEligibility;
        }));
        __webpack_require__.d(__webpack_exports__, "onPossiblyUnhandledException", (function() {
            return onPossiblyUnhandledException;
        }));
        __webpack_require__.d(__webpack_exports__, "version", (function() {
            return interface_version;
        }));
        __webpack_require__.d(__webpack_exports__, "checkout", (function() {
            return interface_checkout;
        }));
        __webpack_require__.d(__webpack_exports__, "apps", (function() {
            return apps;
        }));
        __webpack_require__.d(__webpack_exports__, "Checkout", (function() {
            return interface_Checkout;
        }));
        __webpack_require__.d(__webpack_exports__, "BillingPage", (function() {
            return interface_BillingPage;
        }));
        __webpack_require__.d(__webpack_exports__, "PayPalCheckout", (function() {
            return PayPalCheckout;
        }));
        __webpack_require__.d(__webpack_exports__, "destroyAll", (function() {
            return destroyAll;
        }));
        __webpack_require__.d(__webpack_exports__, "enableCheckoutIframe", (function() {
            return enableCheckoutIframe;
        }));
        __webpack_require__.d(__webpack_exports__, "logger", (function() {
            return logger;
        }));
        __webpack_require__.d(__webpack_exports__, "ThreeDomainSecure", (function() {
            return interface_ThreeDomainSecure;
        }));
        var interface_namespaceObject = {};
        __webpack_require__.r(interface_namespaceObject);
        __webpack_require__.d(interface_namespaceObject, "postRobot", (function() {
            return postRobot;
        }));
        __webpack_require__.d(interface_namespaceObject, "Promise", (function() {
            return zalgo_promise_src.a;
        }));
        __webpack_require__.d(interface_namespaceObject, "PopupOpenError", (function() {
            return src.b;
        }));
        __webpack_require__.d(interface_namespaceObject, "rest", (function() {
            return rest;
        }));
        __webpack_require__.d(interface_namespaceObject, "Button", (function() {
            return component_Button;
        }));
        __webpack_require__.d(interface_namespaceObject, "Card", (function() {
            return Card;
        }));
        __webpack_require__.d(interface_namespaceObject, "setup", (function() {
            return setup;
        }));
        __webpack_require__.d(interface_namespaceObject, "config", (function() {
            return config.a;
        }));
        __webpack_require__.d(interface_namespaceObject, "ENV", (function() {
            return constants.t;
        }));
        __webpack_require__.d(interface_namespaceObject, "USERS", (function() {
            return constants.G;
        }));
        __webpack_require__.d(interface_namespaceObject, "SOURCE", (function() {
            return constants.F;
        }));
        __webpack_require__.d(interface_namespaceObject, "FUNDING", (function() {
            return constants.v;
        }));
        __webpack_require__.d(interface_namespaceObject, "CARD", (function() {
            return constants.o;
        }));
        __webpack_require__.d(interface_namespaceObject, "request", (function() {
            return lib.S;
        }));
        __webpack_require__.d(interface_namespaceObject, "isEligible", (function() {
            return lib.C;
        }));
        __webpack_require__.d(interface_namespaceObject, "isFundingRemembered", (function() {
            return lib.D;
        }));
        __webpack_require__.d(interface_namespaceObject, "forceIframe", (function() {
            return lib.a;
        }));
        __webpack_require__.d(interface_namespaceObject, "isWebView", (function() {
            return lib.a;
        }));
        __webpack_require__.d(interface_namespaceObject, "allowIframe", (function() {
            return lib.a;
        }));
        __webpack_require__.d(interface_namespaceObject, "logExperimentTreatment", (function() {
            return logExperimentTreatment;
        }));
        __webpack_require__.d(interface_namespaceObject, "logFundingEligibility", (function() {
            return logFundingEligibility;
        }));
        __webpack_require__.d(interface_namespaceObject, "onPossiblyUnhandledException", (function() {
            return onPossiblyUnhandledException;
        }));
        __webpack_require__.d(interface_namespaceObject, "version", (function() {
            return interface_version;
        }));
        __webpack_require__.d(interface_namespaceObject, "checkout", (function() {
            return interface_checkout;
        }));
        __webpack_require__.d(interface_namespaceObject, "apps", (function() {
            return apps;
        }));
        __webpack_require__.d(interface_namespaceObject, "Checkout", (function() {
            return interface_Checkout;
        }));
        __webpack_require__.d(interface_namespaceObject, "BillingPage", (function() {
            return interface_BillingPage;
        }));
        __webpack_require__.d(interface_namespaceObject, "PayPalCheckout", (function() {
            return PayPalCheckout;
        }));
        __webpack_require__.d(interface_namespaceObject, "destroyAll", (function() {
            return destroyAll;
        }));
        __webpack_require__.d(interface_namespaceObject, "enableCheckoutIframe", (function() {
            return enableCheckoutIframe;
        }));
        __webpack_require__.d(interface_namespaceObject, "logger", (function() {
            return logger;
        }));
        __webpack_require__.d(interface_namespaceObject, "ThreeDomainSecure", (function() {
            return interface_ThreeDomainSecure;
        }));
        var beaver_logger_client = __webpack_require__(5);
        var src = __webpack_require__(20);
        var zalgo_promise_src = __webpack_require__(2);
        var post_robot_src = __webpack_require__(13);
        var lib = __webpack_require__(3);
        var src_checkout = __webpack_require__(16);
        var esm_extends = __webpack_require__(11);
        var belter_src = __webpack_require__(14);
        var constants = __webpack_require__(0);
        var config = __webpack_require__(4);
        var resources = __webpack_require__(18);
        var containerContent = __webpack_require__(29);
        var checkout_template = __webpack_require__(27);
        var _LOGO_COLOR;
        var LOGO_COLOR = ((_LOGO_COLOR = {})[constants.q.BLACK] = constants.i.WHITE, _LOGO_COLOR[constants.q.WHITE] = constants.i.BLACK, 
        _LOGO_COLOR);
        function containerTemplate(_ref) {
            var id = _ref.id, props = _ref.props, CLASS = _ref.CLASS, ANIMATION = _ref.ANIMATION, CONTEXT = _ref.CONTEXT, EVENT = _ref.EVENT, on = _ref.on, tag = _ref.tag, context = _ref.context, actions = _ref.actions, outlet = _ref.outlet, jsxDom = _ref.jsxDom;
            var _props$locale$split = props.locale.split("_"), lang = _props$locale$split[0], country = _props$locale$split[1];
            var containerStyle = "\n        " + Object(checkout_template.c)({
                id: id,
                tag: tag,
                CONTEXT: CONTEXT,
                CLASS: CLASS,
                ANIMATION: ANIMATION
            }) + "\n        @media screen and (max-width: 470px) {\n            #" + id + " .paypal-checkout-close {\n                position: absolute;\n                right: 20px;\n                width: 40px;\n                height: 40px;\n                opacity: 0.6;\n                top: 20px;\n                opacity: 0.6;\n                z-index: 2;\n            }\n\n            #" + id + " .paypal-checkout-close:before, .paypal-checkout-close:after {\n                position: absolute;\n                left: 20px;\n                content: ' ';\n                height: 40px;\n                width: 1px;\n                background-color: #111 !important;\n            }\n            #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " .paypal-checkout-iframe-container,\n            #" + id + "." + tag + "-context-" + CONTEXT.IFRAME + " ." + CLASS.OUTLET + " {\n                height: 100%;\n                min-height: 100%;\n                max-height: 100%;\n                min-width: 100%;\n                max-width: 100%;\n                border-radius: 0px;\n            }\n            #" + id + " ." + CLASS.OUTLET + " {\n                height: 100%;\n            }\n        }\n    ";
            var content = containerContent.a[country][lang];
            function focus(event) {
                event.preventDefault();
                event.stopPropagation();
                Object(lib.G)() && Object(belter_src.j)() ? window.alert("Please switch tabs to reactivate the PayPal window") : actions.focus();
            }
            var overlayColor = (props.style || {}).overlayColor || constants.q.BLACK;
            var logoColor = LOGO_COLOR[overlayColor];
            var ppLogo = "function" == typeof resources.b.pp ? resources.b.pp({
                logoColor: logoColor
            }) : resources.b.pp[logoColor];
            var paypalLogo = "function" == typeof resources.b.paypal ? resources.b.paypal({
                logoColor: logoColor
            }) : resources.b.paypal[logoColor];
            var el = jsxDom("div", {
                id: id,
                onClick: focus,
                class: tag + "-context-" + context + " paypal-checkout-overlay " + tag + "-background-color-" + overlayColor + " " + tag + "-logo-color-" + logoColor,
                role: "dialog",
                "aria-modal": "true",
                "aria-label": "PayPal Checkout Overlay"
            }, jsxDom("a", {
                href: "#",
                class: "paypal-checkout-close",
                onClick: function(event) {
                    event.preventDefault();
                    event.stopPropagation();
                    props.onCancel && props.onCancel();
                    actions.close();
                },
                "aria-label": "close",
                role: "button"
            }), jsxDom("div", {
                class: "paypal-checkout-modal"
            }, jsxDom("div", {
                class: "paypal-checkout-logo"
            }, jsxDom("img", {
                class: "paypal-checkout-logo-pp",
                alt: "pp",
                src: "data:image/svg+xml;base64," + Object(belter_src.a)(ppLogo.toString())
            }), jsxDom("img", {
                class: "paypal-checkout-logo-paypal",
                alt: "paypal",
                src: "data:image/svg+xml;base64," + Object(belter_src.a)(paypalLogo.toString())
            })), jsxDom("div", {
                class: "paypal-checkout-message"
            }, content.windowMessage), jsxDom("div", {
                class: "paypal-checkout-continue"
            }, jsxDom("a", {
                onClick: focus,
                href: "#"
            }, content.continue)), jsxDom("div", {
                class: "paypal-checkout-loader"
            }, jsxDom("div", {
                class: "paypal-spinner"
            }))), jsxDom("div", {
                class: "paypal-checkout-iframe-container"
            }, outlet), jsxDom("style", null, containerStyle));
            var container = jsxDom("html", null, jsxDom("body", null, el));
            on(EVENT.CLOSE, (function() {
                el.className += " " + tag + "-loading";
            }));
            return jsxDom("div", {
                id: id,
                class: "paypal-checkout-sandbox"
            }, jsxDom("style", null, Object(checkout_template.d)({
                id: id,
                ANIMATION: ANIMATION
            })), jsxDom("iframe", {
                title: "PayPal Checkout Overlay",
                name: "__paypal_checkout_sandbox_" + id + "__",
                scrolling: "no",
                class: "paypal-checkout-sandbox-iframe"
            }, container));
        }
        var BillingPage = Object(src.c)({
            tag: "billing-page",
            name: "billing-page",
            buildUrl: function(props) {
                return config.a.inlinedCardFieldUrls[props.env || config.a.env] + "/billing";
            },
            get domain() {
                var _extends2;
                return Object(esm_extends.a)({}, config.a.paypalDomains, ((_extends2 = {})[constants.t.LOCAL] = /^http:\/\/localhost.paypal.com:\d+$/, 
                _extends2));
            },
            scrolling: !0,
            props: {
                sessionID: {
                    type: "string",
                    required: !1,
                    def: function() {
                        return Object(lib.v)();
                    },
                    queryParam: !0
                },
                token: {
                    type: "string",
                    required: !0,
                    queryParam: !0
                },
                buttonSessionID: {
                    type: "string",
                    required: !1,
                    def: function() {
                        return Object(lib.j)();
                    },
                    queryParam: !0
                },
                commit: {
                    type: "boolean",
                    required: !1,
                    queryParam: !0
                },
                env: {
                    type: "string",
                    required: !1,
                    queryParam: !0,
                    def: function() {
                        return config.a.env;
                    },
                    validate: function(env) {
                        if (!config.a.paypalUrls[env]) throw new Error("Invalid env: " + env);
                    }
                },
                locale: {
                    type: "string",
                    required: !1,
                    queryParam: "locale.x",
                    allowDelegate: !0,
                    def: function() {
                        var _getBrowserLocale = Object(lib.i)();
                        return _getBrowserLocale.lang + "_" + _getBrowserLocale.country;
                    }
                },
                cardType: {
                    type: "string",
                    required: !1
                },
                prefilledZipCode: {
                    type: "string",
                    required: !1
                },
                onEvent: {
                    type: "function",
                    required: !1,
                    sameDomain: !0
                },
                dispatch: {
                    type: "object",
                    required: !1,
                    sameDomain: !0
                },
                onCancel: {
                    type: "function",
                    required: !1,
                    once: !0,
                    noop: !0
                },
                sdkMeta: {
                    type: "string",
                    queryParam: !0,
                    sendToChild: !1,
                    def: function() {
                        return Object(belter_src.a)(JSON.stringify({
                            url: Object(lib.l)()
                        }));
                    }
                }
            },
            containerTemplate: containerTemplate
        });
        var ThreeDomainSecure = Object(src.c)({
            tag: "paypal-3ds",
            name: "3ds",
            buildUrl: function(props) {
                return config.a.inlinedCardFieldUrls[props.env || config.a.env] + "/init3ds";
            },
            get domain() {
                return Object(esm_extends.a)({}, config.a.paypalDomains);
            },
            scrolling: !0,
            props: {
                sdkMeta: {
                    type: "string",
                    queryParam: !0,
                    sendToChild: !1,
                    def: function() {
                        return Object(belter_src.a)(JSON.stringify({
                            url: Object(lib.l)()
                        }));
                    }
                },
                locale: {
                    type: "string",
                    required: !1,
                    queryParam: "locale.x",
                    allowDelegate: !0,
                    def: function() {
                        var _getBrowserLocale = Object(lib.i)();
                        return _getBrowserLocale.lang + "_" + _getBrowserLocale.country;
                    }
                },
                env: {
                    type: "string",
                    required: !1,
                    queryParam: !0,
                    def: function() {
                        return config.a.env;
                    },
                    validate: function(env) {
                        if (!config.a.paypalUrls[env]) throw new Error("Invalid env: " + env);
                    }
                },
                challengeUrl: {
                    type: "string"
                },
                threeDomainSecureToken: {
                    type: "string"
                },
                method: {
                    type: "string"
                },
                onSuccess: {
                    type: "function",
                    required: !1
                },
                onError: {
                    type: "function",
                    required: !1
                },
                onCancel: {
                    type: "function",
                    required: !0,
                    allowDelegate: !0
                }
            },
            containerTemplate: containerTemplate
        });
        var cross_domain_utils_src = __webpack_require__(7);
        var src_lib = __webpack_require__(6);
        var pptm = (noContentFoundInContainer = !1, callback = "__pptmLoadedWithNoContent", 
        obj = {
            reloadPptmScript: function(clientId) {
                !function tryCreatePptmScript() {
                    if (obj.shouldReloadPptmScript(clientId)) {
                        obj.removePptm();
                        obj.createPptmScript(clientId);
                    } else listener = tryCreatePptmScript;
                }();
            },
            listenForLoadWithNoContent: function() {
                window[callback] = function() {
                    noContentFoundInContainer = !0;
                    if (listener) {
                        listener();
                        listener = void 0;
                    }
                };
            },
            listenForButtonRender: function() {
                window.paypalDDL = window.paypalDDL || [];
                0 === window.paypalDDL.filter((function(e) {
                    return "paypalButtonRender" === e.event;
                })).length && window.paypalDDL.push({
                    event: "paypalButtonRender"
                });
            },
            get callback() {
                return callback;
            },
            get noContentFoundInContainer() {
                return noContentFoundInContainer;
            },
            createPptmScript: function(clientId) {
                var _track;
                Object(beaver_logger_client.p)(((_track = {})[constants.u.KEY.STATE] = constants.u.STATE.PPTM, 
                _track[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.PPTM_LOAD, _track));
                var params = {
                    t: "xo",
                    id: window.location.hostname,
                    mrid: config.a.merchantID,
                    client_id: "",
                    v: config.a.version,
                    source: "checkoutjs"
                };
                clientId ? params.client_id = clientId : delete params.client_id;
                var fullUrl = Object(lib.g)(config.a.pptmUrl, params);
                Object(lib.I)(fullUrl, 0, {
                    async: !0,
                    id: constants.E
                }).then((function() {
                    var _track2;
                    window.paypalDDL && window.paypalDDL[0] && "snippetRun" === window.paypalDDL[0].event || window[callback]();
                    Object(beaver_logger_client.p)(((_track2 = {})[constants.u.KEY.STATE] = constants.u.STATE.PPTM, 
                    _track2[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.PPTM_LOADED, _track2));
                })).catch((function(err) {
                    Object(beaver_logger_client.k)("pptm_script_error", {
                        error: Object(lib.V)(err)
                    });
                }));
            },
            shouldCreateInitialPptmScript: function() {
                if (!window.location.hostname) return !1;
                if (Object(lib.H)()) return !1;
                var existingScript = Object(lib.n)(constants.E);
                if (Boolean(existingScript)) {
                    Object(beaver_logger_client.k)("pptm_tried_loading_twice");
                    return !1;
                }
                return !0;
            },
            shouldReloadPptmScript: function(clientId) {
                return !1 !== noContentFoundInContainer && !Object(lib.H)() && !config.a.merchantID && !!clientId;
            },
            removePptm: function() {
                var script = Object(lib.n)(constants.E);
                script && script.parentNode.removeChild(script);
            }
        });
        var noContentFoundInContainer, callback, listener, obj;
        var proxyRest = {};
        var createAccessToken = Object(lib.J)((function(env, client) {
            Object(beaver_logger_client.k)("rest_api_create_access_token");
            var clientID = client[env = env || config.a.env];
            if (!clientID) throw new Error("Client ID not found for env: " + env);
            if (proxyRest.createAccessToken && !proxyRest.createAccessToken.source.closed) return proxyRest.createAccessToken(env, client);
            var basicAuth = Object(belter_src.a)(clientID + ":");
            return Object(lib.S)({
                method: "post",
                url: config.a.authApiUrls[env],
                headers: {
                    Authorization: "Basic " + basicAuth
                },
                data: {
                    grant_type: "client_credentials"
                }
            }).then((function(res) {
                if (res && "invalid_client" === res.error) throw new Error("Auth Api invalid " + env + " client id: " + clientID + ":\n\n" + JSON.stringify(res, null, 4));
                if (!res || !res.access_token) throw new Error("Auth Api response error:\n\n" + JSON.stringify(res, null, 4));
                return res.access_token;
            }));
        }), {
            time: 6e5
        });
        var createExperienceProfile = Object(lib.J)((function(env, client, experienceDetails) {
            void 0 === experienceDetails && (experienceDetails = {});
            Object(beaver_logger_client.k)("rest_api_create_experience_profile");
            if (!client[env = env || config.a.env]) throw new Error("Client ID not found for env: " + env);
            if (proxyRest.createExperienceProfile && !proxyRest.createExperienceProfile.source.closed) return proxyRest.createExperienceProfile(env, client, experienceDetails);
            experienceDetails.temporary = !0;
            experienceDetails.name = experienceDetails.name ? experienceDetails.name + "_" + Math.random().toString() : Math.random().toString();
            return createAccessToken(env, client).then((function(accessToken) {
                return Object(lib.S)({
                    method: "post",
                    url: config.a.experienceApiUrls[env],
                    headers: {
                        Authorization: "Bearer " + accessToken
                    },
                    json: experienceDetails
                });
            })).then((function(res) {
                if (res && res.error) throw new Error(res.error);
                if (!res.id) throw new Error("No id in experience profile response:\n\n" + JSON.stringify(res, null, 4));
                return res.id;
            }));
        }), {
            time: 6e5
        });
        function logPaymentResponse(res) {
            var _track;
            if (res) {
                var paymentToken;
                var paymentID;
                res.id && (paymentID = res.id);
                if (res.links && res.links.length) for (var i = 0; i < res.links.length; i++) if ("REDIRECT" === res.links[i].method && "approval_url" === res.links[i].rel) {
                    var match = res.links[i].href.match(/token=((EC-)?[A-Z0-9]{17})/);
                    match && (paymentToken = match[1]);
                }
                Object(beaver_logger_client.p)(((_track = {})[constants.u.KEY.STATE] = constants.u.STATE.BUTTON, 
                _track[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.CREATE_PAYMENT, _track[constants.u.KEY.CONTEXT_TYPE] = constants.u.CONTEXT_TYPE[constants.C.PAY_ID], 
                _track[constants.u.KEY.PAY_ID] = paymentID, _track[constants.u.KEY.TOKEN] = paymentToken, 
                _track[constants.u.KEY.CONTEXT_ID] = paymentID, _track));
            }
        }
        function createPayment(env, client, paymentDetails) {
            Object(beaver_logger_client.k)("rest_api_create_checkout_token");
            if (!client[env = env || config.a.env]) throw new Error("Client ID not found for env: " + env);
            var payment = paymentDetails.payment, experience = paymentDetails.experience, meta = paymentDetails.meta, tracking = paymentDetails.tracking;
            if (!payment) throw new Error("Expected payment details to be passed");
            if (proxyRest.createPayment && !proxyRest.createPayment.source.closed) return proxyRest.createPayment(env, client, {
                payment: payment,
                experience: experience,
                meta: meta,
                tracking: tracking
            });
            (payment = Object(esm_extends.a)({}, payment)).intent = payment.intent || "sale";
            payment.redirect_urls = payment.redirect_urls || {};
            payment.redirect_urls.return_url = payment.redirect_urls.return_url || "https://www.paypal.com/checkoutnow/error";
            payment.redirect_urls.cancel_url = payment.redirect_urls.cancel_url || "https://www.paypal.com/checkoutnow/error";
            payment.payer = payment.payer || {};
            payment.payer.payment_method = payment.payer.payment_method || "paypal";
            return createAccessToken(env, client).then((function(accessToken) {
                return zalgo_promise_src.a.try((function() {
                    if (experience) return zalgo_promise_src.a.resolve(createExperienceProfile(env, client, experience));
                })).then((function(experienceID) {
                    return zalgo_promise_src.a.try((function() {
                        if (tracking) return zalgo_promise_src.a.resolve(function(env, client, merchantID, trackingData) {
                            if (!client[env = env || config.a.env]) throw new Error("Client ID not found for env: " + env);
                            var trackingID = Object(lib.Y)();
                            return createAccessToken(env, client).then((function(accessToken) {
                                var headers = {
                                    Authorization: "Bearer " + accessToken
                                };
                                return Object(lib.S)({
                                    method: "put",
                                    url: config.a.trackingApiUrls[env] + "/" + merchantID + "/" + trackingID,
                                    headers: headers,
                                    json: {
                                        tracking_id: trackingID,
                                        additional_data: trackingData
                                    }
                                });
                            })).then((function() {
                                return trackingID;
                            }));
                        }(env, client, tracking.id, tracking.data));
                    })).then((function(trackingID) {
                        experienceID && (payment.experience_profile_id = experienceID);
                        var headers = {
                            Authorization: "Bearer " + accessToken
                        };
                        trackingID && (headers["Paypal-Client-Metadata-Id"] = trackingID);
                        meta && meta.partner_attribution_id && (headers["PayPal-Partner-Attribution-Id"] = meta.partner_attribution_id);
                        return Object(lib.S)({
                            method: "post",
                            url: config.a.paymentApiUrls[env],
                            headers: headers,
                            json: payment
                        });
                    }));
                }));
            })).then((function(res) {
                logPaymentResponse(res);
                if (res && res.id) return res.id;
                throw new Error("Payment Api response error:\n\n" + JSON.stringify(res, null, 4));
            }));
        }
        function createOrder(env, client, paymentDetails) {
            Object(beaver_logger_client.k)("rest_api_create_order_token");
            if (!client[env = env || config.a.env]) throw new Error("Client ID not found for env: " + env);
            var order = paymentDetails.order, meta = paymentDetails.meta;
            if (!order) throw new Error("Expected order details to be passed");
            if (proxyRest.createOrder && !proxyRest.createOrder.source.closed) return proxyRest.createOrder(env, client, {
                order: order,
                meta: meta
            });
            (order = Object(esm_extends.a)({}, order)).intent = order.intent || "CAPTURE";
            order.application_context = order.application_context || {};
            order.application_context.return_url = order.application_context.return_url || "https://www.paypal.com/checkoutnow/error";
            order.application_context.cancel_url = order.application_context.cancel_url || "https://www.paypal.com/checkoutnow/error";
            order.purchase_units = order.purchase_units || [];
            order.purchase_units[0] = order.purchase_units[0] || {};
            order.purchase_units.forEach((function(unit) {
                unit.reference_id = unit.reference_id || Math.random().toString();
            }));
            return createAccessToken(env, client).then((function(accessToken) {
                var headers = {
                    Authorization: "Bearer " + accessToken
                };
                meta && meta.partner_attribution_id && (headers["PayPal-Partner-Attribution-Id"] = meta.partner_attribution_id);
                return Object(lib.S)({
                    method: "post",
                    url: config.a.orderApiUrls[env],
                    headers: headers,
                    json: order
                });
            })).then((function(res) {
                logPaymentResponse(res);
                if (res && res.id) return res.id;
                throw new Error("Payment Api response error:\n\n" + JSON.stringify(res, null, 4));
            }));
        }
        function createBillingAgreement(env, client, billingDetails, experienceDetails) {
            Object(beaver_logger_client.k)("rest_api_create_billing_token");
            if (!client[env = env || config.a.env]) throw new Error("Client ID not found for env: " + env);
            if (proxyRest.createBillingAgreement && !proxyRest.createBillingAgreement.source.closed) return proxyRest.createBillingAgreement(env, client, billingDetails, experienceDetails);
            (billingDetails = Object(esm_extends.a)({}, billingDetails)).plan = billingDetails.plan || {};
            billingDetails.plan.merchant_preferences = billingDetails.plan.merchant_preferences || {};
            billingDetails.plan.merchant_preferences.return_url = billingDetails.plan.merchant_preferences.return_url || "https://www.paypal.com/checkoutnow/error";
            billingDetails.plan.merchant_preferences.cancel_url = billingDetails.plan.merchant_preferences.cancel_url || "https://www.paypal.com/checkoutnow/error";
            billingDetails.payer = billingDetails.payer || {};
            billingDetails.payer.payment_method = billingDetails.payer.payment_method || "paypal";
            return createAccessToken(env, client).then((function(accessToken) {
                return zalgo_promise_src.a.try((function() {
                    if (experienceDetails) return zalgo_promise_src.a.resolve(createExperienceProfile(env, client, experienceDetails));
                })).then((function(experienceID) {
                    experienceID && (billingDetails.experience_profile_id = experienceID);
                    return Object(lib.S)({
                        method: "post",
                        url: config.a.billingApiUrls[env],
                        headers: {
                            Authorization: "Bearer " + accessToken
                        },
                        json: billingDetails
                    });
                }));
            })).then((function(res) {
                if (res && res.token_id) return res.token_id;
                throw new Error("Billing Api response error:\n\n" + JSON.stringify(res, null, 4));
            }));
        }
        var rest = {
            payment: {
                create: createPayment
            },
            order: {
                create: createOrder
            },
            billingAgreement: {
                create: createBillingAgreement
            },
            experience: {
                create: createExperienceProfile
            }
        };
        var parentWin = Object(cross_domain_utils_src.f)();
        Object(post_robot_src.on)("proxy_rest", {
            domain: config.a.paypal_domain_regex
        }, (function(_ref) {
            proxyRest = _ref.data;
        }));
        parentWin && Object(lib.H)() && !Object(cross_domain_utils_src.v)(parentWin) && Object(post_robot_src.send)(parentWin, "proxy_rest", {
            createAccessToken: createAccessToken,
            createExperienceProfile: createExperienceProfile,
            createPayment: createPayment,
            createBillingAgreement: createBillingAgreement,
            createOrder: createOrder
        }).catch((function() {}));
        var onAuthorizeListener = Object(lib.e)();
        function log(experiment, treatment, token, state) {
            Object(lib.w)((function(session) {
                var event = experiment + "_" + treatment + "_" + state;
                var loggedEvents = session.loggedExperimentEvents = session.loggedExperimentEvents || [];
                if (-1 !== loggedEvents.indexOf(event)) Object(beaver_logger_client.k)("duplicate_" + event); else {
                    var _track;
                    Object(beaver_logger_client.k)(event);
                    loggedEvents.push(event);
                    var edge = window.navigator && window.navigator.userAgent && window.navigator.userAgent.match(/Edge\/[0-9]{2}/);
                    edge && (event = Object(beaver_logger_client.k)(edge[0].toLowerCase().replace("/", "_") + "_" + event));
                    Object(beaver_logger_client.p)(((_track = {})[constants.u.KEY.STATE] = constants.u.STATE.CHECKOUT, 
                    _track[constants.u.KEY.TRANSITION] = state, _track[constants.u.KEY.EXPERIMENT_NAME] = experiment, 
                    _track[constants.u.KEY.TREATMENT_NAME] = treatment, _track[constants.u.KEY.TOKEN] = token, 
                    _track[constants.u.KEY.CONTEXT_ID] = token, _track[constants.u.KEY.CONTEXT_TYPE] = token ? constants.u.CONTEXT_TYPE[constants.C.EC_TOKEN] : constants.u.CONTEXT_TYPE.BUTTON_SESSION_ID, 
                    _track));
                    Object(beaver_logger_client.j)();
                }
            }));
        }
        function logExperimentTreatment(_ref) {
            var experiment = _ref.experiment, treatment = _ref.treatment, state = _ref.state, token = _ref.token;
            if (experiment && treatment) {
                Object(lib.w)((function(session) {
                    session.externalExperiment = experiment;
                    session.externalExperimentTreatment = treatment;
                    token && (session.externalExperimentToken = token);
                }));
                log(experiment, treatment, token, state);
            }
        }
        function logReturn(token) {
            var _getSessionState = Object(lib.w)((function(session) {
                return session;
            })), externalExperiment = _getSessionState.externalExperiment, externalExperimentTreatment = _getSessionState.externalExperimentTreatment, externalExperimentToken = _getSessionState.externalExperimentToken;
            externalExperiment && externalExperimentTreatment && externalExperimentToken === token ? log(externalExperiment, externalExperimentTreatment, token, "complete") : Object(beaver_logger_client.k)("experiment_mismatch", {
                token: token,
                externalExperiment: externalExperiment,
                externalExperimentTreatment: externalExperimentTreatment,
                externalExperimentToken: externalExperimentToken
            });
        }
        if (Object(lib.m)("log_authorize")) {
            onAuthorizeListener.once((function(_ref2) {
                var paymentToken = _ref2.paymentToken;
                setTimeout((function() {
                    logReturn(paymentToken);
                }), 1);
            }));
            var returnToken = Object(lib.t)();
            returnToken && setTimeout((function() {
                returnToken && logReturn(returnToken);
            }), 1);
        }
        var integrations = __webpack_require__(24);
        var integrations_checkout = __webpack_require__(28);
        function normalizeCheckoutProps(props) {
            return {
                env: props.env = props.env || config.a.env,
                payment: props.payment,
                onAuthorize: Object(src_lib.H)(props.onAuthorize),
                onCancel: Object(src_lib.H)(props.onCancel || src_lib.F)
            };
        }
        function awaitPopupBridge(Button) {
            return Button.xprops && Button.xprops.awaitPopupBridge ? Button.xprops.awaitPopupBridge() : Object(lib.b)(window, "popupBridge").then((function(popupBridge) {
                return function(popupBridge) {
                    return {
                        open: function(url) {
                            return new zalgo_promise_src.a((function(resolve, reject) {
                                popupBridge.onComplete = function(err, result) {
                                    return result ? err ? reject(err) : resolve(result) : reject(new Error("No payload passed in popupBridge.onComplete"));
                                };
                                popupBridge.onCancel = function() {
                                    var err = new Error("PAYMENT_CANCELLED");
                                    err.code = "PAYMENT_CANCELLED";
                                    return reject(err);
                                };
                                popupBridge.open(Object(lib.g)(url, {
                                    redirect_uri: popupBridge.getReturnUrlPrefix()
                                }));
                            }));
                        }
                    };
                }(popupBridge);
            }));
        }
        var _FUNDING_CONFIG, _CARD_CONFIG;
        var FUNDING_PRIORITY = [ constants.v.PAYPAL, constants.v.VENMO, constants.v.ITAU, constants.v.CREDIT, constants.v.CARD, constants.v.IDEAL, constants.v.ELV, constants.v.BANCONTACT, constants.v.GIROPAY, constants.v.EPS, constants.v.SOFORT, constants.v.MYBANK, constants.v.BLIK, constants.v.P24, constants.v.MAXIMA, constants.v.BOLETO, constants.v.OXXO, constants.v.MERCADOPAGO ];
        var FUNDING_ORDER = [ constants.v.PAYPAL, constants.v.VENMO, constants.v.ITAU, constants.v.CREDIT, constants.v.IDEAL, constants.v.ELV, constants.v.BANCONTACT, constants.v.GIROPAY, constants.v.EPS, constants.v.SOFORT, constants.v.MYBANK, constants.v.BLIK, constants.v.P24, constants.v.MAXIMA, constants.v.BOLETO, constants.v.OXXO, constants.v.MERCADOPAGO, constants.v.CARD ];
        var FUNDING_CONFIG = ((_FUNDING_CONFIG = {})[constants.s] = {
            enabled: !0,
            allowOptIn: !0,
            allowOptOut: !0,
            allowRemember: !0,
            allowHorizontal: !0,
            allowVertical: !0,
            requireCommitAsTrue: !1
        }, _FUNDING_CONFIG[constants.v.PAYPAL] = {
            default: !0,
            allowOptIn: !1,
            allowOptOut: !1,
            allowHorizontal: !0,
            allowVertical: !0
        }, _FUNDING_CONFIG[constants.v.CARD] = {
            default: "undefined" == typeof __paypal_checkout__ || __paypal_checkout__.serverConfig.paypalMerchantConfiguration.creditCard.isPayPalBranded,
            allowHorizontal: !1,
            allowVertical: !0
        }, _FUNDING_CONFIG[constants.v.VENMO] = {
            allowOptOut: !0,
            allowedCountries: [ constants.r.US ],
            allowHorizontal: !0,
            allowVertical: !0
        }, _FUNDING_CONFIG[constants.v.ITAU] = {
            allowOptOut: !0,
            allowedCountries: [ constants.r.BR ],
            allowHorizontal: !0,
            allowVertical: !0
        }, _FUNDING_CONFIG[constants.v.CREDIT] = {
            allowedCountries: [ constants.r.US, constants.r.GB, constants.r.DE ],
            defaultVerticalCountries: [ constants.r.US ],
            platforms: [ constants.D.MOBILE ],
            allowHorizontal: !0,
            allowVertical: !0,
            allowRemember: !0
        }, _FUNDING_CONFIG[constants.v.IDEAL] = {
            allowedCountries: [ constants.r.NL ],
            allowHorizontal: !1,
            allowVertical: !0,
            requireCommitAsTrue: !0
        }, _FUNDING_CONFIG[constants.v.ELV] = {
            allowedCountries: [ constants.r.DE ],
            defaultVerticalCountries: [ constants.r.DE ],
            allowHorizontal: !1,
            allowVertical: !0
        }, _FUNDING_CONFIG[constants.v.BANCONTACT] = {
            allowedCountries: [ constants.r.BE ],
            allowHorizontal: !1,
            allowVertical: !0,
            requireCommitAsTrue: !0
        }, _FUNDING_CONFIG[constants.v.GIROPAY] = {
            allowedCountries: [ constants.r.DE ],
            allowHorizontal: !1,
            allowVertical: !0,
            requireCommitAsTrue: !0
        }, _FUNDING_CONFIG[constants.v.SOFORT] = {
            allowedCountries: [ constants.r.DE, constants.r.AT, constants.r.BE, constants.r.ES, constants.r.IT, constants.r.NL ],
            allowHorizontal: !1,
            allowVertical: !0,
            requireCommitAsTrue: !0
        }, _FUNDING_CONFIG[constants.v.EPS] = {
            allowedCountries: [ constants.r.AT ],
            allowHorizontal: !1,
            allowVertical: !0,
            requireCommitAsTrue: !0
        }, _FUNDING_CONFIG[constants.v.MYBANK] = {
            allowedCountries: [ constants.r.IT ],
            allowHorizontal: !1,
            allowVertical: !0,
            requireCommitAsTrue: !0
        }, _FUNDING_CONFIG[constants.v.P24] = {
            allowedCountries: [ constants.r.PL ],
            allowHorizontal: !1,
            allowVertical: !0,
            requireCommitAsTrue: !0
        }, _FUNDING_CONFIG[constants.v.BLIK] = {
            allowedCountries: [ constants.r.PL ],
            allowHorizontal: !1,
            allowVertical: !0,
            requireCommitAsTrue: !0
        }, _FUNDING_CONFIG[constants.v.MAXIMA] = {
            allowedCountries: [ constants.r.LT ],
            allowedEnvs: [ constants.t.LOCAL, constants.t.STAGE, constants.t.TEST ],
            allowHorizontal: !1,
            allowVertical: !0,
            requireCommitAsTrue: !0
        }, _FUNDING_CONFIG[constants.v.BOLETO] = {
            allowedCountries: [ constants.r.BR ],
            allowedEnvs: [ constants.t.LOCAL, constants.t.STAGE, constants.t.TEST ],
            allowHorizontal: !1,
            allowVertical: !0,
            requireCommitAsTrue: !0
        }, _FUNDING_CONFIG[constants.v.OXXO] = {
            allowedCountries: [ constants.r.MX ],
            allowedEnvs: [ constants.t.LOCAL, constants.t.STAGE, constants.t.TEST ],
            allowHorizontal: !1,
            allowVertical: !0,
            requireCommitAsTrue: !0
        }, _FUNDING_CONFIG[constants.v.MERCADOPAGO] = {
            allowedCountries: [ constants.r.MX, constants.r.BR ],
            allowedEnvs: [ constants.t.LOCAL, constants.t.STAGE, constants.t.TEST ],
            allowHorizontal: !1,
            allowVertical: !0,
            requireCommitAsTrue: !0
        }, _FUNDING_CONFIG[constants.v.ZIMPLER] = {
            allowedCountries: [],
            allowHorizontal: !1,
            allowVertical: !1,
            requireCommitAsTrue: !0
        }, _FUNDING_CONFIG);
        var CARD_CONFIG = ((_CARD_CONFIG = {})[constants.s] = {
            priority: [ constants.o.VISA, constants.o.MASTERCARD, constants.o.AMEX ]
        }, _CARD_CONFIG[constants.r.GB] = {
            priority: [ constants.o.VISA, constants.o.MASTERCARD, constants.o.AMEX, constants.o.DISCOVER, constants.o.MAESTRO ]
        }, _CARD_CONFIG[constants.r.US] = {
            priority: [ constants.o.VISA, constants.o.MASTERCARD, constants.o.AMEX, constants.o.DISCOVER ]
        }, _CARD_CONFIG[constants.r.BR] = {
            priority: [ constants.o.VISA, constants.o.MASTERCARD, constants.o.AMEX, constants.o.HIPER, constants.o.ELO ]
        }, _CARD_CONFIG[constants.r.JP] = {
            priority: [ constants.o.VISA, constants.o.MASTERCARD, constants.o.AMEX, constants.o.JCB ]
        }, _CARD_CONFIG[constants.r.CN] = {
            priority: [ constants.o.VISA, constants.o.MASTERCARD, constants.o.AMEX, constants.o.CUP ]
        }, _CARD_CONFIG);
        function getConfig(conf, category, key, def) {
            var categoryConfig = conf[category];
            if (categoryConfig && categoryConfig.hasOwnProperty(key)) return categoryConfig[key];
            if (conf[constants.s] && conf[constants.s].hasOwnProperty(key)) return conf[constants.s][key];
            if (arguments.length >= 4) return def;
            throw new Error("No value found for " + category + ":" + key);
        }
        function getFundingConfig(source, key, def) {
            return getConfig(FUNDING_CONFIG, source, key, def);
        }
        var fundingEligibilityReasons = [];
        function isFundingIneligible(source, _ref) {
            var locale = _ref.locale, funding = _ref.funding, commit = _ref.commit, env = _ref.env;
            if (!getFundingConfig(source, _ref.layout === constants.g.VERTICAL ? "allowVertical" : "allowHorizontal")) return constants.x.SECONDARY_DISALLOWED;
            if (-1 !== funding.disallowed.indexOf(source) && getFundingConfig(source, "allowOptOut")) return constants.x.OPT_OUT;
            if (-1 !== funding.disallowed.indexOf(source) && source === constants.v.VENMO) return constants.x.OPT_OUT;
            if (-1 !== funding.disallowed.indexOf(source) && source === constants.v.ITAU) return constants.x.OPT_OUT;
            if (-1 === getFundingConfig(source, "allowedCountries", [ locale.country ]).indexOf(locale.country)) return constants.x.DISALLOWED_COUNTRY;
            if (getFundingConfig(source, "requireCommitAsTrue") && !commit) return constants.x.COMMIT_NOT_SET;
            var allowedEnvs = getFundingConfig(source, "allowedEnvs");
            return allowedEnvs && -1 === allowedEnvs.indexOf(env) ? constants.x.INVALID_ENV : void 0;
        }
        function isFundingAutoEligible(source, _ref2) {
            var locale = _ref2.locale, funding = _ref2.funding;
            return _ref2.layout === constants.g.VERTICAL && -1 !== getFundingConfig(source, "defaultVerticalCountries", []).indexOf(locale.country) ? constants.x.DEFAULT_COUNTRY : getFundingConfig(source, "default") ? constants.x.DEFAULT : -1 !== funding.allowed.indexOf(source) && getFundingConfig(source, "allowOptIn") ? constants.x.OPT_IN : -1 !== funding.remembered.indexOf(source) && getFundingConfig(source, "allowRemember") ? constants.x.REMEMBERED : void 0;
        }
        function determineEligibleCards(_ref5) {
            var funding = _ref5.funding;
            return (source = _ref5.locale.country, getConfig(CARD_CONFIG, source, "priority", void 0)).filter((function(card) {
                return -1 === funding.disallowed.indexOf(card);
            }));
            var source;
        }
        function logFundingEligibility() {
            fundingEligibilityReasons.forEach((function(reasons, i) {
                console.log("\nButton " + (i + 1) + ":\n");
                console.table(Object.keys(reasons).map((function(source) {
                    var _reasons$source = reasons[source];
                    return {
                        Funding: source,
                        Reason: _reasons$source.reason,
                        Eligibility: _reasons$source.eligible ? "eligible" : "ineligible",
                        Factors: JSON.stringify(_reasons$source.factors)
                    };
                })));
            }));
        }
        var _logoColors, _tagLineColors, _secondaryColors, _logoColors2, _secondaryColors2, _logoColors3, _secondaryColors3, _logoColors4, _secondaryColors4, _logoColors5, _secondaryColors5, _logoColors6, _secondaryColors6, _logoColors7, _secondaryColors7, _logoColors8, _secondaryColors8, _logoColors9, _secondaryColors9, _logoColors10, _secondaryColors10, _logoColors11, _secondaryColors11, _logoColors12, _secondaryColors12, _logoColors13, _secondaryColors13, _logoColors14, _secondaryColors14, _logoColors15, _secondaryColors15, _logoColors16, _secondaryColors16, _logoColors17, _secondaryColors17, _logoColors18, _secondaryColors18, _BUTTON_CONFIG, _FUNDING_TO_DEFAULT_L, _LABEL_TO_FUNDING, _BUTTON_STYLE;
        var BUTTON_CONFIG = ((_BUTTON_CONFIG = {})[constants.s] = {
            colors: [ constants.e.GOLD, constants.e.BLUE, constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            sizes: [ constants.l.SMALL, constants.l.MEDIUM, constants.l.LARGE, constants.l.RESPONSIVE ],
            shapes: [ constants.k.PILL, constants.k.RECT ],
            layouts: [ constants.g.HORIZONTAL, constants.g.VERTICAL ],
            logoColors: (_logoColors = {}, _logoColors[constants.e.GOLD] = constants.i.BLUE, 
            _logoColors[constants.e.SILVER] = constants.i.BLUE, _logoColors[constants.e.BLUE] = constants.i.WHITE, 
            _logoColors[constants.e.BLACK] = constants.i.WHITE, _logoColors[constants.e.BLACK] = constants.i.WHITE, 
            _logoColors[constants.e.WHITE] = constants.i.BLUE, _logoColors),
            tagLineColors: (_tagLineColors = {}, _tagLineColors[constants.e.GOLD] = constants.n.BLUE, 
            _tagLineColors[constants.e.SILVER] = constants.n.BLUE, _tagLineColors[constants.e.BLUE] = constants.n.BLUE, 
            _tagLineColors[constants.e.BLACK] = constants.n.BLACK, _tagLineColors[constants.e.DARKBLUE] = constants.n.BLUE, 
            _tagLineColors),
            secondaryColors: (_secondaryColors = {}, _secondaryColors[constants.e.GOLD] = constants.e.BLUE, 
            _secondaryColors[constants.e.SILVER] = constants.e.BLUE, _secondaryColors[constants.e.BLUE] = constants.e.SILVER, 
            _secondaryColors[constants.e.BLACK] = constants.e.BLACK, _secondaryColors[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors[constants.e.WHITE] = constants.e.WHITE, _secondaryColors),
            tag: "{ content: safer_tag }",
            dualTag: "{ content: dual_tag|safer_tag }",
            defaultLocale: "en_US",
            defaultLabel: constants.f.CHECKOUT,
            defaultVerticalLabel: constants.f.PAYPAL,
            defaultColor: constants.e.GOLD,
            defaultSize: constants.l.SMALL,
            defaultVerticalSize: constants.l.MEDIUM,
            defaultShape: constants.k.PILL,
            defaultLayout: constants.g.HORIZONTAL,
            defaultBranding: !0,
            defaultVerticalBranding: !0,
            defaultFundingIcons: !1,
            defaultTagline: !0,
            defaultDual: "",
            minimumSize: constants.l.TINY,
            minimumVerticalSize: constants.l.MEDIUM,
            maximumSize: constants.l.HUGE,
            maximumVerticalSize: constants.l.HUGE,
            minHorizontalButtons: 1,
            minVerticalButtons: 1,
            maxHorizontalButtons: 2,
            maxVerticalButtons: 6,
            allowUnbranded: !1,
            allowFundingIcons: !0,
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.PAYPAL] = {
            label: "{ logo: " + constants.h.PP + " } { logo: " + constants.h.PAYPAL + " }",
            logoLabel: "{ logo: " + constants.h.PP + " } { logo: " + constants.h.PAYPAL + " }",
            allowPrimary: !0,
            allowPrimaryVertical: !0,
            allowPrimaryHorizontal: !0,
            title: "" + constants.w.PAYPAL
        }, _BUTTON_CONFIG[constants.f.CHECKOUT] = {
            label: "{ content: checkout }",
            logoLabel: "{ logo: " + constants.h.PP + " } { logo: " + constants.h.PAYPAL + " }",
            allowPrimary: !0,
            allowPrimaryVertical: !0,
            allowPrimaryHorizontal: !0
        }, _BUTTON_CONFIG[constants.f.PAY] = {
            label: "{ content: pay }",
            logoLabel: "{ logo: " + constants.h.PAYPAL + " }",
            allowPrimary: !0,
            allowPrimaryVertical: !0,
            allowPrimaryHorizontal: !0
        }, _BUTTON_CONFIG[constants.f.BUYNOW] = {
            label: "{ content: buynow }",
            logoLabel: "{ logo: " + constants.h.PP + " } { logo: " + constants.h.PAYPAL + " }",
            defaultBranding: void 0,
            allowPrimary: !0,
            allowPrimaryVertical: !0,
            allowPrimaryHorizontal: !0,
            allowUnbranded: !0
        }, _BUTTON_CONFIG[constants.f.INSTALLMENT] = {
            label: function(style) {
                return "{ content: " + (style.installmentperiod ? "installment_period" : "installment") + " }";
            },
            logoLabel: "{ logo: " + constants.h.PP + " } { logo: " + constants.h.PAYPAL + " }",
            allowPrimary: !0,
            allowPrimaryVertical: !0,
            allowPrimaryHorizontal: !0,
            allowSecondaryVertical: !1,
            allowSecondaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.CREDIT] = {
            label: function(_ref) {
                return _ref.locale.country === constants.r.DE ? "{ logo: " + constants.h.CREDIT + " }" : "{ logo: " + constants.h.PP + " } { logo: " + constants.h.PAYPAL + " } { logo: " + constants.h.CREDIT + " }";
            },
            logoLabel: function(_ref2) {
                return _ref2.locale.country === constants.r.DE ? "{ logo: " + constants.h.CREDIT + " }" : "{ logo: " + constants.h.PP + " } { logo: " + constants.h.PAYPAL + " } { logo: " + constants.h.CREDIT + " }";
            },
            tag: "{ content: later_tag }",
            colors: [ constants.e.DARKBLUE, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors2 = {}, _logoColors2[constants.e.BLACK] = constants.i.WHITE, 
            _logoColors2[constants.e.DARKBLUE] = constants.i.WHITE, _logoColors2[constants.e.WHITE] = constants.i.BLUE, 
            _logoColors2),
            secondaryColors: (_secondaryColors2 = {}, _secondaryColors2[constants.e.GOLD] = constants.e.DARKBLUE, 
            _secondaryColors2[constants.e.BLUE] = constants.e.DARKBLUE, _secondaryColors2[constants.e.SILVER] = constants.e.DARKBLUE, 
            _secondaryColors2[constants.e.BLACK] = constants.e.BLACK, _secondaryColors2[constants.e.WHITE] = constants.e.WHITE, 
            _secondaryColors2),
            defaultColor: constants.e.DARKBLUE,
            allowPrimary: !0,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1,
            allowFundingIcons: !1,
            title: "" + constants.w.CREDIT
        }, _BUTTON_CONFIG[constants.f.VENMO] = {
            label: "{ logo: " + constants.h.VENMO + " }",
            logoLabel: "{ logo: " + constants.h.VENMO + " }",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.BLUE, constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors3 = {}, _logoColors3[constants.e.BLUE] = constants.i.WHITE, 
            _logoColors3[constants.e.SILVER] = constants.i.BLUE, _logoColors3[constants.e.BLACK] = constants.i.WHITE, 
            _logoColors3[constants.e.WHITE] = constants.i.BLUE, _logoColors3),
            secondaryColors: (_secondaryColors3 = {}, _secondaryColors3[constants.e.GOLD] = constants.e.BLUE, 
            _secondaryColors3[constants.e.BLUE] = constants.e.SILVER, _secondaryColors3[constants.e.SILVER] = constants.e.BLUE, 
            _secondaryColors3[constants.e.BLACK] = constants.e.BLACK, _secondaryColors3[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors3[constants.e.WHITE] = constants.e.WHITE, _secondaryColors3),
            allowPrimary: !0,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !0
        }, _BUTTON_CONFIG[constants.f.ITAU] = {
            label: "{ logo: " + constants.h.ITAU + " }",
            logoLabel: "{ logo: " + constants.h.ITAU + " }",
            defaultColor: constants.e.DARKBLUE,
            colors: [ constants.e.DARKBLUE, constants.e.BLUE, constants.e.BLACK ],
            logoColors: (_logoColors4 = {}, _logoColors4[constants.e.DARKBLUE] = constants.i.WHITE, 
            _logoColors4[constants.e.BLUE] = constants.i.WHITE, _logoColors4[constants.e.BLACK] = constants.i.WHITE, 
            _logoColors4),
            secondaryColors: (_secondaryColors4 = {}, _secondaryColors4[constants.e.GOLD] = constants.e.DARKBLUE, 
            _secondaryColors4[constants.e.BLUE] = constants.e.BLUE, _secondaryColors4[constants.e.SILVER] = constants.e.DARKBLUE, 
            _secondaryColors4[constants.e.BLACK] = constants.e.BLACK, _secondaryColors4[constants.e.DARKBLUE] = constants.e.DARKBLUE, 
            _secondaryColors4[constants.e.WHITE] = constants.e.DARKBLUE, _secondaryColors4),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !0
        }, _BUTTON_CONFIG[constants.f.IDEAL] = {
            label: "{ logo: " + constants.h.IDEAL + " } Online betalen",
            logoLabel: "{ logo: " + constants.h.IDEAL + " } Online betalen",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors5 = {}, _logoColors5[constants.e.SILVER] = constants.i.BLACK, 
            _logoColors5[constants.e.BLACK] = constants.i.WHITE, _logoColors5[constants.e.WHITE] = constants.i.BLACK, 
            _logoColors5),
            secondaryColors: (_secondaryColors5 = {}, _secondaryColors5[constants.e.GOLD] = constants.e.SILVER, 
            _secondaryColors5[constants.e.BLUE] = constants.e.SILVER, _secondaryColors5[constants.e.SILVER] = constants.e.SILVER, 
            _secondaryColors5[constants.e.BLACK] = constants.e.BLACK, _secondaryColors5[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors5[constants.e.WHITE] = constants.e.WHITE, _secondaryColors5),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.ELV] = {
            label: "{ logo: " + constants.h.ELV + " }",
            logoLabel: "{ logo: " + constants.h.ELV + " }",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors6 = {}, _logoColors6[constants.e.SILVER] = constants.i.BLACK, 
            _logoColors6[constants.e.BLACK] = constants.i.WHITE, _logoColors6[constants.e.WHITE] = constants.i.BLACK, 
            _logoColors6),
            secondaryColors: (_secondaryColors6 = {}, _secondaryColors6[constants.e.GOLD] = constants.e.SILVER, 
            _secondaryColors6[constants.e.BLUE] = constants.e.SILVER, _secondaryColors6[constants.e.SILVER] = constants.e.SILVER, 
            _secondaryColors6[constants.e.BLACK] = constants.e.BLACK, _secondaryColors6[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors6[constants.e.WHITE] = constants.e.WHITE, _secondaryColors6),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.BANCONTACT] = {
            label: "{ logo: " + constants.h.BANCONTACT + " }",
            logoLabel: "{ logo: " + constants.h.BANCONTACT + " }",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors7 = {}, _logoColors7[constants.e.SILVER] = constants.i.BLACK, 
            _logoColors7[constants.e.BLACK] = constants.i.WHITE, _logoColors7[constants.e.WHITE] = constants.i.BLACK, 
            _logoColors7),
            secondaryColors: (_secondaryColors7 = {}, _secondaryColors7[constants.e.GOLD] = constants.e.SILVER, 
            _secondaryColors7[constants.e.BLUE] = constants.e.SILVER, _secondaryColors7[constants.e.SILVER] = constants.e.SILVER, 
            _secondaryColors7[constants.e.BLACK] = constants.e.BLACK, _secondaryColors7[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors7[constants.e.WHITE] = constants.e.WHITE, _secondaryColors7),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.GIROPAY] = {
            label: "{ logo: " + constants.h.GIROPAY + " }",
            logoLabel: "{ logo: " + constants.h.GIROPAY + " }",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors8 = {}, _logoColors8[constants.e.SILVER] = constants.i.BLACK, 
            _logoColors8[constants.e.BLACK] = constants.i.WHITE, _logoColors8[constants.e.WHITE] = constants.i.BLACK, 
            _logoColors8),
            secondaryColors: (_secondaryColors8 = {}, _secondaryColors8[constants.e.GOLD] = constants.e.SILVER, 
            _secondaryColors8[constants.e.BLUE] = constants.e.SILVER, _secondaryColors8[constants.e.SILVER] = constants.e.SILVER, 
            _secondaryColors8[constants.e.BLACK] = constants.e.BLACK, _secondaryColors8[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors8[constants.e.WHITE] = constants.e.WHITE, _secondaryColors8),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.SOFORT] = {
            label: "{ logo: " + constants.h.SOFORT + " }",
            logoLabel: "{ logo: " + constants.h.SOFORT + " }",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors9 = {}, _logoColors9[constants.e.SILVER] = constants.i.BLACK, 
            _logoColors9[constants.e.BLACK] = constants.i.WHITE, _logoColors9[constants.e.WHITE] = constants.i.BLACK, 
            _logoColors9),
            secondaryColors: (_secondaryColors9 = {}, _secondaryColors9[constants.e.GOLD] = constants.e.SILVER, 
            _secondaryColors9[constants.e.BLUE] = constants.e.SILVER, _secondaryColors9[constants.e.SILVER] = constants.e.SILVER, 
            _secondaryColors9[constants.e.BLACK] = constants.e.BLACK, _secondaryColors9[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors9[constants.e.WHITE] = constants.e.WHITE, _secondaryColors9),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.EPS] = {
            label: "{ logo: " + constants.h.EPS + " }",
            logoLabel: "{ logo: " + constants.h.EPS + " }",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors10 = {}, _logoColors10[constants.e.SILVER] = constants.i.BLACK, 
            _logoColors10[constants.e.BLACK] = constants.i.WHITE, _logoColors10[constants.e.WHITE] = constants.i.BLACK, 
            _logoColors10),
            secondaryColors: (_secondaryColors10 = {}, _secondaryColors10[constants.e.GOLD] = constants.e.SILVER, 
            _secondaryColors10[constants.e.BLUE] = constants.e.SILVER, _secondaryColors10[constants.e.SILVER] = constants.e.SILVER, 
            _secondaryColors10[constants.e.BLACK] = constants.e.BLACK, _secondaryColors10[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors10[constants.e.WHITE] = constants.e.WHITE, _secondaryColors10),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.MYBANK] = {
            label: "{ logo: " + constants.h.MYBANK + " }",
            logoLabel: "{ logo: " + constants.h.MYBANK + " }",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors11 = {}, _logoColors11[constants.e.SILVER] = constants.i.BLACK, 
            _logoColors11[constants.e.BLACK] = constants.i.WHITE, _logoColors11[constants.e.WHITE] = constants.i.BLACK, 
            _logoColors11),
            secondaryColors: (_secondaryColors11 = {}, _secondaryColors11[constants.e.GOLD] = constants.e.SILVER, 
            _secondaryColors11[constants.e.BLUE] = constants.e.SILVER, _secondaryColors11[constants.e.SILVER] = constants.e.SILVER, 
            _secondaryColors11[constants.e.BLACK] = constants.e.BLACK, _secondaryColors11[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors11[constants.e.WHITE] = constants.e.WHITE, _secondaryColors11),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.P24] = {
            label: "{ logo: " + constants.h.P24 + " }",
            logoLabel: "{ logo: " + constants.h.P24 + " }",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors12 = {}, _logoColors12[constants.e.SILVER] = constants.i.BLACK, 
            _logoColors12[constants.e.BLACK] = constants.i.WHITE, _logoColors12[constants.e.WHITE] = constants.i.BLACK, 
            _logoColors12),
            secondaryColors: (_secondaryColors12 = {}, _secondaryColors12[constants.e.GOLD] = constants.e.SILVER, 
            _secondaryColors12[constants.e.BLUE] = constants.e.SILVER, _secondaryColors12[constants.e.SILVER] = constants.e.SILVER, 
            _secondaryColors12[constants.e.BLACK] = constants.e.BLACK, _secondaryColors12[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors12[constants.e.WHITE] = constants.e.WHITE, _secondaryColors12),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.BLIK] = {
            label: "{ logo: " + constants.h.BLIK + " }",
            logoLabel: "{ logo: " + constants.h.BLIK + " }",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors13 = {}, _logoColors13[constants.e.SILVER] = constants.i.BLACK, 
            _logoColors13[constants.e.BLACK] = constants.i.WHITE, _logoColors13[constants.e.WHITE] = constants.i.BLACK, 
            _logoColors13),
            secondaryColors: (_secondaryColors13 = {}, _secondaryColors13[constants.e.GOLD] = constants.e.SILVER, 
            _secondaryColors13[constants.e.BLUE] = constants.e.SILVER, _secondaryColors13[constants.e.SILVER] = constants.e.SILVER, 
            _secondaryColors13[constants.e.BLACK] = constants.e.BLACK, _secondaryColors13[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors13[constants.e.WHITE] = constants.e.WHITE, _secondaryColors13),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.MAXIMA] = {
            label: "{ logo: " + constants.h.MAXIMA + " }",
            logoLabel: "{ logo: " + constants.h.MAXIMA + " }",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors14 = {}, _logoColors14[constants.e.SILVER] = constants.i.BLACK, 
            _logoColors14[constants.e.BLACK] = constants.i.WHITE, _logoColors14[constants.e.WHITE] = constants.i.BLACK, 
            _logoColors14),
            secondaryColors: (_secondaryColors14 = {}, _secondaryColors14[constants.e.GOLD] = constants.e.SILVER, 
            _secondaryColors14[constants.e.BLUE] = constants.e.SILVER, _secondaryColors14[constants.e.SILVER] = constants.e.SILVER, 
            _secondaryColors14[constants.e.BLACK] = constants.e.BLACK, _secondaryColors14[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors14[constants.e.WHITE] = constants.e.WHITE, _secondaryColors14),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.BOLETO] = {
            label: "{ logo: " + constants.h.BOLETO + " }",
            logoLabel: "{ logo: " + constants.h.BOLETO + " }",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors15 = {}, _logoColors15[constants.e.SILVER] = constants.i.BLACK, 
            _logoColors15[constants.e.BLACK] = constants.i.WHITE, _logoColors15[constants.e.WHITE] = constants.i.BLACK, 
            _logoColors15),
            secondaryColors: (_secondaryColors15 = {}, _secondaryColors15[constants.e.GOLD] = constants.e.SILVER, 
            _secondaryColors15[constants.e.BLUE] = constants.e.SILVER, _secondaryColors15[constants.e.SILVER] = constants.e.SILVER, 
            _secondaryColors15[constants.e.BLACK] = constants.e.BLACK, _secondaryColors15[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors15[constants.e.WHITE] = constants.e.WHITE, _secondaryColors15),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.OXXO] = {
            label: "{ logo: " + constants.h.OXXO + " }",
            logoLabel: "{ logo: " + constants.h.OXXO + " }",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors16 = {}, _logoColors16[constants.e.SILVER] = constants.i.BLACK, 
            _logoColors16[constants.e.BLACK] = constants.i.WHITE, _logoColors16[constants.e.WHITE] = constants.i.BLACK, 
            _logoColors16),
            secondaryColors: (_secondaryColors16 = {}, _secondaryColors16[constants.e.GOLD] = constants.e.SILVER, 
            _secondaryColors16[constants.e.BLUE] = constants.e.SILVER, _secondaryColors16[constants.e.SILVER] = constants.e.SILVER, 
            _secondaryColors16[constants.e.BLACK] = constants.e.BLACK, _secondaryColors16[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors16[constants.e.WHITE] = constants.e.WHITE, _secondaryColors16),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.MERCADOPAGO] = {
            label: "{ logo: " + constants.h.MERCADOPAGO + " }",
            logoLabel: "{ logo: " + constants.h.MERCADOPAGO + " }",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.SILVER, constants.e.BLACK, constants.e.WHITE ],
            logoColors: (_logoColors17 = {}, _logoColors17[constants.e.SILVER] = constants.i.BLACK, 
            _logoColors17[constants.e.BLACK] = constants.i.WHITE, _logoColors17[constants.e.WHITE] = constants.i.BLACK, 
            _logoColors17),
            secondaryColors: (_secondaryColors17 = {}, _secondaryColors17[constants.e.GOLD] = constants.e.SILVER, 
            _secondaryColors17[constants.e.BLUE] = constants.e.SILVER, _secondaryColors17[constants.e.SILVER] = constants.e.SILVER, 
            _secondaryColors17[constants.e.BLACK] = constants.e.BLACK, _secondaryColors17[constants.e.DARKBLUE] = constants.e.SILVER, 
            _secondaryColors17[constants.e.WHITE] = constants.e.WHITE, _secondaryColors17),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1
        }, _BUTTON_CONFIG[constants.f.CARD] = {
            label: "{ cards }",
            logoLabel: "{ cards }",
            defaultColor: constants.e.SILVER,
            colors: [ constants.e.TRANSPARENT ],
            logoColors: (_logoColors18 = {}, _logoColors18[constants.e.TRANSPARENT] = constants.i.BLACK, 
            _logoColors18),
            secondaryColors: (_secondaryColors18 = {}, _secondaryColors18[constants.e.GOLD] = constants.e.TRANSPARENT, 
            _secondaryColors18[constants.e.BLUE] = constants.e.TRANSPARENT, _secondaryColors18[constants.e.SILVER] = constants.e.TRANSPARENT, 
            _secondaryColors18[constants.e.BLACK] = constants.e.TRANSPARENT, _secondaryColors18[constants.e.DARKBLUE] = constants.e.TRANSPARENT, 
            _secondaryColors18[constants.e.WHITE] = constants.e.TRANSPARENT, _secondaryColors18),
            allowPrimary: !1,
            allowPrimaryVertical: !1,
            allowPrimaryHorizontal: !1,
            title: "" + constants.w.CARD
        }, _BUTTON_CONFIG);
        var FUNDING_TO_DEFAULT_LABEL = ((_FUNDING_TO_DEFAULT_L = {})[constants.v.PAYPAL] = constants.f.PAYPAL, 
        _FUNDING_TO_DEFAULT_L[constants.v.VENMO] = constants.f.VENMO, _FUNDING_TO_DEFAULT_L[constants.v.ITAU] = constants.f.ITAU, 
        _FUNDING_TO_DEFAULT_L[constants.v.CARD] = constants.f.CARD, _FUNDING_TO_DEFAULT_L[constants.v.CREDIT] = constants.f.CREDIT, 
        _FUNDING_TO_DEFAULT_L[constants.v.IDEAL] = constants.f.IDEAL, _FUNDING_TO_DEFAULT_L[constants.v.ELV] = constants.f.ELV, 
        _FUNDING_TO_DEFAULT_L[constants.v.BANCONTACT] = constants.f.BANCONTACT, _FUNDING_TO_DEFAULT_L[constants.v.GIROPAY] = constants.f.GIROPAY, 
        _FUNDING_TO_DEFAULT_L[constants.v.SOFORT] = constants.f.SOFORT, _FUNDING_TO_DEFAULT_L[constants.v.EPS] = constants.f.EPS, 
        _FUNDING_TO_DEFAULT_L[constants.v.P24] = constants.f.P24, _FUNDING_TO_DEFAULT_L[constants.v.MYBANK] = constants.f.MYBANK, 
        _FUNDING_TO_DEFAULT_L[constants.v.BLIK] = constants.f.BLIK, _FUNDING_TO_DEFAULT_L[constants.v.MAXIMA] = constants.f.MAXIMA, 
        _FUNDING_TO_DEFAULT_L[constants.v.BOLETO] = constants.f.BOLETO, _FUNDING_TO_DEFAULT_L[constants.v.OXXO] = constants.f.OXXO, 
        _FUNDING_TO_DEFAULT_L[constants.v.MERCADOPAGO] = constants.f.MERCADOPAGO, _FUNDING_TO_DEFAULT_L);
        var LABEL_TO_FUNDING = ((_LABEL_TO_FUNDING = {})[constants.f.PAYPAL] = constants.v.PAYPAL, 
        _LABEL_TO_FUNDING[constants.f.CHECKOUT] = constants.v.PAYPAL, _LABEL_TO_FUNDING[constants.f.PAY] = constants.v.PAYPAL, 
        _LABEL_TO_FUNDING[constants.f.BUYNOW] = constants.v.PAYPAL, _LABEL_TO_FUNDING[constants.f.INSTALLMENT] = constants.v.PAYPAL, 
        _LABEL_TO_FUNDING[constants.f.CARD] = constants.v.CARD, _LABEL_TO_FUNDING[constants.f.CREDIT] = constants.v.CREDIT, 
        _LABEL_TO_FUNDING[constants.f.VENMO] = constants.v.VENMO, _LABEL_TO_FUNDING[constants.f.ITAU] = constants.v.ITAU, 
        _LABEL_TO_FUNDING[constants.f.IDEAL] = constants.v.IDEAL, _LABEL_TO_FUNDING[constants.f.BANCONTACT] = constants.v.BANCONTACT, 
        _LABEL_TO_FUNDING[constants.f.GIROPAY] = constants.v.GIROPAY, _LABEL_TO_FUNDING[constants.f.EPS] = constants.v.EPS, 
        _LABEL_TO_FUNDING[constants.f.SOFORT] = constants.v.SOFORT, _LABEL_TO_FUNDING[constants.f.P24] = constants.v.P24, 
        _LABEL_TO_FUNDING[constants.f.MYBANK] = constants.v.MYBANK, _LABEL_TO_FUNDING[constants.f.BLIK] = constants.v.BLIK, 
        _LABEL_TO_FUNDING[constants.f.MAXIMA] = constants.v.MAXIMA, _LABEL_TO_FUNDING[constants.f.BOLETO] = constants.v.BOLETO, 
        _LABEL_TO_FUNDING[constants.f.OXXO] = constants.v.OXXO, _LABEL_TO_FUNDING[constants.f.MERCADOPAGO] = constants.v.MERCADOPAGO, 
        _LABEL_TO_FUNDING);
        var BUTTON_STYLE = ((_BUTTON_STYLE = {})[constants.l.TINY] = {
            defaultWidth: 75,
            defaultHeight: 25,
            minWidth: 75,
            maxWidth: 150,
            minHeight: 25,
            maxHeight: 30,
            buttonTextMargin: .5,
            allowFunding: !0,
            allowTagline: !1,
            byPayPalHeight: 0
        }, _BUTTON_STYLE[constants.l.SMALL] = {
            defaultWidth: 150,
            defaultHeight: 25,
            minWidth: 150,
            maxWidth: 200,
            minHeight: 25,
            maxHeight: 55,
            buttonTextMargin: .5,
            allowFunding: !0,
            allowTagline: !0,
            byPayPalHeight: 0
        }, _BUTTON_STYLE[constants.l.MEDIUM] = {
            defaultWidth: 250,
            defaultHeight: 35,
            minWidth: 200,
            maxWidth: 300,
            minHeight: 35,
            maxHeight: 55,
            buttonTextMargin: 1,
            allowFunding: !0,
            allowTagline: !0,
            byPayPalHeight: 30
        }, _BUTTON_STYLE[constants.l.LARGE] = {
            defaultWidth: 350,
            defaultHeight: 45,
            minWidth: 300,
            maxWidth: 500,
            minHeight: 30,
            maxHeight: 55,
            buttonTextMargin: 1,
            allowFunding: !0,
            allowTagline: !0,
            byPayPalHeight: 30
        }, _BUTTON_STYLE[constants.l.HUGE] = {
            defaultWidth: 500,
            defaultHeight: 55,
            minWidth: 500,
            maxWidth: 750,
            minHeight: 40,
            maxHeight: 55,
            buttonTextMargin: 1.25,
            allowFunding: !0,
            allowTagline: !0,
            byPayPalHeight: 30
        }, _BUTTON_STYLE);
        function labelToFunding(label) {
            return label ? LABEL_TO_FUNDING[label] : constants.v.PAYPAL;
        }
        function getButtonConfig(label, key, def) {
            return function(conf, category, key, def) {
                var categoryConfig = conf[category];
                if (categoryConfig && categoryConfig.hasOwnProperty(key)) return categoryConfig[key];
                if (conf[constants.s] && conf[constants.s].hasOwnProperty(key)) return conf[constants.s][key];
                if (arguments.length >= 4) return def;
                throw new Error("No value found for " + category + ":" + key);
            }(BUTTON_CONFIG, label, key, def);
        }
        var util = __webpack_require__(12);
        var normalizeProps = Object(util.i)((function(props, defs) {
            void 0 === defs && (defs = {});
            var env = props.env, locale = props.locale, _props$style = props.style, style = void 0 === _props$style ? {} : _props$style, funding = props.funding, commit = props.commit, checkoutCustomization = props.checkoutCustomization;
            locale = locale ? function(locale) {
                var _locale$split = locale.split("_");
                return {
                    country: _locale$split[1],
                    lang: _locale$split[0]
                };
            }(locale) : defs.locale || getButtonConfig("DEFAULT", "defaultLocale");
            (funding = funding || {}).allowed = funding.allowed || [];
            funding.disallowed = funding.disallowed || [];
            funding.remembered = funding.remembered || [];
            var label = style[constants.m.LABEL] || getButtonConfig("DEFAULT", style.layout === constants.g.VERTICAL ? "defaultVerticalLabel" : "defaultLabel");
            var layout = style[constants.m.LAYOUT] || getButtonConfig(label, "defaultLayout");
            var _style$BUTTON_STYLE_O = style[constants.m.SIZE], size = void 0 === _style$BUTTON_STYLE_O ? getButtonConfig(label, layout === constants.g.VERTICAL ? "defaultVerticalSize" : "defaultSize") : _style$BUTTON_STYLE_O, _style$BUTTON_STYLE_O2 = style[constants.m.COLOR], color = void 0 === _style$BUTTON_STYLE_O2 ? getButtonConfig(label, "defaultColor") : _style$BUTTON_STYLE_O2, _style$BUTTON_STYLE_O3 = style[constants.m.SHAPE], shape = void 0 === _style$BUTTON_STYLE_O3 ? getButtonConfig(label, "defaultShape") : _style$BUTTON_STYLE_O3, _style$BUTTON_STYLE_O4 = style[constants.m.BRANDING], branding = void 0 === _style$BUTTON_STYLE_O4 ? getButtonConfig(label, layout === constants.g.VERTICAL ? "defaultVerticalBranding" : "defaultBranding") : _style$BUTTON_STYLE_O4, _style$BUTTON_STYLE_O5 = style[constants.m.FUNDINGICONS], fundingicons = void 0 === _style$BUTTON_STYLE_O5 ? getButtonConfig(label, "defaultFundingIcons") : _style$BUTTON_STYLE_O5, _style$BUTTON_STYLE_O6 = style[constants.m.TAGLINE], tagline = void 0 === _style$BUTTON_STYLE_O6 ? getButtonConfig(label, "defaultTagline") : _style$BUTTON_STYLE_O6, max = style[constants.m.MAXBUTTONS], height = style[constants.m.HEIGHT], installmentperiod = style[constants.m.INSTALLMENTPERIOD];
            max = function(_ref) {
                var label = _ref.label, layout = _ref.layout, max = _ref.max;
                if (!getButtonConfig(label, layout === constants.g.HORIZONTAL ? "allowPrimaryHorizontal" : "allowPrimaryVertical")) return 1;
                var configMax = getButtonConfig(label, layout === constants.g.HORIZONTAL ? "maxHorizontalButtons" : "maxVerticalButtons");
                return max ? Math.min(configMax, max) : configMax;
            }({
                label: label,
                layout: layout,
                max: max
            });
            var sources = function(_ref4) {
                var funding = _ref4.funding, selected = _ref4.selected, locale = _ref4.locale, env = _ref4.env, layout = _ref4.layout, commit = _ref4.commit;
                var reasons = {};
                var eligibleFunding = FUNDING_PRIORITY.filter((function(source) {
                    var _isFundingEligible = function(source, _ref3) {
                        var locale = _ref3.locale, funding = _ref3.funding, env = _ref3.env, layout = _ref3.layout, selected = _ref3.selected, commit = _ref3.commit;
                        if (selected && source === selected) return {
                            eligible: !0,
                            reason: constants.x.PRIMARY
                        };
                        if (!(getFundingConfig(source, "enabled") || env === constants.t.TEST && getFundingConfig(source, "test"))) return {
                            eligible: !1,
                            reason: constants.x.NOT_ENABLED
                        };
                        var ineligibleReason = isFundingIneligible(source, {
                            locale: locale,
                            funding: funding,
                            layout: layout,
                            commit: commit,
                            env: env
                        });
                        if (ineligibleReason) return {
                            eligible: !1,
                            reason: ineligibleReason
                        };
                        var autoEligibleReason = isFundingAutoEligible(source, {
                            locale: locale,
                            funding: funding,
                            layout: layout
                        });
                        return autoEligibleReason ? {
                            eligible: !0,
                            reason: autoEligibleReason
                        } : {
                            eligible: !1,
                            reason: constants.x.NEED_OPT_IN
                        };
                    }(source, {
                        selected: selected,
                        locale: locale,
                        funding: funding,
                        env: env,
                        layout: layout,
                        commit: commit
                    }), eligible = _isFundingEligible.eligible;
                    reasons[source] = {
                        eligible: eligible,
                        reason: _isFundingEligible.reason,
                        factors: {
                            env: env,
                            locale: locale,
                            layout: layout
                        }
                    };
                    return eligible;
                }));
                fundingEligibilityReasons.push(reasons);
                eligibleFunding.splice(eligibleFunding.indexOf(selected), 1);
                eligibleFunding.unshift(selected);
                return eligibleFunding;
            }({
                funding: funding,
                selected: labelToFunding(label),
                locale: locale,
                env: env,
                layout: layout,
                commit: commit
            });
            var multiple = (sources = Object(util.p)(sources.slice(0, max), FUNDING_ORDER)).length > 1;
            multiple && (branding = !0);
            var _ref2;
            return {
                size: size,
                label: label,
                locale: locale,
                color: color,
                shape: shape,
                branding: branding,
                fundingicons: fundingicons,
                tagline: tagline = (_ref2 = {
                    tagline: tagline,
                    branding: branding,
                    fundingicons: fundingicons,
                    layout: layout
                }, Boolean(_ref2.tagline && _ref2.branding && !_ref2.fundingicons && _ref2.layout === constants.g.HORIZONTAL)),
                funding: funding,
                layout: layout,
                sources: sources,
                max: max,
                multiple: multiple,
                env: env,
                height: height,
                cards: determineEligibleCards({
                    funding: funding,
                    locale: locale
                }),
                installmentperiod: installmentperiod,
                checkoutCustomization: checkoutCustomization
            };
        }));
        var jsx = __webpack_require__(1);
        function validateButtonLocale(locale) {
            if (!locale) throw new Error("Expected props.locale to be set");
            if (!locale.match(/^[a-z]{2}[_][A-Z][A-Z0-9]$/)) throw new Error("Expected props.locale to be valid, got " + locale);
            var _locale$split = locale.split("_"), country = _locale$split[1];
            if (!constants.A[country] || -1 === constants.A[country].indexOf(_locale$split[0])) throw new Error("Expected props.locale to be valid");
        }
        function validateButtonStyle(style, props) {
            void 0 === style && (style = {});
            if (!style) throw new Error("Expected props.style to be set");
            var label = style[constants.m.LABEL] || getButtonConfig("DEFAULT", style[constants.m.LAYOUT] === constants.g.VERTICAL ? "defaultVerticalLabel" : "defaultLabel");
            if (!BUTTON_CONFIG[label]) throw new Error("Invalid button label: " + label + ", expected: " + Object.keys(BUTTON_CONFIG[label]).join(", "));
            var color = style[constants.m.COLOR], shape = style[constants.m.SHAPE], size = style[constants.m.SIZE], branding = style[constants.m.BRANDING], fundingicons = style[constants.m.FUNDINGICONS], tagline = style[constants.m.TAGLINE], layout = style[constants.m.LAYOUT], maxbuttons = style[constants.m.MAXBUTTONS], height = style[constants.m.HEIGHT];
            if (color && -1 === getButtonConfig(label, "colors").indexOf(color)) throw new Error("Unexpected style." + constants.m.COLOR + " for " + label + " button: " + color + ", expected " + getButtonConfig(label, "colors").join(", "));
            if (shape && -1 === getButtonConfig(label, "shapes").indexOf(shape)) throw new Error("Unexpected style." + constants.m.SHAPE + " for " + label + " button: " + shape + ", expected " + getButtonConfig(label, "shapes").join(", "));
            if (size && -1 === getButtonConfig(label, "sizes").indexOf(size)) throw new Error("Unexpected style." + constants.m.SIZE + " for " + label + " button: " + size + ", expected " + getButtonConfig(label, "sizes").join(", "));
            if (!1 === branding) throw new Error("style." + constants.m.BRANDING + ":false is not allowed");
            if (fundingicons && !getButtonConfig(label, "allowFundingIcons")) throw new Error("style." + constants.m.FUNDINGICONS + ":true is not allowed for " + label + " button");
            if (layout && -1 === getButtonConfig(label, "layouts").indexOf(layout)) throw new Error("Unexpected style." + constants.m.LAYOUT + " for " + label + " button: " + layout + ", expected " + getButtonConfig(label, "layouts").join(", "));
            if (void 0 !== maxbuttons) {
                if ("number" != typeof maxbuttons) throw new TypeError("Expected style." + constants.m.MAXBUTTONS + " to be a number, got: " + maxbuttons);
                if (maxbuttons < 1) throw new Error("Expected style." + constants.m.MAXBUTTONS + " to be a at least 1, got: " + maxbuttons);
                var minButtons = getButtonConfig(label, layout === constants.g.VERTICAL ? "minVerticalButtons" : "minHorizontalButtons");
                if (maxbuttons < minButtons) throw new Error("Expected style." + constants.m.MAXBUTTONS + " to be no fewer than " + minButtons + ", got " + maxbuttons);
            }
            if (void 0 !== height) {
                if ("number" != typeof height) throw new TypeError("Expected style." + constants.m.HEIGHT + " to be a number, got: " + maxbuttons);
                var buttonSize = size || getButtonConfig(label, style.layout === constants.g.VERTICAL ? "defaultVerticalSize" : "defaultSize");
                var _ref = size === constants.l.RESPONSIVE ? {
                    minHeight: BUTTON_STYLE[constants.l.SMALL].minHeight,
                    maxHeight: BUTTON_STYLE[constants.l.HUGE].maxHeight
                } : BUTTON_STYLE[buttonSize], minHeight = _ref.minHeight, maxHeight = _ref.maxHeight;
                if (height < minHeight || height > maxHeight) throw new Error("Expected style." + constants.m.HEIGHT + " to be between " + minHeight + "px and " + maxHeight + "px - got " + height + "px");
            }
            if (!getButtonConfig(label, "allowPrimary")) throw new Error(label + " can not be used as primary button label");
            if (layout === constants.g.VERTICAL) {
                if (size && -1 === [ constants.l.MEDIUM, constants.l.LARGE, constants.l.RESPONSIVE ].indexOf(size)) throw new Error("Button must be at least " + constants.l.MEDIUM + " size for " + constants.g.VERTICAL + " layout");
                if (!getButtonConfig(label, "allowPrimaryVertical")) throw new Error("style." + constants.m.LABEL + " option is not allowed for " + constants.g.VERTICAL + " layout - got " + label);
                if (fundingicons) throw new Error("style." + constants.m.FUNDINGICONS + " not allowed for " + constants.g.VERTICAL + " layout - got " + fundingicons);
                if (tagline) throw new Error("style." + constants.m.TAGLINE + " is not allowed for " + constants.g.VERTICAL + " layout - got " + tagline);
            }
            !function(style, locale) {
                void 0 === style && (style = {});
                void 0 === locale && (locale = "en_US");
                var country = locale.split("_")[1];
                var isInstallmentAllowedCountry = -1 !== constants.a.indexOf(country);
                if (!isInstallmentAllowedCountry && style.label === constants.f.INSTALLMENT) throw new Error("Unexpected label: style." + style.label + " for country: " + country);
                if (!isInstallmentAllowedCountry && style[constants.m.INSTALLMENTPERIOD]) throw new Error("style." + constants.m.INSTALLMENTPERIOD + " is invalid for country: " + country);
                if (isInstallmentAllowedCountry && style[constants.m.INSTALLMENTPERIOD] && style.label !== constants.f.INSTALLMENT) throw new Error("style." + constants.m.INSTALLMENTPERIOD + " is invalid for label: style." + style.label);
                if (isInstallmentAllowedCountry && style.label === constants.f.INSTALLMENT && style[constants.m.INSTALLMENTPERIOD] && "number" != typeof style[constants.m.INSTALLMENTPERIOD]) throw new Error("style." + constants.m.INSTALLMENTPERIOD + " is expected to be a number");
                if (isInstallmentAllowedCountry && style.label === constants.f.INSTALLMENT && style[constants.m.INSTALLMENTPERIOD] && -1 === constants.b[country].indexOf(style[constants.m.INSTALLMENTPERIOD])) throw new Error("style." + constants.m.INSTALLMENTPERIOD + ": " + style[constants.m.INSTALLMENTPERIOD] + " is not a valid installment number for " + style.label);
            }(style, props.locale);
        }
        var class_CLASS = {
            SHOULD_FOCUS: "paypal-should-focus",
            CONTAINER: "paypal-button-container",
            BUTTON: "paypal-button",
            BUTTON_LABEL: "paypal-button-label-container",
            LABEL: "paypal-button-label",
            COLOR: "paypal-button-color",
            LOGO_COLOR: "paypal-button-logo-color",
            SHAPE: "paypal-button-shape",
            BRANDING: "paypal-button-branding",
            LAYOUT: "paypal-button-layout",
            NUMBER: "paypal-button-number",
            ENV: "paypal-button-env",
            TAGLINE: "paypal-button-tagline",
            TAGLINE_COLOR: "paypal-button-tagline-color",
            FUNDINGICONS: "paypal-button-fundingicons",
            TEXT: "paypal-button-text",
            LOGO: "paypal-button-logo",
            CARD: "paypal-button-card",
            SEPARATOR: "paypal-separator",
            HIDDEN: "hidden",
            DOM_READY: "dom-ready",
            PERSONALIZATION_TEXT: "personalization-text"
        };
        var pageStyle = "\n    html, body {\n        padding: 0;\n        margin: 0;\n        width: 100%;\n        overflow: hidden;\n        text-align: center;\n    }\n\n    body {\n        display: inline-block;\n        vertical-align: top;\n    }\n\n    * {\n        -webkit-touch-callout: none;\n        -webkit-user-select: none;\n        -khtml-user-select: none;\n        -moz-user-select: none;\n        -ms-user-select: none;\n        user-select: none;\n        cursor: default;\n        box-sizing: border-box;\n    }\n    \n    ." + class_CLASS.HIDDEN + " {\n        position: absolute;\n        visibility: hidden;\n    }\n";
        var buttonStyle = "\n\n    ." + class_CLASS.CONTAINER + ' {\n        display: block;\n        white-space: nowrap;\n        margin: 0;\n        background: 0;\n        border: 0;\n        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n        text-transform: none;\n        font-weight: 500;R\n        -webkit-font-smoothing: antialiased;\n        font-smoothing: antialiased;\n        z-index: 0;\n        font-size: 0;\n        width: 100%;\n        box-sizing: border-box;\n    }\n\n    .' + class_CLASS.BUTTON + ":not(." + class_CLASS.CARD + ") {\n        border: 1px solid transparent;\n        border-radius: 0 3px 3px 0;\n        position: relative;\n        width: 100%;\n        box-sizing: border-box;\n        border: none;\n        vertical-align: top;\n        cursor: pointer;\n        outline: none;\n        overflow: hidden;\n    }\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.COLOR + "-" + constants.e.TRANSPARENT + " {\n        cursor: auto;\n    }\n\n    ." + class_CLASS.BUTTON + " * {\n        cursor: pointer;\n    }\n\n    ." + class_CLASS.CONTAINER + "." + class_CLASS.ENV + "-" + constants.t.TEST + " ." + class_CLASS.TEXT + " {\n        font-family: Arial !important;\n        background: rgba(0, 0, 0, 0.5) !important;\n        color: transparent  !important;\n        text-shadow: none  !important;\n    }\n\n    ." + class_CLASS.BUTTON + ":hover {\n        box-shadow: inset 0 0 100px 100px rgba(255, 255, 255, 0.2);\n    }\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.COLOR + "-" + constants.e.GOLD + ":hover,\n    ." + class_CLASS.BUTTON + "." + class_CLASS.COLOR + "-" + constants.e.SILVER + ":hover {\n        box-shadow: inset 0 0 100px 100px rgba(0, 0, 0, 0.05);\n    }\n\n    ." + class_CLASS.CARD + ", ." + class_CLASS.CARD + " * {\n        cursor: pointer;\n    }\n\n    ." + class_CLASS.CARD + ":hover {\n        filter: brightness(1.2);\n    }\n\n    ." + class_CLASS.BUTTON + ":focus, ." + class_CLASS.CARD + ":focus {\n        outline: none;\n    }\n\n    ." + class_CLASS.SHOULD_FOCUS + " ." + class_CLASS.BUTTON + ":focus,\n    ." + class_CLASS.SHOULD_FOCUS + " ." + class_CLASS.CARD + ":focus {\n        outline: solid 2px Highlight;\n        outline: auto 5px -webkit-focus-ring-color;\n        outline-offset: -3px;\n    }\n\n    ." + class_CLASS.BUTTON + ":focus {\n        box-shadow: -1px -1px 18px 1px rgba(0, 0, 0, 0.25) inset;\n    }\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.COLOR + "-" + constants.e.TRANSPARENT + ":focus {\n        box-shadow: none;\n        outline: none;\n    }\n\n    ." + class_CLASS.LOGO + " {\n        padding: 0;\n        display: inline-block;\n        background: none;\n        border: none;\n        width: auto;\n    }\n\n    ." + class_CLASS.TEXT + " {\n        display: inline-block;\n        white-space: pre;\n    }\n\n    ." + class_CLASS.BUTTON + " ." + class_CLASS.BUTTON_LABEL + " {\n        position: relative;\n        top: 50%;\n        transform: translateY(-50%);\n        -webkit-transform: translateY(-50%);\n        -moz-transform: translateY(-50%);\n        -ms-transform: translateY(-50%);\n        -o-transform: translateY(-50%);\n    }\n    \n    ." + class_CLASS.BUTTON + " > ." + class_CLASS.BUTTON_LABEL + " > * {\n        vertical-align: top;\n        height: 100%;\n        text-align: left;\n    }\n\n    ." + class_CLASS.BUTTON + " ." + class_CLASS.CARD + " {\n        border-radius: 4px;\n    }\n\n    .powered-by-paypal > ." + class_CLASS.TEXT + " {\n        vertical-align: top;\n        line-height: 18px;\n    }\n\n    .powered-by-paypal > ." + class_CLASS.LOGO + " {\n        height: 16px;\n        min-height: 16px;\n    }\n\n    ." + class_CLASS.TAGLINE + " {\n        max-width: 100%;\n        font-weight: normal;\n        display: block;\n        text-align: center;\n        width: auto;\n    }\n\n    ." + class_CLASS.SEPARATOR + " {\n        height: 80%;\n        border-left: 1px solid rgba(0, 0, 0, 0.15);\n        margin: 0 8px;\n        display: inline-block;\n        position: relative;\n        top: 10%;\n    }\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.COLOR + "-" + constants.e.BLACK + " ." + class_CLASS.SEPARATOR + " {\n        border-color: rgba(255, 255, 255, 0.45);\n    }\n";
        var layoutStyle = "\n\n    ." + class_CLASS.CONTAINER + "." + class_CLASS.LAYOUT + "-" + constants.g.VERTICAL + " ." + class_CLASS.TAGLINE + " {\n        display: none;\n    }\n";
        var brandingStyle = "\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.BRANDING + "-" + constants.d.UNBRANDED + "  {\n        min-width: 60%;\n        width: auto;\n        font-weight: 900;\n    }\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.BRANDING + "-" + constants.d.UNBRANDED + " ." + class_CLASS.LOGO + " {\n        display: none;\n    }\n";
        var labelStyle = "\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.LABEL + "-" + constants.f.CARD + " {\n        border-radius: 0 !important;\n    }\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.LABEL + "-" + constants.f.CREDIT + " ." + class_CLASS.TEXT + " {\n        display: none !important;\n    }\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.LAYOUT + "-" + constants.g.HORIZONTAL + "." + class_CLASS.NUMBER + "-" + constants.j.MULTIPLE + "." + class_CLASS.LABEL + "-" + constants.f.CREDIT + " ." + class_CLASS.LOGO + "." + class_CLASS.LOGO + "-" + constants.h.PAYPAL + " {\n        display: none;\n    }\n\n    @media only screen and (max-width : " + BUTTON_STYLE[constants.l.SMALL].minWidth + "px) {\n\n        ." + class_CLASS.BUTTON + "." + class_CLASS.LABEL + "-" + constants.f.CREDIT + " ." + class_CLASS.LOGO + "." + class_CLASS.LOGO + "-" + constants.h.PAYPAL + " {\n            display: none;\n        }\n    }\n\n    @media only screen and (min-width : " + BUTTON_STYLE[constants.l.SMALL].minWidth + "px) {\n\n        ." + class_CLASS.BUTTON + "." + class_CLASS.LABEL + "-" + constants.f.CREDIT + " ." + class_CLASS.LOGO + "." + class_CLASS.LOGO + "-" + constants.h.PAYPAL + " {\n            display: inline-block;\n        }\n    }\n";
        var buttonColorStyle = "\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.COLOR + "-" + constants.e.GOLD + " {\n        background: #ffc439;\n        color: #111;\n    }\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.COLOR + "-" + constants.e.BLUE + " {\n        background: #009cde;\n        color: #fff;\n    }\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.COLOR + "-" + constants.e.SILVER + " {\n        background: #eee;\n        color: #111;\n    }\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.COLOR + "-" + constants.e.BLACK + " {\n        background: #2C2E2F;\n        color: #fff;\n    }\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.COLOR + "-" + constants.e.DARKBLUE + " {\n        background: #003087;\n        color: #fff;\n    }\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.COLOR + "-" + constants.e.TRANSPARENT + " {\n        background: transparent;\n        color: #111;\n    }\n\n    ." + class_CLASS.BUTTON + "." + class_CLASS.COLOR + "-" + constants.e.WHITE + " {\n        background: #fff;\n        color: #2C2E2F;\n        border: 1px solid #2C2E2F;\n    }\n";
        var componentContent = {
            AD: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            AE: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                },
                ar: {
                    checkout: "السداد بواسطة {logo:pp} {logo:paypal}",
                    safer_tag: "الطريقة الأسهل والأكثر أماناً في الدفع",
                    later_tag: "اشترِ الآن، وسدّد على دفعات",
                    pay: "دفع بواسطة {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} شراء الآن",
                    poweredBy: "مدعوم من {logo:paypal}"
                }
            },
            AG: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            AI: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            AL: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            AM: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            AN: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            AO: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            AR: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            AT: {
                de: {
                    checkout: "Direkt zu {logo:pp} {logo:paypal}",
                    safer_tag: "Einfach schneller und sicherer bezahlen",
                    later_tag: "Kaufen Sie jetzt und bezahlen Sie nach und nach.",
                    pay: "Mit {logo:paypal} zahlen",
                    buynow: "{logo:pp} {logo:paypal} Jetzt kaufen",
                    poweredBy: "Abgewickelt durch {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            AU: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            AW: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            AZ: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            BA: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            BB: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            BE: {
                en: {
                    checkout: "Pay with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, faster way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                nl: {
                    checkout: "Betalen met {logo:pp} {logo:paypal}",
                    safer_tag: "De veiligere en snellere manier om te betalen.",
                    later_tag: "Koop nu. Betaal later.",
                    pay: "Betalen met {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Nu kopen",
                    poweredBy: "Mogelijk gemaakt door {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Le réflexe sécurité pour payer",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                }
            },
            BF: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            BG: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            BH: {
                ar: {
                    checkout: "السداد بواسطة {logo:pp} {logo:paypal}",
                    safer_tag: "الطريقة الأسهل والأكثر أماناً في الدفع",
                    later_tag: "اشترِ الآن، وسدّد على دفعات",
                    pay: "دفع بواسطة {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} شراء الآن",
                    poweredBy: "مدعوم من {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            BI: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            BJ: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            BM: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            BN: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            BO: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            BR: {
                pt: {
                    checkout: "{logo:pp} {logo:paypal} Finalizar",
                    safer_tag: "A maneira fácil e segura de pagar.",
                    later_tag: "Compre agora e pague depois.",
                    pay: "Pague com {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar agora",
                    installment: "{logo:pp} {logo:paypal}  Pagamentos parcelados",
                    installment_period: "{logo:pp} {logo:paypal}  Pague em até [installmentperiod]x sem juros",
                    poweredBy: "Com tecnologia {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    installment: "{logo:pp} {logo:paypal}  Interest free payments",
                    installment_period: "{logo:pp} {logo:paypal}  Pay up to [installmentperiod]x without interest",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            BS: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            BT: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            BW: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            BY: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            BZ: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            C2: {
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式。",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay.",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            CA: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "{logo:pp} {logo:paypal} Payer",
                    safer_tag: "Votre réflexe sécurité pour payer",
                    later_tag: "Acheter. Payer plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                }
            },
            CD: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            CG: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            CH: {
                de: {
                    checkout: "Direkt zu {logo:pp} {logo:paypal}",
                    safer_tag: "Einfach schneller und sicherer bezahlen",
                    later_tag: "Kaufen Sie jetzt und bezahlen Sie nach und nach.",
                    pay: "Mit {logo:paypal} zahlen",
                    buynow: "{logo:pp} {logo:paypal} Jetzt kaufen",
                    poweredBy: "Abgewickelt durch {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Le réflexe sécurité pour payer",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            CI: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            CK: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            CL: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            CM: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            CN: {
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            CO: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            CR: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            CV: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            CY: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            CZ: {
                cs: {
                    checkout: "Zaplatit přes {logo:pp} {logo:paypal}",
                    safer_tag: "Jednodušší a bezpečnější způsob placení",
                    later_tag: "Nakupujte nyní, plaťte později.",
                    pay: "Zaplatit přes {logo: paypal}",
                    buynow: "Koupit ihned přes {logo:pp} {logo:paypal}",
                    poweredBy: "Využívá službu {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            DE: {
                de: {
                    checkout: "Direkt zu {logo:pp} {logo:paypal}",
                    safer_tag: "Überall schnell und sicher bezahlen.",
                    later_tag: "Jetzt bei uns bequem in Raten zahlen.",
                    pay: "Mit {logo:paypal} zahlen",
                    buynow: "{logo:pp} {logo:paypal} Jetzt kaufen",
                    poweredBy: "Powered by {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            DJ: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            DK: {
                da: {
                    checkout: "{logo:pp} {logo:paypal} Betal",
                    safer_tag: "Betal nemt og sikkert",
                    later_tag: "Køb nu, betal senere.",
                    pay: "Betal med {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Køb nu",
                    poweredBy: "Leveret af {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            DM: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            DO: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            DZ: {
                ar: {
                    checkout: "السداد بواسطة {logo:pp} {logo:paypal}",
                    safer_tag: "الطريقة الأسهل والأكثر أماناً في الدفع",
                    later_tag: "اشترِ الآن، وسدّد على دفعات",
                    pay: "دفع بواسطة {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} شراء الآن",
                    poweredBy: "مدعوم من {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            EC: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            EE: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                ru: {
                    checkout: "Оформить заказ через {logo:pp} {logo:paypal}",
                    safer_tag: "Более безопасный и простой способ оплаты.",
                    later_tag: "Покупайте сейчас, платите потом.",
                    pay: "Оплатить через {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Купить сейчас",
                    poweredBy: "Обработано {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            EG: {
                ar: {
                    checkout: "السداد بواسطة {logo:pp} {logo:paypal}",
                    safer_tag: "الطريقة الأسهل والأكثر أماناً في الدفع",
                    later_tag: "اشترِ الآن، وسدّد على دفعات",
                    pay: "دفع بواسطة {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} شراء الآن",
                    poweredBy: "مدعوم من {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            ER: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            ES: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Tecnología de {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            ET: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            FI: {
                fi: {
                    checkout: "{logo:pp} {logo:paypal}-maksu",
                    safer_tag: "Turvallisempi ja helpompi maksutapa",
                    later_tag: "Osta nyt. Maksa vähitellen.",
                    pay: "{logo:paypal}-maksu",
                    buynow: "{logo:pp} {logo:paypal} Osta nyt",
                    poweredBy: "Palvelun tarjoaa {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            FJ: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            FK: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            FM: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            FO: {
                da: {
                    checkout: "Betal med {logo:pp} {logo:paypal}",
                    safer_tag: "Betal nemt og sikkert",
                    later_tag: "Køb nu, betal senere.",
                    pay: "Betal med {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Køb nu",
                    poweredBy: "Leveret af {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            FR: {
                fr: {
                    checkout: "{logo:pp} {logo:paypal} Payer",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Pay",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            GA: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            GB: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            GD: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            GE: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            GF: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            GI: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            GL: {
                da: {
                    checkout: "Betal med {logo:pp} {logo:paypal}",
                    safer_tag: "Betal nemt og sikkert",
                    later_tag: "Køb nu, betal senere.",
                    pay: "Betal med {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Køb nu",
                    poweredBy: "Leveret af {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            GM: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            GN: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            GP: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            GR: {
                el: {
                    checkout: "Ολοκλήρωση αγοράς μέσω {logo:pp} {logo:paypal}",
                    safer_tag: "Ο ασφαλέστερος και ευκολότερος τρόπος πληρωμής",
                    later_tag: "Αγοράστε τώρα.  Πληρώστε σε δόσεις.",
                    pay: "Πληρωμή μέσω {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Αγορά τώρα",
                    poweredBy: "Με την υποστήριξη του {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            GT: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            GW: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            GY: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            HK: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal} 結帳",
                    safer_tag: "更安全、更方便的付款方式",
                    later_tag: "先購買,後付款。",
                    pay: "使用 {logo:paypal} 付款",
                    buynow: "{logo:pp} {logo:paypal} 立即買",
                    poweredBy: "支援方: {logo:paypal}"
                }
            },
            HN: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            HR: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            HU: {
                hu: {
                    checkout: "{logo:pp} {logo:paypal}-fizetés",
                    safer_tag: "Biztonságosabb, könnyebb fizetési mód.",
                    later_tag: "Vásároljon most. Fizessen később.",
                    pay: "{logo:paypal}-fizetés",
                    buynow: "{logo:pp} {logo:paypal} Vásárlás",
                    poweredBy: "Üzemeltető: {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            ID: {
                id: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "Cara yang lebih mudah dan aman untuk membayar.",
                    later_tag: "Beli Sekarang. Bayar dalam Jangka Waktu Tertentu.",
                    pay: "Bayar dengan {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Beli Sekarang",
                    poweredBy: "Ditunjang teknologi {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            IE: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            IL: {
                he: {
                    checkout: "{logo:pp} {logo:paypal} שלם",
                    safer_tag: ".הדרך הקלה והבטוחה יותר לשלם",
                    later_tag: "קנה עכשיו. שלם לאורך זמן.",
                    pay: "שלם באמצעות {logo:paypal}‏",
                    buynow: "{logo:pp} {logo:paypal} קנה עכשיו",
                    poweredBy: "{logo:paypal} מופעל על-ידי"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            IN: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay.",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            IS: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            IT: {
                it: {
                    checkout: "{logo:pp} {logo:paypal} Paga adesso",
                    safer_tag: "Il modo rapido e sicuro per pagare",
                    later_tag: "Acquista ora. Paga più tardi.",
                    pay: "Paga con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Paga adesso",
                    poweredBy: "Con tecnologia {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            JM: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            JO: {
                ar: {
                    checkout: "السداد بواسطة {logo:pp} {logo:paypal}",
                    safer_tag: "الطريقة الأسهل والأكثر أماناً في الدفع",
                    later_tag: "اشترِ الآن، وسدّد على دفعات",
                    pay: "دفع بواسطة {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} شراء الآن",
                    poweredBy: "مدعوم من {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            JP: {
                ja: {
                    checkout: "{logo:pp} {logo:paypal}で支払う",
                    safer_tag: "より安全・簡単にお支払い",
                    later_tag: "今すぐ購入して、分割してお支払い。",
                    pay: "{logo:paypal}で支払う",
                    buynow: "{logo:pp} {logo:paypal} 購入",
                    poweredBy: "Powered by {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            KE: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            KG: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            KH: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            KI: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            KM: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            KN: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            KR: {
                ko: {
                    checkout: "{logo:pp} {logo:paypal} 체크 아웃",
                    safer_tag: "더 안전하고 빠른 결제 방법",
                    later_tag: "지금 구매하고 천천히 결제하세요.",
                    pay: "{logo:paypal}로 지불하기",
                    buynow: "{logo:pp} {logo:paypal} 바로 구매",
                    poweredBy: "제공: {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay.",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            KW: {
                ar: {
                    checkout: "السداد بواسطة {logo:pp} {logo:paypal}",
                    safer_tag: "الطريقة الأسهل والأكثر أماناً في الدفع",
                    later_tag: "اشترِ الآن، وسدّد على دفعات",
                    pay: "دفع بواسطة {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} شراء الآن",
                    poweredBy: "مدعوم من {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            KY: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            KZ: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            LA: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            LC: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            LI: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            LK: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            LS: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            LT: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                ru: {
                    checkout: "Оформить заказ через {logo:pp} {logo:paypal}",
                    safer_tag: "Более безопасный и простой способ оплаты.",
                    later_tag: "Покупайте сейчас, платите потом.",
                    pay: "Оплатить через {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Купить сейчас",
                    poweredBy: "Обработано {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            LU: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                de: {
                    checkout: "Direkt zu {logo:pp} {logo:paypal}",
                    safer_tag: "Einfach schneller und sicherer bezahlen",
                    later_tag: "Kaufen Sie jetzt und bezahlen Sie nach und nach.",
                    pay: "Mit {logo:paypal} zahlen",
                    buynow: "{logo:pp} {logo:paypal} Jetzt kaufen",
                    poweredBy: "Abgewickelt durch {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            LV: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                ru: {
                    checkout: "Оформить заказ через {logo:pp} {logo:paypal}",
                    safer_tag: "Более безопасный и простой способ оплаты.",
                    later_tag: "Покупайте сейчас, платите потом.",
                    pay: "Оплатить через {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Купить сейчас",
                    poweredBy: "Обработано {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            MA: {
                ar: {
                    checkout: "السداد بواسطة {logo:pp} {logo:paypal}",
                    safer_tag: "الطريقة الأسهل والأكثر أماناً في الدفع",
                    later_tag: "اشترِ الآن، وسدّد على دفعات",
                    pay: "دفع بواسطة {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} شراء الآن",
                    poweredBy: "مدعوم من {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            MC: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            MD: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            ME: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            MG: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            MH: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            MK: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            ML: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            MN: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            MQ: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            MR: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            MS: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            MT: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            MU: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            MV: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            MW: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            MX: {
                es: {
                    checkout: "Pagar con {logo:pp} {logo:paypal}",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    installment: "{logo:pp} {logo:paypal}  Pagos en mensualidades",
                    installment_period: "{logo:pp} {logo:paypal}  Pague hasta en [installmentperiod]x mensualidades",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, faster way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    installment: "{logo:pp} {logo:paypal}  Interest free payments",
                    installment_period: "{logo:pp} {logo:paypal}  Pay up to [installmentperiod]x without interest",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            MY: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay.",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            MZ: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            NA: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            NC: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            NE: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            NF: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            NG: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            NI: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            NL: {
                nl: {
                    checkout: "{logo:pp} {logo:paypal} Betalen",
                    safer_tag: "Een veilige en makkelijke manier om te betalen.",
                    later_tag: "Koop nu. Betaal later.",
                    pay: "Betalen met {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Nu kopen",
                    poweredBy: "Mogelijk gemaakt door {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            NO: {
                no: {
                    checkout: "{logo:pp} {logo:paypal} Betal",
                    safer_tag: "En trygg og enkel betalingsmetode",
                    later_tag: "Kjøp nå, betal senere.",
                    pay: "Betal med {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Kjøp nå",
                    poweredBy: "Leveres av {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            NP: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            NR: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            NU: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            NZ: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay.",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "{logo:pp} {logo:paypal} Payer",
                    safer_tag: "Un réflexe sécurité.",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar.",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式。",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            OM: {
                ar: {
                    checkout: "السداد بواسطة {logo:pp} {logo:paypal}",
                    safer_tag: "الطريقة الأسهل والأكثر أماناً في الدفع",
                    later_tag: "اشترِ الآن، وسدّد على دفعات",
                    pay: "دفع بواسطة {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} شراء الآن",
                    poweredBy: "مدعوم من {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            PA: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            PE: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            PF: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            PG: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            PH: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay.",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            PL: {
                pl: {
                    checkout: "{logo:pp} {logo:paypal} Do kasy",
                    safer_tag: "Płać wygodnie i bezpiecznie",
                    later_tag: "Kup teraz. Płać w ratach",
                    pay: "Zapłać z {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Kup teraz",
                    poweredBy: "Powered by {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            PM: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            PN: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            PT: {
                pt: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A forma rápida e segura de pagar",
                    later_tag: "Compre agora. Vá pagando.",
                    pay: "Pagar com {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar agora",
                    poweredBy: "Powered by {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            PW: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            PY: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            QA: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                },
                ar: {
                    checkout: "السداد بواسطة {logo:pp} {logo:paypal}",
                    safer_tag: "الطريقة الأسهل والأكثر أماناً في الدفع",
                    later_tag: "اشترِ الآن، وسدّد على دفعات",
                    pay: "دفع بواسطة {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} شراء الآن",
                    poweredBy: "مدعوم من {logo:paypal}"
                }
            },
            RE: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            RO: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            RS: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            RU: {
                ru: {
                    checkout: "{logo:pp} {logo:paypal} Оформить покупку",
                    safer_tag: "Более безопасный и простой способ оплаты.",
                    later_tag: "Покупайте сейчас, платите потом.",
                    pay: "Оплатить через {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Купить сейчас",
                    poweredBy: "Обработано {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            RW: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            SA: {
                ar: {
                    checkout: "السداد بواسطة {logo:pp} {logo:paypal}",
                    safer_tag: "الطريقة الأسهل والأكثر أماناً في الدفع",
                    later_tag: "اشترِ الآن، وسدّد على دفعات",
                    pay: "دفع بواسطة {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} شراء الآن",
                    poweredBy: "مدعوم من {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            SB: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            SC: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            SE: {
                sv: {
                    checkout: "{logo:pp} {logo:paypal} Betala",
                    safer_tag: "Ett tryggt och smidigt sätt att betala",
                    later_tag: "Köp nu, betala senare",
                    pay: "Betala med {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Köp nu",
                    poweredBy: "Tillhandahålls av {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            SG: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay.",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            SH: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            SI: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            SJ: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            SK: {
                sk: {
                    checkout: "Zaplatiť cez {logo:pp} {logo:paypal}",
                    safer_tag: "Jednoduchší a bezpečnejší spôsob platby",
                    later_tag: "Nakúpte teraz, zaplaťte postupne",
                    pay: "Zaplatiť cez {logo: paypal}",
                    buynow: "{logo:pp} {logo:paypal} Kúpiť",
                    poweredBy: "Používa technológiu {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            SL: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            SM: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            SN: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            SO: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            SR: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            ST: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            SV: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            SZ: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            TC: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            TD: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            TG: {
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            TH: {
                th: {
                    checkout: "{logo:pp} {logo:paypal} ชำระเงิน",
                    safer_tag: "วิธีชำระเงินที่ปลอดภัยและง่ายกว่า",
                    later_tag: "ซื้อวันนี้ แล้วค่อยๆ จ่ายทีหลัง",
                    pay: "ชำระเงินด้วย {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} ซื้อทันที",
                    poweredBy: "ให้บริการโดย {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            TJ: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            TM: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            TN: {
                ar: {
                    checkout: "السداد بواسطة {logo:pp} {logo:paypal}",
                    safer_tag: "الطريقة الأسهل والأكثر أماناً في الدفع",
                    later_tag: "اشترِ الآن، وسدّد على دفعات",
                    pay: "دفع بواسطة {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} شراء الآن",
                    poweredBy: "مدعوم من {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            TO: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            TR: {
                tr: {
                    checkout: "{logo:pp} {logo:paypal} ile Satın Alın",
                    safer_tag: "Ödeme yapmanın daha güvenli ve kolay yolu",
                    later_tag: "Şimdi Alın. Daha Sonra Ödeyin.",
                    pay: "{logo:paypal} ile Öde",
                    buynow: "{logo:pp} {logo:paypal} Hemen Satın Alın",
                    poweredBy: "Çalıştıran {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            TT: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            TV: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            TW: {
                zh: {
                    checkout: "{logo:pp} {logo:paypal} 結帳",
                    safer_tag: "更安全、更方便的付款方式",
                    later_tag: "先購買,後付款。",
                    pay: "使用 {logo:paypal} 付款",
                    buynow: "{logo:pp} {logo:paypal} 立即購",
                    poweredBy: "服務提供者: {logo:paypal}"
                },
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            TZ: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            UA: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                ru: {
                    checkout: "Оформить заказ через {logo:pp} {logo:paypal}",
                    safer_tag: "Более безопасный и простой способ оплаты.",
                    later_tag: "Покупайте сейчас, платите потом.",
                    pay: "Оплатить через {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Купить сейчас",
                    poweredBy: "Обработано {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            UG: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            US: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    dual_tag: "Two easy ways to pay",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "{logo:pp} {logo:paypal} Payer",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "Pagar con {logo:pp} {logo:paypal}",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "使用{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            UY: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            VA: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            VC: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            VE: {
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            VG: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            VN: {
                en: {
                    checkout: "{logo:pp} {logo:paypal} Checkout",
                    safer_tag: "A safer, faster way to pay.",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            VU: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            WF: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            WS: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            },
            YE: {
                ar: {
                    checkout: "السداد بواسطة {logo:pp} {logo:paypal}",
                    safer_tag: "الطريقة الأسهل والأكثر أماناً في الدفع",
                    later_tag: "اشترِ الآن، وسدّد على دفعات",
                    pay: "دفع بواسطة {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} شراء الآن",
                    poweredBy: "مدعوم من {logo:paypal}"
                },
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            YT: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            ZA: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            ZM: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                },
                fr: {
                    checkout: "Payer avec {logo:pp} {logo:paypal}",
                    safer_tag: "Votre réflexe sécurité pour payer en ligne",
                    later_tag: "Achetez maintenant et payez plus tard.",
                    pay: "Payer avec {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Acheter",
                    poweredBy: "Optimisé par {logo:paypal}"
                },
                es: {
                    checkout: "{logo:pp} {logo:paypal} Pagar",
                    safer_tag: "La forma rápida y segura de pagar",
                    later_tag: "Compre ahora y pague más adelante.",
                    pay: "Pagar con {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Comprar ahora",
                    poweredBy: "Desarrollado por {logo:paypal}"
                },
                zh: {
                    checkout: "{logo:pp} {logo:paypal}结账",
                    safer_tag: "更安全、更便捷的付款方式",
                    later_tag: "立即购买,分期付款。",
                    pay: "用{logo:paypal}付款",
                    buynow: "{logo:pp} {logo:paypal} 立即购买",
                    poweredBy: "技术支持提供方: {logo:paypal}"
                }
            },
            ZW: {
                en: {
                    checkout: "Check out with {logo:pp} {logo:paypal}",
                    safer_tag: "The safer, easier way to pay",
                    later_tag: "Buy Now. Pay Over Time.",
                    pay: "Pay with {logo:paypal}",
                    buynow: "{logo:pp} {logo:paypal} Buy Now",
                    poweredBy: "Powered by {logo:paypal}"
                }
            }
        };
        var allowedPersonalizationLabels = [ constants.f.CHECKOUT, constants.f.BUYNOW, constants.f.PAY ];
        function getCommonButtonClasses(_ref) {
            return [ class_CLASS.LAYOUT + "-" + _ref.layout, class_CLASS.SHAPE + "-" + _ref.shape, class_CLASS.BRANDING + "-" + (_ref.branding ? constants.d.BRANDED : constants.d.UNBRANDED), class_CLASS.NUMBER + "-" + (_ref.multiple ? constants.j.MULTIPLE : constants.j.SINGLE), class_CLASS.ENV + "-" + _ref.env, "" + class_CLASS.SHOULD_FOCUS ].join(" ");
        }
        function getLocaleContent(locale) {
            return componentContent[locale.country][locale.lang];
        }
        function determineLabel(_ref3) {
            var label = _ref3.label, source = _ref3.source, multiple = _ref3.multiple, layout = _ref3.layout;
            var defaultLabel = FUNDING_TO_DEFAULT_LABEL[source];
            return labelToFunding(label) === source ? multiple && layout === constants.g.HORIZONTAL ? defaultLabel : label : defaultLabel;
        }
        function renderCards(_ref5) {
            var layout = _ref5.layout, size = _ref5.size;
            return _ref5.cards.map((function(name) {
                var _ref6, _ref7, _ref8;
                var logo = resources.a[name];
                return Object(jsx.c)("div", Object(esm_extends.a)({}, ((_ref6 = {})[constants.c.LAYOUT] = layout || "", 
                _ref6), ((_ref7 = {})[constants.c.SIZE] = size || "", _ref7), ((_ref8 = {})[constants.c.FUNDING_SOURCE] = "" + constants.v.CARD, 
                _ref8[constants.c.CARD] = "" + name, _ref8), {
                    class: class_CLASS.CARD + " " + class_CLASS.CARD + "-" + name,
                    tabindex: "0"
                }), Object(jsx.c)("img", {
                    style: " display: block; ",
                    src: "data:image/svg+xml;base64," + Object(belter_src.a)(logo.toString()),
                    alt: name
                }));
            }));
        }
        function renderContent(text, _ref11) {
            var label = _ref11.label, locale = _ref11.locale, color = _ref11.color, branding = _ref11.branding, logoColor = _ref11.logoColor, funding = _ref11.funding, env = _ref11.env, _cards = _ref11.cards, dynamicContent = _ref11.dynamicContent, layout = _ref11.layout, size = _ref11.size;
            var _content = getLocaleContent(locale);
            return Object(jsx.b)(text, {
                text: function(value) {
                    var className = "" + class_CLASS.TEXT;
                    return Object(jsx.c)("span", {
                        class: className,
                        optional: !0
                    }, value);
                },
                logo: function(name) {
                    if (branding) {
                        if (!logoColor) throw new Error("Can not determine logo without logo color");
                        var logo = "function" == typeof resources.b[name] ? resources.b[name]({
                            label: label,
                            locale: locale,
                            color: color,
                            branding: branding,
                            logoColor: logoColor,
                            funding: funding,
                            env: env,
                            cards: _cards
                        }) : resources.b[name][logoColor] || resources.b[name][constants.i.ANY];
                        return Object(jsx.c)("img", {
                            class: class_CLASS.LOGO + " " + class_CLASS.LOGO + "-" + name + " " + class_CLASS.LOGO + "-" + color,
                            src: "data:image/svg+xml;base64," + Object(belter_src.a)(logo.toString()),
                            alt: "",
                            "aria-label": name
                        });
                    }
                },
                content: function(name) {
                    var contentString;
                    for (var _i2 = 0, _name$split2 = name.split("|"); _i2 < _name$split2.length; _i2++) {
                        var key = _name$split2[_i2];
                        if (_content[key]) {
                            contentString = _content[key];
                            break;
                        }
                    }
                    if (!(contentString = contentString && contentString.replace(/\[([a-z]+)\]/g, (function(match, contentVariable) {
                        if (match && contentVariable) return dynamicContent && dynamicContent[contentVariable];
                    }))) && env === constants.t.TEST) throw new Error("Could not find content " + name + " for " + locale.lang + "_" + locale.country);
                    return renderContent(contentString || "", {
                        label: label,
                        locale: locale,
                        color: color,
                        branding: branding,
                        logoColor: logoColor,
                        funding: funding,
                        env: env,
                        cards: _cards
                    });
                },
                cards: function() {
                    if (!funding) throw new Error("Can not determine card types without funding");
                    return renderCards({
                        cards: _cards,
                        layout: layout,
                        size: size
                    });
                },
                separator: function() {
                    return Object(jsx.c)("span", {
                        class: class_CLASS.SEPARATOR
                    });
                },
                break: function(value) {
                    var className = "" + class_CLASS.TEXT;
                    return Object(jsx.c)("span", {
                        class: className
                    }, value.split("<br>")[0], Object(jsx.c)("br", null), value.split("<br>")[1]);
                }
            });
        }
        function componentTemplate(_ref20) {
            var _ref21;
            var props = _ref20.props;
            if (props && props.style) {
                var style = props.style;
                "generic" === style.label && (style.label = "paypal");
                "creditblue" === style.color && delete style.color;
                1 !== style.maxbuttons || !1 !== style.tagline || "responsive" !== style.size || "horizontal" !== style.layout || style.height || (style.height = 44);
            }
            !function(props) {
                if (!props) throw new Error("Expected props");
                var style = props.style;
                validateButtonLocale(props.locale);
                validateButtonStyle(style, props);
            }(props);
            var _normalizeProps = normalizeProps(props), locale = _normalizeProps.locale, shape = _normalizeProps.shape, branding = _normalizeProps.branding, tagline = _normalizeProps.tagline, funding = _normalizeProps.funding, layout = _normalizeProps.layout, multiple = _normalizeProps.multiple, env = _normalizeProps.env, height = _normalizeProps.height, cards = _normalizeProps.cards, installmentperiod = _normalizeProps.installmentperiod, fundingicons = _normalizeProps.fundingicons, size = _normalizeProps.size, checkoutCustomization = _normalizeProps.checkoutCustomization;
            var buttonNodes = function(_ref4) {
                var label = _ref4.label, color = _ref4.color, multiple = _ref4.multiple, layout = _ref4.layout;
                return _ref4.sources.map((function(source, i) {
                    var buttonLabel = determineLabel({
                        label: label,
                        source: source,
                        multiple: multiple,
                        layout: layout
                    });
                    return {
                        source: source,
                        label: buttonLabel,
                        color: multiple && i > 0 ? getButtonConfig(buttonLabel, "secondaryColors")[color] : color
                    };
                }));
            }({
                label: _normalizeProps.label,
                color: _normalizeProps.color,
                sources: _normalizeProps.sources,
                multiple: multiple,
                layout: layout
            }).map((function(button, i) {
                return function(_ref14) {
                    var _ref15, _ref16, _ref17;
                    var size = _ref14.size, label = _ref14.label, color = _ref14.color, locale = _ref14.locale, branding = _ref14.branding, multiple = _ref14.multiple, layout = _ref14.layout, shape = _ref14.shape, source = _ref14.source, funding = _ref14.funding, i = _ref14.i, env = _ref14.env, cards = _ref14.cards, installmentperiod = _ref14.installmentperiod;
                    var logoColor = getButtonConfig(label, "logoColors")[color];
                    var buttonLabel = determineLabel({
                        label: label,
                        source: source,
                        multiple: multiple,
                        layout: layout
                    });
                    var contentText;
                    var allowedAnimation;
                    -1 !== allowedPersonalizationLabels.indexOf(label) && (allowedAnimation = !0);
                    var dynamicContent = {
                        installmentperiod: installmentperiod,
                        locale: locale
                    };
                    contentText = renderContent(contentText = "function" == typeof (contentText = getButtonConfig(label, buttonLabel !== label || label !== constants.f.BUYNOW || branding ? "logoLabel" : "label")) ? contentText(dynamicContent) : contentText, {
                        label: label,
                        locale: locale,
                        color: color,
                        branding: branding,
                        logoColor: logoColor,
                        funding: funding,
                        env: env,
                        cards: cards,
                        dynamicContent: dynamicContent,
                        layout: layout,
                        size: size
                    });
                    var title = BUTTON_CONFIG[label].title;
                    var buttonTitle = "string" == typeof title ? title : function(_ref13) {
                        var label = _ref13.label, branding = _ref13.branding;
                        var localeContent = getLocaleContent(_ref13.locale);
                        var labelContent = localeContent && localeContent[label];
                        if (labelContent) {
                            var str = labelContent.replace(/({logo:(pp|paypal)})+(\s)*({logo:(pp|paypal)})*/, constants.w.PAYPAL);
                            label !== constants.f.BUYNOW || branding || (str = str.replace(constants.w.PAYPAL, ""));
                            return str;
                        }
                        return label;
                    }({
                        locale: locale,
                        label: label,
                        branding: branding
                    });
                    var hasTabIndex = -1 === [ constants.v.CARD ].indexOf(source);
                    var role = source === constants.v.CARD ? {} : {
                        role: "button"
                    };
                    return Object(jsx.c)("div", Object(esm_extends.a)({}, ((_ref15 = {})[constants.c.LAYOUT] = layout || "", 
                    _ref15), ((_ref16 = {})[constants.c.SIZE] = size || "", _ref16), ((_ref17 = {})[constants.c.FUNDING_SOURCE] = source, 
                    _ref17[constants.c.BUTTON] = !0, _ref17), {
                        class: class_CLASS.BUTTON + " " + class_CLASS.NUMBER + "-" + i + " " + getCommonButtonClasses({
                            layout: layout,
                            shape: shape,
                            branding: branding,
                            multiple: multiple,
                            env: env
                        }) + " " + (_ref2 = {
                            label: label,
                            color: color,
                            logoColor: logoColor
                        }, [ class_CLASS.LABEL + "-" + _ref2.label, class_CLASS.COLOR + "-" + _ref2.color, class_CLASS.LOGO_COLOR + "-" + _ref2.logoColor ].join(" "))
                    }, role, {
                        tabindex: hasTabIndex && 0,
                        "aria-label": buttonTitle
                    }), source === constants.v.CARD ? contentText : function(_ref12) {
                        var contentText = _ref12.contentText, personalizedButtonText = _ref12.personalizedButtonText, impression = _ref12.impression, branding = _ref12.branding, allowedAnimation = _ref12.allowedAnimation;
                        return Object(jsx.c)("div", {
                            class: "" + class_CLASS.BUTTON_LABEL
                        }, function(_ref10) {
                            var personalizedButtonText = _ref10.personalizedButtonText;
                            if (_ref10.branding && _ref10.allowedAnimation) {
                                var COMPRESSED = "\n        max-width: 0%;\n        opacity: 0;\n    ";
                                var EXPANDED = "\n        max-width: 100%;\n        opacity: 1;\n    ";
                                var HIDDEN = "\n        position: absolute;\n        visibility: hidden;\n    ";
                                var VISIBLE = "\n        position: static;\n        visibility: visible;\n    ";
                                var PAYPAL_BUTTON = "." + class_CLASS.BUTTON + "[" + constants.c.FUNDING_SOURCE + "=" + constants.v.PAYPAL + "]";
                                var PAYPAL_LOGO = PAYPAL_BUTTON + " ." + class_CLASS.LOGO + "." + class_CLASS.LOGO + "-" + constants.v.PAYPAL;
                                var BUTTON_TEXT = PAYPAL_BUTTON + " ." + class_CLASS.TEXT + ":not(.personalization-text)";
                                var PERSONALIZATION_TEXT = PAYPAL_BUTTON + " .personalization-text";
                                return Object(jsx.c)("style", {
                                    innerHTML: "\n\n            " + BUTTON_TEXT + ", " + PERSONALIZATION_TEXT + " {\n                " + HIDDEN + "\n            }\n\n            .dom-ready " + BUTTON_TEXT + ":not(." + class_CLASS.HIDDEN + ") {\n                " + VISIBLE + "\n                " + COMPRESSED + "\n                animation: show-text 1s 0s forwards;\n            }\n\n            @media only screen and (max-width: 300px) {\n                .dom-ready " + PERSONALIZATION_TEXT + " {\n                    " + HIDDEN + "\n                }\n            }\n\n            @media only screen and (min-width: 300px) {\n                .dom-ready " + PAYPAL_LOGO + " {\n                    animation: " + (personalizedButtonText ? "toggle-paypal-logo 5s 0s forwards" : "none") + ";\n                }\n\n                .dom-ready " + BUTTON_TEXT + ":not(." + class_CLASS.HIDDEN + ") {\n                    " + COMPRESSED + "\n                    " + VISIBLE + "\n                    animation: " + (personalizedButtonText ? "show-text-delayed 5s 0s forwards" : "show-text 1s 0s forwards") + ";\n                }\n\n                .dom-ready " + PERSONALIZATION_TEXT + " {\n                    " + COMPRESSED + "\n                    " + VISIBLE + "\n                    animation: show-personalization-text 5s 0s forwards;\n                }\n            }\n\n            @keyframes show-text {\n                0% { " + COMPRESSED + " }\n                100% { " + EXPANDED + " }\n            }\n\n            @keyframes toggle-paypal-logo {\n                0% { " + EXPANDED + " }\n                8% { " + COMPRESSED + " }\n                85% { " + COMPRESSED + " }\n                100% { " + EXPANDED + " }\n            }\n\n            @keyframes show-text-delayed {\n                0% { " + COMPRESSED + " }\n                85% { " + COMPRESSED + " }\n                100% { " + EXPANDED + " }\n            }\n\n            @keyframes show-personalization-text {\n                0% { " + COMPRESSED + " }\n                25% { " + EXPANDED + " }\n                75% { " + EXPANDED + " }\n                100% { " + COMPRESSED + " }\n            }\n        "
                                });
                            }
                        }({
                            personalizedButtonText: personalizedButtonText,
                            branding: branding,
                            allowedAnimation: allowedAnimation
                        }), contentText, personalizedButtonText, impression && function(impression) {
                            return Object(jsx.c)("div", {
                                class: "tracking-beacon"
                            }, Object(jsx.c)("style", {
                                innerHTML: "\n            .tracking-beacon {\n                visibility: hidden;\n                position: absolute;\n                height: 1px;\n                width: 1px;\n            }\n        "
                            }), Object(jsx.c)("img", {
                                class: "tracking-beacon",
                                src: impression
                            }));
                        }(impression));
                    }({
                        contentText: contentText,
                        personalizedButtonText: void 0,
                        impression: void 0,
                        branding: branding,
                        allowedAnimation: allowedAnimation
                    }));
                    var _ref2;
                }({
                    label: button.label,
                    color: button.color,
                    source: button.source,
                    env: env,
                    i: i,
                    funding: funding,
                    multiple: multiple,
                    locale: locale,
                    branding: branding,
                    tagline: tagline,
                    layout: layout,
                    shape: shape,
                    cards: cards,
                    installmentperiod: installmentperiod,
                    size: size,
                    checkoutCustomization: checkoutCustomization
                });
            }));
            var fundingiconNode = function(_ref9) {
                var cards = _ref9.cards, size = _ref9.size, layout = _ref9.layout;
                if (_ref9.fundingicons) return Object(jsx.c)("div", {
                    class: "" + class_CLASS.FUNDINGICONS
                }, renderCards({
                    cards: cards,
                    size: size,
                    layout: layout
                }));
            }({
                cards: cards,
                fundingicons: fundingicons,
                size: size,
                layout: layout
            });
            var styleNode = function(_ref19) {
                var height = _ref19.height, cardNumber = _ref19.cardNumber;
                return Object(jsx.c)("style", {
                    innerHTML: (_ref = {
                        height: height,
                        cardNumber: cardNumber
                    }, "\n        " + pageStyle + "\n        " + buttonStyle + "\n        " + buttonColorStyle + "\n        " + layoutStyle + "\n        " + brandingStyle + "\n        " + labelStyle + "\n        " + function(_ref) {
                        var height = _ref.height, _ref$cardNumber = _ref.cardNumber, cardNumber = void 0 === _ref$cardNumber ? 4 : _ref$cardNumber;
                        return Object.keys(BUTTON_STYLE).map((function(size) {
                            var style = BUTTON_STYLE[size];
                            var buttonHeight = height || style.defaultHeight;
                            var buttonTextMarginTop = style.buttonTextMargin;
                            var minDualWidth = Math.round(2.8 * buttonHeight * 2);
                            return "\n\n            @media only screen and (min-width: " + style.minWidth + "px) {\n\n                ." + class_CLASS.CONTAINER + " {\n                    min-width: " + style.minWidth + "px;\n                    max-width: " + style.maxWidth + "px;\n                    font-size: " + Object(util.h)(Object(util.m)(buttonHeight, 32), 10) + "px;\n                }\n\n                ." + class_CLASS.BUTTON + ":not(." + class_CLASS.CARD + ") {\n                    height: " + buttonHeight + "px;\n                    min-height: " + (height || style.minHeight) + "px;\n                    max-height: " + (height || style.maxHeight) + "px;\n                }\n\n                ." + class_CLASS.BUTTON + "." + class_CLASS.BRANDING + "-" + constants.d.UNBRANDED + " ." + class_CLASS.BUTTON_LABEL + " {\n                    height: 100%;\n                    font-size: " + Object(util.h)(Object(util.m)(buttonHeight, 45), 10) + "px;\n                }\n\n                ." + class_CLASS.BUTTON + " ." + class_CLASS.BUTTON_LABEL + " {\n                    height: " + (Object(util.m)(buttonHeight, 35) + 5) + "px;\n                    max-height: " + Object(util.m)(buttonHeight, 60) + "px;\n                    min-height: " + Object(util.m)(buttonHeight, 40) + "px;\n                }\n                \n                ." + class_CLASS.BUTTON + " ." + class_CLASS.BUTTON_LABEL + " ." + class_CLASS.TEXT + " {\n                    margin-top: " + buttonTextMarginTop + "px;\n                }\n                \n                ." + class_CLASS.LOGO + "." + class_CLASS.LOGO + "-" + constants.f.EPS + ",\n                ." + class_CLASS.LOGO + "." + class_CLASS.LOGO + "-" + constants.f.MYBANK + " {\n                    height: " + (Object(util.m)(buttonHeight, 50) + 5) + "px;\n                    max-height: " + Object(util.m)(buttonHeight, 70) + "px;\n                    min-height: " + Object(util.m)(buttonHeight, 40) + "px;\n                }\n\n                ." + class_CLASS.BUTTON + "." + class_CLASS.SHAPE + "-" + constants.k.PILL + " {\n                    border-radius: " + Math.ceil(buttonHeight / 2) + "px;\n                }\n\n                ." + class_CLASS.BUTTON + "." + class_CLASS.SHAPE + "-" + constants.k.RECT + " {\n                    border-radius: 4px;\n                }\n\n                ." + class_CLASS.BUTTON + "." + class_CLASS.LAYOUT + "-" + constants.g.VERTICAL + " {\n                    margin-bottom: " + Object(util.m)(buttonHeight, 30) + "px;\n                }\n\n                ." + class_CLASS.SEPARATOR + " {\n                    margin: 0 " + Object(util.m)(buttonHeight, 5) + "px;\n                }\n\n                ." + class_CLASS.TAGLINE + " {\n                    display: " + (style.allowTagline ? "block" : "none") + ";\n                    height: " + Object(util.m)(buttonHeight, 50) + "px;\n                    line-height: " + Object(util.m)(buttonHeight, 50) + "px;\n                }\n\n                ." + class_CLASS.FUNDINGICONS + " {\n                    display: " + (style.allowFunding ? "block" : "none") + ";\n                    height: " + Object(util.m)(buttonHeight, 100) + "px;\n                }\n\n                ." + class_CLASS.CARD + " {\n                    display: inline-block;\n                }\n\n                ." + class_CLASS.BUTTON + " ." + class_CLASS.CARD + " {\n                    width: " + (90 / cardNumber).toFixed(2) + "%;\n                    max-width: " + Object(util.m)(buttonHeight, 160) + "px;\n                    margin-top: 0;\n                    margin-left: " + (5 / cardNumber).toFixed(2) + "%;\n                    margin-right: " + (5 / cardNumber).toFixed(2) + "%;\n                }\n\n                ." + class_CLASS.BUTTON + " ." + class_CLASS.CARD + " img {\n                    width: 100%;\n                }\n\n                ." + class_CLASS.FUNDINGICONS + " ." + class_CLASS.CARD + " {\n                    height: " + Object(util.m)(buttonHeight, 70) + "px;\n                    margin-top: " + Object(util.m)(buttonHeight, 15) + "px;\n                    margin-left: " + Object(util.m)(buttonHeight, 7) + "px;\n                    margin-right: " + Object(util.m)(buttonHeight, 7) + "px;\n                }\n\n                ." + class_CLASS.FUNDINGICONS + " ." + class_CLASS.CARD + " img {\n                    height: 100%;\n                }\n            }\n\n            @media only screen and (min-width: " + style.minWidth + "px) and (max-width: " + minDualWidth + "px) {\n\n                ." + class_CLASS.BUTTON + "." + class_CLASS.LAYOUT + "-" + constants.g.HORIZONTAL + "." + class_CLASS.NUMBER + "-" + constants.j.MULTIPLE + "." + class_CLASS.NUMBER + "-0 {\n                    width: 100%;\n                    margin-right: 0;\n                }\n\n                ." + class_CLASS.BUTTON + "." + class_CLASS.LAYOUT + "-" + constants.g.HORIZONTAL + "." + class_CLASS.NUMBER + "-" + constants.j.MULTIPLE + "." + class_CLASS.NUMBER + "-1 {\n                    display: none;\n                }\n\n                ." + class_CLASS.CONTAINER + "." + class_CLASS.LAYOUT + "-" + constants.g.HORIZONTAL + "." + class_CLASS.NUMBER + "-" + constants.j.MULTIPLE + " ." + class_CLASS.TAGLINE + " {\n                    display: none;\n                }\n            }\n\n            @media only screen and (min-width: " + Object(util.h)(style.minWidth, minDualWidth) + "px) {\n\n                ." + class_CLASS.BUTTON + "." + class_CLASS.LAYOUT + "-" + constants.g.HORIZONTAL + "." + class_CLASS.NUMBER + "-" + constants.j.MULTIPLE + "." + class_CLASS.NUMBER + "-0 {\n                    display: inline-block;\n                    width: calc(50% - 2px);\n                    margin-right: 4px;\n                }\n\n                ." + class_CLASS.BUTTON + "." + class_CLASS.LAYOUT + "-" + constants.g.HORIZONTAL + "." + class_CLASS.NUMBER + "-" + constants.j.MULTIPLE + "." + class_CLASS.NUMBER + "-1 {\n                    display: inline-block;\n                    width: calc(50% - 2px);\n                }\n\n                ." + class_CLASS.CONTAINER + "." + class_CLASS.LAYOUT + "-" + constants.g.HORIZONTAL + "." + class_CLASS.NUMBER + "-" + constants.j.MULTIPLE + " ." + class_CLASS.TAGLINE + " {\n                    display: block;\n                }\n            }\n        ";
                        })).join("\n");
                    }({
                        height: _ref.height,
                        cardNumber: _ref.cardNumber
                    }) + "\n    ")
                });
                var _ref;
            }({
                height: height,
                cardNumber: cards.length
            });
            var scriptNode = function() {
                var script = function() {
                    var SELECTOR_ALL = "*", SELECTOR_OPTIONAL = "[optional]";
                    function toArray(item) {
                        return [].slice.call(item);
                    }
                    function getElements(selector, parent) {
                        return toArray((parent = parent || document).querySelectorAll(selector)).filter((function(el) {
                            return "style" !== el.tagName.toLowerCase();
                        }));
                    }
                    function getOptionalIndex(element) {
                        return parseInt(element.getAttribute("optional") || 0, 10);
                    }
                    function getElementsTotalWidth(elements) {
                        return function(arr) {
                            var result = 0;
                            for (var _i2 = 0; _i2 < arr.length; _i2++) result += arr[_i2];
                            return result;
                        }(elements.map((function(child) {
                            return child.offsetWidth;
                        })));
                    }
                    var children = function(arr) {
                        var result = [];
                        for (var _i4 = 0; _i4 < arr.length; _i4++) {
                            var el = arr[_i4];
                            -1 === result.indexOf(el) && result.push(el);
                        }
                        return result;
                    }([].concat(getElements(SELECTOR_OPTIONAL), getElements(".{ CLASS.FUNDINGICONS } .{ CLASS.CARD }"), getElements(".{ CLASS.BUTTON }-label-credit .{ CLASS.BUTTON }-logo-paypal")).map((function(element) {
                        return element.parentElement;
                    })).filter(Boolean)).map((function(optionalParent) {
                        return {
                            optionalParent: optionalParent,
                            allChildren: getElements(SELECTOR_ALL, optionalParent),
                            optionalChildren: toArray(getElements(SELECTOR_OPTIONAL, optionalParent)).sort((function(first, second) {
                                return getOptionalIndex(first) - getOptionalIndex(second);
                            }))
                        };
                    }));
                    function toggleOptionals() {
                        for (var _i6 = 0; _i6 < children.length; _i6++) {
                            var _children$_i = children[_i6], optionalChildren = _children$_i.optionalChildren;
                            var parentWidth = _children$_i.optionalParent.offsetWidth;
                            var usedWidth = getElementsTotalWidth(_children$_i.allChildren) - getElementsTotalWidth(optionalChildren);
                            for (var _i8 = 0; _i8 < optionalChildren.length; _i8++) {
                                var optionalChild = optionalChildren[_i8];
                                (usedWidth += optionalChild.offsetWidth) + 4 >= parentWidth ? optionalChild.classList.add("hidden") : optionalChild.classList.remove("hidden");
                            }
                        }
                    }
                    var setDomReady = function(handler) {
                        var called = !1;
                        return function() {
                            if (!called) {
                                called = !0;
                                handler.apply(void 0, arguments);
                            }
                        };
                    }(function(handler, time) {
                        void 0 === time && (time = 50);
                        var timeout;
                        return function() {
                            for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
                            clearTimeout(timeout);
                            timeout = setTimeout((function() {
                                handler.apply(void 0, args);
                            }), time);
                        };
                    }((function() {
                        window.addEventListener("resize", toggleOptionals);
                        document.body && document.body.classList.add("dom-ready");
                    })));
                    var load = function() {
                        toggleOptionals();
                        setDomReady();
                    };
                    toggleOptionals();
                    !function() {
                        var buttonsContainer = document.getElementsByClassName("{ CLASS.CONTAINER }")[0];
                        function handleMouseDownOnce() {
                            buttonsContainer.classList.remove("{ CLASS.SHOULD_FOCUS }");
                            window.removeEventListener("mousedown", handleMouseDownOnce);
                            window.addEventListener("keydown", handleFirstTab);
                        }
                        function handleFirstTab(e) {
                            if (9 === e.keyCode) {
                                buttonsContainer.classList.add("{ CLASS.SHOULD_FOCUS }");
                                window.removeEventListener("keydown", handleFirstTab);
                                window.addEventListener("mousedown", handleMouseDownOnce);
                            }
                        }
                        buttonsContainer.classList.add("{ CLASS.SHOULD_FOCUS }");
                        window.addEventListener("keydown", handleFirstTab);
                    }();
                    document.addEventListener("DOMContentLoaded", load);
                    window.addEventListener("load", load);
                    window.addEventListener("resize", load);
                }.toString();
                script = script.replace(/\{\s*CLASS\.([A-Z0-9_]+)\s*\}/g, (function(match, name) {
                    return class_CLASS[name];
                }));
                return Object(jsx.c)("script", {
                    innerHTML: "(" + script + ")();"
                });
            }();
            var labelPowerByPayPal = cards.length > 0 ? function(props) {
                if (!props) return null;
                var _props$sources = props.sources;
                return props.layout !== constants.g.VERTICAL || -1 === (void 0 === _props$sources ? [] : _props$sources).indexOf(constants.v.CARD) ? null : Object(jsx.c)("div", {
                    class: "powered-by-paypal",
                    style: "\n                text-align: center;\n                margin: 10px auto;\n                height: 14px;\n                font-family: PayPal-Sans, HelveticaNeue, sans-serif;\n                font-size: 11px;\n                font-weight: normal;\n                font-style: italic;\n                font-stretch: normal;\n                color: #7b8388;\n                position: relative;\n                margin-right: 3px;\n                bottom: 3px;\n            "
                }, renderContent("{ content: poweredBy }", Object(esm_extends.a)({}, props, {
                    logoColor: "blue"
                })));
            }(normalizeProps(props)) : null;
            return Object(jsx.c)("div", Object(esm_extends.a)({}, (_ref21 = {}, _ref21[constants.c.VERSION] = "4.0.328", 
            _ref21), {
                class: class_CLASS.CONTAINER + " " + getCommonButtonClasses({
                    layout: layout,
                    shape: shape,
                    branding: branding,
                    multiple: multiple,
                    env: env
                })
            }), styleNode, buttonNodes, fundingiconNode, labelPowerByPayPal, scriptNode).toString();
        }
        pptm.listenForLoadWithNoContent();
        var creditThrottle;
        var component_Button = Object(src.c)({
            tag: "paypal-button",
            name: "ppbutton",
            buildUrl: function(props) {
                return config.a.buttonUrls[props.env || config.a.env];
            },
            contexts: {
                iframe: !0,
                popup: !1
            },
            scrolling: !1,
            listenForResize: !0,
            containerTemplate: function(_ref) {
                var _ref3;
                var id = _ref.id, CLASS = _ref.CLASS, tag = _ref.tag, context = _ref.context, outlet = _ref.outlet, jsxDom = _ref.jsxDom;
                var _normalizeProps = normalizeProps(_ref.props), size = _normalizeProps.size, label = _normalizeProps.label, layout = _normalizeProps.layout, buttonHeight = _normalizeProps.height;
                var minimumSize = getButtonConfig(label, layout === constants.g.VERTICAL ? "minimumVerticalSize" : "minimumSize");
                var maximumSize = getButtonConfig(label, layout === constants.g.VERTICAL ? "maximumVerticalSize" : "maximumSize");
                if (buttonHeight) {
                    var possibleSizes = Object(util.t)(constants.l).filter((function(possibleSize) {
                        return BUTTON_STYLE[possibleSize] && buttonHeight && BUTTON_STYLE[possibleSize].minHeight <= buttonHeight && BUTTON_STYLE[possibleSize].maxHeight >= buttonHeight;
                    }));
                    possibleSizes.sort((function(sizeA, sizeB) {
                        return BUTTON_STYLE[sizeA].defaultWidth - BUTTON_STYLE[sizeB].defaultWidth;
                    }));
                    minimumSize = possibleSizes[0];
                    maximumSize = possibleSizes[possibleSizes.length - 1];
                }
                var _ref2 = BUTTON_STYLE[size] || BUTTON_STYLE[constants.l.SMALL], defaultWidth = _ref2.defaultWidth, defaultHeight = _ref2.defaultHeight;
                setTimeout((function() {
                    outlet.style.transition = "all 0.5s ease-in-out 0.3s";
                }), 3e3);
                return jsxDom("div", Object(esm_extends.a)({
                    id: id,
                    class: tag + " " + tag + "-context-" + context + " " + tag + "-label-" + label + " " + tag + "-size-" + size + " " + tag + "-layout-" + layout
                }, ((_ref3 = {})[constants.c.SMART_BUTTON_VERSION] = "4.0.328", _ref3)), jsxDom("style", null, "\n                    #" + id + " {\n                        font-size: 0;\n                        width: 100%;\n                        overflow: hidden;\n                        min-width: " + BUTTON_STYLE[minimumSize].minWidth + "px;\n                    }\n\n                    #" + id + "." + tag + "-size-" + constants.l.RESPONSIVE + " {\n                        text-align: center;\n                    }\n\n                    #" + id + " > ." + CLASS.OUTLET + " {\n                        display: inline-block;\n                        min-width: " + BUTTON_STYLE[minimumSize].minWidth + "px;\n                        max-width: " + BUTTON_STYLE[maximumSize].maxWidth + "px;\n                        position: relative;\n                    }\n\n                    #" + id + "." + tag + "-layout-" + constants.g.VERTICAL + " > ." + CLASS.OUTLET + " {\n                        min-width: " + BUTTON_STYLE[minimumSize].minWidth + "px;\n                    }\n\n                    #" + id + " > ." + CLASS.OUTLET + " {\n                        width:  " + defaultWidth + "px;\n                        height: " + defaultHeight + "px;\n                    }\n\n                     #" + id + "." + tag + "-size-" + constants.l.RESPONSIVE + " > ." + CLASS.OUTLET + " {\n                        width: 100%;\n                    }\n\n                    #" + id + " > ." + CLASS.OUTLET + " > iframe {\n                        min-width: 100%;\n                        max-width: 100%;\n                        width: " + BUTTON_STYLE[minimumSize].minWidth + "px;\n                        height: 100%;\n                        position: absolute;\n                        top: 0;\n                        left: 0;\n                    }\n\n                    #" + id + " > ." + CLASS.OUTLET + " > iframe." + CLASS.COMPONENT_FRAME + " {\n                        z-index: 100;\n                    }\n\n                    #" + id + " > ." + CLASS.OUTLET + " > iframe." + CLASS.PRERENDER_FRAME + " {\n                        transition: opacity .2s linear;\n                        z-index: 200;\n                    }\n\n                    #" + id + " > ." + CLASS.OUTLET + " > iframe." + CLASS.VISIBLE + " {\n                        opacity: 1;\n                    }\n\n                    #" + id + " > ." + CLASS.OUTLET + " > iframe." + CLASS.INVISIBLE + " {\n                        opacity: 0;\n                        pointer-events: none;\n                    }\n                "), outlet);
            },
            autoResize: {
                height: !0,
                width: !1
            },
            prerenderTemplate: function(_ref) {
                var _this = this;
                var jsxDom = _ref.jsxDom;
                var template = jsxDom("div", {
                    innerHTML: componentTemplate({
                        props: _ref.props
                    })
                });
                template.addEventListener("click", (function() {
                    Object(beaver_logger_client.q)("button_pre_template_click");
                    if (Object(lib.F)()) {
                        Object(beaver_logger_client.q)("button_pre_template_click_intranet_mode");
                        Object(beaver_logger_client.h)();
                        alert("IE Intranet mode is not supported by PayPal. Please disable intranet mode, or continue in an alternate browser.");
                    }
                    if (Object(lib.m)("allow_full_page_fallback")) {
                        Object(beaver_logger_client.k)("pre_template_force_full_page");
                        _this.props.payment().then((function(token) {
                            window.top.location = Object(lib.g)(config.a.checkoutUrl, {
                                token: token
                            });
                        }));
                    }
                }));
                return jsxDom("html", null, jsxDom("body", null, template));
            },
            get version() {
                return Object(lib.u)();
            },
            get domain() {
                return config.a.paypalDomains;
            },
            attributes: {
                iframe: {
                    allowpaymentrequest: "allowpaymentrequest",
                    title: constants.w.PAYPAL
                }
            },
            validate: function() {
                Object(lib.C)() || Object(beaver_logger_client.q)("button_render_ineligible");
            },
            props: {
                domain: {
                    type: "string",
                    required: !1,
                    def: function() {
                        return window.location.host;
                    },
                    queryParam: !0
                },
                sessionID: {
                    type: "string",
                    required: !1,
                    def: function() {
                        return Object(lib.v)();
                    },
                    queryParam: !0
                },
                buttonSessionID: {
                    type: "string",
                    required: !1,
                    def: function() {
                        return Object(lib.Y)();
                    },
                    queryParam: !0
                },
                storageID: {
                    type: "string",
                    required: !1,
                    def: function() {
                        return Object(lib.x)();
                    },
                    queryParam: !0
                },
                env: {
                    type: "string",
                    required: !1,
                    queryParam: !0,
                    def: function() {
                        return config.a.env;
                    },
                    validate: function(env) {
                        if (env && !config.a.paypalUrls[env]) throw new Error("Invalid env: " + env);
                    }
                },
                meta: {
                    type: "object",
                    required: !1,
                    def: function() {
                        return {};
                    }
                },
                enableNativeCheckout: {
                    type: "boolean",
                    required: !1,
                    def: function() {
                        return !1;
                    }
                },
                client: {
                    type: "object",
                    required: !1,
                    def: function() {
                        return {};
                    },
                    validate: function(client, props) {
                        var env = props.env || config.a.env;
                        if (!client[env]) throw new Error("Client ID not found for env: " + env);
                        if ("string" == typeof client[env]) {
                            if (client[env].match(/^(.)\1+$/)) throw new Error("Invalid client ID: " + client[env]);
                        } else if (!zalgo_promise_src.a.isPromise(client[env])) throw new Error("Expected client token to be either a string or a promise");
                    },
                    decorate: function(client) {
                        client && "demo_sandbox_client_id" === client.sandbox && (client.sandbox = "AZDxjDScFpQtjWTOUtWKbyN_bDt4OgqaF4eYXlewfBP4-8aqX3PiV8e1GWU6liB2CUXlkA59kJXE7M6R");
                        return client;
                    }
                },
                source: {
                    type: "string",
                    required: !1,
                    def: function() {
                        return constants.F.MANUAL;
                    }
                },
                prefetchLogin: {
                    type: "boolean",
                    required: !1
                },
                stage: {
                    type: "string",
                    required: !1,
                    queryParam: !0,
                    def: function(props) {
                        var env = props.env || config.a.env;
                        if (env === constants.t.STAGE || env === constants.t.LOCAL) return config.a.stage;
                    }
                },
                updateClientConfiguration: {
                    type: "boolean",
                    required: !1,
                    def: function() {
                        return !0;
                    }
                },
                stageUrl: {
                    type: "string",
                    required: !1,
                    queryParam: !0,
                    def: function(props) {
                        var env = props.env || config.a.env;
                        if (env === constants.t.STAGE || env === constants.t.LOCAL) return config.a.stageUrl;
                    }
                },
                localhostUrl: {
                    type: "string",
                    required: !1,
                    queryParam: !0,
                    def: function(props) {
                        if ((props.env || config.a.env) === constants.t.LOCAL) return config.a.localhostUrl;
                    }
                },
                checkoutUri: {
                    type: "string",
                    required: !1,
                    queryParam: !0,
                    def: function() {
                        return config.a.checkoutUri;
                    }
                },
                braintree: {
                    type: "object",
                    required: !1,
                    validate: function(braintree, props) {
                        if (!braintree.paypalCheckout) throw new Error("Expected Braintree paypal-checkout component to be loaded");
                        if (!props.client) throw new Error("Expected client prop to be passed with Braintree authorization keys");
                    },
                    decorate: function(braintree, props) {
                        var env = props.env || config.a.env;
                        return zalgo_promise_src.a.hash(props.client).then((function(client) {
                            return Object(integrations.a)(braintree, client[env]);
                        }));
                    }
                },
                payment: {
                    type: "function",
                    required: !0,
                    memoize: !1,
                    timeout: 1e4,
                    alias: "billingAgreement",
                    decorate: function(original) {
                        return function(data) {
                            var _this2 = this;
                            void 0 === data && (data = {});
                            var actions = {
                                request: lib.S,
                                payment: {
                                    create: function(options) {
                                        return _this2.props.braintree ? _this2.props.braintree.then((function(client) {
                                            return client.createPayment(Object(integrations.e)(options.payment || options));
                                        })) : zalgo_promise_src.a.hash(_this2.props.client).then((function(client) {
                                            return rest.payment.create(_this2.props.env, client, options);
                                        }));
                                    }
                                },
                                order: {
                                    create: function(options) {
                                        return zalgo_promise_src.a.hash(_this2.props.client).then((function(client) {
                                            return rest.order.create(_this2.props.env, client, options);
                                        }));
                                    }
                                },
                                braintree: {
                                    create: function(options) {
                                        if (!_this2.props.braintree) throw new Error("Can not create using Braintree - no braintree client provided");
                                        return _this2.props.braintree.then((function(client) {
                                            return client.createPayment(options);
                                        }));
                                    }
                                }
                            };
                            if (Object(lib.m)("memoize_payment") && this.memoizedToken) return this.memoizedToken;
                            this.memoizedToken = zalgo_promise_src.a.try(original, this, [ data, actions ]);
                            var startTime = Date.now();
                            this.memoizedToken = this.memoizedToken.then((function(token) {
                                var _track;
                                if (!token) {
                                    Object(beaver_logger_client.g)("no_token_passed_to_payment");
                                    throw new Error("No value passed to payment");
                                }
                                var elapsed = Date.now() - startTime;
                                Object(beaver_logger_client.p)(((_track = {})[constants.u.KEY.STATE] = constants.u.STATE.CHECKOUT, 
                                _track[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.RECIEVE_PAYMENT, _track[constants.u.KEY.CONTEXT_TYPE] = constants.u.CONTEXT_TYPE[Object(integrations.d)(token)], 
                                _track[constants.u.KEY.CONTEXT_ID] = token, _track[constants.u.KEY.BUTTON_SESSION_UID] = _this2.props.buttonSessionID, 
                                _track[constants.u.KEY.RESPONSE_DURATION] = elapsed, _track[constants.u.KEY.BUTTON_VERSION] = data && data.button_version, 
                                _track));
                                Object(beaver_logger_client.h)();
                                return token;
                            }));
                            return this.memoizedToken;
                        };
                    }
                },
                authCode: {
                    type: "string",
                    required: !1,
                    def: function() {
                        return config.a.authCode;
                    }
                },
                funding: {
                    type: "object",
                    required: !1,
                    queryParam: !0,
                    validate: function(_temp) {
                        var _ref2 = void 0 === _temp ? {} : _temp, _ref2$allowed = _ref2.allowed, _ref2$disallowed = _ref2.disallowed;
                        !function(funding) {
                            void 0 === funding && (funding = {
                                allowed: [],
                                disallowed: [],
                                remembered: []
                            });
                            if (funding.allowed) for (var _i2 = 0, _funding$allowed2 = funding.allowed; _i2 < _funding$allowed2.length; _i2++) {
                                var source = _funding$allowed2[_i2];
                                if (-1 === constants.p.indexOf(source)) {
                                    if (!FUNDING_CONFIG.hasOwnProperty(source)) throw new Error("Invalid funding source: " + source);
                                    if (!getFundingConfig(source, "allowOptIn")) throw new Error("Can not allow funding source: " + source);
                                    if (funding.disallowed && -1 !== funding.disallowed.indexOf(source)) throw new Error("Can not allow and disallow funding source: " + source);
                                }
                            }
                            if (funding.disallowed) for (var _i4 = 0, _funding$disallowed2 = funding.disallowed; _i4 < _funding$disallowed2.length; _i4++) {
                                var _source = _funding$disallowed2[_i4];
                                if (-1 === constants.p.indexOf(_source)) {
                                    if (!FUNDING_CONFIG.hasOwnProperty(_source)) throw new Error("Invalid funding source: " + _source);
                                    if (!getFundingConfig(_source, "allowOptOut")) throw new Error("Can not disallow funding source: " + _source);
                                }
                            }
                        }({
                            allowed: void 0 === _ref2$allowed ? [] : _ref2$allowed,
                            disallowed: void 0 === _ref2$disallowed ? [] : _ref2$disallowed,
                            remembered: []
                        });
                    },
                    def: function() {
                        return {};
                    },
                    decorate: function(_temp2, props) {
                        var _ref3 = void 0 === _temp2 ? {} : _temp2, _ref3$allowed = _ref3.allowed, allowed = void 0 === _ref3$allowed ? [] : _ref3$allowed, _ref3$disallowed = _ref3.disallowed, disallowed = void 0 === _ref3$disallowed ? [] : _ref3$disallowed;
                        allowed = Array.isArray(allowed) ? allowed : [];
                        disallowed = Array.isArray(disallowed) ? disallowed : [];
                        allowed && -1 !== allowed.indexOf(constants.v.ITAU) && (allowed = allowed.filter((function(source) {
                            return source !== constants.v.ITAU;
                        })));
                        (function(props) {
                            var _normalizeProps = normalizeProps(props, {
                                locale: Object(lib.i)()
                            }), label = _normalizeProps.label, funding = _normalizeProps.funding, layout = _normalizeProps.layout, locale = _normalizeProps.locale, max = _normalizeProps.max, sources = _normalizeProps.sources, env = _normalizeProps.env;
                            var allowed = funding.allowed;
                            var country = locale.country;
                            if (allowed && -1 !== allowed.indexOf(constants.v.CREDIT)) return !1;
                            if (layout !== constants.g.HORIZONTAL) return !1;
                            if (1 === max) return !1;
                            if (label === constants.f.CREDIT) return !1;
                            if (country !== constants.r.US) return !1;
                            if (isFundingIneligible(constants.v.CREDIT, {
                                funding: funding,
                                locale: locale,
                                layout: layout,
                                env: env
                            })) return !1;
                            if (isFundingAutoEligible(constants.v.CREDIT, {
                                funding: funding,
                                locale: locale,
                                layout: layout
                            })) return !1;
                            if (-1 !== sources.indexOf(constants.v.CREDIT)) return !1;
                            var domain = Object(cross_domain_utils_src.h)().replace(/^https?:\/\//, "").replace(/^www\./, "");
                            return -1 !== config.a.creditTestDomains.indexOf(domain);
                        })(props) && (creditThrottle = Object(lib.y)("dual_credit_automatic", 50)).isEnabled() && (allowed = [].concat(allowed, [ constants.v.CREDIT ]));
                        var remembered = Object(lib.r)((function(sources) {
                            return sources;
                        }));
                        remembered && -1 !== remembered.indexOf(constants.v.VENMO) && (remembered = remembered.filter((function(source) {
                            return source !== constants.v.VENMO;
                        })));
                        Object(lib.A)() && !Object(lib.m)("disable_venmo") || disallowed && -1 === disallowed.indexOf(constants.v.VENMO) && (disallowed = [].concat(disallowed, [ constants.v.VENMO ]));
                        return {
                            allowed: allowed,
                            disallowed: disallowed,
                            remembered: remembered,
                            remember: function(sources) {
                                Object(lib.R)(sources);
                            }
                        };
                    }
                },
                commit: {
                    type: "boolean",
                    required: !1,
                    queryParam: !0,
                    queryValue: function(val) {
                        return val ? "true" : "false";
                    }
                },
                onRender: {
                    type: "function",
                    promisify: !0,
                    required: !1,
                    noop: !0,
                    decorate: function(original) {
                        return function() {
                            var _track2;
                            var _getBrowser = Object(lib.h)(), _getBrowser$browser = _getBrowser.browser, browser = void 0 === _getBrowser$browser ? "unrecognized" : _getBrowser$browser, _getBrowser$version = _getBrowser.version, version = void 0 === _getBrowser$version ? "unrecognized" : _getBrowser$version;
                            Object(beaver_logger_client.k)("button_render_browser_" + browser + "_" + (Object(lib.A)() ? "mobile" : "desktop") + "_" + version);
                            var style = this.props.style || {};
                            Object(beaver_logger_client.k)("button_render");
                            Object(beaver_logger_client.k)("button_render_color_" + (style.color || "default"));
                            Object(beaver_logger_client.k)("button_render_shape_" + (style.shape || "default"));
                            Object(beaver_logger_client.k)("button_render_size_" + (style.size || "default"));
                            Object(beaver_logger_client.k)("button_render_label_" + (style.label || "default"));
                            Object(beaver_logger_client.k)("button_render_branding_" + (style.branding || "default"));
                            Object(beaver_logger_client.k)("button_render_fundingicons_" + (style.fundingicons || "default"));
                            Object(beaver_logger_client.k)("button_render_tagline_" + (style.tagline || "default"));
                            pptm.listenForButtonRender();
                            pptm.reloadPptmScript(this.props.client[this.props.env]);
                            Object(beaver_logger_client.p)(((_track2 = {})[constants.u.KEY.STATE] = constants.u.STATE.LOAD, 
                            _track2[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.BUTTON_RENDER, _track2[constants.u.KEY.BUTTON_TYPE] = constants.u.BUTTON_TYPE.IFRAME, 
                            _track2[constants.u.KEY.BUTTON_SESSION_UID] = this.props.buttonSessionID, _track2[constants.u.KEY.BUTTON_SOURCE] = this.props.source, 
                            _track2));
                            Object(lib.F)() && Object(beaver_logger_client.q)("button_render_intranet_mode");
                            if (creditThrottle) {
                                var _creditThrottle$logSt;
                                creditThrottle.logStart(((_creditThrottle$logSt = {})[constants.u.KEY.BUTTON_SESSION_UID] = this.props.buttonSessionID, 
                                _creditThrottle$logSt));
                            }
                            Object(beaver_logger_client.h)();
                            return original.apply(this, arguments);
                        };
                    }
                },
                onAuthorize: {
                    type: "function",
                    alias: "onApprove",
                    required: !0,
                    decorate: function(original) {
                        return function(data, actions) {
                            var _track3, _this3 = this;
                            data && !data.intent && Object(beaver_logger_client.q)("button_authorize_no_intent", {
                                paymentID: data.paymentID,
                                token: data.paymentToken
                            });
                            Object(beaver_logger_client.k)("button_authorize");
                            Object(beaver_logger_client.p)(((_track3 = {})[constants.u.KEY.STATE] = constants.u.STATE.CHECKOUT, 
                            _track3[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.CHECKOUT_APPROVE, _track3[constants.u.KEY.BUTTON_SESSION_UID] = this.props.buttonSessionID, 
                            _track3[constants.u.KEY.BUTTON_VERSION] = data && data.button_version, _track3));
                            Object(lib.F)() && Object(beaver_logger_client.q)("button_authorize_intranet_mode");
                            Object(lib.C)() || Object(beaver_logger_client.k)("button_authorize_ineligible");
                            Object(lib.d)("authorize");
                            Object(beaver_logger_client.h)();
                            var restart = actions.restart;
                            actions.restart = function() {
                                return restart().then((function() {
                                    return new zalgo_promise_src.a;
                                }));
                            };
                            actions.redirect = function(win, url) {
                                return zalgo_promise_src.a.try((function() {
                                    if (actions.close) return actions.close();
                                })).then((function() {
                                    return Object(lib.Q)(win || window.top, url || data.returnUrl);
                                }));
                            };
                            actions.payment.tokenize = Object(lib.J)((function() {
                                if (!_this3.props.braintree) throw new Error("Must pass in Braintree client to tokenize payment");
                                return _this3.props.braintree.then((function(client) {
                                    return client.tokenizePayment(data);
                                }));
                            }));
                            var execute = actions.payment.execute;
                            actions.payment.execute = function() {
                                return execute().then((function(result) {
                                    if (!(result && result.id && result.intent && result.state)) {
                                        Object(beaver_logger_client.q)("execute_result_missing_data");
                                        return new zalgo_promise_src.a;
                                    }
                                    return result;
                                }));
                            };
                            var get = actions.payment.get;
                            actions.payment.get = function() {
                                return get().then((function(result) {
                                    if (!(result && result.id && result.intent && result.state)) {
                                        Object(beaver_logger_client.q)("get_result_missing_data");
                                        return new zalgo_promise_src.a;
                                    }
                                    return result;
                                }));
                            };
                            actions.request = lib.S;
                            onAuthorizeListener.trigger({
                                paymentToken: data.paymentToken
                            });
                            if (creditThrottle) {
                                var _creditThrottle$logCo;
                                creditThrottle.logComplete(((_creditThrottle$logCo = {})[constants.u.KEY.BUTTON_SESSION_UID] = this.props.buttonSessionID, 
                                _creditThrottle$logCo));
                            }
                            return zalgo_promise_src.a.try((function() {
                                if (_this3.props.braintree) return actions.payment.tokenize().then((function(_ref4) {
                                    var nonce = _ref4.nonce;
                                    Object.defineProperty(data, "nonce", {
                                        get: function() {
                                            Object(beaver_logger_client.k)("nonce_getter");
                                            Object(beaver_logger_client.h)();
                                            return nonce;
                                        }
                                    });
                                }));
                            })).then((function() {
                                return original.call(_this3, data, actions);
                            })).catch((function(err) {
                                if (_this3.props.onError) return _this3.props.onError(err);
                                throw err;
                            }));
                        };
                    }
                },
                onShippingChange: {
                    type: "function",
                    required: !1,
                    decorate: function(original) {
                        if (original) return function(data, actions) {
                            var _track4, _this4 = this;
                            Object(beaver_logger_client.k)("button_shipping_change");
                            Object(beaver_logger_client.p)(((_track4 = {})[constants.u.KEY.STATE] = constants.u.STATE.CHECKOUT, 
                            _track4[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.CHECKOUT_SHIPPING_CHANGE, 
                            _track4[constants.u.KEY.BUTTON_SESSION_UID] = this.props.buttonSessionID, _track4[constants.u.KEY.BUTTON_VERSION] = data && data.button_version, 
                            _track4));
                            Object(beaver_logger_client.h)();
                            var patch = actions.payment.patch;
                            actions.payment.patch = function(patchObject) {
                                return zalgo_promise_src.a.try((function() {
                                    return patch(patchObject);
                                }));
                            };
                            var resolve = function() {
                                return zalgo_promise_src.a.resolve();
                            };
                            var reject = actions.reject || function() {
                                throw new Error("Missing reject action callback");
                            };
                            return zalgo_promise_src.a.try((function() {
                                return original.call(_this4, data, Object(esm_extends.a)({}, actions, {
                                    resolve: resolve,
                                    reject: reject
                                }));
                            })).timeout(1e4, new Error("Timed out waiting 10000ms for payment")).catch((function(err) {
                                _this4.props.onError && _this4.props.onError(err);
                                throw err;
                            }));
                        };
                    }
                },
                onError: {
                    type: "function",
                    required: !1,
                    promisify: !0,
                    sendToChild: !0,
                    once: !0,
                    def: function() {
                        return function(err) {
                            if (Object(lib.F)()) {
                                Object(beaver_logger_client.q)("button_error_intranet_mode");
                                Object(beaver_logger_client.h)();
                                alert("IE Intranet mode is not supported by PayPal. Please disable intranet mode, or continue in an alternate browser.");
                            }
                            setTimeout((function() {
                                throw err;
                            }));
                        };
                    }
                },
                onCancel: {
                    type: "function",
                    required: !1,
                    noop: !0,
                    decorate: function(original) {
                        return function(data, actions) {
                            var _track5;
                            Object(beaver_logger_client.k)("button_cancel");
                            Object(beaver_logger_client.p)(((_track5 = {})[constants.u.KEY.STATE] = constants.u.STATE.CHECKOUT, 
                            _track5[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.CHECKOUT_CANCEL, _track5[constants.u.KEY.BUTTON_SESSION_UID] = this.props.buttonSessionID, 
                            _track5[constants.u.KEY.BUTTON_VERSION] = data && data.button_version, _track5));
                            Object(beaver_logger_client.h)();
                            return original.call(this, data, Object(esm_extends.a)({}, actions, {
                                redirect: function(win, url) {
                                    return zalgo_promise_src.a.all([ Object(lib.Q)(win || window.top, url || data.cancelUrl), actions.close() ]);
                                }
                            }));
                        };
                    }
                },
                onClick: {
                    type: "function",
                    required: !1,
                    noop: !0,
                    decorate: function(original) {
                        return function(data) {
                            var _track6;
                            Object(beaver_logger_client.k)("button_click");
                            data && data.flow && Object(beaver_logger_client.k)("pay_flow_" + data.flow);
                            Object(beaver_logger_client.p)(((_track6 = {})[constants.u.KEY.STATE] = constants.u.STATE.BUTTON, 
                            _track6[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.BUTTON_CLICK, _track6[constants.u.KEY.BUTTON_TYPE] = constants.u.BUTTON_TYPE.IFRAME, 
                            _track6[constants.u.KEY.BUTTON_SESSION_UID] = this.props.buttonSessionID, _track6[constants.u.KEY.CHOSEN_FUNDING] = data && (data.card || data.fundingSource), 
                            _track6[constants.u.KEY.PAYMENT_FLOW] = data && data.flow, _track6[constants.u.KEY.BUTTON_VERSION] = data && data.button_version, 
                            _track6));
                            Object(lib.F)() && Object(beaver_logger_client.q)("button_click_intranet_mode");
                            if (creditThrottle) {
                                var _creditThrottle$log;
                                creditThrottle.log("click", ((_creditThrottle$log = {})[constants.u.KEY.STATE] = constants.u.STATE.BUTTON, 
                                _creditThrottle$log[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.BUTTON_CLICK, 
                                _creditThrottle$log[constants.u.KEY.BUTTON_SESSION_UID] = this.props.buttonSessionID, 
                                _creditThrottle$log));
                            }
                            var _ref5 = this.props.style || {}, _ref5$color = _ref5.color, color = void 0 === _ref5$color ? "default" : _ref5$color;
                            Object(beaver_logger_client.k)("button_click_color_" + color);
                            Object(beaver_logger_client.h)();
                            return original.apply(this, arguments);
                        };
                    }
                },
                onResize: {
                    type: "function",
                    required: !1,
                    get value() {
                        var initialHeight;
                        var logInlineGuestOutOfViewPortOnlyOnce = Object(src_lib.H)((function(data) {
                            Object(beaver_logger_client.k)("buttons_expansion_outside_viewport", data);
                            Object(beaver_logger_client.j)();
                        }));
                        return function() {
                            var container = this.container;
                            if (container) {
                                initialHeight || (initialHeight = container.offsetHeight);
                                var isContainerExpanded = container && container.offsetHeight > initialHeight;
                                var isExpansionInViewport = function() {
                                    try {
                                        var scrollOffsetY = window.pageYOffset ? window.pageYOffset : document.documentElement ? document.documentElement.scrollTop : 0;
                                        var windowHeight = window.innerHeight;
                                        var containerOffsetY = container.getBoundingClientRect().top;
                                        return scrollOffsetY + windowHeight > initialHeight + containerOffsetY + 200;
                                    } catch (err) {
                                        Object(beaver_logger_client.k)("cannot_get_the_viewport_information");
                                        return !1;
                                    }
                                }();
                                isContainerExpanded && !isExpansionInViewport && logInlineGuestOutOfViewPortOnlyOnce({
                                    height: container.offsetHeight,
                                    window: {
                                        width: window.innerWidth,
                                        height: window.innerHeight
                                    }
                                });
                            }
                        };
                    },
                    decorate: function(original) {
                        return Object(src_lib.i)(original);
                    }
                },
                locale: {
                    type: "string",
                    required: !1,
                    queryParam: "locale.x",
                    def: function() {
                        var _getBrowserLocale = Object(lib.i)();
                        return _getBrowserLocale.lang + "_" + _getBrowserLocale.country;
                    },
                    validate: validateButtonLocale
                },
                style: {
                    type: "object",
                    required: !1,
                    queryParam: !0,
                    alias: "buttonStyle",
                    def: function() {
                        return {
                            color: constants.e.GOLD,
                            shape: constants.k.PILL,
                            size: constants.l.SMALL,
                            label: constants.f.CHECKOUT,
                            fundingicons: !1,
                            layout: constants.g.HORIZONTAL
                        };
                    },
                    decorate: function(style) {
                        var label = style.label, _style$layout = style.layout, layout = void 0 === _style$layout ? constants.g.HORIZONTAL : _style$layout;
                        if (!label && layout === constants.g.HORIZONTAL) {
                            style.label = constants.f.CHECKOUT;
                            return style;
                        }
                        if (!label && layout === constants.g.VERTICAL) {
                            style.label = constants.f.PAYPAL;
                            return style;
                        }
                        return style;
                    },
                    validate: function(style, props) {
                        void 0 === style && (style = {});
                        validateButtonStyle(style, props);
                        Object(beaver_logger_client.h)();
                    }
                },
                validate: {
                    type: "function",
                    required: !1,
                    decorate: function(validate) {
                        return function(actions) {
                            if (!this.validateCalled) {
                                this.validateCalled = !0;
                                return validate(actions);
                            }
                        };
                    }
                },
                logLevel: {
                    type: "string",
                    required: !1,
                    get value() {
                        return config.a.logLevel;
                    }
                },
                sdkMeta: {
                    type: "string",
                    queryParam: !0,
                    sendToChild: !1,
                    def: function() {
                        return Object(belter_src.a)(JSON.stringify({
                            url: Object(lib.l)()
                        }));
                    }
                },
                awaitPopupBridge: {
                    type: "object",
                    required: !1,
                    value: function() {
                        return awaitPopupBridge(component_Button);
                    }
                },
                getPageUrl: {
                    type: "function",
                    queryParam: !1,
                    required: !1,
                    def: function() {
                        return function() {
                            return window.location.href;
                        };
                    }
                },
                test: {
                    type: "object",
                    required: !1,
                    def: function() {
                        return {
                            action: "checkout"
                        };
                    }
                }
            }
        });
        var instances = component_Button.instances = [];
        var _render = component_Button.render;
        component_Button.render = function(props) {
            void 0 === props && (props = {});
            for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) args[_key - 1] = arguments[_key];
            var instance = {
                clone: function(_temp3) {
                    var _ref6$decorate = (void 0 === _temp3 ? {} : _temp3).decorate, decorate = void 0 === _ref6$decorate ? belter_src.c : _ref6$decorate;
                    return {
                        render: function(container) {
                            var decoratedProps = decorate(props);
                            return _render.call(component_Button, decoratedProps, container);
                        }
                    };
                }
            };
            instances.push(instance);
            var _props = props, _props$onDestroy = _props.onDestroy, onDestroy = void 0 === _props$onDestroy ? belter_src.g : _props$onDestroy;
            var newProps = Object(esm_extends.a)({}, props, {
                onDestroy: function() {
                    var index = instances.indexOf(instance);
                    -1 !== index && instances.splice(index, 1);
                    return onDestroy.apply(this, arguments);
                }
            });
            return _render.call.apply(_render, [ component_Button, newProps ].concat(args));
        };
        component_Button.isChild() && function(ButtonComponent) {
            !function(Checkout, Button) {
                var popupBridge;
                awaitPopupBridge(Button).then((function(bridge) {
                    popupBridge = bridge;
                }));
                function doRender(props, original) {
                    return popupBridge ? function(props, popupBridge) {
                        return zalgo_promise_src.a.try((function() {
                            !function(props) {
                                if (!props.payment) throw new Error("Expected props.payment to be passed");
                                if (!props.onAuthorize) throw new Error("Expected props.onAuthorize to be passed");
                                if (props.env && !config.a.checkoutUrls[props.env]) throw new Error("Invalid props.env: " + props.env);
                            }(props);
                        })).then((function() {
                            return function(props) {
                                var _normalizeCheckoutPro = normalizeCheckoutProps(props), env = _normalizeCheckoutPro.env;
                                return zalgo_promise_src.a.try(_normalizeCheckoutPro.payment, {
                                    props: props
                                }).then((function(token) {
                                    var _extendUrl;
                                    if (!token) throw new Error("Expected props.payment to return a payment id or token");
                                    return Object(lib.g)(Object(integrations_checkout.b)(env, constants.v.PAYPAL, token), ((_extendUrl = {})[Object(integrations_checkout.a)(token)] = token, 
                                    _extendUrl.useraction = props.commit ? "commit" : "", _extendUrl.native_xo = "1", 
                                    _extendUrl));
                                }));
                            }(props);
                        })).then((function(url) {
                            return popupBridge.open(url);
                        })).then((function(payload) {
                            var opType = payload.queryItems.opType;
                            var _normalizeCheckoutPro2 = normalizeCheckoutProps(props), onAuthorize = _normalizeCheckoutPro2.onAuthorize, onCancel = _normalizeCheckoutPro2.onCancel;
                            var data = function(query) {
                                var data = {
                                    paymentToken: query.token,
                                    billingToken: query.ba_token,
                                    paymentID: query.paymentId,
                                    payerID: query.PayerID,
                                    intent: query.intent
                                };
                                var opType = query.opType, cancel_uri = query.cancel_uri;
                                "payment" === opType ? data.returnUrl = query.return_uri : "cancel" === opType && (data.cancelUrl = cancel_uri);
                                return data;
                            }(payload.queryItems);
                            var actions = function(query) {
                                var actions = {
                                    close: src_lib.F,
                                    closeComponent: src_lib.F
                                };
                                var opType = query.opType, return_uri = query.return_uri, cancel_uri = query.cancel_uri;
                                "payment" === opType ? actions.redirect = function(win, redirectUrl) {
                                    void 0 === win && (win = window);
                                    void 0 === redirectUrl && (redirectUrl = return_uri);
                                    return Object(lib.Q)(win, redirectUrl);
                                } : "cancel" === opType && (actions.redirect = function(win, redirectUrl) {
                                    void 0 === win && (win = window);
                                    void 0 === redirectUrl && (redirectUrl = cancel_uri);
                                    return Object(lib.Q)(win, redirectUrl);
                                });
                                return actions;
                            }(payload.queryItems);
                            if ("payment" === opType) return onAuthorize(data, actions);
                            if ("cancel" === opType) return onCancel(data, actions);
                            throw new Error("Invalid opType: " + opType);
                        })).catch((function(err) {
                            if (err && "PAYMENT_CANCELLED" === err.code) return (0, normalizeCheckoutProps(props).onCancel)({}, {});
                            throw err;
                        }));
                    }(props, popupBridge).catch((function(err) {
                        Object(beaver_logger_client.g)("popup_bridge_error", {
                            err: Object(lib.V)(err)
                        });
                        return original();
                    })) : original();
                }
                var render = Checkout.render;
                Checkout.render = function(props) {
                    var _arguments = arguments, _this = this;
                    return doRender(props, (function() {
                        return render.apply(_this, _arguments);
                    }));
                };
                var renderTo = Checkout.renderTo;
                Checkout.renderTo = function(win, props) {
                    var _arguments2 = arguments, _this2 = this;
                    return doRender(props, (function() {
                        return renderTo.apply(_this2, _arguments2);
                    }));
                };
                var renderPopupTo = Checkout.renderPopupTo;
                Checkout.renderPopupTo = function(win, props) {
                    var _arguments3 = arguments, _this3 = this;
                    return doRender(props, (function() {
                        return renderPopupTo.apply(_this3, _arguments3);
                    }));
                };
            }(src_checkout.a, ButtonComponent);
            Object(lib.p)().then((function(pageRenderTime) {
                var _track;
                var fundingSources = [].slice.call(document.querySelectorAll("[" + constants.c.FUNDING_SOURCE + "]")).map((function(el) {
                    return el.getAttribute(constants.c.CARD) || el.getAttribute(constants.c.FUNDING_SOURCE);
                })).filter((function(source) {
                    return source && source !== constants.v.CARD;
                }));
                var xprops = ButtonComponent.xprops;
                if (xprops) {
                    var _ref = xprops.style || {}, _ref$layout = _ref.layout, layout = void 0 === _ref$layout ? constants.g.HORIZONTAL : _ref$layout, _ref$color = _ref.color, color = void 0 === _ref$color ? constants.e.GOLD : _ref$color, _ref$size = _ref.size, size = void 0 === _ref$size ? constants.l.SMALL : _ref$size, _ref$shape = _ref.shape, shape = void 0 === _ref$shape ? constants.k.PILL : _ref$shape, _ref$label = _ref.label, label = void 0 === _ref$label ? constants.f.CHECKOUT : _ref$label, maxbuttons = _ref.maxbuttons, tagline = _ref.tagline;
                    Object(beaver_logger_client.p)(((_track = {})[constants.u.KEY.STATE] = constants.u.STATE.BUTTON, 
                    _track[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.BUTTON_LOAD, _track[constants.u.KEY.BUTTON_TYPE] = constants.u.BUTTON_TYPE.IFRAME, 
                    _track[constants.u.KEY.FUNDING_LIST] = fundingSources.join(":"), _track[constants.u.KEY.FUNDING_COUNT] = fundingSources.length, 
                    _track[constants.u.KEY.PAGE_LOAD_TIME] = pageRenderTime, _track[constants.u.KEY.BUTTON_LAYOUT] = layout, 
                    _track[constants.u.KEY.BUTTON_COLOR] = color, _track[constants.u.KEY.BUTTON_SIZE] = size, 
                    _track[constants.u.KEY.BUTTON_SHAPE] = shape, _track[constants.u.KEY.BUTTON_LABEL] = label, 
                    _track[constants.u.KEY.BUTTON_WIDTH] = window.innerWidth, _track[constants.u.KEY.MAX_BUTTONS] = maxbuttons, 
                    _track[constants.u.KEY.BUTTON_TAGLINE_ENABLED] = tagline ? "1" : "0", _track));
                    Object(beaver_logger_client.h)();
                }
            }));
            var xprops = ButtonComponent.xprops || src_checkout.a.xprops;
            xprops && xprops.logLevel && Object(lib.U)(xprops.logLevel);
            xprops.payment && !xprops.createOrder && (xprops.createOrder = xprops.payment);
            xprops.onAuthorize && !xprops.onApprove && (xprops.onApprove = xprops.onAuthorize);
            try {
                xprops && xprops.onShippingChange && window.pre && window.pre.inlineGuest && window.pre.inlineGuest.res && window.pre.inlineGuest.res.data && window.pre.inlineGuest.res.data.treatments && (window.pre.inlineGuest.res.data.treatments = []);
            } catch (err) {}
        }(component_Button);
        Object(lib.E)() && Object(lib.m)("ie_full_page") && (src_checkout.a.renderTo = function(win) {
            Object(beaver_logger_client.k)("force_ie_full_page");
            Object(beaver_logger_client.h)();
            var checkout = src_checkout.a.init({
                onAuthorize: lib.K
            });
            checkout.delegate(win);
            checkout.openContainer().then((function() {
                checkout.event.triggerOnce(src.a.EVENTS.CLOSE);
                checkout.showContainer();
            }));
            component_Button.xprops.payment().then((function(token) {
                window.top.location = Object(lib.g)(config.a.checkoutUrl, {
                    token: token
                });
            })).catch((function(err) {
                checkout.error(err);
            }));
        });
        var hacks_parent = Object(cross_domain_utils_src.n)(window);
        var hacks_top = Object(cross_domain_utils_src.o)(window);
        if (hacks_top && hacks_parent) {
            var canRenderTop = hacks_top === hacks_parent;
            if (!canRenderTop) {
                src_checkout.a.canRenderTo(hacks_top).then((function(result) {
                    canRenderTop = result;
                }));
                Object(lib.O)(src_checkout.a, "renderTo", (function(_ref) {
                    var _ref$args = _ref.args, win = _ref$args[0], props = _ref$args[1], el = _ref$args[2], original = _ref.original, context = _ref.context;
                    canRenderTop || (win = Object(cross_domain_utils_src.n)(window));
                    return original.call(context, win, props, el);
                }));
            }
        }
        Object(lib.O)(src_checkout.a, "renderTo", (function(_ref2) {
            var callOriginal = _ref2.callOriginal, props = _ref2.args[1];
            if (Object(lib.m)("allow_full_page_fallback")) {
                var handleError = Object(lib.M)((function(err) {
                    try {
                        console.error(err && err.stack);
                    } catch (err2) {}
                    return component_Button.xprops.payment().then((function(token) {
                        window.top.location = Object(lib.g)(config.a.checkoutUrl, {
                            token: token
                        });
                    }));
                }));
                props.onError = handleError;
                return callOriginal().catch(handleError);
            }
            return callOriginal();
        }));
        var debounce = !1;
        Object(lib.O)(src_checkout.a, "renderTo", (function(_ref3) {
            var callOriginal = _ref3.callOriginal, props = _ref3.args[1];
            if (debounce) {
                Object(beaver_logger_client.q)("button_mutliple_click_debounce");
                return new zalgo_promise_src.a(lib.K);
            }
            debounce = !0;
            var _loop = function(_i2, _ref5) {
                var methodName = _ref5[_i2];
                var original = props[methodName];
                props[methodName] = function() {
                    debounce = !1;
                    if (original) return original.apply(this, arguments);
                };
            };
            for (var _i2 = 0, _ref5 = [ "onAuthorize", "onCancel", "onError", "onClose" ]; _i2 < _ref5.length; _i2++) _loop(_i2, _ref5);
            return callOriginal();
        }));
        Object(lib.O)(rest.payment, "create", (function(_ref6) {
            var _ref6$args = _ref6.args, options = _ref6$args[2];
            options.payment || (options = {
                payment: options,
                experience: _ref6$args[3]
            });
            return _ref6.original.call(_ref6.context, _ref6$args[0], _ref6$args[1], options);
        }));
        Object(lib.O)(component_Button.props.style, "validate", (function(_ref7) {
            var callOriginal = _ref7.callOriginal, style = _ref7.args[0];
            if (!style) return callOriginal();
            style && "creditblue" === style.color && (style.color = constants.e.DARKBLUE);
            style && "generic" === style.label && (style.label = constants.f.PAYPAL);
            if (style && (!style.label || style.label === constants.f.CHECKOUT) && "tiny" === style.size) {
                Object(beaver_logger_client.q)("unsupported_button_size_tiny");
                style.size = constants.l.SMALL;
            }
            return callOriginal();
        }));
        Object(lib.O)(component_Button, "render", (function(_ref8) {
            var callOriginal = _ref8.callOriginal, props = _ref8.args[0];
            if (props.billingAgreement) {
                props.payment = props.billingAgreement;
                delete props.billingAgreement;
            }
            return callOriginal();
        }));
        Object(lib.O)(component_Button.props.payment, "decorate", (function(_ref9) {
            var originalPayment = _ref9.args[0];
            return _ref9.original.call(_ref9.context, (function(data, actions) {
                var _this = this;
                return new zalgo_promise_src.a((function(resolve, reject) {
                    Object(lib.O)(actions.payment, "create", (function(_ref10) {
                        var _ref10$args = _ref10.args, options = _ref10$args[0];
                        options.payment || (options = {
                            payment: options,
                            experience: _ref10$args[1]
                        });
                        return _ref10.original.call(_ref10.context, options);
                    }));
                    function resolveData(token) {
                        resolve(token);
                    }
                    function rejectActions(err) {
                        reject(err);
                    }
                    Object(lib.f)(resolveData, data);
                    Object(lib.f)(resolveData, actions);
                    Object(lib.f)(rejectActions, actions);
                    var ctx = {
                        props: {
                            env: _this.props.env,
                            client: _this.props.client
                        }
                    };
                    var result;
                    try {
                        result = originalPayment.call(ctx, resolveData, rejectActions);
                    } catch (err) {
                        return reject(err);
                    }
                    return result && "function" == typeof result.then ? result.then(resolve, reject) : void 0 !== result ? resolve(result) : void 0;
                }));
            }));
        }));
        component_Button.isChild() && (window.Promise || (window.Promise = zalgo_promise_src.a));
        var Card = Object(src.c)({
            tag: "card-fields",
            name: "ppcard",
            buildUrl: function(props) {
                return config.a.inlinedCardFieldUrls[props.env || config.a.env];
            },
            contexts: {
                iframe: !0,
                popup: !1
            },
            dimensions: {
                height: "300px",
                width: "100%"
            },
            autoResize: {
                height: !0,
                width: !1
            },
            props: {
                sessionID: {
                    type: "string",
                    required: !1,
                    def: function() {
                        return Object(lib.v)();
                    },
                    queryParam: !0
                },
                token: {
                    type: "string",
                    required: !0,
                    queryParam: !0
                },
                buttonSessionID: {
                    type: "string",
                    required: !1,
                    def: function() {
                        return Object(lib.j)();
                    },
                    queryParam: !0
                },
                commit: {
                    type: "boolean",
                    required: !1,
                    queryParam: !0
                },
                env: {
                    type: "string",
                    required: !1,
                    queryParam: !0,
                    def: function() {
                        return config.a.env;
                    },
                    validate: function(env) {
                        if (!config.a.paypalUrls[env]) throw new Error("Invalid env: " + env);
                    }
                },
                locale: {
                    type: "string",
                    required: !1,
                    queryParam: "locale.x",
                    allowDelegate: !0,
                    def: function() {
                        var _getBrowserLocale = Object(lib.i)();
                        return _getBrowserLocale.lang + "_" + _getBrowserLocale.country;
                    }
                },
                initialFormValues: {
                    type: "object",
                    required: !1
                },
                onAuthorize: {
                    type: "function",
                    required: !0,
                    once: !0
                },
                onAuth: {
                    type: "function",
                    required: !1,
                    sameDomain: !0
                },
                onEvent: {
                    type: "function",
                    required: !1,
                    sameDomain: !0
                },
                getState: {
                    type: "function",
                    required: !1,
                    sameDomain: !0
                },
                dispatch: {
                    type: "object",
                    required: !1,
                    sameDomain: !0
                },
                onCancel: {
                    type: "function",
                    required: !1,
                    once: !0,
                    noop: !0
                },
                sdkMeta: {
                    type: "string",
                    queryParam: !0,
                    sendToChild: !1,
                    def: function() {
                        return Object(belter_src.a)(JSON.stringify({
                            url: Object(lib.l)()
                        }));
                    }
                },
                style: {
                    type: "object",
                    required: !1,
                    queryParam: !0,
                    def: function() {
                        return {
                            cardIcons: {
                                display: !1
                            },
                            submitButton: {
                                display: !0
                            },
                            currencyConversion: {
                                display: !0
                            }
                        };
                    }
                }
            }
        });
        (currentDomainEnv = function(domain) {
            for (var _i2 = 0, _Object$keys2 = Object.keys(config.a.paypalUrls); _i2 < _Object$keys2.length; _i2++) {
                var env = _Object$keys2[_i2];
                if (config.a.paypalUrls[env] === domain) return env;
            }
        }(window.location.protocol + "//" + window.location.host)) && "test" !== currentDomainEnv && (config.a.env = currentDomainEnv);
        var currentDomainEnv;
        zalgo_promise_src.a.onPossiblyUnhandledException((function(err) {
            var _track;
            Object(beaver_logger_client.g)("unhandled_error", {
                stack: Object(lib.V)(err),
                errtype: {}.toString.call(err)
            });
            Object(beaver_logger_client.p)(((_track = {})[constants.u.KEY.ERROR_CODE] = "checkoutjs_error", 
            _track[constants.u.KEY.ERROR_DESC] = Object(lib.W)(err), _track));
            return Object(beaver_logger_client.h)().catch((function(err2) {
                if (window.console) try {
                    window.console.error ? window.console.error("Error flushing:", Object(lib.V)(err2)) : window.console.log && window.console.log("Error flushing:", Object(lib.V)(err2));
                } catch (err3) {
                    setTimeout((function() {
                        throw err3;
                    }), 1);
                }
            }));
        }));
        var currentScript = Object(lib.k)();
        var currentProtocol = window.location.protocol.split(":")[0];
        var init = Object(lib.M)((function(_ref2) {
            var precacheRemembered = _ref2.precacheRemembered;
            Object(lib.C)() || Object(beaver_logger_client.q)("ineligible");
            Object(lib.c)();
            Object(lib.z)();
            pptm.shouldCreateInitialPptmScript() && pptm.createPptmScript();
            precacheRemembered && Object(lib.P)();
            Object(lib.m)("force_bridge") && !Object(lib.H)() && Object(lib.N)(config.a.env);
            Object(beaver_logger_client.k)("setup_" + config.a.env);
            Object(beaver_logger_client.f)("current_protocol_" + currentProtocol);
        }));
        function setup(options) {
            void 0 === options && (options = {});
            !function(_temp) {
                var _ref = void 0 === _temp ? {} : _temp, env = _ref.env, stage = _ref.stage, stageUrl = _ref.stageUrl, apiStage = _ref.apiStage, localhostUrl = _ref.localhostUrl, checkoutUri = _ref.checkoutUri, state = _ref.state, logLevel = _ref.logLevel, merchantID = _ref.merchantID, authCode = _ref.authCode;
                if (env) {
                    if (!config.a.paypalUrls[env]) throw new Error("Invalid env: " + env);
                    delete config.a.env;
                    config.a.env = env;
                } else if (component_Button.xprops && component_Button.xprops.env) {
                    delete config.a.env;
                    config.a.env = component_Button.xprops.env;
                } else if (src_checkout.a.xprops && src_checkout.a.xprops.env) {
                    delete config.a.env;
                    config.a.env = src_checkout.a.xprops.env;
                }
                if (stage) {
                    delete config.a.stage;
                    config.a.stage = stage;
                } else if (component_Button.xprops && component_Button.xprops.stage) {
                    delete config.a.stage;
                    config.a.stage = component_Button.xprops.stage;
                } else if (src_checkout.a.xprops && src_checkout.a.xprops.stage) {
                    delete config.a.stage;
                    config.a.stage = src_checkout.a.xprops.stage;
                }
                if (stageUrl) {
                    delete config.a.stageUrl;
                    config.a.stageUrl = stageUrl;
                } else if (component_Button.xprops && component_Button.xprops.stageUrl) {
                    delete config.a.stageUrl;
                    config.a.stageUrl = component_Button.xprops.stageUrl;
                } else if (src_checkout.a.xprops && src_checkout.a.xprops.stageUrl) {
                    delete config.a.stageUrl;
                    config.a.stageUrl = src_checkout.a.xprops.stageUrl;
                }
                if (authCode = authCode || component_Button.xprops && component_Button.xprops.authCode || src_checkout.a.xprops && src_checkout.a.xprops.authCode) {
                    delete config.a.authCode;
                    config.a.authCode = authCode;
                }
                if (apiStage) {
                    delete config.a.apiStage;
                    config.a.apiStage = apiStage;
                }
                (localhostUrl = localhostUrl || component_Button.xprops && component_Button.xprops.localhostUrl || src_checkout.a.xprops && src_checkout.a.xprops.localhostUrl) && (config.a.localhostUrl = localhostUrl);
                (checkoutUri = checkoutUri || component_Button.xprops && component_Button.xprops.checkoutUri || src_checkout.a.xprops && src_checkout.a.xprops.checkoutUri) && (config.a.checkoutUri = checkoutUri);
                if (state) {
                    delete config.a.state;
                    config.a.state = state;
                }
                merchantID && (config.a.merchantID = merchantID);
                logLevel ? Object(lib.U)(logLevel) : Object(lib.U)(config.a.logLevel);
            }(options);
            init(options);
        }
        currentScript ? setup({
            env: currentScript.getAttribute("data-env"),
            stage: currentScript.getAttribute("data-stage"),
            apiStage: currentScript.getAttribute("data-api-stage"),
            stageUrl: currentScript.getAttribute("data-stage-url"),
            localhostUrl: Object(lib.H)() ? currentScript.getAttribute("data-localhost-url") : void 0,
            checkoutUri: Object(lib.H)() ? currentScript.getAttribute("data-checkout-uri") : void 0,
            state: currentScript.getAttribute("data-state"),
            logLevel: currentScript.getAttribute("data-log-level"),
            merchantID: currentScript.getAttribute("data-merchant-id"),
            authCode: currentScript.getAttribute("data-auth-code"),
            precacheRemembered: currentScript.hasAttribute("data-precache-remembered-funding")
        }) : setup();
        if (!Object(lib.H)()) if (currentScript) {
            var setup_track2;
            var scriptProtocol = currentScript.src.split(":")[0];
            var loadTime = Object(lib.s)(currentScript.src);
            Object(beaver_logger_client.f)("current_script_protocol_" + scriptProtocol);
            Object(beaver_logger_client.f)("current_script_protocol_" + (currentProtocol === scriptProtocol ? "match" : "mismatch"));
            Object(beaver_logger_client.f)("current_script_version_" + config.a.version.replace(/[^0-9a-zA-Z]+/g, "_"));
            if (loadTime) {
                Object(beaver_logger_client.f)("current_script_time", {
                    loadTime: loadTime
                });
                Object(beaver_logger_client.f)("current_script_time_" + Math.floor(loadTime / 1e3));
            }
            Object(beaver_logger_client.p)(((setup_track2 = {})[constants.u.KEY.STATE] = constants.u.STATE.LOAD, 
            setup_track2[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.SCRIPT_LOAD, setup_track2[constants.u.KEY.TRANSITION_TIME] = loadTime, 
            setup_track2[constants.u.KEY.FUNDING_REMEMBERED] = Object(lib.r)().join(","), setup_track2));
        } else {
            var setup_track3;
            Object(beaver_logger_client.f)("no_current_script");
            Object(beaver_logger_client.f)("no_current_script_version_" + config.a.version.replace(/[^0-9a-zA-Z]+/g, "_"));
            document.currentScript && Object(beaver_logger_client.f)("current_script_not_recognized", {
                src: document.currentScript.src
            });
            Object(beaver_logger_client.p)(((setup_track3 = {})[constants.u.KEY.STATE] = constants.u.STATE.LOAD, 
            setup_track3[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.SCRIPT_LOAD, setup_track3));
        }
        var postRobot = post_robot_src;
        var onPossiblyUnhandledException = zalgo_promise_src.a.onPossiblyUnhandledException;
        var interface_version = "4.0.328";
        var interface_checkout;
        var apps;
        var legacy = __webpack_require__(45);
        interface_checkout = legacy.checkout;
        apps = legacy.apps;
        var interface_Checkout;
        var interface_BillingPage;
        var PayPalCheckout;
        var destroyAll;
        var enableCheckoutIframe;
        var logger;
        var interface_ThreeDomainSecure;
        if (Object(lib.H)()) {
            interface_Checkout = src_checkout.a;
            interface_BillingPage = BillingPage;
            interface_ThreeDomainSecure = ThreeDomainSecure;
            PayPalCheckout = src_checkout.a;
            enableCheckoutIframe = function() {
                src_checkout.a.contexts.iframe = !0;
            };
            destroyAll = src.d;
            logger = {
                debug: beaver_logger_client.f,
                info: beaver_logger_client.k,
                warn: beaver_logger_client.q,
                error: beaver_logger_client.g,
                track: beaver_logger_client.p,
                flush: beaver_logger_client.h
            };
        }
        __webpack_exports__.default = interface_namespaceObject;
    }, function(module, __webpack_exports__, __webpack_require__) {
        "use strict";
        __webpack_require__.r(__webpack_exports__);
        __webpack_require__.d(__webpack_exports__, "renderButtons", (function() {
            return renderButtons;
        }));
        __webpack_require__.d(__webpack_exports__, "getHijackTargetElement", (function() {
            return getHijackTargetElement;
        }));
        __webpack_require__.d(__webpack_exports__, "LOG_PREFIX", (function() {
            return LOG_PREFIX;
        }));
        __webpack_require__.d(__webpack_exports__, "ATTRIBUTES", (function() {
            return ATTRIBUTES;
        }));
        __webpack_require__.d(__webpack_exports__, "CLASSES", (function() {
            return CLASSES;
        }));
        __webpack_require__.d(__webpack_exports__, "checkout", (function() {
            return interface_checkout;
        }));
        __webpack_require__.d(__webpack_exports__, "apps", (function() {
            return apps;
        }));
        __webpack_require__.d(__webpack_exports__, "reset", (function() {
            return interface_reset;
        }));
        __webpack_require__.d(__webpack_exports__, "setup", (function() {
            return setup;
        }));
        var client = __webpack_require__(5);
        var lib = __webpack_require__(3);
        var constants = __webpack_require__(0);
        var LOG_PREFIX = "paypal_legacy";
        var ATTRIBUTES = {
            BUTTON: "data-paypal-button",
            MERCHANT_ID: "data-paypal-id",
            ENV: "data-env",
            SANDBOX: "data-sandbox"
        };
        var CLASSES = {
            HIDDEN_BUTTON: "paypal-button-hidden"
        };
        var esm_extends = __webpack_require__(11);
        var src = __webpack_require__(2);
        var form_serialize = __webpack_require__(40);
        var form_serialize_default = __webpack_require__.n(form_serialize);
        var checkout = __webpack_require__(16);
        var config = __webpack_require__(4);
        var post_robot_src = __webpack_require__(13);
        function isLegacyEligible() {
            return !!Object(lib.C)() && !!Object(lib.X)() && !Object(lib.A)();
        }
        var warn = Object(client.n)(LOG_PREFIX).warn;
        var DEFAULT_COUNTRY = constants.r.US;
        var DEFAULT_LANG = constants.y.EN;
        function normalizeLocale(locale) {
            var _locale$split = locale.split("_"), lang = _locale$split[0], country = _locale$split[1];
            if (!country) if (constants.A[lang]) {
                country = lang;
                lang = null;
            } else country = DEFAULT_COUNTRY;
            if (!constants.A[country]) {
                warn("invalid_user_country", {
                    country: country
                });
                country = DEFAULT_COUNTRY;
            }
            lang || (lang = DEFAULT_LANG);
            if (-1 === constants.A[country].indexOf(lang)) {
                warn("invalid_user_lang", {
                    lang: lang
                });
                lang = -1 !== constants.A[country].indexOf(DEFAULT_LANG) ? DEFAULT_LANG : constants.A[country][0];
            }
            return {
                country: country,
                lang: lang
            };
        }
        var button_prefix = Object(client.n)(LOG_PREFIX), info = button_prefix.info, debug = button_prefix.debug, error = button_prefix.error;
        var loadButtonJS = Object(lib.J)((function() {
            debug("buttonjs_load");
            return Object(lib.I)(config.a.buttonJSUrl).catch((function(err) {
                info("buttonjs_load_error_retry", {
                    error: Object(lib.V)(err)
                });
                return Object(lib.I)(config.a.buttonJSUrl);
            })).then((function(result) {
                debug("buttonjs_load_success");
                return result;
            })).catch((function(err) {
                error("buttonjs_load_error", {
                    error: Object(lib.V)(err)
                });
                throw err;
            }));
        }));
        function renderButtons(id, buttons) {
            return src.a.map(buttons, (function(button) {
                return src.a.try((function() {
                    return button.container ? function(id, _ref) {
                        var container = _ref.container, locale = _ref.locale, type = _ref.type, color = _ref.color, shape = _ref.shape, size = _ref.size;
                        return loadButtonJS().then((function() {
                            if (locale) {
                                var _normalizeLocale = normalizeLocale(locale);
                                locale = _normalizeLocale.lang + "_" + _normalizeLocale.country;
                            }
                            color = color || constants.e.GOLD;
                            shape = shape || constants.k.PILL;
                            size = size || constants.l.SMALL;
                            type = type || constants.f.CHECKOUT;
                            debug("render_button_lc_" + (locale = locale || config.a.locale.lang + "_" + config.a.locale.country));
                            debug("render_button_color_" + color);
                            debug("render_button_shape_" + shape);
                            debug("render_button_size_" + size);
                            debug("render_button_label_" + type);
                            var el = window.paypal.button.create(id, {
                                lc: locale,
                                color: color,
                                shape: shape,
                                size: size
                            }, {
                                type: "button",
                                label: type
                            }).el;
                            container.appendChild(el);
                            try {
                                info("in_page_button_" + (Object(lib.B)(el) ? "visible" : "not_visible"));
                            } catch (err) {}
                            return el.childNodes[0];
                        }));
                    }(id, button) : button.button;
                })).then((function(element) {
                    var container;
                    var type;
                    if (button.container) {
                        container = button.container;
                        type = constants.u.BUTTON_TYPE.HTML;
                    } else {
                        container = button.button;
                        type = constants.u.BUTTON_TYPE.CUSTOM;
                    }
                    return {
                        container: container,
                        element: element,
                        type: type,
                        condition: button.condition,
                        click: button.click
                    };
                }));
            }));
        }
        function getHijackTargetElement(button) {
            var form = button.form;
            if (form) {
                debug("target_element_button_form");
                return form;
            }
            var tagName = button.tagName && button.tagName.toLowerCase();
            if ("a" === tagName) {
                debug("target_element_link");
                return button;
            }
            var parentElement = button.parentElement;
            var parentTagName = parentElement && parentElement.tagName && parentElement.tagName.toLowerCase();
            if (("img" === tagName || "button" === tagName) && "a" === parentTagName) {
                debug("target_element_parent_link");
                return parentElement;
            }
            var grandparentElement = parentElement && parentElement.parentElement;
            var grandparentTagName = grandparentElement && grandparentElement.tagName && grandparentElement.tagName.toLowerCase();
            if ("button" === tagName && "a" === grandparentTagName) {
                debug("target_element_grandparent_link");
                return button.parentElement && button.parentElement.parentElement;
            }
        }
        var util_warn = Object(client.n)(LOG_PREFIX).warn;
        var redirected = !1;
        function logRedirect(location) {
            redirected && util_warn("multiple_redirects");
            Object(lib.Z)(location) && (redirected = !0);
            Object(client.h)();
        }
        function redirect(url) {
            return src.a.try((function() {
                if (!url) throw new Error("Redirect url undefined");
                if (config.a.env === constants.t.TEST && Object(lib.Z)(url)) return Object(lib.Q)(window, "#fullpageRedirect?url=" + url);
                logRedirect(url);
                return Object(lib.Q)(window, url);
            }));
        }
        var options_prefix = Object(client.n)(LOG_PREFIX), options_info = options_prefix.info, options_warn = options_prefix.warn;
        var interface_prefix = Object(client.n)(LOG_PREFIX), interface_info = interface_prefix.info, interface_debug = interface_prefix.debug, interface_warn = interface_prefix.warn, interface_error = interface_prefix.error, track = interface_prefix.track;
        var interface_checkout = {};
        var apps = {
            checkout: interface_checkout,
            Checkout: interface_checkout
        };
        function interface_reset() {
            interface_debug("reset");
            interface_checkout.initXO = initXO;
            interface_checkout.startFlow = startFlow;
            interface_checkout.closeFlow = closeFlow;
        }
        interface_checkout.reset = interface_reset;
        Object.defineProperty(interface_checkout, "urlPrefix", {
            get: function() {
                return config.a.checkoutUrl + (-1 === config.a.checkoutUrl.indexOf("?") ? "?" : "&") + "token=";
            }
        });
        function matchUrlAndPaymentToken(item) {
            if (!item || !item.trim()) {
                interface_error("startflow_no_url_or_token", {
                    item: item
                });
                throw new Error("startflow_no_url_or_token");
            }
            var paymentToken = function(token) {
                if (token) {
                    if ((token = decodeURIComponent(decodeURIComponent(token))).match(/^(EC-)?[A-Z0-9]{17}$/)) return token;
                    var match = token.match(/token=((EC-)?[A-Z0-9]{17})/);
                    return match || (match = token.match(/(EC-[A-Z0-9]{17})/)) ? match[1] : void 0;
                }
            }(item);
            var url = paymentToken && paymentToken === item ? "" : item;
            if (url) if (url.match(/^https?:\/\/|^\//)) paymentToken ? -1 !== url.indexOf(".paypal.com") ? interface_debug("startflow_paypalurl_with_token", {
                url: url
            }) : interface_debug("startflow_url_with_token", {
                url: url
            }) : interface_debug("startflow_url_no_token", {
                url: url
            }); else {
                interface_info(paymentToken ? "startflow_relative_url_with_token" : "startflow_relative_url_no_token", {
                    url: url
                });
                0 === url.toLowerCase().indexOf("ec-") && paymentToken && (url = "" + config.a.checkoutUrl + url);
            } else {
                if (!paymentToken) {
                    interface_error("startflow_no_url_or_token", {
                        url: url
                    });
                    throw new Error('Could not determine url or token from "' + item + '"');
                }
                url = Object(lib.g)(config.a.checkoutUrl, {
                    token: paymentToken
                });
                interface_debug("startflow_with_token", {
                    url: url
                });
            }
            return {
                paymentToken: paymentToken,
                url: url
            };
        }
        function checkUrlAgainstEnv(url) {
            var paypalUrls = config.a.paypalUrls;
            for (var _i2 = 0, _Object$keys2 = Object.keys(paypalUrls); _i2 < _Object$keys2.length; _i2++) {
                var env = _Object$keys2[_i2];
                var paypalUrl = paypalUrls[env];
                if (env !== constants.t.TEST && env !== constants.t.DEMO && env !== config.a.env && (0 === url.indexOf(paypalUrl) || 0 === url.indexOf(paypalUrl.replace("//www.", "//")))) {
                    interface_warn("mismatched_env_startflow_url", {
                        env: config.a.env,
                        url: url
                    });
                    redirect(url);
                    throw new Error(url + " is not a " + config.a.env + " url");
                }
            }
        }
        function awaitPaymentTokenAndUrl(event, targetElement) {
            var paymentTokenAndUrl = new src.a((function(resolve) {
                if (event && targetElement && (Math.random() < .001 || window.enablev3ajax)) {
                    var method;
                    var _url;
                    var body;
                    var contentType;
                    interface_info("gettoken_targetelement_start");
                    Object(client.h)();
                    if ("a" === targetElement.tagName.toLowerCase()) {
                        method = "get";
                        _url = targetElement.getAttribute("href");
                    } else if ("form" === targetElement.tagName.toLowerCase()) {
                        method = (targetElement.getAttribute("method") || "get").toLowerCase();
                        _url = targetElement.getAttribute("action");
                        body = form_serialize_default()(targetElement);
                        contentType = targetElement.getAttribute("enctype") || "application/x-www-form-urlencoded";
                    }
                    if (method && _url) {
                        event.preventDefault();
                        Object(lib.S)({
                            method: method,
                            url: _url,
                            body: body,
                            headers: {
                                Accept: "application/paypal-json-token",
                                "Content-type": contentType || ""
                            }
                        }).then((function(json) {
                            var urlAndPaymentToken = matchUrlAndPaymentToken(json.token);
                            resolve(urlAndPaymentToken);
                            interface_info("gettoken_targetelement_success", urlAndPaymentToken);
                            Object(client.h)();
                        })).catch((function(err) {
                            interface_warn("gettoken_targetelement_error", {
                                err: err.stack || err.toString()
                            });
                            Object(client.h)();
                        }));
                    } else {
                        interface_warn("gettoken_targetelement_no_method_or_url");
                        Object(client.h)();
                    }
                }
                interface_checkout.initXO = function() {
                    interface_warn("gettoken_initxo");
                };
                interface_checkout.startFlow = Object(lib.M)((function(item) {
                    interface_debug("gettoken_startflow", {
                        item: item
                    });
                    var _matchUrlAndPaymentTo = matchUrlAndPaymentToken(item), url = _matchUrlAndPaymentTo.url, paymentToken = _matchUrlAndPaymentTo.paymentToken;
                    checkUrlAgainstEnv(url);
                    return resolve({
                        url: url,
                        paymentToken: paymentToken
                    });
                }));
            }));
            return {
                url: paymentTokenAndUrl.then((function(result) {
                    return result.url;
                })),
                paymentToken: paymentTokenAndUrl.then((function(result) {
                    return result.paymentToken;
                }))
            };
        }
        var paypalCheckoutInited = !1;
        var closeFlowCalled = !1;
        function initPayPalCheckout(props) {
            void 0 === props && (props = {});
            interface_info("init_checkout");
            paypalCheckoutInited && config.a.env !== constants.t.TEST && interface_warn("multiple_init_paypal_checkout");
            closeFlowCalled && interface_debug("init_after_closeflow");
            paypalCheckoutInited = !0;
            var paypalCheckout = checkout.a.init(Object(esm_extends.a)({
                onAuthorize: function(data, actions) {
                    interface_info("payment_authorized");
                    logRedirect(data.returnUrl);
                    return actions.redirect(window);
                },
                onCancel: function(data, actions) {
                    if (data.cancelUrl) {
                        interface_info("payment_canceled");
                        logRedirect(data.cancelUrl);
                        return actions.redirect(window);
                    }
                },
                fallback: function(url) {
                    interface_error("fallback_handler", {
                        url: url
                    });
                    this.destroy();
                    return redirect(url);
                }
            }, props));
            interface_checkout.closeFlow = function(closeUrl) {
                interface_warn("closeflow");
                closeFlowCalled = !0;
                interface_reset();
                paypalCheckout.destroy();
                if (closeUrl) {
                    interface_warn("closeflow_with_url", {
                        closeUrl: closeUrl
                    });
                    return redirect(closeUrl);
                }
            };
            return paypalCheckout;
        }
        function renderPayPalCheckout(props, hijackTarget) {
            void 0 === props && (props = {});
            var urlProp = src.a.resolve(props.url);
            var paymentToken = new src.a((function(resolve) {
                props.init = function(data) {
                    resolve(data.paymentToken);
                };
            }));
            var errorHandler = Object(lib.M)((function(err) {
                interface_error("component_error", {
                    error: Object(lib.V)(err)
                });
                if (hijackTarget) {
                    interface_warn("render_error_hijack_revert_target");
                    hijackTarget.removeAttribute("target");
                }
                urlProp.then((function(url) {
                    interface_warn("render_error_redirect_using_url");
                    return redirect(url);
                }));
                paymentToken.then((function(token) {
                    interface_warn("render_error_redirect_using_token");
                    return redirect(Object(lib.g)(config.a.checkoutUrl, {
                        token: token
                    }));
                }));
            }));
            props.onError = errorHandler;
            var paypalCheckout;
            if (hijackTarget) {
                delete props.url;
                (paypalCheckout = initPayPalCheckout(props)).hijack(hijackTarget);
                paypalCheckout.runTimeout();
                urlProp.then((function(url) {
                    interface_warn("hijack_then_url_passed");
                    paypalCheckout.loadUrl(url);
                }));
            } else paypalCheckout = initPayPalCheckout(props);
            var render = paypalCheckout.render(null, !hijackTarget);
            interface_checkout.win = paypalCheckout.window;
            return render.catch(errorHandler);
        }
        function instrumentButtonRender(type) {
            var _track;
            interface_info("render_" + type + "_button");
            track(((_track = {})[constants.u.KEY.STATE] = constants.u.STATE.LOAD, _track[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.BUTTON_RENDER, 
            _track[constants.u.KEY.BUTTON_TYPE] = type, _track));
            Object(client.h)();
        }
        var setupCalled = !1;
        function setup(id, options) {
            void 0 === options && (options = {});
            interface_info("setup", {
                id: id = id || "merchant",
                env: options.environment,
                options: Object(lib.T)(options)
            });
            setupCalled && interface_debug("setup_called_multiple_times");
            setupCalled = !0;
            !function(options) {
                if (options.environment) {
                    "live" === options.environment && (options.environment = constants.t.PRODUCTION);
                    if (!config.a.paypalUrls[options.environment]) {
                        options_warn("invalid_env", {
                            badenv: options.environment
                        });
                        options.environment = config.a.env;
                    }
                }
                if (options.button && !Array.isArray(options.button)) {
                    options_info("options_button_single_button_passed");
                    options.button = [ options.button ];
                }
                if (options.buttons && Object(lib.o)(options.buttons).length) {
                    options_info("options_buttons_with_elements_passed");
                    options.button = options.buttons;
                    delete options.buttons;
                }
                if (options.button && 0 === options.button.length) {
                    options_info("options_button_empty");
                    delete options.button;
                }
                if (options.button && options.container) {
                    options_info("options_button_and_container_passed", {
                        button: options.button,
                        container: options.container
                    });
                    options.button = options.button.concat(options.container);
                    delete options.container;
                }
                if (options.button) {
                    var button = Object(lib.o)(options.button);
                    if (button.length) options.button = button; else {
                        options_warn("options_button_element_not_found", {
                            element: JSON.stringify(options.button)
                        });
                        delete options.button;
                    }
                }
                if (options.button) {
                    options.buttons = options.button.map((function(button) {
                        return {
                            button: button,
                            click: options.click,
                            condition: options.condition
                        };
                    }));
                    delete options.click;
                    delete options.condition;
                    delete options.button;
                } else if (options.buttons && Array.isArray(options.buttons)) {
                    var buttons = [];
                    options.buttons.forEach((function(button) {
                        if (button) {
                            button.container && button.container !== options.container && options_warn("mismatched_container_and_button_passed", {
                                options: options.container,
                                button: button.container
                            });
                            Object(lib.o)(button.container || button.button).forEach((function(element) {
                                var _buttons$push;
                                buttons.push(((_buttons$push = {})[button.container ? "container" : "button"] = element, 
                                _buttons$push.click = button.click || options.click, _buttons$push.condition = button.condition || options.condition, 
                                _buttons$push.type = button.type || options.type, _buttons$push.locale = button.locale || options.locale, 
                                _buttons$push.color = button.color || options.color, _buttons$push.shape = button.shape || options.shape, 
                                _buttons$push.size = button.size || options.size, _buttons$push));
                            }));
                        }
                    }));
                    delete options.buttons;
                    delete options.click;
                    delete options.condition;
                    delete options.button;
                    delete options.type;
                    delete options.locale;
                    delete options.color;
                    delete options.shape;
                    delete options.size;
                    buttons.length && (options.buttons = buttons);
                } else if (options.container && !Array.isArray(options.buttons)) {
                    var _buttons = [];
                    Object(lib.o)(options.container).forEach((function(container, i) {
                        _buttons.push({
                            container: container,
                            click: options.click,
                            condition: options.condition,
                            type: Array.isArray(options.type) ? options.type[i] : options.type,
                            locale: Array.isArray(options.locale) ? options.locale[i] : options.locale,
                            color: Array.isArray(options.color) ? options.color[i] : options.color,
                            shape: Array.isArray(options.shape) ? options.shape[i] : options.shape,
                            size: Array.isArray(options.size) ? options.size[i] : options.size
                        });
                    }));
                    delete options.container;
                    delete options.buttons;
                    delete options.click;
                    delete options.condition;
                    delete options.button;
                    delete options.type;
                    delete options.locale;
                    delete options.color;
                    delete options.shape;
                    delete options.size;
                    _buttons.length && (options.buttons = _buttons);
                }
                options.buttons || (options.buttons = []);
            }(options);
            !function(options) {
                options.environment && config.a.paypalUrls[options.environment] && (config.a.env = options.environment);
                if (options.locale) {
                    config.a.locale = normalizeLocale(options.locale);
                    config.a.customCountry = !0;
                }
            }(options);
            env = config.a.env, src.a.try((function() {
                if (!post_robot_src.bridge || !post_robot_src.bridge.needsBridge({
                    domain: config.a.paypalDomains[env]
                })) return Object(client.f)("post_bridge_not_required", {
                    env: env
                });
                Object(client.f)("setup_post_bridge", {
                    env: env
                });
                return Object(lib.N)(env).then(lib.K);
            }));
            var env;
            return src.a.try((function() {
                return options.buttons.length ? renderButtons(id, options.buttons).then((function(buttons) {
                    buttons.forEach((function(button) {
                        instrumentButtonRender(button.type);
                        !function(container, button, clickHandler, condition, tracker) {
                            var element = "a" === container.tagName.toLowerCase() ? container : button;
                            var isClick = "function" == typeof clickHandler;
                            if (element.hasAttribute("data-paypal-click-listener")) return interface_warn("button_already_has_paypal_click_listener");
                            element.setAttribute("data-paypal-click-listener", "");
                            getHijackTargetElement(element) && isClick && interface_info("button_link_or_form");
                            element.addEventListener("click", (function(event) {
                                tracker();
                                var eligible = isLegacyEligible();
                                if (Object(lib.X)()) {
                                    interface_debug("click_popups_supported");
                                    eligible || interface_debug("click_popups_supported_but_ineligible");
                                } else {
                                    interface_debug("click_popups_not_supported");
                                    eligible && interface_debug("click_popups_not_supported_but_eligible");
                                }
                                if (!isClick && !eligible) return interface_debug("ineligible_listenclick");
                                interface_info("button_click");
                                if ("function" == typeof condition) {
                                    if (!condition.call()) return interface_info("button_click_condition_disabled");
                                    interface_info("button_click_condition_enabled");
                                }
                                return isClick ? function(clickHandler, event) {
                                    interface_debug("button_click_handler");
                                    try {
                                        clickHandler(event);
                                    } catch (err) {
                                        interface_error("click_handler_error", {
                                            error: Object(lib.V)(err)
                                        });
                                    }
                                }(clickHandler, event) : function(event, element) {
                                    var targetElement = getHijackTargetElement(element);
                                    if (!targetElement) return interface_error("target_element_not_found");
                                    interface_info("init_paypal_checkout_hijack");
                                    var _awaitPaymentTokenAnd = awaitPaymentTokenAndUrl(event, targetElement), url = _awaitPaymentTokenAnd.url;
                                    var token;
                                    _awaitPaymentTokenAnd.paymentToken.then((function(result) {
                                        token = result;
                                    }));
                                    renderPayPalCheckout({
                                        url: url,
                                        payment: function() {
                                            return src.a.resolve(token);
                                        }
                                    }, targetElement);
                                }(event, element);
                            }));
                        }(button.container, button.element, button.click, button.condition, (function() {
                            !function(type) {
                                var _track2;
                                track(((_track2 = {})[constants.u.KEY.STATE] = constants.u.STATE.LOAD, _track2[constants.u.KEY.TRANSITION] = constants.u.TRANSITION.BUTTON_CLICK, 
                                _track2[constants.u.KEY.BUTTON_TYPE] = type, _track2));
                                Object(client.h)();
                            }(button.type);
                        }));
                    }));
                })) : instrumentButtonRender(constants.u.BUTTON_TYPE.CUSTOM);
            }));
        }
        interface_checkout.setup = setup;
        function initXO() {
            interface_debug("initxo");
            if (!isLegacyEligible()) return interface_debug("ineligible_initxo");
            var _awaitPaymentTokenAnd2 = awaitPaymentTokenAndUrl(), url = _awaitPaymentTokenAnd2.url, paymentToken = _awaitPaymentTokenAnd2.paymentToken;
            interface_info("init_paypal_checkout_initxo");
            renderPayPalCheckout({
                url: url,
                payment: function() {
                    return paymentToken;
                }
            });
        }
        interface_checkout.initXO = initXO;
        function startFlow(item) {
            interface_debug("startflow", {
                item: item
            });
            var _matchUrlAndPaymentTo2 = matchUrlAndPaymentToken(item), paymentToken = _matchUrlAndPaymentTo2.paymentToken, url = _matchUrlAndPaymentTo2.url;
            checkUrlAgainstEnv(url);
            if (isLegacyEligible()) {
                interface_info("init_paypal_checkout_startflow");
                renderPayPalCheckout({
                    url: url,
                    payment: function() {
                        return src.a.resolve(paymentToken);
                    }
                });
            } else {
                interface_debug("ineligible_startflow_global", {
                    url: url
                });
                redirect(url);
            }
        }
        interface_checkout.startFlow = startFlow;
        function closeFlow(closeUrl) {
            interface_warn("closeflow_not_opened");
            if (closeUrl) {
                interface_warn("closeflow_with_url", {
                    closeUrl: closeUrl
                });
                redirect(closeUrl);
            }
        }
        interface_checkout.closeFlow = closeFlow;
        var ready_prefix = Object(client.n)(LOG_PREFIX), ready_error = ready_prefix.error, ready_debug = ready_prefix.debug;
        !function(obj, key, callback) {
            if (obj) {
                var value = obj[key];
                value && (value = callback(value) || value);
                try {
                    delete obj[key];
                    Object.defineProperty(obj, key, {
                        configurable: !0,
                        set: function(item) {
                            (value = item) && (value = callback(value) || value);
                        },
                        get: function() {
                            return value;
                        }
                    });
                } catch (err) {}
            }
        }(window, "paypalCheckoutReady", (function(method) {
            if ("function" == typeof method) {
                var oneTimeReady = function() {
                    if (!method.called) {
                        method.called = !0;
                        return method.apply(this, arguments);
                    }
                };
                !function(method) {
                    Object(lib.L)((function() {
                        ready_debug("paypal_checkout_ready");
                        setTimeout((function() {
                            window.paypal || ready_error("paypal_checkout_ready_no_window_paypal");
                            method();
                        }), 1);
                    }));
                }(oneTimeReady);
                return oneTimeReady;
            }
        }));
        Object(lib.L)((function() {
            var buttons = [].slice.call(document.querySelectorAll("[" + ATTRIBUTES.BUTTON + "]"));
            if (buttons && buttons.length) {
                ready_debug("data_paypal_button", {
                    number: buttons.length
                });
                for (var _i2 = 0; _i2 < buttons.length; _i2++) {
                    var button = buttons[_i2];
                    var id = button.getAttribute(ATTRIBUTES.MERCHANT_ID);
                    var environment = void 0;
                    button.hasAttribute(ATTRIBUTES.ENV) ? environment = button.getAttribute(ATTRIBUTES.ENV) : button.hasAttribute(ATTRIBUTES.SANDBOX) && (environment = constants.t.SANDBOX);
                    setup(id, {
                        environment: environment,
                        button: button
                    });
                }
            }
            [].slice.call(document.getElementsByClassName(CLASSES.HIDDEN_BUTTON)).forEach((function(el) {
                el.className = el.className.replace(CLASSES.HIDDEN_BUTTON, "");
            }));
        }));
    } ]);
}));
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../../buffer/index.js */ "./node_modules/buffer/index.js").Buffer))

/***/ }),

/***/ "./node_modules/paypal-checkout/index.js":
/*!***********************************************!*\
  !*** ./node_modules/paypal-checkout/index.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/* @flow */
/* eslint import/no-commonjs: off */

// $FlowFixMe
module.exports = __webpack_require__(/*! ./dist/checkout.lib */ "./node_modules/paypal-checkout/dist/checkout.lib.js");

module.exports.default = module.exports;


/***/ }),

/***/ "./node_modules/process/browser.js":
/*!*****************************************!*\
  !*** ./node_modules/process/browser.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

// shim for using process in browser
var process = module.exports = {};

// cached from whatever global is present so that test runners that stub it
// don't break things.  But we need to wrap it in a try catch in case it is
// wrapped in strict mode code which doesn't define any globals.  It's inside a
// function because try/catches deoptimize in certain engines.

var cachedSetTimeout;
var cachedClearTimeout;

function defaultSetTimout() {
    throw new Error('setTimeout has not been defined');
}
function defaultClearTimeout () {
    throw new Error('clearTimeout has not been defined');
}
(function () {
    try {
        if (typeof setTimeout === 'function') {
            cachedSetTimeout = setTimeout;
        } else {
            cachedSetTimeout = defaultSetTimout;
        }
    } catch (e) {
        cachedSetTimeout = defaultSetTimout;
    }
    try {
        if (typeof clearTimeout === 'function') {
            cachedClearTimeout = clearTimeout;
        } else {
            cachedClearTimeout = defaultClearTimeout;
        }
    } catch (e) {
        cachedClearTimeout = defaultClearTimeout;
    }
} ())
function runTimeout(fun) {
    if (cachedSetTimeout === setTimeout) {
        //normal enviroments in sane situations
        return setTimeout(fun, 0);
    }
    // if setTimeout wasn't available but was latter defined
    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
        cachedSetTimeout = setTimeout;
        return setTimeout(fun, 0);
    }
    try {
        // when when somebody has screwed with setTimeout but no I.E. maddness
        return cachedSetTimeout(fun, 0);
    } catch(e){
        try {
            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
            return cachedSetTimeout.call(null, fun, 0);
        } catch(e){
            // 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
            return cachedSetTimeout.call(this, fun, 0);
        }
    }


}
function runClearTimeout(marker) {
    if (cachedClearTimeout === clearTimeout) {
        //normal enviroments in sane situations
        return clearTimeout(marker);
    }
    // if clearTimeout wasn't available but was latter defined
    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
        cachedClearTimeout = clearTimeout;
        return clearTimeout(marker);
    }
    try {
        // when when somebody has screwed with setTimeout but no I.E. maddness
        return cachedClearTimeout(marker);
    } catch (e){
        try {
            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
            return cachedClearTimeout.call(null, marker);
        } catch (e){
            // 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.
            // Some versions of I.E. have different rules for clearTimeout vs setTimeout
            return cachedClearTimeout.call(this, marker);
        }
    }



}
var queue = [];
var draining = false;
var currentQueue;
var queueIndex = -1;

function cleanUpNextTick() {
    if (!draining || !currentQueue) {
        return;
    }
    draining = false;
    if (currentQueue.length) {
        queue = currentQueue.concat(queue);
    } else {
        queueIndex = -1;
    }
    if (queue.length) {
        drainQueue();
    }
}

function drainQueue() {
    if (draining) {
        return;
    }
    var timeout = runTimeout(cleanUpNextTick);
    draining = true;

    var len = queue.length;
    while(len) {
        currentQueue = queue;
        queue = [];
        while (++queueIndex < len) {
            if (currentQueue) {
                currentQueue[queueIndex].run();
            }
        }
        queueIndex = -1;
        len = queue.length;
    }
    currentQueue = null;
    draining = false;
    runClearTimeout(timeout);
}

process.nextTick = function (fun) {
    var args = new Array(arguments.length - 1);
    if (arguments.length > 1) {
        for (var i = 1; i < arguments.length; i++) {
            args[i - 1] = arguments[i];
        }
    }
    queue.push(new Item(fun, args));
    if (queue.length === 1 && !draining) {
        runTimeout(drainQueue);
    }
};

// v8 likes predictible objects
function Item(fun, array) {
    this.fun = fun;
    this.array = array;
}
Item.prototype.run = function () {
    this.fun.apply(null, this.array);
};
process.title = 'browser';
process.browser = true;
process.env = {};
process.argv = [];
process.version = ''; // empty string to avoid regexp issues
process.versions = {};

function noop() {}

process.on = noop;
process.addListener = noop;
process.once = noop;
process.off = noop;
process.removeListener = noop;
process.removeAllListeners = noop;
process.emit = noop;
process.prependListener = noop;
process.prependOnceListener = noop;

process.listeners = function (name) { return [] }

process.binding = function (name) {
    throw new Error('process.binding is not supported');
};

process.cwd = function () { return '/' };
process.chdir = function (dir) {
    throw new Error('process.chdir is not supported');
};
process.umask = function() { return 0; };


/***/ }),

/***/ "./node_modules/regenerator-runtime/runtime.js":
/*!*****************************************************!*\
  !*** ./node_modules/regenerator-runtime/runtime.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/**
 * Copyright (c) 2014-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

var runtime = (function (exports) {
  "use strict";

  var Op = Object.prototype;
  var hasOwn = Op.hasOwnProperty;
  var undefined; // More compressible than void 0.
  var $Symbol = typeof Symbol === "function" ? Symbol : {};
  var iteratorSymbol = $Symbol.iterator || "@@iterator";
  var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
  var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";

  function wrap(innerFn, outerFn, self, tryLocsList) {
    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
    var generator = Object.create(protoGenerator.prototype);
    var context = new Context(tryLocsList || []);

    // The ._invoke method unifies the implementations of the .next,
    // .throw, and .return methods.
    generator._invoke = makeInvokeMethod(innerFn, self, context);

    return generator;
  }
  exports.wrap = wrap;

  // Try/catch helper to minimize deoptimizations. Returns a completion
  // record like context.tryEntries[i].completion. This interface could
  // have been (and was previously) designed to take a closure to be
  // invoked without arguments, but in all the cases we care about we
  // already have an existing method we want to call, so there's no need
  // to create a new function object. We can even get away with assuming
  // the method takes exactly one argument, since that happens to be true
  // in every case, so we don't have to touch the arguments object. The
  // only additional allocation required is the completion record, which
  // has a stable shape and so hopefully should be cheap to allocate.
  function tryCatch(fn, obj, arg) {
    try {
      return { type: "normal", arg: fn.call(obj, arg) };
    } catch (err) {
      return { type: "throw", arg: err };
    }
  }

  var GenStateSuspendedStart = "suspendedStart";
  var GenStateSuspendedYield = "suspendedYield";
  var GenStateExecuting = "executing";
  var GenStateCompleted = "completed";

  // Returning this object from the innerFn has the same effect as
  // breaking out of the dispatch switch statement.
  var ContinueSentinel = {};

  // Dummy constructor functions that we use as the .constructor and
  // .constructor.prototype properties for functions that return Generator
  // objects. For full spec compliance, you may wish to configure your
  // minifier not to mangle the names of these two functions.
  function Generator() {}
  function GeneratorFunction() {}
  function GeneratorFunctionPrototype() {}

  // This is a polyfill for %IteratorPrototype% for environments that
  // don't natively support it.
  var IteratorPrototype = {};
  IteratorPrototype[iteratorSymbol] = function () {
    return this;
  };

  var getProto = Object.getPrototypeOf;
  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
  if (NativeIteratorPrototype &&
      NativeIteratorPrototype !== Op &&
      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
    // This environment has a native %IteratorPrototype%; use it instead
    // of the polyfill.
    IteratorPrototype = NativeIteratorPrototype;
  }

  var Gp = GeneratorFunctionPrototype.prototype =
    Generator.prototype = Object.create(IteratorPrototype);
  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
  GeneratorFunctionPrototype.constructor = GeneratorFunction;
  GeneratorFunctionPrototype[toStringTagSymbol] =
    GeneratorFunction.displayName = "GeneratorFunction";

  // Helper for defining the .next, .throw, and .return methods of the
  // Iterator interface in terms of a single ._invoke method.
  function defineIteratorMethods(prototype) {
    ["next", "throw", "return"].forEach(function(method) {
      prototype[method] = function(arg) {
        return this._invoke(method, arg);
      };
    });
  }

  exports.isGeneratorFunction = function(genFun) {
    var ctor = typeof genFun === "function" && genFun.constructor;
    return ctor
      ? ctor === GeneratorFunction ||
        // For the native GeneratorFunction constructor, the best we can
        // do is to check its .name property.
        (ctor.displayName || ctor.name) === "GeneratorFunction"
      : false;
  };

  exports.mark = function(genFun) {
    if (Object.setPrototypeOf) {
      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
    } else {
      genFun.__proto__ = GeneratorFunctionPrototype;
      if (!(toStringTagSymbol in genFun)) {
        genFun[toStringTagSymbol] = "GeneratorFunction";
      }
    }
    genFun.prototype = Object.create(Gp);
    return genFun;
  };

  // Within the body of any async function, `await x` is transformed to
  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
  // `hasOwn.call(value, "__await")` to determine if the yielded value is
  // meant to be awaited.
  exports.awrap = function(arg) {
    return { __await: arg };
  };

  function AsyncIterator(generator) {
    function invoke(method, arg, resolve, reject) {
      var record = tryCatch(generator[method], generator, arg);
      if (record.type === "throw") {
        reject(record.arg);
      } else {
        var result = record.arg;
        var value = result.value;
        if (value &&
            typeof value === "object" &&
            hasOwn.call(value, "__await")) {
          return Promise.resolve(value.__await).then(function(value) {
            invoke("next", value, resolve, reject);
          }, function(err) {
            invoke("throw", err, resolve, reject);
          });
        }

        return Promise.resolve(value).then(function(unwrapped) {
          // When a yielded Promise is resolved, its final value becomes
          // the .value of the Promise<{value,done}> result for the
          // current iteration.
          result.value = unwrapped;
          resolve(result);
        }, function(error) {
          // If a rejected Promise was yielded, throw the rejection back
          // into the async generator function so it can be handled there.
          return invoke("throw", error, resolve, reject);
        });
      }
    }

    var previousPromise;

    function enqueue(method, arg) {
      function callInvokeWithMethodAndArg() {
        return new Promise(function(resolve, reject) {
          invoke(method, arg, resolve, reject);
        });
      }

      return previousPromise =
        // If enqueue has been called before, then we want to wait until
        // all previous Promises have been resolved before calling invoke,
        // so that results are always delivered in the correct order. If
        // enqueue has not been called before, then it is important to
        // call invoke immediately, without waiting on a callback to fire,
        // so that the async generator function has the opportunity to do
        // any necessary setup in a predictable way. This predictability
        // is why the Promise constructor synchronously invokes its
        // executor callback, and why async functions synchronously
        // execute code before the first await. Since we implement simple
        // async functions in terms of async generators, it is especially
        // important to get this right, even though it requires care.
        previousPromise ? previousPromise.then(
          callInvokeWithMethodAndArg,
          // Avoid propagating failures to Promises returned by later
          // invocations of the iterator.
          callInvokeWithMethodAndArg
        ) : callInvokeWithMethodAndArg();
    }

    // Define the unified helper method that is used to implement .next,
    // .throw, and .return (see defineIteratorMethods).
    this._invoke = enqueue;
  }

  defineIteratorMethods(AsyncIterator.prototype);
  AsyncIterator.prototype[asyncIteratorSymbol] = function () {
    return this;
  };
  exports.AsyncIterator = AsyncIterator;

  // Note that simple async functions are implemented on top of
  // AsyncIterator objects; they just return a Promise for the value of
  // the final result produced by the iterator.
  exports.async = function(innerFn, outerFn, self, tryLocsList) {
    var iter = new AsyncIterator(
      wrap(innerFn, outerFn, self, tryLocsList)
    );

    return exports.isGeneratorFunction(outerFn)
      ? iter // If outerFn is a generator, return the full iterator.
      : iter.next().then(function(result) {
          return result.done ? result.value : iter.next();
        });
  };

  function makeInvokeMethod(innerFn, self, context) {
    var state = GenStateSuspendedStart;

    return function invoke(method, arg) {
      if (state === GenStateExecuting) {
        throw new Error("Generator is already running");
      }

      if (state === GenStateCompleted) {
        if (method === "throw") {
          throw arg;
        }

        // Be forgiving, per 25.3.3.3.3 of the spec:
        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
        return doneResult();
      }

      context.method = method;
      context.arg = arg;

      while (true) {
        var delegate = context.delegate;
        if (delegate) {
          var delegateResult = maybeInvokeDelegate(delegate, context);
          if (delegateResult) {
            if (delegateResult === ContinueSentinel) continue;
            return delegateResult;
          }
        }

        if (context.method === "next") {
          // Setting context._sent for legacy support of Babel's
          // function.sent implementation.
          context.sent = context._sent = context.arg;

        } else if (context.method === "throw") {
          if (state === GenStateSuspendedStart) {
            state = GenStateCompleted;
            throw context.arg;
          }

          context.dispatchException(context.arg);

        } else if (context.method === "return") {
          context.abrupt("return", context.arg);
        }

        state = GenStateExecuting;

        var record = tryCatch(innerFn, self, context);
        if (record.type === "normal") {
          // If an exception is thrown from innerFn, we leave state ===
          // GenStateExecuting and loop back for another invocation.
          state = context.done
            ? GenStateCompleted
            : GenStateSuspendedYield;

          if (record.arg === ContinueSentinel) {
            continue;
          }

          return {
            value: record.arg,
            done: context.done
          };

        } else if (record.type === "throw") {
          state = GenStateCompleted;
          // Dispatch the exception by looping back around to the
          // context.dispatchException(context.arg) call above.
          context.method = "throw";
          context.arg = record.arg;
        }
      }
    };
  }

  // Call delegate.iterator[context.method](context.arg) and handle the
  // result, either by returning a { value, done } result from the
  // delegate iterator, or by modifying context.method and context.arg,
  // setting context.delegate to null, and returning the ContinueSentinel.
  function maybeInvokeDelegate(delegate, context) {
    var method = delegate.iterator[context.method];
    if (method === undefined) {
      // A .throw or .return when the delegate iterator has no .throw
      // method always terminates the yield* loop.
      context.delegate = null;

      if (context.method === "throw") {
        // Note: ["return"] must be used for ES3 parsing compatibility.
        if (delegate.iterator["return"]) {
          // If the delegate iterator has a return method, give it a
          // chance to clean up.
          context.method = "return";
          context.arg = undefined;
          maybeInvokeDelegate(delegate, context);

          if (context.method === "throw") {
            // If maybeInvokeDelegate(context) changed context.method from
            // "return" to "throw", let that override the TypeError below.
            return ContinueSentinel;
          }
        }

        context.method = "throw";
        context.arg = new TypeError(
          "The iterator does not provide a 'throw' method");
      }

      return ContinueSentinel;
    }

    var record = tryCatch(method, delegate.iterator, context.arg);

    if (record.type === "throw") {
      context.method = "throw";
      context.arg = record.arg;
      context.delegate = null;
      return ContinueSentinel;
    }

    var info = record.arg;

    if (! info) {
      context.method = "throw";
      context.arg = new TypeError("iterator result is not an object");
      context.delegate = null;
      return ContinueSentinel;
    }

    if (info.done) {
      // Assign the result of the finished delegate to the temporary
      // variable specified by delegate.resultName (see delegateYield).
      context[delegate.resultName] = info.value;

      // Resume execution at the desired location (see delegateYield).
      context.next = delegate.nextLoc;

      // If context.method was "throw" but the delegate handled the
      // exception, let the outer generator proceed normally. If
      // context.method was "next", forget context.arg since it has been
      // "consumed" by the delegate iterator. If context.method was
      // "return", allow the original .return call to continue in the
      // outer generator.
      if (context.method !== "return") {
        context.method = "next";
        context.arg = undefined;
      }

    } else {
      // Re-yield the result returned by the delegate method.
      return info;
    }

    // The delegate iterator is finished, so forget it and continue with
    // the outer generator.
    context.delegate = null;
    return ContinueSentinel;
  }

  // Define Generator.prototype.{next,throw,return} in terms of the
  // unified ._invoke helper method.
  defineIteratorMethods(Gp);

  Gp[toStringTagSymbol] = "Generator";

  // A Generator should always return itself as the iterator object when the
  // @@iterator function is called on it. Some browsers' implementations of the
  // iterator prototype chain incorrectly implement this, causing the Generator
  // object to not be returned from this call. This ensures that doesn't happen.
  // See https://github.com/facebook/regenerator/issues/274 for more details.
  Gp[iteratorSymbol] = function() {
    return this;
  };

  Gp.toString = function() {
    return "[object Generator]";
  };

  function pushTryEntry(locs) {
    var entry = { tryLoc: locs[0] };

    if (1 in locs) {
      entry.catchLoc = locs[1];
    }

    if (2 in locs) {
      entry.finallyLoc = locs[2];
      entry.afterLoc = locs[3];
    }

    this.tryEntries.push(entry);
  }

  function resetTryEntry(entry) {
    var record = entry.completion || {};
    record.type = "normal";
    delete record.arg;
    entry.completion = record;
  }

  function Context(tryLocsList) {
    // The root entry object (effectively a try statement without a catch
    // or a finally block) gives us a place to store values thrown from
    // locations where there is no enclosing try statement.
    this.tryEntries = [{ tryLoc: "root" }];
    tryLocsList.forEach(pushTryEntry, this);
    this.reset(true);
  }

  exports.keys = function(object) {
    var keys = [];
    for (var key in object) {
      keys.push(key);
    }
    keys.reverse();

    // Rather than returning an object with a next method, we keep
    // things simple and return the next function itself.
    return function next() {
      while (keys.length) {
        var key = keys.pop();
        if (key in object) {
          next.value = key;
          next.done = false;
          return next;
        }
      }

      // To avoid creating an additional object, we just hang the .value
      // and .done properties off the next function object itself. This
      // also ensures that the minifier will not anonymize the function.
      next.done = true;
      return next;
    };
  };

  function values(iterable) {
    if (iterable) {
      var iteratorMethod = iterable[iteratorSymbol];
      if (iteratorMethod) {
        return iteratorMethod.call(iterable);
      }

      if (typeof iterable.next === "function") {
        return iterable;
      }

      if (!isNaN(iterable.length)) {
        var i = -1, next = function next() {
          while (++i < iterable.length) {
            if (hasOwn.call(iterable, i)) {
              next.value = iterable[i];
              next.done = false;
              return next;
            }
          }

          next.value = undefined;
          next.done = true;

          return next;
        };

        return next.next = next;
      }
    }

    // Return an iterator with no values.
    return { next: doneResult };
  }
  exports.values = values;

  function doneResult() {
    return { value: undefined, done: true };
  }

  Context.prototype = {
    constructor: Context,

    reset: function(skipTempReset) {
      this.prev = 0;
      this.next = 0;
      // Resetting context._sent for legacy support of Babel's
      // function.sent implementation.
      this.sent = this._sent = undefined;
      this.done = false;
      this.delegate = null;

      this.method = "next";
      this.arg = undefined;

      this.tryEntries.forEach(resetTryEntry);

      if (!skipTempReset) {
        for (var name in this) {
          // Not sure about the optimal order of these conditions:
          if (name.charAt(0) === "t" &&
              hasOwn.call(this, name) &&
              !isNaN(+name.slice(1))) {
            this[name] = undefined;
          }
        }
      }
    },

    stop: function() {
      this.done = true;

      var rootEntry = this.tryEntries[0];
      var rootRecord = rootEntry.completion;
      if (rootRecord.type === "throw") {
        throw rootRecord.arg;
      }

      return this.rval;
    },

    dispatchException: function(exception) {
      if (this.done) {
        throw exception;
      }

      var context = this;
      function handle(loc, caught) {
        record.type = "throw";
        record.arg = exception;
        context.next = loc;

        if (caught) {
          // If the dispatched exception was caught by a catch block,
          // then let that catch block handle the exception normally.
          context.method = "next";
          context.arg = undefined;
        }

        return !! caught;
      }

      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        var record = entry.completion;

        if (entry.tryLoc === "root") {
          // Exception thrown outside of any try block that could handle
          // it, so set the completion value of the entire function to
          // throw the exception.
          return handle("end");
        }

        if (entry.tryLoc <= this.prev) {
          var hasCatch = hasOwn.call(entry, "catchLoc");
          var hasFinally = hasOwn.call(entry, "finallyLoc");

          if (hasCatch && hasFinally) {
            if (this.prev < entry.catchLoc) {
              return handle(entry.catchLoc, true);
            } else if (this.prev < entry.finallyLoc) {
              return handle(entry.finallyLoc);
            }

          } else if (hasCatch) {
            if (this.prev < entry.catchLoc) {
              return handle(entry.catchLoc, true);
            }

          } else if (hasFinally) {
            if (this.prev < entry.finallyLoc) {
              return handle(entry.finallyLoc);
            }

          } else {
            throw new Error("try statement without catch or finally");
          }
        }
      }
    },

    abrupt: function(type, arg) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.tryLoc <= this.prev &&
            hasOwn.call(entry, "finallyLoc") &&
            this.prev < entry.finallyLoc) {
          var finallyEntry = entry;
          break;
        }
      }

      if (finallyEntry &&
          (type === "break" ||
           type === "continue") &&
          finallyEntry.tryLoc <= arg &&
          arg <= finallyEntry.finallyLoc) {
        // Ignore the finally entry if control is not jumping to a
        // location outside the try/catch block.
        finallyEntry = null;
      }

      var record = finallyEntry ? finallyEntry.completion : {};
      record.type = type;
      record.arg = arg;

      if (finallyEntry) {
        this.method = "next";
        this.next = finallyEntry.finallyLoc;
        return ContinueSentinel;
      }

      return this.complete(record);
    },

    complete: function(record, afterLoc) {
      if (record.type === "throw") {
        throw record.arg;
      }

      if (record.type === "break" ||
          record.type === "continue") {
        this.next = record.arg;
      } else if (record.type === "return") {
        this.rval = this.arg = record.arg;
        this.method = "return";
        this.next = "end";
      } else if (record.type === "normal" && afterLoc) {
        this.next = afterLoc;
      }

      return ContinueSentinel;
    },

    finish: function(finallyLoc) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.finallyLoc === finallyLoc) {
          this.complete(entry.completion, entry.afterLoc);
          resetTryEntry(entry);
          return ContinueSentinel;
        }
      }
    },

    "catch": function(tryLoc) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.tryLoc === tryLoc) {
          var record = entry.completion;
          if (record.type === "throw") {
            var thrown = record.arg;
            resetTryEntry(entry);
          }
          return thrown;
        }
      }

      // The context.catch method must only be called with a location
      // argument that corresponds to a known catch block.
      throw new Error("illegal catch attempt");
    },

    delegateYield: function(iterable, resultName, nextLoc) {
      this.delegate = {
        iterator: values(iterable),
        resultName: resultName,
        nextLoc: nextLoc
      };

      if (this.method === "next") {
        // Deliberately forget the last sent value so that we don't
        // accidentally pass it on to the delegate.
        this.arg = undefined;
      }

      return ContinueSentinel;
    }
  };

  // Regardless of whether this script is executing as a CommonJS module
  // or not, return the runtime object so that we can declare the variable
  // regeneratorRuntime in the outer scope, which allows this module to be
  // injected easily by `bin/regenerator --include-runtime script.js`.
  return exports;

}(
  // If this script is executing as a CommonJS module, use module.exports
  // as the regeneratorRuntime namespace. Otherwise create a new empty
  // object. Either way, the resulting object will be used to initialize
  // the regeneratorRuntime variable at the top of this file.
   true ? module.exports : undefined
));

try {
  regeneratorRuntime = runtime;
} catch (accidentalStrictMode) {
  // This module should not be running in strict mode, so the above
  // assignment should always work unless something is misconfigured. Just
  // in case runtime.js accidentally runs in strict mode, we can escape
  // strict mode using a global Function call. This could conceivably fail
  // if a Content Security Policy forbids using Function, but in that case
  // the proper solution is to fix the accidental strict mode problem. If
  // you've misconfigured your bundler to force strict mode and applied a
  // CSP to forbid Function, and you're not willing to fix either of those
  // problems, please detail your unique predicament in a GitHub issue.
  Function("r", "regeneratorRuntime = r")(runtime);
}


/***/ }),

/***/ "./node_modules/setimmediate/setImmediate.js":
/*!***************************************************!*\
  !*** ./node_modules/setimmediate/setImmediate.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {
    "use strict";

    if (global.setImmediate) {
        return;
    }

    var nextHandle = 1; // Spec says greater than zero
    var tasksByHandle = {};
    var currentlyRunningATask = false;
    var doc = global.document;
    var registerImmediate;

    function setImmediate(callback) {
      // Callback can either be a function or a string
      if (typeof callback !== "function") {
        callback = new Function("" + callback);
      }
      // Copy function arguments
      var args = new Array(arguments.length - 1);
      for (var i = 0; i < args.length; i++) {
          args[i] = arguments[i + 1];
      }
      // Store and register the task
      var task = { callback: callback, args: args };
      tasksByHandle[nextHandle] = task;
      registerImmediate(nextHandle);
      return nextHandle++;
    }

    function clearImmediate(handle) {
        delete tasksByHandle[handle];
    }

    function run(task) {
        var callback = task.callback;
        var args = task.args;
        switch (args.length) {
        case 0:
            callback();
            break;
        case 1:
            callback(args[0]);
            break;
        case 2:
            callback(args[0], args[1]);
            break;
        case 3:
            callback(args[0], args[1], args[2]);
            break;
        default:
            callback.apply(undefined, args);
            break;
        }
    }

    function runIfPresent(handle) {
        // From the spec: "Wait until any invocations of this algorithm started before this one have completed."
        // So if we're currently running a task, we'll need to delay this invocation.
        if (currentlyRunningATask) {
            // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a
            // "too much recursion" error.
            setTimeout(runIfPresent, 0, handle);
        } else {
            var task = tasksByHandle[handle];
            if (task) {
                currentlyRunningATask = true;
                try {
                    run(task);
                } finally {
                    clearImmediate(handle);
                    currentlyRunningATask = false;
                }
            }
        }
    }

    function installNextTickImplementation() {
        registerImmediate = function(handle) {
            process.nextTick(function () { runIfPresent(handle); });
        };
    }

    function canUsePostMessage() {
        // The test against `importScripts` prevents this implementation from being installed inside a web worker,
        // where `global.postMessage` means something completely different and can't be used for this purpose.
        if (global.postMessage && !global.importScripts) {
            var postMessageIsAsynchronous = true;
            var oldOnMessage = global.onmessage;
            global.onmessage = function() {
                postMessageIsAsynchronous = false;
            };
            global.postMessage("", "*");
            global.onmessage = oldOnMessage;
            return postMessageIsAsynchronous;
        }
    }

    function installPostMessageImplementation() {
        // Installs an event handler on `global` for the `message` event: see
        // * https://developer.mozilla.org/en/DOM/window.postMessage
        // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages

        var messagePrefix = "setImmediate$" + Math.random() + "$";
        var onGlobalMessage = function(event) {
            if (event.source === global &&
                typeof event.data === "string" &&
                event.data.indexOf(messagePrefix) === 0) {
                runIfPresent(+event.data.slice(messagePrefix.length));
            }
        };

        if (global.addEventListener) {
            global.addEventListener("message", onGlobalMessage, false);
        } else {
            global.attachEvent("onmessage", onGlobalMessage);
        }

        registerImmediate = function(handle) {
            global.postMessage(messagePrefix + handle, "*");
        };
    }

    function installMessageChannelImplementation() {
        var channel = new MessageChannel();
        channel.port1.onmessage = function(event) {
            var handle = event.data;
            runIfPresent(handle);
        };

        registerImmediate = function(handle) {
            channel.port2.postMessage(handle);
        };
    }

    function installReadyStateChangeImplementation() {
        var html = doc.documentElement;
        registerImmediate = function(handle) {
            // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
            // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
            var script = doc.createElement("script");
            script.onreadystatechange = function () {
                runIfPresent(handle);
                script.onreadystatechange = null;
                html.removeChild(script);
                script = null;
            };
            html.appendChild(script);
        };
    }

    function installSetTimeoutImplementation() {
        registerImmediate = function(handle) {
            setTimeout(runIfPresent, 0, handle);
        };
    }

    // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.
    var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);
    attachTo = attachTo && attachTo.setTimeout ? attachTo : global;

    // Don't get fooled by e.g. browserify environments.
    if ({}.toString.call(global.process) === "[object process]") {
        // For Node.js before 0.9
        installNextTickImplementation();

    } else if (canUsePostMessage()) {
        // For non-IE10 modern browsers
        installPostMessageImplementation();

    } else if (global.MessageChannel) {
        // For web workers, where supported
        installMessageChannelImplementation();

    } else if (doc && "onreadystatechange" in doc.createElement("script")) {
        // For IE 6–8
        installReadyStateChangeImplementation();

    } else {
        // For older browsers
        installSetTimeoutImplementation();
    }

    attachTo.setImmediate = setImmediate;
    attachTo.clearImmediate = clearImmediate;
}(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self));

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../process/browser.js */ "./node_modules/process/browser.js")))

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=style&index=0&lang=css&":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=style&index=0&lang=css& ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../css-loader??ref--6-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src??ref--6-2!../../vue-loader/lib??vue-loader-options!./VueEmoji.vue?vue&type=style&index=0&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=style&index=0&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Main.vue?vue&type=style&index=0&id=63080d70&scoped=true&lang=css&":
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/Main.vue?vue&type=style&index=0&id=63080d70&scoped=true&lang=css& ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../../node_modules/css-loader??ref--6-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../node_modules/vue-loader/lib??vue-loader-options!./Main.vue?vue&type=style&index=0&id=63080d70&scoped=true&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Main.vue?vue&type=style&index=0&id=63080d70&scoped=true&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/ProductModal.vue?vue&type=style&index=1&id=63afc935&scoped=true&lang=css&":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/ProductModal.vue?vue&type=style&index=1&id=63afc935&scoped=true&lang=css& ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../../node_modules/css-loader??ref--6-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../node_modules/vue-loader/lib??vue-loader-options!./ProductModal.vue?vue&type=style&index=1&id=63afc935&scoped=true&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/ProductModal.vue?vue&type=style&index=1&id=63afc935&scoped=true&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/category/Editor.vue?vue&type=style&index=0&id=d7fd5f12&scoped=true&lang=css&":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/category/Editor.vue?vue&type=style&index=0&id=d7fd5f12&scoped=true&lang=css& ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../../../node_modules/css-loader??ref--6-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=style&index=0&id=d7fd5f12&scoped=true&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/category/Editor.vue?vue&type=style&index=0&id=d7fd5f12&scoped=true&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=style&index=0&id=1974151e&scoped=true&lang=css&":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=style&index=0&id=1974151e&scoped=true&lang=css& ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../../../node_modules/css-loader??ref--6-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=style&index=0&id=1974151e&scoped=true&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=style&index=0&id=1974151e&scoped=true&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tags/Editor.vue?vue&type=style&index=0&id=54e8ba08&scoped=true&lang=css&":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tags/Editor.vue?vue&type=style&index=0&id=54e8ba08&scoped=true&lang=css& ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../../../node_modules/css-loader??ref--6-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=style&index=0&id=54e8ba08&scoped=true&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tags/Editor.vue?vue&type=style&index=0&id=54e8ba08&scoped=true&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tax/Editor.vue?vue&type=style&index=0&id=e1a31670&scoped=true&lang=css&":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tax/Editor.vue?vue&type=style&index=0&id=e1a31670&scoped=true&lang=css& ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../../../node_modules/css-loader??ref--6-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=style&index=0&id=e1a31670&scoped=true&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tax/Editor.vue?vue&type=style&index=0&id=e1a31670&scoped=true&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tips/Editor.vue?vue&type=style&index=0&id=47152a7d&scoped=true&lang=css&":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tips/Editor.vue?vue&type=style&index=0&id=47152a7d&scoped=true&lang=css& ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../../../node_modules/css-loader??ref--6-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=style&index=0&id=47152a7d&scoped=true&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tips/Editor.vue?vue&type=style&index=0&id=47152a7d&scoped=true&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=style&index=0&lang=css&":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=style&index=0&lang=css& ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../../../node_modules/css-loader??ref--6-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Footer.vue?vue&type=style&index=0&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=style&index=0&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Admin/Dashboard.vue?vue&type=style&index=0&id=ee70649e&scoped=true&lang=css&":
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Admin/Dashboard.vue?vue&type=style&index=0&id=ee70649e&scoped=true&lang=css& ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../../node_modules/css-loader??ref--6-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../node_modules/vue-loader/lib??vue-loader-options!./Dashboard.vue?vue&type=style&index=0&id=ee70649e&scoped=true&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Admin/Dashboard.vue?vue&type=style&index=0&id=ee70649e&scoped=true&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/BuyTip.vue?vue&type=style&index=0&id=11ab9548&scoped=true&lang=css&":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/BuyTip.vue?vue&type=style&index=0&id=11ab9548&scoped=true&lang=css& ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../node_modules/css-loader??ref--6-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./BuyTip.vue?vue&type=style&index=0&id=11ab9548&scoped=true&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/BuyTip.vue?vue&type=style&index=0&id=11ab9548&scoped=true&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Checkout.vue?vue&type=style&index=0&id=7b3dab19&scoped=true&lang=css&":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Checkout.vue?vue&type=style&index=0&id=7b3dab19&scoped=true&lang=css& ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../node_modules/css-loader??ref--6-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./Checkout.vue?vue&type=style&index=0&id=7b3dab19&scoped=true&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Checkout.vue?vue&type=style&index=0&id=7b3dab19&scoped=true&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Confirmation.vue?vue&type=style&index=0&id=296b75f0&scoped=true&lang=css&":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Confirmation.vue?vue&type=style&index=0&id=296b75f0&scoped=true&lang=css& ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../node_modules/css-loader??ref--6-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./Confirmation.vue?vue&type=style&index=0&id=296b75f0&scoped=true&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Confirmation.vue?vue&type=style&index=0&id=296b75f0&scoped=true&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/DetailView.vue?vue&type=style&index=0&lang=css&":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/DetailView.vue?vue&type=style&index=0&lang=css& ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../node_modules/css-loader??ref--6-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./DetailView.vue?vue&type=style&index=0&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/DetailView.vue?vue&type=style&index=0&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Home.vue?vue&type=style&index=0&id=6c0a33b2&scoped=true&lang=css&":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Home.vue?vue&type=style&index=0&id=6c0a33b2&scoped=true&lang=css& ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../node_modules/css-loader??ref--6-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./Home.vue?vue&type=style&index=0&id=6c0a33b2&scoped=true&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Home.vue?vue&type=style&index=0&id=6c0a33b2&scoped=true&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/SingleProduct.vue?vue&type=style&index=0&id=25288544&scoped=true&lang=css&":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/SingleProduct.vue?vue&type=style&index=0&id=25288544&scoped=true&lang=css& ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../node_modules/css-loader??ref--6-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./SingleProduct.vue?vue&type=style&index=0&id=25288544&scoped=true&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/SingleProduct.vue?vue&type=style&index=0&id=25288544&scoped=true&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/UserBoard.vue?vue&type=style&index=0&id=751a1018&scoped=true&lang=css&":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/UserBoard.vue?vue&type=style&index=0&id=751a1018&scoped=true&lang=css& ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../../../node_modules/css-loader??ref--6-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./UserBoard.vue?vue&type=style&index=0&id=751a1018&scoped=true&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/UserBoard.vue?vue&type=style&index=0&id=751a1018&scoped=true&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-multiselect/dist/vue-multiselect.min.css?vue&type=style&index=0&lang=css&":
/*!*************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/style-loader!./node_modules/css-loader??ref--6-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-multiselect/dist/vue-multiselect.min.css?vue&type=style&index=0&lang=css& ***!
  \*************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../css-loader??ref--6-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src??ref--6-2!./vue-multiselect.min.css?vue&type=style&index=0&lang=css& */ "./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-multiselect/dist/vue-multiselect.min.css?vue&type=style&index=0&lang=css&");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/style-loader/lib/addStyles.js":
/*!****************************************************!*\
  !*** ./node_modules/style-loader/lib/addStyles.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/*
	MIT License http://www.opensource.org/licenses/mit-license.php
	Author Tobias Koppers @sokra
*/

var stylesInDom = {};

var	memoize = function (fn) {
	var memo;

	return function () {
		if (typeof memo === "undefined") memo = fn.apply(this, arguments);
		return memo;
	};
};

var isOldIE = memoize(function () {
	// Test for IE <= 9 as proposed by Browserhacks
	// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
	// Tests for existence of standard globals is to allow style-loader
	// to operate correctly into non-standard environments
	// @see https://github.com/webpack-contrib/style-loader/issues/177
	return window && document && document.all && !window.atob;
});

var getTarget = function (target, parent) {
  if (parent){
    return parent.querySelector(target);
  }
  return document.querySelector(target);
};

var getElement = (function (fn) {
	var memo = {};

	return function(target, parent) {
                // If passing function in options, then use it for resolve "head" element.
                // Useful for Shadow Root style i.e
                // {
                //   insertInto: function () { return document.querySelector("#foo").shadowRoot }
                // }
                if (typeof target === 'function') {
                        return target();
                }
                if (typeof memo[target] === "undefined") {
			var styleTarget = getTarget.call(this, target, parent);
			// Special case to return head of iframe instead of iframe itself
			if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
				try {
					// This will throw an exception if access to iframe is blocked
					// due to cross-origin restrictions
					styleTarget = styleTarget.contentDocument.head;
				} catch(e) {
					styleTarget = null;
				}
			}
			memo[target] = styleTarget;
		}
		return memo[target]
	};
})();

var singleton = null;
var	singletonCounter = 0;
var	stylesInsertedAtTop = [];

var	fixUrls = __webpack_require__(/*! ./urls */ "./node_modules/style-loader/lib/urls.js");

module.exports = function(list, options) {
	if (typeof DEBUG !== "undefined" && DEBUG) {
		if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
	}

	options = options || {};

	options.attrs = typeof options.attrs === "object" ? options.attrs : {};

	// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
	// tags it will allow on a page
	if (!options.singleton && typeof options.singleton !== "boolean") options.singleton = isOldIE();

	// By default, add <style> tags to the <head> element
        if (!options.insertInto) options.insertInto = "head";

	// By default, add <style> tags to the bottom of the target
	if (!options.insertAt) options.insertAt = "bottom";

	var styles = listToStyles(list, options);

	addStylesToDom(styles, options);

	return function update (newList) {
		var mayRemove = [];

		for (var i = 0; i < styles.length; i++) {
			var item = styles[i];
			var domStyle = stylesInDom[item.id];

			domStyle.refs--;
			mayRemove.push(domStyle);
		}

		if(newList) {
			var newStyles = listToStyles(newList, options);
			addStylesToDom(newStyles, options);
		}

		for (var i = 0; i < mayRemove.length; i++) {
			var domStyle = mayRemove[i];

			if(domStyle.refs === 0) {
				for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();

				delete stylesInDom[domStyle.id];
			}
		}
	};
};

function addStylesToDom (styles, options) {
	for (var i = 0; i < styles.length; i++) {
		var item = styles[i];
		var domStyle = stylesInDom[item.id];

		if(domStyle) {
			domStyle.refs++;

			for(var j = 0; j < domStyle.parts.length; j++) {
				domStyle.parts[j](item.parts[j]);
			}

			for(; j < item.parts.length; j++) {
				domStyle.parts.push(addStyle(item.parts[j], options));
			}
		} else {
			var parts = [];

			for(var j = 0; j < item.parts.length; j++) {
				parts.push(addStyle(item.parts[j], options));
			}

			stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
		}
	}
}

function listToStyles (list, options) {
	var styles = [];
	var newStyles = {};

	for (var i = 0; i < list.length; i++) {
		var item = list[i];
		var id = options.base ? item[0] + options.base : item[0];
		var css = item[1];
		var media = item[2];
		var sourceMap = item[3];
		var part = {css: css, media: media, sourceMap: sourceMap};

		if(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});
		else newStyles[id].parts.push(part);
	}

	return styles;
}

function insertStyleElement (options, style) {
	var target = getElement(options.insertInto)

	if (!target) {
		throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
	}

	var lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];

	if (options.insertAt === "top") {
		if (!lastStyleElementInsertedAtTop) {
			target.insertBefore(style, target.firstChild);
		} else if (lastStyleElementInsertedAtTop.nextSibling) {
			target.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);
		} else {
			target.appendChild(style);
		}
		stylesInsertedAtTop.push(style);
	} else if (options.insertAt === "bottom") {
		target.appendChild(style);
	} else if (typeof options.insertAt === "object" && options.insertAt.before) {
		var nextSibling = getElement(options.insertAt.before, target);
		target.insertBefore(style, nextSibling);
	} else {
		throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");
	}
}

function removeStyleElement (style) {
	if (style.parentNode === null) return false;
	style.parentNode.removeChild(style);

	var idx = stylesInsertedAtTop.indexOf(style);
	if(idx >= 0) {
		stylesInsertedAtTop.splice(idx, 1);
	}
}

function createStyleElement (options) {
	var style = document.createElement("style");

	if(options.attrs.type === undefined) {
		options.attrs.type = "text/css";
	}

	if(options.attrs.nonce === undefined) {
		var nonce = getNonce();
		if (nonce) {
			options.attrs.nonce = nonce;
		}
	}

	addAttrs(style, options.attrs);
	insertStyleElement(options, style);

	return style;
}

function createLinkElement (options) {
	var link = document.createElement("link");

	if(options.attrs.type === undefined) {
		options.attrs.type = "text/css";
	}
	options.attrs.rel = "stylesheet";

	addAttrs(link, options.attrs);
	insertStyleElement(options, link);

	return link;
}

function addAttrs (el, attrs) {
	Object.keys(attrs).forEach(function (key) {
		el.setAttribute(key, attrs[key]);
	});
}

function getNonce() {
	if (false) {}

	return __webpack_require__.nc;
}

function addStyle (obj, options) {
	var style, update, remove, result;

	// If a transform function was defined, run it on the css
	if (options.transform && obj.css) {
	    result = typeof options.transform === 'function'
		 ? options.transform(obj.css) 
		 : options.transform.default(obj.css);

	    if (result) {
	    	// If transform returns a value, use that instead of the original css.
	    	// This allows running runtime transformations on the css.
	    	obj.css = result;
	    } else {
	    	// If the transform function returns a falsy value, don't add this css.
	    	// This allows conditional loading of css
	    	return function() {
	    		// noop
	    	};
	    }
	}

	if (options.singleton) {
		var styleIndex = singletonCounter++;

		style = singleton || (singleton = createStyleElement(options));

		update = applyToSingletonTag.bind(null, style, styleIndex, false);
		remove = applyToSingletonTag.bind(null, style, styleIndex, true);

	} else if (
		obj.sourceMap &&
		typeof URL === "function" &&
		typeof URL.createObjectURL === "function" &&
		typeof URL.revokeObjectURL === "function" &&
		typeof Blob === "function" &&
		typeof btoa === "function"
	) {
		style = createLinkElement(options);
		update = updateLink.bind(null, style, options);
		remove = function () {
			removeStyleElement(style);

			if(style.href) URL.revokeObjectURL(style.href);
		};
	} else {
		style = createStyleElement(options);
		update = applyToTag.bind(null, style);
		remove = function () {
			removeStyleElement(style);
		};
	}

	update(obj);

	return function updateStyle (newObj) {
		if (newObj) {
			if (
				newObj.css === obj.css &&
				newObj.media === obj.media &&
				newObj.sourceMap === obj.sourceMap
			) {
				return;
			}

			update(obj = newObj);
		} else {
			remove();
		}
	};
}

var replaceText = (function () {
	var textStore = [];

	return function (index, replacement) {
		textStore[index] = replacement;

		return textStore.filter(Boolean).join('\n');
	};
})();

function applyToSingletonTag (style, index, remove, obj) {
	var css = remove ? "" : obj.css;

	if (style.styleSheet) {
		style.styleSheet.cssText = replaceText(index, css);
	} else {
		var cssNode = document.createTextNode(css);
		var childNodes = style.childNodes;

		if (childNodes[index]) style.removeChild(childNodes[index]);

		if (childNodes.length) {
			style.insertBefore(cssNode, childNodes[index]);
		} else {
			style.appendChild(cssNode);
		}
	}
}

function applyToTag (style, obj) {
	var css = obj.css;
	var media = obj.media;

	if(media) {
		style.setAttribute("media", media)
	}

	if(style.styleSheet) {
		style.styleSheet.cssText = css;
	} else {
		while(style.firstChild) {
			style.removeChild(style.firstChild);
		}

		style.appendChild(document.createTextNode(css));
	}
}

function updateLink (link, options, obj) {
	var css = obj.css;
	var sourceMap = obj.sourceMap;

	/*
		If convertToAbsoluteUrls isn't defined, but sourcemaps are enabled
		and there is no publicPath defined then lets turn convertToAbsoluteUrls
		on by default.  Otherwise default to the convertToAbsoluteUrls option
		directly
	*/
	var autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;

	if (options.convertToAbsoluteUrls || autoFixUrls) {
		css = fixUrls(css);
	}

	if (sourceMap) {
		// http://stackoverflow.com/a/26603875
		css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
	}

	var blob = new Blob([css], { type: "text/css" });

	var oldSrc = link.href;

	link.href = URL.createObjectURL(blob);

	if(oldSrc) URL.revokeObjectURL(oldSrc);
}


/***/ }),

/***/ "./node_modules/style-loader/lib/urls.js":
/*!***********************************************!*\
  !*** ./node_modules/style-loader/lib/urls.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports) {


/**
 * When source maps are enabled, `style-loader` uses a link element with a data-uri to
 * embed the css on the page. This breaks all relative urls because now they are relative to a
 * bundle instead of the current page.
 *
 * One solution is to only use full urls, but that may be impossible.
 *
 * Instead, this function "fixes" the relative urls to be absolute according to the current page location.
 *
 * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.
 *
 */

module.exports = function (css) {
  // get current location
  var location = typeof window !== "undefined" && window.location;

  if (!location) {
    throw new Error("fixUrls requires window.location");
  }

	// blank or null?
	if (!css || typeof css !== "string") {
	  return css;
  }

  var baseUrl = location.protocol + "//" + location.host;
  var currentDir = baseUrl + location.pathname.replace(/\/[^\/]*$/, "/");

	// convert each url(...)
	/*
	This regular expression is just a way to recursively match brackets within
	a string.

	 /url\s*\(  = Match on the word "url" with any whitespace after it and then a parens
	   (  = Start a capturing group
	     (?:  = Start a non-capturing group
	         [^)(]  = Match anything that isn't a parentheses
	         |  = OR
	         \(  = Match a start parentheses
	             (?:  = Start another non-capturing groups
	                 [^)(]+  = Match anything that isn't a parentheses
	                 |  = OR
	                 \(  = Match a start parentheses
	                     [^)(]*  = Match anything that isn't a parentheses
	                 \)  = Match a end parentheses
	             )  = End Group
              *\) = Match anything and then a close parens
          )  = Close non-capturing group
          *  = Match anything
       )  = Close capturing group
	 \)  = Match a close parens

	 /gi  = Get all matches, not the first.  Be case insensitive.
	 */
	var fixedCss = css.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(fullMatch, origUrl) {
		// strip quotes (if they exist)
		var unquotedOrigUrl = origUrl
			.trim()
			.replace(/^"(.*)"$/, function(o, $1){ return $1; })
			.replace(/^'(.*)'$/, function(o, $1){ return $1; });

		// already a full url? no change
		if (/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(unquotedOrigUrl)) {
		  return fullMatch;
		}

		// convert the url to a full url
		var newUrl;

		if (unquotedOrigUrl.indexOf("//") === 0) {
		  	//TODO: should we add protocol?
			newUrl = unquotedOrigUrl;
		} else if (unquotedOrigUrl.indexOf("/") === 0) {
			// path should be relative to the base url
			newUrl = baseUrl + unquotedOrigUrl; // already starts with '/'
		} else {
			// path should be relative to current directory
			newUrl = currentDir + unquotedOrigUrl.replace(/^\.\//, ""); // Strip leading './'
		}

		// send back the fixed url(...)
		return "url(" + JSON.stringify(newUrl) + ")";
	});

	// send back the fixed css
	return fixedCss;
};


/***/ }),

/***/ "./node_modules/sweetalert2/dist/sweetalert2.all.js":
/*!**********************************************************!*\
  !*** ./node_modules/sweetalert2/dist/sweetalert2.all.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/*!
* sweetalert2 v10.15.5
* Released under the MIT License.
*/
(function (global, factory) {
   true ? module.exports = factory() :
  undefined;
}(this, function () { 'use strict';

  function _typeof(obj) {
    "@babel/helpers - typeof";

    if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
      _typeof = function (obj) {
        return typeof obj;
      };
    } else {
      _typeof = function (obj) {
        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
      };
    }

    return _typeof(obj);
  }

  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a 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);
    }
  }

  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    return Constructor;
  }

  function _extends() {
    _extends = Object.assign || function (target) {
      for (var i = 1; i < arguments.length; i++) {
        var source = arguments[i];

        for (var key in source) {
          if (Object.prototype.hasOwnProperty.call(source, key)) {
            target[key] = source[key];
          }
        }
      }

      return target;
    };

    return _extends.apply(this, arguments);
  }

  function _inherits(subClass, superClass) {
    if (typeof superClass !== "function" && superClass !== null) {
      throw new TypeError("Super expression must either be null or a function");
    }

    subClass.prototype = Object.create(superClass && superClass.prototype, {
      constructor: {
        value: subClass,
        writable: true,
        configurable: true
      }
    });
    if (superClass) _setPrototypeOf(subClass, superClass);
  }

  function _getPrototypeOf(o) {
    _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
      return o.__proto__ || Object.getPrototypeOf(o);
    };
    return _getPrototypeOf(o);
  }

  function _setPrototypeOf(o, p) {
    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
      o.__proto__ = p;
      return o;
    };

    return _setPrototypeOf(o, p);
  }

  function _isNativeReflectConstruct() {
    if (typeof Reflect === "undefined" || !Reflect.construct) return false;
    if (Reflect.construct.sham) return false;
    if (typeof Proxy === "function") return true;

    try {
      Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
      return true;
    } catch (e) {
      return false;
    }
  }

  function _construct(Parent, args, Class) {
    if (_isNativeReflectConstruct()) {
      _construct = Reflect.construct;
    } else {
      _construct = function _construct(Parent, args, Class) {
        var a = [null];
        a.push.apply(a, args);
        var Constructor = Function.bind.apply(Parent, a);
        var instance = new Constructor();
        if (Class) _setPrototypeOf(instance, Class.prototype);
        return instance;
      };
    }

    return _construct.apply(null, arguments);
  }

  function _assertThisInitialized(self) {
    if (self === void 0) {
      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    }

    return self;
  }

  function _possibleConstructorReturn(self, call) {
    if (call && (typeof call === "object" || typeof call === "function")) {
      return call;
    }

    return _assertThisInitialized(self);
  }

  function _createSuper(Derived) {
    var hasNativeReflectConstruct = _isNativeReflectConstruct();

    return function _createSuperInternal() {
      var Super = _getPrototypeOf(Derived),
          result;

      if (hasNativeReflectConstruct) {
        var NewTarget = _getPrototypeOf(this).constructor;

        result = Reflect.construct(Super, arguments, NewTarget);
      } else {
        result = Super.apply(this, arguments);
      }

      return _possibleConstructorReturn(this, result);
    };
  }

  function _superPropBase(object, property) {
    while (!Object.prototype.hasOwnProperty.call(object, property)) {
      object = _getPrototypeOf(object);
      if (object === null) break;
    }

    return object;
  }

  function _get(target, property, receiver) {
    if (typeof Reflect !== "undefined" && Reflect.get) {
      _get = Reflect.get;
    } else {
      _get = function _get(target, property, receiver) {
        var base = _superPropBase(target, property);

        if (!base) return;
        var desc = Object.getOwnPropertyDescriptor(base, property);

        if (desc.get) {
          return desc.get.call(receiver);
        }

        return desc.value;
      };
    }

    return _get(target, property, receiver || target);
  }

  var consolePrefix = 'SweetAlert2:';
  /**
   * Filter the unique values into a new array
   * @param arr
   */

  var uniqueArray = function uniqueArray(arr) {
    var result = [];

    for (var i = 0; i < arr.length; i++) {
      if (result.indexOf(arr[i]) === -1) {
        result.push(arr[i]);
      }
    }

    return result;
  };
  /**
   * Capitalize the first letter of a string
   * @param str
   */

  var capitalizeFirstLetter = function capitalizeFirstLetter(str) {
    return str.charAt(0).toUpperCase() + str.slice(1);
  };
  /**
   * Returns the array of object values (Object.values isn't supported in IE11)
   * @param obj
   */

  var objectValues = function objectValues(obj) {
    return Object.keys(obj).map(function (key) {
      return obj[key];
    });
  };
  /**
   * Convert NodeList to Array
   * @param nodeList
   */

  var toArray = function toArray(nodeList) {
    return Array.prototype.slice.call(nodeList);
  };
  /**
   * Standardise console warnings
   * @param message
   */

  var warn = function warn(message) {
    console.warn("".concat(consolePrefix, " ").concat(_typeof(message) === 'object' ? message.join(' ') : message));
  };
  /**
   * Standardise console errors
   * @param message
   */

  var error = function error(message) {
    console.error("".concat(consolePrefix, " ").concat(message));
  };
  /**
   * Private global state for `warnOnce`
   * @type {Array}
   * @private
   */

  var previousWarnOnceMessages = [];
  /**
   * Show a console warning, but only if it hasn't already been shown
   * @param message
   */

  var warnOnce = function warnOnce(message) {
    if (!(previousWarnOnceMessages.indexOf(message) !== -1)) {
      previousWarnOnceMessages.push(message);
      warn(message);
    }
  };
  /**
   * Show a one-time console warning about deprecated params/methods
   */

  var warnAboutDeprecation = function warnAboutDeprecation(deprecatedParam, useInstead) {
    warnOnce("\"".concat(deprecatedParam, "\" is deprecated and will be removed in the next major release. Please use \"").concat(useInstead, "\" instead."));
  };
  /**
   * If `arg` is a function, call it (with no arguments or context) and return the result.
   * Otherwise, just pass the value through
   * @param arg
   */

  var callIfFunction = function callIfFunction(arg) {
    return typeof arg === 'function' ? arg() : arg;
  };
  var hasToPromiseFn = function hasToPromiseFn(arg) {
    return arg && typeof arg.toPromise === 'function';
  };
  var asPromise = function asPromise(arg) {
    return hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);
  };
  var isPromise = function isPromise(arg) {
    return arg && Promise.resolve(arg) === arg;
  };

  var DismissReason = Object.freeze({
    cancel: 'cancel',
    backdrop: 'backdrop',
    close: 'close',
    esc: 'esc',
    timer: 'timer'
  });

  var isJqueryElement = function isJqueryElement(elem) {
    return _typeof(elem) === 'object' && elem.jquery;
  };

  var isElement = function isElement(elem) {
    return elem instanceof Element || isJqueryElement(elem);
  };

  var argsToParams = function argsToParams(args) {
    var params = {};

    if (_typeof(args[0]) === 'object' && !isElement(args[0])) {
      _extends(params, args[0]);
    } else {
      ['title', 'html', 'icon'].forEach(function (name, index) {
        var arg = args[index];

        if (typeof arg === 'string' || isElement(arg)) {
          params[name] = arg;
        } else if (arg !== undefined) {
          error("Unexpected type of ".concat(name, "! Expected \"string\" or \"Element\", got ").concat(_typeof(arg)));
        }
      });
    }

    return params;
  };

  var swalPrefix = 'swal2-';
  var prefix = function prefix(items) {
    var result = {};

    for (var i in items) {
      result[items[i]] = swalPrefix + items[i];
    }

    return result;
  };
  var swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'toast-column', 'show', 'hide', 'close', 'title', 'header', 'content', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']);
  var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);

  var getContainer = function getContainer() {
    return document.body.querySelector(".".concat(swalClasses.container));
  };
  var elementBySelector = function elementBySelector(selectorString) {
    var container = getContainer();
    return container ? container.querySelector(selectorString) : null;
  };

  var elementByClass = function elementByClass(className) {
    return elementBySelector(".".concat(className));
  };

  var getPopup = function getPopup() {
    return elementByClass(swalClasses.popup);
  };
  var getIcon = function getIcon() {
    return elementByClass(swalClasses.icon);
  };
  var getTitle = function getTitle() {
    return elementByClass(swalClasses.title);
  };
  var getContent = function getContent() {
    return elementByClass(swalClasses.content);
  };
  var getHtmlContainer = function getHtmlContainer() {
    return elementByClass(swalClasses['html-container']);
  };
  var getImage = function getImage() {
    return elementByClass(swalClasses.image);
  };
  var getProgressSteps = function getProgressSteps() {
    return elementByClass(swalClasses['progress-steps']);
  };
  var getValidationMessage = function getValidationMessage() {
    return elementByClass(swalClasses['validation-message']);
  };
  var getConfirmButton = function getConfirmButton() {
    return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.confirm));
  };
  var getDenyButton = function getDenyButton() {
    return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.deny));
  };
  var getInputLabel = function getInputLabel() {
    return elementByClass(swalClasses['input-label']);
  };
  var getLoader = function getLoader() {
    return elementBySelector(".".concat(swalClasses.loader));
  };
  var getCancelButton = function getCancelButton() {
    return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.cancel));
  };
  var getActions = function getActions() {
    return elementByClass(swalClasses.actions);
  };
  var getHeader = function getHeader() {
    return elementByClass(swalClasses.header);
  };
  var getFooter = function getFooter() {
    return elementByClass(swalClasses.footer);
  };
  var getTimerProgressBar = function getTimerProgressBar() {
    return elementByClass(swalClasses['timer-progress-bar']);
  };
  var getCloseButton = function getCloseButton() {
    return elementByClass(swalClasses.close);
  }; // https://github.com/jkup/focusable/blob/master/index.js

  var focusable = "\n  a[href],\n  area[href],\n  input:not([disabled]),\n  select:not([disabled]),\n  textarea:not([disabled]),\n  button:not([disabled]),\n  iframe,\n  object,\n  embed,\n  [tabindex=\"0\"],\n  [contenteditable],\n  audio[controls],\n  video[controls],\n  summary\n";
  var getFocusableElements = function getFocusableElements() {
    var focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')) // sort according to tabindex
    .sort(function (a, b) {
      a = parseInt(a.getAttribute('tabindex'));
      b = parseInt(b.getAttribute('tabindex'));

      if (a > b) {
        return 1;
      } else if (a < b) {
        return -1;
      }

      return 0;
    });
    var otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(function (el) {
      return el.getAttribute('tabindex') !== '-1';
    });
    return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(function (el) {
      return isVisible(el);
    });
  };
  var isModal = function isModal() {
    return !isToast() && !document.body.classList.contains(swalClasses['no-backdrop']);
  };
  var isToast = function isToast() {
    return document.body.classList.contains(swalClasses['toast-shown']);
  };
  var isLoading = function isLoading() {
    return getPopup().hasAttribute('data-loading');
  };

  var states = {
    previousBodyPadding: null
  };
  var setInnerHtml = function setInnerHtml(elem, html) {
    // #1926
    elem.textContent = '';

    if (html) {
      var parser = new DOMParser();
      var parsed = parser.parseFromString(html, "text/html");
      toArray(parsed.querySelector('head').childNodes).forEach(function (child) {
        elem.appendChild(child);
      });
      toArray(parsed.querySelector('body').childNodes).forEach(function (child) {
        elem.appendChild(child);
      });
    }
  };
  var hasClass = function hasClass(elem, className) {
    if (!className) {
      return false;
    }

    var classList = className.split(/\s+/);

    for (var i = 0; i < classList.length; i++) {
      if (!elem.classList.contains(classList[i])) {
        return false;
      }
    }

    return true;
  };

  var removeCustomClasses = function removeCustomClasses(elem, params) {
    toArray(elem.classList).forEach(function (className) {
      if (!(objectValues(swalClasses).indexOf(className) !== -1) && !(objectValues(iconTypes).indexOf(className) !== -1) && !(objectValues(params.showClass).indexOf(className) !== -1)) {
        elem.classList.remove(className);
      }
    });
  };

  var applyCustomClass = function applyCustomClass(elem, params, className) {
    removeCustomClasses(elem, params);

    if (params.customClass && params.customClass[className]) {
      if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {
        return warn("Invalid type of customClass.".concat(className, "! Expected string or iterable object, got \"").concat(_typeof(params.customClass[className]), "\""));
      }

      addClass(elem, params.customClass[className]);
    }
  };
  function getInput(content, inputType) {
    if (!inputType) {
      return null;
    }

    switch (inputType) {
      case 'select':
      case 'textarea':
      case 'file':
        return getChildByClass(content, swalClasses[inputType]);

      case 'checkbox':
        return content.querySelector(".".concat(swalClasses.checkbox, " input"));

      case 'radio':
        return content.querySelector(".".concat(swalClasses.radio, " input:checked")) || content.querySelector(".".concat(swalClasses.radio, " input:first-child"));

      case 'range':
        return content.querySelector(".".concat(swalClasses.range, " input"));

      default:
        return getChildByClass(content, swalClasses.input);
    }
  }
  var focusInput = function focusInput(input) {
    input.focus(); // place cursor at end of text in text input

    if (input.type !== 'file') {
      // http://stackoverflow.com/a/2345915
      var val = input.value;
      input.value = '';
      input.value = val;
    }
  };
  var toggleClass = function toggleClass(target, classList, condition) {
    if (!target || !classList) {
      return;
    }

    if (typeof classList === 'string') {
      classList = classList.split(/\s+/).filter(Boolean);
    }

    classList.forEach(function (className) {
      if (target.forEach) {
        target.forEach(function (elem) {
          condition ? elem.classList.add(className) : elem.classList.remove(className);
        });
      } else {
        condition ? target.classList.add(className) : target.classList.remove(className);
      }
    });
  };
  var addClass = function addClass(target, classList) {
    toggleClass(target, classList, true);
  };
  var removeClass = function removeClass(target, classList) {
    toggleClass(target, classList, false);
  };
  var getChildByClass = function getChildByClass(elem, className) {
    for (var i = 0; i < elem.childNodes.length; i++) {
      if (hasClass(elem.childNodes[i], className)) {
        return elem.childNodes[i];
      }
    }
  };
  var applyNumericalStyle = function applyNumericalStyle(elem, property, value) {
    if (value === "".concat(parseInt(value))) {
      value = parseInt(value);
    }

    if (value || parseInt(value) === 0) {
      elem.style[property] = typeof value === 'number' ? "".concat(value, "px") : value;
    } else {
      elem.style.removeProperty(property);
    }
  };
  var show = function show(elem) {
    var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';
    elem.style.display = display;
  };
  var hide = function hide(elem) {
    elem.style.display = 'none';
  };
  var setStyle = function setStyle(parent, selector, property, value) {
    var el = parent.querySelector(selector);

    if (el) {
      el.style[property] = value;
    }
  };
  var toggle = function toggle(elem, condition, display) {
    condition ? show(elem, display) : hide(elem);
  }; // borrowed from jquery $(elem).is(':visible') implementation

  var isVisible = function isVisible(elem) {
    return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));
  };
  var allButtonsAreHidden = function allButtonsAreHidden() {
    return !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton());
  };
  var isScrollable = function isScrollable(elem) {
    return !!(elem.scrollHeight > elem.clientHeight);
  }; // borrowed from https://stackoverflow.com/a/46352119

  var hasCssAnimation = function hasCssAnimation(elem) {
    var style = window.getComputedStyle(elem);
    var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');
    var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');
    return animDuration > 0 || transDuration > 0;
  };
  var contains = function contains(haystack, needle) {
    if (typeof haystack.contains === 'function') {
      return haystack.contains(needle);
    }
  };
  var animateTimerProgressBar = function animateTimerProgressBar(timer) {
    var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
    var timerProgressBar = getTimerProgressBar();

    if (isVisible(timerProgressBar)) {
      if (reset) {
        timerProgressBar.style.transition = 'none';
        timerProgressBar.style.width = '100%';
      }

      setTimeout(function () {
        timerProgressBar.style.transition = "width ".concat(timer / 1000, "s linear");
        timerProgressBar.style.width = '0%';
      }, 10);
    }
  };
  var stopTimerProgressBar = function stopTimerProgressBar() {
    var timerProgressBar = getTimerProgressBar();
    var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
    timerProgressBar.style.removeProperty('transition');
    timerProgressBar.style.width = '100%';
    var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
    var timerProgressBarPercent = parseInt(timerProgressBarWidth / timerProgressBarFullWidth * 100);
    timerProgressBar.style.removeProperty('transition');
    timerProgressBar.style.width = "".concat(timerProgressBarPercent, "%");
  };

  // Detect Node env
  var isNodeEnv = function isNodeEnv() {
    return typeof window === 'undefined' || typeof document === 'undefined';
  };

  var sweetHTML = "\n <div aria-labelledby=\"".concat(swalClasses.title, "\" aria-describedby=\"").concat(swalClasses.content, "\" class=\"").concat(swalClasses.popup, "\" tabindex=\"-1\">\n   <div class=\"").concat(swalClasses.header, "\">\n     <ul class=\"").concat(swalClasses['progress-steps'], "\"></ul>\n     <div class=\"").concat(swalClasses.icon, "\"></div>\n     <img class=\"").concat(swalClasses.image, "\" />\n     <h2 class=\"").concat(swalClasses.title, "\" id=\"").concat(swalClasses.title, "\"></h2>\n     <button type=\"button\" class=\"").concat(swalClasses.close, "\"></button>\n   </div>\n   <div class=\"").concat(swalClasses.content, "\">\n     <div id=\"").concat(swalClasses.content, "\" class=\"").concat(swalClasses['html-container'], "\"></div>\n     <input class=\"").concat(swalClasses.input, "\" />\n     <input type=\"file\" class=\"").concat(swalClasses.file, "\" />\n     <div class=\"").concat(swalClasses.range, "\">\n       <input type=\"range\" />\n       <output></output>\n     </div>\n     <select class=\"").concat(swalClasses.select, "\"></select>\n     <div class=\"").concat(swalClasses.radio, "\"></div>\n     <label for=\"").concat(swalClasses.checkbox, "\" class=\"").concat(swalClasses.checkbox, "\">\n       <input type=\"checkbox\" />\n       <span class=\"").concat(swalClasses.label, "\"></span>\n     </label>\n     <textarea class=\"").concat(swalClasses.textarea, "\"></textarea>\n     <div class=\"").concat(swalClasses['validation-message'], "\" id=\"").concat(swalClasses['validation-message'], "\"></div>\n   </div>\n   <div class=\"").concat(swalClasses.actions, "\">\n     <div class=\"").concat(swalClasses.loader, "\"></div>\n     <button type=\"button\" class=\"").concat(swalClasses.confirm, "\"></button>\n     <button type=\"button\" class=\"").concat(swalClasses.deny, "\"></button>\n     <button type=\"button\" class=\"").concat(swalClasses.cancel, "\"></button>\n   </div>\n   <div class=\"").concat(swalClasses.footer, "\"></div>\n   <div class=\"").concat(swalClasses['timer-progress-bar-container'], "\">\n     <div class=\"").concat(swalClasses['timer-progress-bar'], "\"></div>\n   </div>\n </div>\n").replace(/(^|\n)\s*/g, '');

  var resetOldContainer = function resetOldContainer() {
    var oldContainer = getContainer();

    if (!oldContainer) {
      return false;
    }

    oldContainer.parentNode.removeChild(oldContainer);
    removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);
    return true;
  };

  var oldInputVal; // IE11 workaround, see #1109 for details

  var resetValidationMessage = function resetValidationMessage(e) {
    if (Swal.isVisible() && oldInputVal !== e.target.value) {
      Swal.resetValidationMessage();
    }

    oldInputVal = e.target.value;
  };

  var addInputChangeListeners = function addInputChangeListeners() {
    var content = getContent();
    var input = getChildByClass(content, swalClasses.input);
    var file = getChildByClass(content, swalClasses.file);
    var range = content.querySelector(".".concat(swalClasses.range, " input"));
    var rangeOutput = content.querySelector(".".concat(swalClasses.range, " output"));
    var select = getChildByClass(content, swalClasses.select);
    var checkbox = content.querySelector(".".concat(swalClasses.checkbox, " input"));
    var textarea = getChildByClass(content, swalClasses.textarea);
    input.oninput = resetValidationMessage;
    file.onchange = resetValidationMessage;
    select.onchange = resetValidationMessage;
    checkbox.onchange = resetValidationMessage;
    textarea.oninput = resetValidationMessage;

    range.oninput = function (e) {
      resetValidationMessage(e);
      rangeOutput.value = range.value;
    };

    range.onchange = function (e) {
      resetValidationMessage(e);
      range.nextSibling.value = range.value;
    };
  };

  var getTarget = function getTarget(target) {
    return typeof target === 'string' ? document.querySelector(target) : target;
  };

  var setupAccessibility = function setupAccessibility(params) {
    var popup = getPopup();
    popup.setAttribute('role', params.toast ? 'alert' : 'dialog');
    popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');

    if (!params.toast) {
      popup.setAttribute('aria-modal', 'true');
    }
  };

  var setupRTL = function setupRTL(targetElement) {
    if (window.getComputedStyle(targetElement).direction === 'rtl') {
      addClass(getContainer(), swalClasses.rtl);
    }
  };
  /*
   * Add modal + backdrop to DOM
   */


  var init = function init(params) {
    // Clean up the old popup container if it exists
    var oldContainerExisted = resetOldContainer();
    /* istanbul ignore if */

    if (isNodeEnv()) {
      error('SweetAlert2 requires document to initialize');
      return;
    }

    var container = document.createElement('div');
    container.className = swalClasses.container;

    if (oldContainerExisted) {
      addClass(container, swalClasses['no-transition']);
    }

    setInnerHtml(container, sweetHTML);
    var targetElement = getTarget(params.target);
    targetElement.appendChild(container);
    setupAccessibility(params);
    setupRTL(targetElement);
    addInputChangeListeners();
  };

  var parseHtmlToContainer = function parseHtmlToContainer(param, target) {
    // DOM element
    if (param instanceof HTMLElement) {
      target.appendChild(param); // Object
    } else if (_typeof(param) === 'object') {
      handleObject(param, target); // Plain string
    } else if (param) {
      setInnerHtml(target, param);
    }
  };

  var handleObject = function handleObject(param, target) {
    // JQuery element(s)
    if (param.jquery) {
      handleJqueryElem(target, param); // For other objects use their string representation
    } else {
      setInnerHtml(target, param.toString());
    }
  };

  var handleJqueryElem = function handleJqueryElem(target, elem) {
    target.textContent = '';

    if (0 in elem) {
      for (var i = 0; (i in elem); i++) {
        target.appendChild(elem[i].cloneNode(true));
      }
    } else {
      target.appendChild(elem.cloneNode(true));
    }
  };

  var animationEndEvent = function () {
    // Prevent run in Node env

    /* istanbul ignore if */
    if (isNodeEnv()) {
      return false;
    }

    var testEl = document.createElement('div');
    var transEndEventNames = {
      WebkitAnimation: 'webkitAnimationEnd',
      OAnimation: 'oAnimationEnd oanimationend',
      animation: 'animationend'
    };

    for (var i in transEndEventNames) {
      if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {
        return transEndEventNames[i];
      }
    }

    return false;
  }();

  // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js

  var measureScrollbar = function measureScrollbar() {
    var scrollDiv = document.createElement('div');
    scrollDiv.className = swalClasses['scrollbar-measure'];
    document.body.appendChild(scrollDiv);
    var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
    document.body.removeChild(scrollDiv);
    return scrollbarWidth;
  };

  var renderActions = function renderActions(instance, params) {
    var actions = getActions();
    var loader = getLoader();
    var confirmButton = getConfirmButton();
    var denyButton = getDenyButton();
    var cancelButton = getCancelButton(); // Actions (buttons) wrapper

    if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {
      hide(actions);
    } // Custom class


    applyCustomClass(actions, params, 'actions'); // Render buttons

    renderButton(confirmButton, 'confirm', params);
    renderButton(denyButton, 'deny', params);
    renderButton(cancelButton, 'cancel', params);
    handleButtonsStyling(confirmButton, denyButton, cancelButton, params);

    if (params.reverseButtons) {
      actions.insertBefore(cancelButton, loader);
      actions.insertBefore(denyButton, loader);
      actions.insertBefore(confirmButton, loader);
    } // Loader


    setInnerHtml(loader, params.loaderHtml);
    applyCustomClass(loader, params, 'loader');
  };

  function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {
    if (!params.buttonsStyling) {
      return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);
    }

    addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors

    if (params.confirmButtonColor) {
      confirmButton.style.backgroundColor = params.confirmButtonColor;
    }

    if (params.denyButtonColor) {
      denyButton.style.backgroundColor = params.denyButtonColor;
    }

    if (params.cancelButtonColor) {
      cancelButton.style.backgroundColor = params.cancelButtonColor;
    }
  }

  function renderButton(button, buttonType, params) {
    toggle(button, params["show".concat(capitalizeFirstLetter(buttonType), "Button")], 'inline-block');
    setInnerHtml(button, params["".concat(buttonType, "ButtonText")]); // Set caption text

    button.setAttribute('aria-label', params["".concat(buttonType, "ButtonAriaLabel")]); // ARIA label
    // Add buttons custom classes

    button.className = swalClasses[buttonType];
    applyCustomClass(button, params, "".concat(buttonType, "Button"));
    addClass(button, params["".concat(buttonType, "ButtonClass")]);
  }

  function handleBackdropParam(container, backdrop) {
    if (typeof backdrop === 'string') {
      container.style.background = backdrop;
    } else if (!backdrop) {
      addClass([document.documentElement, document.body], swalClasses['no-backdrop']);
    }
  }

  function handlePositionParam(container, position) {
    if (position in swalClasses) {
      addClass(container, swalClasses[position]);
    } else {
      warn('The "position" parameter is not valid, defaulting to "center"');
      addClass(container, swalClasses.center);
    }
  }

  function handleGrowParam(container, grow) {
    if (grow && typeof grow === 'string') {
      var growClass = "grow-".concat(grow);

      if (growClass in swalClasses) {
        addClass(container, swalClasses[growClass]);
      }
    }
  }

  var renderContainer = function renderContainer(instance, params) {
    var container = getContainer();

    if (!container) {
      return;
    }

    handleBackdropParam(container, params.backdrop);

    if (!params.backdrop && params.allowOutsideClick) {
      warn('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');
    }

    handlePositionParam(container, params.position);
    handleGrowParam(container, params.grow); // Custom class

    applyCustomClass(container, params, 'container'); // Set queue step attribute for getQueueStep() method

    var queueStep = document.body.getAttribute('data-swal2-queue-step');

    if (queueStep) {
      container.setAttribute('data-queue-step', queueStep);
      document.body.removeAttribute('data-swal2-queue-step');
    }
  };

  /**
   * This module containts `WeakMap`s for each effectively-"private  property" that a `Swal` has.
   * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
   * This is the approach that Babel will probably take to implement private methods/fields
   *   https://github.com/tc39/proposal-private-methods
   *   https://github.com/babel/babel/pull/7555
   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
   *   then we can use that language feature.
   */
  var privateProps = {
    promise: new WeakMap(),
    innerParams: new WeakMap(),
    domCache: new WeakMap()
  };

  var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];
  var renderInput = function renderInput(instance, params) {
    var content = getContent();
    var innerParams = privateProps.innerParams.get(instance);
    var rerender = !innerParams || params.input !== innerParams.input;
    inputTypes.forEach(function (inputType) {
      var inputClass = swalClasses[inputType];
      var inputContainer = getChildByClass(content, inputClass); // set attributes

      setAttributes(inputType, params.inputAttributes); // set class

      inputContainer.className = inputClass;

      if (rerender) {
        hide(inputContainer);
      }
    });

    if (params.input) {
      if (rerender) {
        showInput(params);
      } // set custom class


      setCustomClass(params);
    }
  };

  var showInput = function showInput(params) {
    if (!renderInputType[params.input]) {
      return error("Unexpected type of input! Expected \"text\", \"email\", \"password\", \"number\", \"tel\", \"select\", \"radio\", \"checkbox\", \"textarea\", \"file\" or \"url\", got \"".concat(params.input, "\""));
    }

    var inputContainer = getInputContainer(params.input);
    var input = renderInputType[params.input](inputContainer, params);
    show(input); // input autofocus

    setTimeout(function () {
      focusInput(input);
    });
  };

  var removeAttributes = function removeAttributes(input) {
    for (var i = 0; i < input.attributes.length; i++) {
      var attrName = input.attributes[i].name;

      if (!(['type', 'value', 'style'].indexOf(attrName) !== -1)) {
        input.removeAttribute(attrName);
      }
    }
  };

  var setAttributes = function setAttributes(inputType, inputAttributes) {
    var input = getInput(getContent(), inputType);

    if (!input) {
      return;
    }

    removeAttributes(input);

    for (var attr in inputAttributes) {
      // Do not set a placeholder for <input type="range">
      // it'll crash Edge, #1298
      if (inputType === 'range' && attr === 'placeholder') {
        continue;
      }

      input.setAttribute(attr, inputAttributes[attr]);
    }
  };

  var setCustomClass = function setCustomClass(params) {
    var inputContainer = getInputContainer(params.input);

    if (params.customClass) {
      addClass(inputContainer, params.customClass.input);
    }
  };

  var setInputPlaceholder = function setInputPlaceholder(input, params) {
    if (!input.placeholder || params.inputPlaceholder) {
      input.placeholder = params.inputPlaceholder;
    }
  };

  var setInputLabel = function setInputLabel(input, prependTo, params) {
    if (params.inputLabel) {
      input.id = swalClasses.input;
      var label = document.createElement('label');
      var labelClass = swalClasses['input-label'];
      label.setAttribute('for', input.id);
      label.className = labelClass;
      addClass(label, params.customClass.inputLabel);
      label.innerText = params.inputLabel;
      prependTo.insertAdjacentElement('beforebegin', label);
    }
  };

  var getInputContainer = function getInputContainer(inputType) {
    var inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input;
    return getChildByClass(getContent(), inputClass);
  };

  var renderInputType = {};

  renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = function (input, params) {
    if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') {
      input.value = params.inputValue;
    } else if (!isPromise(params.inputValue)) {
      warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(_typeof(params.inputValue), "\""));
    }

    setInputLabel(input, input, params);
    setInputPlaceholder(input, params);
    input.type = params.input;
    return input;
  };

  renderInputType.file = function (input, params) {
    setInputLabel(input, input, params);
    setInputPlaceholder(input, params);
    return input;
  };

  renderInputType.range = function (range, params) {
    var rangeInput = range.querySelector('input');
    var rangeOutput = range.querySelector('output');
    rangeInput.value = params.inputValue;
    rangeInput.type = params.input;
    rangeOutput.value = params.inputValue;
    setInputLabel(rangeInput, range, params);
    return range;
  };

  renderInputType.select = function (select, params) {
    select.textContent = '';

    if (params.inputPlaceholder) {
      var placeholder = document.createElement('option');
      setInnerHtml(placeholder, params.inputPlaceholder);
      placeholder.value = '';
      placeholder.disabled = true;
      placeholder.selected = true;
      select.appendChild(placeholder);
    }

    setInputLabel(select, select, params);
    return select;
  };

  renderInputType.radio = function (radio) {
    radio.textContent = '';
    return radio;
  };

  renderInputType.checkbox = function (checkboxContainer, params) {
    var checkbox = getInput(getContent(), 'checkbox');
    checkbox.value = 1;
    checkbox.id = swalClasses.checkbox;
    checkbox.checked = Boolean(params.inputValue);
    var label = checkboxContainer.querySelector('span');
    setInnerHtml(label, params.inputPlaceholder);
    return checkboxContainer;
  };

  renderInputType.textarea = function (textarea, params) {
    textarea.value = params.inputValue;
    setInputPlaceholder(textarea, params);
    setInputLabel(textarea, textarea, params);

    var getPadding = function getPadding(el) {
      return parseInt(window.getComputedStyle(el).paddingLeft) + parseInt(window.getComputedStyle(el).paddingRight);
    };

    if ('MutationObserver' in window) {
      // #1699
      var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);

      var outputsize = function outputsize() {
        var contentWidth = textarea.offsetWidth + getPadding(getPopup()) + getPadding(getContent());

        if (contentWidth > initialPopupWidth) {
          getPopup().style.width = "".concat(contentWidth, "px");
        } else {
          getPopup().style.width = null;
        }
      };

      new MutationObserver(outputsize).observe(textarea, {
        attributes: true,
        attributeFilter: ['style']
      });
    }

    return textarea;
  };

  var renderContent = function renderContent(instance, params) {
    var htmlContainer = getHtmlContainer();
    applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML

    if (params.html) {
      parseHtmlToContainer(params.html, htmlContainer);
      show(htmlContainer, 'block'); // Content as plain text
    } else if (params.text) {
      htmlContainer.textContent = params.text;
      show(htmlContainer, 'block'); // No content
    } else {
      hide(htmlContainer);
    }

    renderInput(instance, params); // Custom class

    applyCustomClass(getContent(), params, 'content');
  };

  var renderFooter = function renderFooter(instance, params) {
    var footer = getFooter();
    toggle(footer, params.footer);

    if (params.footer) {
      parseHtmlToContainer(params.footer, footer);
    } // Custom class


    applyCustomClass(footer, params, 'footer');
  };

  var renderCloseButton = function renderCloseButton(instance, params) {
    var closeButton = getCloseButton();
    setInnerHtml(closeButton, params.closeButtonHtml); // Custom class

    applyCustomClass(closeButton, params, 'closeButton');
    toggle(closeButton, params.showCloseButton);
    closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);
  };

  var renderIcon = function renderIcon(instance, params) {
    var innerParams = privateProps.innerParams.get(instance);
    var icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon

    if (innerParams && params.icon === innerParams.icon) {
      // Custom or default content
      setContent(icon, params);
      applyStyles(icon, params);
      return;
    }

    if (!params.icon && !params.iconHtml) {
      return hide(icon);
    }

    if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {
      error("Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"".concat(params.icon, "\""));
      return hide(icon);
    }

    show(icon); // Custom or default content

    setContent(icon, params);
    applyStyles(icon, params); // Animate icon

    addClass(icon, params.showClass.icon);
  };

  var applyStyles = function applyStyles(icon, params) {
    for (var iconType in iconTypes) {
      if (params.icon !== iconType) {
        removeClass(icon, iconTypes[iconType]);
      }
    }

    addClass(icon, iconTypes[params.icon]); // Icon color

    setColor(icon, params); // Success icon background color

    adjustSuccessIconBackgoundColor(); // Custom class

    applyCustomClass(icon, params, 'icon');
  }; // Adjust success icon background color to match the popup background color


  var adjustSuccessIconBackgoundColor = function adjustSuccessIconBackgoundColor() {
    var popup = getPopup();
    var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');
    var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');

    for (var i = 0; i < successIconParts.length; i++) {
      successIconParts[i].style.backgroundColor = popupBackgroundColor;
    }
  };

  var setContent = function setContent(icon, params) {
    icon.textContent = '';

    if (params.iconHtml) {
      setInnerHtml(icon, iconContent(params.iconHtml));
    } else if (params.icon === 'success') {
      setInnerHtml(icon, "\n      <div class=\"swal2-success-circular-line-left\"></div>\n      <span class=\"swal2-success-line-tip\"></span> <span class=\"swal2-success-line-long\"></span>\n      <div class=\"swal2-success-ring\"></div> <div class=\"swal2-success-fix\"></div>\n      <div class=\"swal2-success-circular-line-right\"></div>\n    ");
    } else if (params.icon === 'error') {
      setInnerHtml(icon, "\n      <span class=\"swal2-x-mark\">\n        <span class=\"swal2-x-mark-line-left\"></span>\n        <span class=\"swal2-x-mark-line-right\"></span>\n      </span>\n    ");
    } else {
      var defaultIconHtml = {
        question: '?',
        warning: '!',
        info: 'i'
      };
      setInnerHtml(icon, iconContent(defaultIconHtml[params.icon]));
    }
  };

  var setColor = function setColor(icon, params) {
    if (!params.iconColor) {
      return;
    }

    icon.style.color = params.iconColor;
    icon.style.borderColor = params.iconColor;

    for (var _i = 0, _arr = ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']; _i < _arr.length; _i++) {
      var sel = _arr[_i];
      setStyle(icon, sel, 'backgroundColor', params.iconColor);
    }

    setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);
  };

  var iconContent = function iconContent(content) {
    return "<div class=\"".concat(swalClasses['icon-content'], "\">").concat(content, "</div>");
  };

  var renderImage = function renderImage(instance, params) {
    var image = getImage();

    if (!params.imageUrl) {
      return hide(image);
    }

    show(image, ''); // Src, alt

    image.setAttribute('src', params.imageUrl);
    image.setAttribute('alt', params.imageAlt); // Width, height

    applyNumericalStyle(image, 'width', params.imageWidth);
    applyNumericalStyle(image, 'height', params.imageHeight); // Class

    image.className = swalClasses.image;
    applyCustomClass(image, params, 'image');
  };

  var currentSteps = [];
  /*
   * Global function for chaining sweetAlert popups
   */

  var queue = function queue(steps) {
    var Swal = this;
    currentSteps = steps;

    var resetAndResolve = function resetAndResolve(resolve, value) {
      currentSteps = [];
      resolve(value);
    };

    var queueResult = [];
    return new Promise(function (resolve) {
      (function step(i, callback) {
        if (i < currentSteps.length) {
          document.body.setAttribute('data-swal2-queue-step', i);
          Swal.fire(currentSteps[i]).then(function (result) {
            if (typeof result.value !== 'undefined') {
              queueResult.push(result.value);
              step(i + 1, callback);
            } else {
              resetAndResolve(resolve, {
                dismiss: result.dismiss
              });
            }
          });
        } else {
          resetAndResolve(resolve, {
            value: queueResult
          });
        }
      })(0);
    });
  };
  /*
   * Global function for getting the index of current popup in queue
   */

  var getQueueStep = function getQueueStep() {
    return getContainer() && getContainer().getAttribute('data-queue-step');
  };
  /*
   * Global function for inserting a popup to the queue
   */

  var insertQueueStep = function insertQueueStep(step, index) {
    if (index && index < currentSteps.length) {
      return currentSteps.splice(index, 0, step);
    }

    return currentSteps.push(step);
  };
  /*
   * Global function for deleting a popup from the queue
   */

  var deleteQueueStep = function deleteQueueStep(index) {
    if (typeof currentSteps[index] !== 'undefined') {
      currentSteps.splice(index, 1);
    }
  };

  var createStepElement = function createStepElement(step) {
    var stepEl = document.createElement('li');
    addClass(stepEl, swalClasses['progress-step']);
    setInnerHtml(stepEl, step);
    return stepEl;
  };

  var createLineElement = function createLineElement(params) {
    var lineEl = document.createElement('li');
    addClass(lineEl, swalClasses['progress-step-line']);

    if (params.progressStepsDistance) {
      lineEl.style.width = params.progressStepsDistance;
    }

    return lineEl;
  };

  var renderProgressSteps = function renderProgressSteps(instance, params) {
    var progressStepsContainer = getProgressSteps();

    if (!params.progressSteps || params.progressSteps.length === 0) {
      return hide(progressStepsContainer);
    }

    show(progressStepsContainer);
    progressStepsContainer.textContent = '';
    var currentProgressStep = parseInt(params.currentProgressStep === undefined ? getQueueStep() : params.currentProgressStep);

    if (currentProgressStep >= params.progressSteps.length) {
      warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');
    }

    params.progressSteps.forEach(function (step, index) {
      var stepEl = createStepElement(step);
      progressStepsContainer.appendChild(stepEl);

      if (index === currentProgressStep) {
        addClass(stepEl, swalClasses['active-progress-step']);
      }

      if (index !== params.progressSteps.length - 1) {
        var lineEl = createLineElement(params);
        progressStepsContainer.appendChild(lineEl);
      }
    });
  };

  var renderTitle = function renderTitle(instance, params) {
    var title = getTitle();
    toggle(title, params.title || params.titleText);

    if (params.title) {
      parseHtmlToContainer(params.title, title);
    }

    if (params.titleText) {
      title.innerText = params.titleText;
    } // Custom class


    applyCustomClass(title, params, 'title');
  };

  var renderHeader = function renderHeader(instance, params) {
    var header = getHeader(); // Custom class

    applyCustomClass(header, params, 'header'); // Progress steps

    renderProgressSteps(instance, params); // Icon

    renderIcon(instance, params); // Image

    renderImage(instance, params); // Title

    renderTitle(instance, params); // Close button

    renderCloseButton(instance, params);
  };

  var renderPopup = function renderPopup(instance, params) {
    var container = getContainer();
    var popup = getPopup(); // Width

    if (params.toast) {
      // #2170
      applyNumericalStyle(container, 'width', params.width);
      popup.style.width = '100%';
    } else {
      applyNumericalStyle(popup, 'width', params.width);
    } // Padding


    applyNumericalStyle(popup, 'padding', params.padding); // Background

    if (params.background) {
      popup.style.background = params.background;
    } // Classes


    addClasses(popup, params);
  };

  var addClasses = function addClasses(popup, params) {
    // Default Class + showClass when updating Swal.update({})
    popup.className = "".concat(swalClasses.popup, " ").concat(isVisible(popup) ? params.showClass.popup : '');

    if (params.toast) {
      addClass([document.documentElement, document.body], swalClasses['toast-shown']);
      addClass(popup, swalClasses.toast);
    } else {
      addClass(popup, swalClasses.modal);
    } // Custom class


    applyCustomClass(popup, params, 'popup');

    if (typeof params.customClass === 'string') {
      addClass(popup, params.customClass);
    } // Icon class (#1842)


    if (params.icon) {
      addClass(popup, swalClasses["icon-".concat(params.icon)]);
    }
  };

  var render = function render(instance, params) {
    renderPopup(instance, params);
    renderContainer(instance, params);
    renderHeader(instance, params);
    renderContent(instance, params);
    renderActions(instance, params);
    renderFooter(instance, params);

    if (typeof params.didRender === 'function') {
      params.didRender(getPopup());
    } else if (typeof params.onRender === 'function') {
      params.onRender(getPopup()); // @deprecated
    }
  };

  /*
   * Global function to determine if SweetAlert2 popup is shown
   */

  var isVisible$1 = function isVisible$$1() {
    return isVisible(getPopup());
  };
  /*
   * Global function to click 'Confirm' button
   */

  var clickConfirm = function clickConfirm() {
    return getConfirmButton() && getConfirmButton().click();
  };
  /*
   * Global function to click 'Deny' button
   */

  var clickDeny = function clickDeny() {
    return getDenyButton() && getDenyButton().click();
  };
  /*
   * Global function to click 'Cancel' button
   */

  var clickCancel = function clickCancel() {
    return getCancelButton() && getCancelButton().click();
  };

  function fire() {
    var Swal = this;

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _construct(Swal, args);
  }

  /**
   * Returns an extended version of `Swal` containing `params` as defaults.
   * Useful for reusing Swal configuration.
   *
   * For example:
   *
   * Before:
   * const textPromptOptions = { input: 'text', showCancelButton: true }
   * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })
   * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })
   *
   * After:
   * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })
   * const {value: firstName} = await TextPrompt('What is your first name?')
   * const {value: lastName} = await TextPrompt('What is your last name?')
   *
   * @param mixinParams
   */
  function mixin(mixinParams) {
    var MixinSwal = /*#__PURE__*/function (_this) {
      _inherits(MixinSwal, _this);

      var _super = _createSuper(MixinSwal);

      function MixinSwal() {
        _classCallCheck(this, MixinSwal);

        return _super.apply(this, arguments);
      }

      _createClass(MixinSwal, [{
        key: "_main",
        value: function _main(params, priorityMixinParams) {
          return _get(_getPrototypeOf(MixinSwal.prototype), "_main", this).call(this, params, _extends({}, mixinParams, priorityMixinParams));
        }
      }]);

      return MixinSwal;
    }(this);

    return MixinSwal;
  }

  /**
   * Shows loader (spinner), this is useful with AJAX requests.
   * By default the loader be shown instead of the "Confirm" button.
   */

  var showLoading = function showLoading(buttonToReplace) {
    var popup = getPopup();

    if (!popup) {
      Swal.fire();
    }

    popup = getPopup();
    var actions = getActions();
    var loader = getLoader();

    if (!buttonToReplace && isVisible(getConfirmButton())) {
      buttonToReplace = getConfirmButton();
    }

    show(actions);

    if (buttonToReplace) {
      hide(buttonToReplace);
      loader.setAttribute('data-button-to-replace', buttonToReplace.className);
    }

    loader.parentNode.insertBefore(loader, buttonToReplace);
    addClass([popup, actions], swalClasses.loading);
    show(loader);
    popup.setAttribute('data-loading', true);
    popup.setAttribute('aria-busy', true);
    popup.focus();
  };

  var RESTORE_FOCUS_TIMEOUT = 100;

  var globalState = {};

  var focusPreviousActiveElement = function focusPreviousActiveElement() {
    if (globalState.previousActiveElement && globalState.previousActiveElement.focus) {
      globalState.previousActiveElement.focus();
      globalState.previousActiveElement = null;
    } else if (document.body) {
      document.body.focus();
    }
  }; // Restore previous active (focused) element


  var restoreActiveElement = function restoreActiveElement() {
    return new Promise(function (resolve) {
      var x = window.scrollX;
      var y = window.scrollY;
      globalState.restoreFocusTimeout = setTimeout(function () {
        focusPreviousActiveElement();
        resolve();
      }, RESTORE_FOCUS_TIMEOUT); // issues/900

      /* istanbul ignore if */

      if (typeof x !== 'undefined' && typeof y !== 'undefined') {
        // IE doesn't have scrollX/scrollY support
        window.scrollTo(x, y);
      }
    });
  };

  /**
   * If `timer` parameter is set, returns number of milliseconds of timer remained.
   * Otherwise, returns undefined.
   */

  var getTimerLeft = function getTimerLeft() {
    return globalState.timeout && globalState.timeout.getTimerLeft();
  };
  /**
   * Stop timer. Returns number of milliseconds of timer remained.
   * If `timer` parameter isn't set, returns undefined.
   */

  var stopTimer = function stopTimer() {
    if (globalState.timeout) {
      stopTimerProgressBar();
      return globalState.timeout.stop();
    }
  };
  /**
   * Resume timer. Returns number of milliseconds of timer remained.
   * If `timer` parameter isn't set, returns undefined.
   */

  var resumeTimer = function resumeTimer() {
    if (globalState.timeout) {
      var remaining = globalState.timeout.start();
      animateTimerProgressBar(remaining);
      return remaining;
    }
  };
  /**
   * Resume timer. Returns number of milliseconds of timer remained.
   * If `timer` parameter isn't set, returns undefined.
   */

  var toggleTimer = function toggleTimer() {
    var timer = globalState.timeout;
    return timer && (timer.running ? stopTimer() : resumeTimer());
  };
  /**
   * Increase timer. Returns number of milliseconds of an updated timer.
   * If `timer` parameter isn't set, returns undefined.
   */

  var increaseTimer = function increaseTimer(n) {
    if (globalState.timeout) {
      var remaining = globalState.timeout.increase(n);
      animateTimerProgressBar(remaining, true);
      return remaining;
    }
  };
  /**
   * Check if timer is running. Returns true if timer is running
   * or false if timer is paused or stopped.
   * If `timer` parameter isn't set, returns undefined
   */

  var isTimerRunning = function isTimerRunning() {
    return globalState.timeout && globalState.timeout.isRunning();
  };

  var bodyClickListenerAdded = false;
  var clickHandlers = {};
  function bindClickHandler() {
    var attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';
    clickHandlers[attr] = this;

    if (!bodyClickListenerAdded) {
      document.body.addEventListener('click', bodyClickListener);
      bodyClickListenerAdded = true;
    }
  }

  var bodyClickListener = function bodyClickListener(event) {
    // 1. using .parentNode instead of event.path because of better support by old browsers https://stackoverflow.com/a/39245638
    // 2. using .parentNode instead of .parentElement because of IE11 + SVG https://stackoverflow.com/a/36270354
    for (var el = event.target; el && el !== document; el = el.parentNode) {
      for (var attr in clickHandlers) {
        var template = el.getAttribute(attr);

        if (template) {
          clickHandlers[attr].fire({
            template: template
          });
          return;
        }
      }
    }
  };

  var defaultParams = {
    title: '',
    titleText: '',
    text: '',
    html: '',
    footer: '',
    icon: undefined,
    iconColor: undefined,
    iconHtml: undefined,
    template: undefined,
    toast: false,
    animation: true,
    showClass: {
      popup: 'swal2-show',
      backdrop: 'swal2-backdrop-show',
      icon: 'swal2-icon-show'
    },
    hideClass: {
      popup: 'swal2-hide',
      backdrop: 'swal2-backdrop-hide',
      icon: 'swal2-icon-hide'
    },
    customClass: {},
    target: 'body',
    backdrop: true,
    heightAuto: true,
    allowOutsideClick: true,
    allowEscapeKey: true,
    allowEnterKey: true,
    stopKeydownPropagation: true,
    keydownListenerCapture: false,
    showConfirmButton: true,
    showDenyButton: false,
    showCancelButton: false,
    preConfirm: undefined,
    preDeny: undefined,
    confirmButtonText: 'OK',
    confirmButtonAriaLabel: '',
    confirmButtonColor: undefined,
    denyButtonText: 'No',
    denyButtonAriaLabel: '',
    denyButtonColor: undefined,
    cancelButtonText: 'Cancel',
    cancelButtonAriaLabel: '',
    cancelButtonColor: undefined,
    buttonsStyling: true,
    reverseButtons: false,
    focusConfirm: true,
    focusDeny: false,
    focusCancel: false,
    showCloseButton: false,
    closeButtonHtml: '&times;',
    closeButtonAriaLabel: 'Close this dialog',
    loaderHtml: '',
    showLoaderOnConfirm: false,
    showLoaderOnDeny: false,
    imageUrl: undefined,
    imageWidth: undefined,
    imageHeight: undefined,
    imageAlt: '',
    timer: undefined,
    timerProgressBar: false,
    width: undefined,
    padding: undefined,
    background: undefined,
    input: undefined,
    inputPlaceholder: '',
    inputLabel: '',
    inputValue: '',
    inputOptions: {},
    inputAutoTrim: true,
    inputAttributes: {},
    inputValidator: undefined,
    returnInputValueOnDeny: false,
    validationMessage: undefined,
    grow: false,
    position: 'center',
    progressSteps: [],
    currentProgressStep: undefined,
    progressStepsDistance: undefined,
    onBeforeOpen: undefined,
    onOpen: undefined,
    willOpen: undefined,
    didOpen: undefined,
    onRender: undefined,
    didRender: undefined,
    onClose: undefined,
    onAfterClose: undefined,
    willClose: undefined,
    didClose: undefined,
    onDestroy: undefined,
    didDestroy: undefined,
    scrollbarPadding: true
  };
  var updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'onAfterClose', 'onClose', 'onDestroy', 'progressSteps', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];
  var deprecatedParams = {
    animation: 'showClass" and "hideClass',
    onBeforeOpen: 'willOpen',
    onOpen: 'didOpen',
    onRender: 'didRender',
    onClose: 'willClose',
    onAfterClose: 'didClose',
    onDestroy: 'didDestroy'
  };
  var toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'heightAuto', 'keydownListenerCapture'];
  /**
   * Is valid parameter
   * @param {String} paramName
   */

  var isValidParameter = function isValidParameter(paramName) {
    return Object.prototype.hasOwnProperty.call(defaultParams, paramName);
  };
  /**
   * Is valid parameter for Swal.update() method
   * @param {String} paramName
   */

  var isUpdatableParameter = function isUpdatableParameter(paramName) {
    return updatableParams.indexOf(paramName) !== -1;
  };
  /**
   * Is deprecated parameter
   * @param {String} paramName
   */

  var isDeprecatedParameter = function isDeprecatedParameter(paramName) {
    return deprecatedParams[paramName];
  };

  var checkIfParamIsValid = function checkIfParamIsValid(param) {
    if (!isValidParameter(param)) {
      warn("Unknown parameter \"".concat(param, "\""));
    }
  };

  var checkIfToastParamIsValid = function checkIfToastParamIsValid(param) {
    if (toastIncompatibleParams.indexOf(param) !== -1) {
      warn("The parameter \"".concat(param, "\" is incompatible with toasts"));
    }
  };

  var checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) {
    if (isDeprecatedParameter(param)) {
      warnAboutDeprecation(param, isDeprecatedParameter(param));
    }
  };
  /**
   * Show relevant warnings for given params
   *
   * @param params
   */


  var showWarningsForParams = function showWarningsForParams(params) {
    for (var param in params) {
      checkIfParamIsValid(param);

      if (params.toast) {
        checkIfToastParamIsValid(param);
      }

      checkIfParamIsDeprecated(param);
    }
  };



  var staticMethods = /*#__PURE__*/Object.freeze({
    isValidParameter: isValidParameter,
    isUpdatableParameter: isUpdatableParameter,
    isDeprecatedParameter: isDeprecatedParameter,
    argsToParams: argsToParams,
    isVisible: isVisible$1,
    clickConfirm: clickConfirm,
    clickDeny: clickDeny,
    clickCancel: clickCancel,
    getContainer: getContainer,
    getPopup: getPopup,
    getTitle: getTitle,
    getContent: getContent,
    getHtmlContainer: getHtmlContainer,
    getImage: getImage,
    getIcon: getIcon,
    getInputLabel: getInputLabel,
    getCloseButton: getCloseButton,
    getActions: getActions,
    getConfirmButton: getConfirmButton,
    getDenyButton: getDenyButton,
    getCancelButton: getCancelButton,
    getLoader: getLoader,
    getHeader: getHeader,
    getFooter: getFooter,
    getTimerProgressBar: getTimerProgressBar,
    getFocusableElements: getFocusableElements,
    getValidationMessage: getValidationMessage,
    isLoading: isLoading,
    fire: fire,
    mixin: mixin,
    queue: queue,
    getQueueStep: getQueueStep,
    insertQueueStep: insertQueueStep,
    deleteQueueStep: deleteQueueStep,
    showLoading: showLoading,
    enableLoading: showLoading,
    getTimerLeft: getTimerLeft,
    stopTimer: stopTimer,
    resumeTimer: resumeTimer,
    toggleTimer: toggleTimer,
    increaseTimer: increaseTimer,
    isTimerRunning: isTimerRunning,
    bindClickHandler: bindClickHandler
  });

  /**
   * Hides loader and shows back the button which was hidden by .showLoading()
   */

  function hideLoading() {
    // do nothing if popup is closed
    var innerParams = privateProps.innerParams.get(this);

    if (!innerParams) {
      return;
    }

    var domCache = privateProps.domCache.get(this);
    hide(domCache.loader);
    var buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));

    if (buttonToReplace.length) {
      show(buttonToReplace[0], 'inline-block');
    } else if (allButtonsAreHidden()) {
      hide(domCache.actions);
    }

    removeClass([domCache.popup, domCache.actions], swalClasses.loading);
    domCache.popup.removeAttribute('aria-busy');
    domCache.popup.removeAttribute('data-loading');
    domCache.confirmButton.disabled = false;
    domCache.denyButton.disabled = false;
    domCache.cancelButton.disabled = false;
  }

  function getInput$1(instance) {
    var innerParams = privateProps.innerParams.get(instance || this);
    var domCache = privateProps.domCache.get(instance || this);

    if (!domCache) {
      return null;
    }

    return getInput(domCache.content, innerParams.input);
  }

  var fixScrollbar = function fixScrollbar() {
    // for queues, do not do this more than once
    if (states.previousBodyPadding !== null) {
      return;
    } // if the body has overflow


    if (document.body.scrollHeight > window.innerHeight) {
      // add padding so the content doesn't shift after removal of scrollbar
      states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));
      document.body.style.paddingRight = "".concat(states.previousBodyPadding + measureScrollbar(), "px");
    }
  };
  var undoScrollbar = function undoScrollbar() {
    if (states.previousBodyPadding !== null) {
      document.body.style.paddingRight = "".concat(states.previousBodyPadding, "px");
      states.previousBodyPadding = null;
    }
  };

  /* istanbul ignore file */

  var iOSfix = function iOSfix() {
    var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;

    if (iOS && !hasClass(document.body, swalClasses.iosfix)) {
      var offset = document.body.scrollTop;
      document.body.style.top = "".concat(offset * -1, "px");
      addClass(document.body, swalClasses.iosfix);
      lockBodyScroll();
      addBottomPaddingForTallPopups(); // #1948
    }
  };

  var addBottomPaddingForTallPopups = function addBottomPaddingForTallPopups() {
    var safari = !navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i);

    if (safari) {
      var bottomPanelHeight = 44;

      if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {
        getContainer().style.paddingBottom = "".concat(bottomPanelHeight, "px");
      }
    }
  };

  var lockBodyScroll = function lockBodyScroll() {
    // #1246
    var container = getContainer();
    var preventTouchMove;

    container.ontouchstart = function (e) {
      preventTouchMove = shouldPreventTouchMove(e);
    };

    container.ontouchmove = function (e) {
      if (preventTouchMove) {
        e.preventDefault();
        e.stopPropagation();
      }
    };
  };

  var shouldPreventTouchMove = function shouldPreventTouchMove(event) {
    var target = event.target;
    var container = getContainer();

    if (isStylys(event) || isZoom(event)) {
      return false;
    }

    if (target === container) {
      return true;
    }

    if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603
    !(isScrollable(getContent()) && // #1944
    getContent().contains(target))) {
      return true;
    }

    return false;
  };

  var isStylys = function isStylys(event) {
    // #1786
    return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';
  };

  var isZoom = function isZoom(event) {
    // #1891
    return event.touches && event.touches.length > 1;
  };

  var undoIOSfix = function undoIOSfix() {
    if (hasClass(document.body, swalClasses.iosfix)) {
      var offset = parseInt(document.body.style.top, 10);
      removeClass(document.body, swalClasses.iosfix);
      document.body.style.top = '';
      document.body.scrollTop = offset * -1;
    }
  };

  /* istanbul ignore file */

  var isIE11 = function isIE11() {
    return !!window.MSInputMethodContext && !!document.documentMode;
  }; // Fix IE11 centering sweetalert2/issues/933


  var fixVerticalPositionIE = function fixVerticalPositionIE() {
    var container = getContainer();
    var popup = getPopup();
    container.style.removeProperty('align-items');

    if (popup.offsetTop < 0) {
      container.style.alignItems = 'flex-start';
    }
  };

  var IEfix = function IEfix() {
    if (typeof window !== 'undefined' && isIE11()) {
      fixVerticalPositionIE();
      window.addEventListener('resize', fixVerticalPositionIE);
    }
  };
  var undoIEfix = function undoIEfix() {
    if (typeof window !== 'undefined' && isIE11()) {
      window.removeEventListener('resize', fixVerticalPositionIE);
    }
  };

  // Adding aria-hidden="true" to elements outside of the active modal dialog ensures that
  // elements not within the active modal dialog will not be surfaced if a user opens a screen
  // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.

  var setAriaHidden = function setAriaHidden() {
    var bodyChildren = toArray(document.body.children);
    bodyChildren.forEach(function (el) {
      if (el === getContainer() || contains(el, getContainer())) {
        return;
      }

      if (el.hasAttribute('aria-hidden')) {
        el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));
      }

      el.setAttribute('aria-hidden', 'true');
    });
  };
  var unsetAriaHidden = function unsetAriaHidden() {
    var bodyChildren = toArray(document.body.children);
    bodyChildren.forEach(function (el) {
      if (el.hasAttribute('data-previous-aria-hidden')) {
        el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));
        el.removeAttribute('data-previous-aria-hidden');
      } else {
        el.removeAttribute('aria-hidden');
      }
    });
  };

  /**
   * This module containts `WeakMap`s for each effectively-"private  property" that a `Swal` has.
   * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
   * This is the approach that Babel will probably take to implement private methods/fields
   *   https://github.com/tc39/proposal-private-methods
   *   https://github.com/babel/babel/pull/7555
   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
   *   then we can use that language feature.
   */
  var privateMethods = {
    swalPromiseResolve: new WeakMap()
  };

  /*
   * Instance method to close sweetAlert
   */

  function removePopupAndResetState(instance, container, isToast$$1, didClose) {
    if (isToast$$1) {
      triggerDidCloseAndDispose(instance, didClose);
    } else {
      restoreActiveElement().then(function () {
        return triggerDidCloseAndDispose(instance, didClose);
      });
      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {
        capture: globalState.keydownListenerCapture
      });
      globalState.keydownHandlerAdded = false;
    }

    if (container.parentNode && !document.body.getAttribute('data-swal2-queue-step')) {
      container.parentNode.removeChild(container);
    }

    if (isModal()) {
      undoScrollbar();
      undoIOSfix();
      undoIEfix();
      unsetAriaHidden();
    }

    removeBodyClasses();
  }

  function removeBodyClasses() {
    removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['toast-column']]);
  }

  function close(resolveValue) {
    var popup = getPopup();

    if (!popup) {
      return;
    }

    resolveValue = prepareResolveValue(resolveValue);
    var innerParams = privateProps.innerParams.get(this);

    if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {
      return;
    }

    var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);
    removeClass(popup, innerParams.showClass.popup);
    addClass(popup, innerParams.hideClass.popup);
    var backdrop = getContainer();
    removeClass(backdrop, innerParams.showClass.backdrop);
    addClass(backdrop, innerParams.hideClass.backdrop);
    handlePopupAnimation(this, popup, innerParams); // Resolve Swal promise

    swalPromiseResolve(resolveValue);
  }

  var prepareResolveValue = function prepareResolveValue(resolveValue) {
    // When user calls Swal.close()
    if (typeof resolveValue === 'undefined') {
      return {
        isConfirmed: false,
        isDenied: false,
        isDismissed: true
      };
    }

    return _extends({
      isConfirmed: false,
      isDenied: false,
      isDismissed: false
    }, resolveValue);
  };

  var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) {
    var container = getContainer(); // If animation is supported, animate

    var animationIsSupported = animationEndEvent && hasCssAnimation(popup);
    var onClose = innerParams.onClose,
        onAfterClose = innerParams.onAfterClose,
        willClose = innerParams.willClose,
        didClose = innerParams.didClose;
    runDidClose(popup, willClose, onClose);

    if (animationIsSupported) {
      animatePopup(instance, popup, container, didClose || onAfterClose);
    } else {
      // Otherwise, remove immediately
      removePopupAndResetState(instance, container, isToast(), didClose || onAfterClose);
    }
  };

  var runDidClose = function runDidClose(popup, willClose, onClose) {
    if (willClose !== null && typeof willClose === 'function') {
      willClose(popup);
    } else if (onClose !== null && typeof onClose === 'function') {
      onClose(popup); // @deprecated
    }
  };

  var animatePopup = function animatePopup(instance, popup, container, didClose) {
    globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, isToast(), didClose);
    popup.addEventListener(animationEndEvent, function (e) {
      if (e.target === popup) {
        globalState.swalCloseEventFinishedCallback();
        delete globalState.swalCloseEventFinishedCallback;
      }
    });
  };

  var triggerDidCloseAndDispose = function triggerDidCloseAndDispose(instance, didClose) {
    setTimeout(function () {
      if (typeof didClose === 'function') {
        didClose();
      }

      instance._destroy();
    });
  };

  function setButtonsDisabled(instance, buttons, disabled) {
    var domCache = privateProps.domCache.get(instance);
    buttons.forEach(function (button) {
      domCache[button].disabled = disabled;
    });
  }

  function setInputDisabled(input, disabled) {
    if (!input) {
      return false;
    }

    if (input.type === 'radio') {
      var radiosContainer = input.parentNode.parentNode;
      var radios = radiosContainer.querySelectorAll('input');

      for (var i = 0; i < radios.length; i++) {
        radios[i].disabled = disabled;
      }
    } else {
      input.disabled = disabled;
    }
  }

  function enableButtons() {
    setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);
  }
  function disableButtons() {
    setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);
  }
  function enableInput() {
    return setInputDisabled(this.getInput(), false);
  }
  function disableInput() {
    return setInputDisabled(this.getInput(), true);
  }

  function showValidationMessage(error) {
    var domCache = privateProps.domCache.get(this);
    var params = privateProps.innerParams.get(this);
    setInnerHtml(domCache.validationMessage, error);
    domCache.validationMessage.className = swalClasses['validation-message'];

    if (params.customClass && params.customClass.validationMessage) {
      addClass(domCache.validationMessage, params.customClass.validationMessage);
    }

    show(domCache.validationMessage);
    var input = this.getInput();

    if (input) {
      input.setAttribute('aria-invalid', true);
      input.setAttribute('aria-describedBy', swalClasses['validation-message']);
      focusInput(input);
      addClass(input, swalClasses.inputerror);
    }
  } // Hide block with validation message

  function resetValidationMessage$1() {
    var domCache = privateProps.domCache.get(this);

    if (domCache.validationMessage) {
      hide(domCache.validationMessage);
    }

    var input = this.getInput();

    if (input) {
      input.removeAttribute('aria-invalid');
      input.removeAttribute('aria-describedBy');
      removeClass(input, swalClasses.inputerror);
    }
  }

  function getProgressSteps$1() {
    var domCache = privateProps.domCache.get(this);
    return domCache.progressSteps;
  }

  var Timer = /*#__PURE__*/function () {
    function Timer(callback, delay) {
      _classCallCheck(this, Timer);

      this.callback = callback;
      this.remaining = delay;
      this.running = false;
      this.start();
    }

    _createClass(Timer, [{
      key: "start",
      value: function start() {
        if (!this.running) {
          this.running = true;
          this.started = new Date();
          this.id = setTimeout(this.callback, this.remaining);
        }

        return this.remaining;
      }
    }, {
      key: "stop",
      value: function stop() {
        if (this.running) {
          this.running = false;
          clearTimeout(this.id);
          this.remaining -= new Date() - this.started;
        }

        return this.remaining;
      }
    }, {
      key: "increase",
      value: function increase(n) {
        var running = this.running;

        if (running) {
          this.stop();
        }

        this.remaining += n;

        if (running) {
          this.start();
        }

        return this.remaining;
      }
    }, {
      key: "getTimerLeft",
      value: function getTimerLeft() {
        if (this.running) {
          this.stop();
          this.start();
        }

        return this.remaining;
      }
    }, {
      key: "isRunning",
      value: function isRunning() {
        return this.running;
      }
    }]);

    return Timer;
  }();

  var defaultInputValidators = {
    email: function email(string, validationMessage) {
      return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');
    },
    url: function url(string, validationMessage) {
      // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013
      return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');
    }
  };

  function setDefaultInputValidators(params) {
    // Use default `inputValidator` for supported input types if not provided
    if (!params.inputValidator) {
      Object.keys(defaultInputValidators).forEach(function (key) {
        if (params.input === key) {
          params.inputValidator = defaultInputValidators[key];
        }
      });
    }
  }

  function validateCustomTargetElement(params) {
    // Determine if the custom target element is valid
    if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {
      warn('Target parameter is not valid, defaulting to "body"');
      params.target = 'body';
    }
  }
  /**
   * Set type, text and actions on popup
   *
   * @param params
   * @returns {boolean}
   */


  function setParameters(params) {
    setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm

    if (params.showLoaderOnConfirm && !params.preConfirm) {
      warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\n' + 'https://sweetalert2.github.io/#ajax-request');
    } // params.animation will be actually used in renderPopup.js
    // but in case when params.animation is a function, we need to call that function
    // before popup (re)initialization, so it'll be possible to check Swal.isVisible()
    // inside the params.animation function


    params.animation = callIfFunction(params.animation);
    validateCustomTargetElement(params); // Replace newlines with <br> in title

    if (typeof params.title === 'string') {
      params.title = params.title.split('\n').join('<br />');
    }

    init(params);
  }

  var swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];
  var getTemplateParams = function getTemplateParams(params) {
    var template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;

    if (!template) {
      return {};
    }

    var templateContent = template.content || template; // IE11

    showWarningsForElements(templateContent);

    var result = _extends(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));

    return result;
  };

  var getSwalParams = function getSwalParams(templateContent) {
    var result = {};
    toArray(templateContent.querySelectorAll('swal-param')).forEach(function (param) {
      showWarningsForAttributes(param, ['name', 'value']);
      var paramName = param.getAttribute('name');
      var value = param.getAttribute('value');

      if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {
        value = false;
      }

      if (_typeof(defaultParams[paramName]) === 'object') {
        value = JSON.parse(value);
      }

      result[paramName] = value;
    });
    return result;
  };

  var getSwalButtons = function getSwalButtons(templateContent) {
    var result = {};
    toArray(templateContent.querySelectorAll('swal-button')).forEach(function (button) {
      showWarningsForAttributes(button, ['type', 'color', 'aria-label']);
      var type = button.getAttribute('type');
      result["".concat(type, "ButtonText")] = button.innerHTML;
      result["show".concat(capitalizeFirstLetter(type), "Button")] = true;

      if (button.hasAttribute('color')) {
        result["".concat(type, "ButtonColor")] = button.getAttribute('color');
      }

      if (button.hasAttribute('aria-label')) {
        result["".concat(type, "ButtonAriaLabel")] = button.getAttribute('aria-label');
      }
    });
    return result;
  };

  var getSwalImage = function getSwalImage(templateContent) {
    var result = {};
    var image = templateContent.querySelector('swal-image');

    if (image) {
      showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);

      if (image.hasAttribute('src')) {
        result.imageUrl = image.getAttribute('src');
      }

      if (image.hasAttribute('width')) {
        result.imageWidth = image.getAttribute('width');
      }

      if (image.hasAttribute('height')) {
        result.imageHeight = image.getAttribute('height');
      }

      if (image.hasAttribute('alt')) {
        result.imageAlt = image.getAttribute('alt');
      }
    }

    return result;
  };

  var getSwalIcon = function getSwalIcon(templateContent) {
    var result = {};
    var icon = templateContent.querySelector('swal-icon');

    if (icon) {
      showWarningsForAttributes(icon, ['type', 'color']);

      if (icon.hasAttribute('type')) {
        result.icon = icon.getAttribute('type');
      }

      if (icon.hasAttribute('color')) {
        result.iconColor = icon.getAttribute('color');
      }

      result.iconHtml = icon.innerHTML;
    }

    return result;
  };

  var getSwalInput = function getSwalInput(templateContent) {
    var result = {};
    var input = templateContent.querySelector('swal-input');

    if (input) {
      showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);
      result.input = input.getAttribute('type') || 'text';

      if (input.hasAttribute('label')) {
        result.inputLabel = input.getAttribute('label');
      }

      if (input.hasAttribute('placeholder')) {
        result.inputPlaceholder = input.getAttribute('placeholder');
      }

      if (input.hasAttribute('value')) {
        result.inputValue = input.getAttribute('value');
      }
    }

    var inputOptions = templateContent.querySelectorAll('swal-input-option');

    if (inputOptions.length) {
      result.inputOptions = {};
      toArray(inputOptions).forEach(function (option) {
        showWarningsForAttributes(option, ['value']);
        var optionValue = option.getAttribute('value');
        var optionName = option.innerHTML;
        result.inputOptions[optionValue] = optionName;
      });
    }

    return result;
  };

  var getSwalStringParams = function getSwalStringParams(templateContent, paramNames) {
    var result = {};

    for (var i in paramNames) {
      var paramName = paramNames[i];
      var tag = templateContent.querySelector(paramName);

      if (tag) {
        showWarningsForAttributes(tag, []);
        result[paramName.replace(/^swal-/, '')] = tag.innerHTML;
      }
    }

    return result;
  };

  var showWarningsForElements = function showWarningsForElements(template) {
    var allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);
    toArray(template.querySelectorAll('*')).forEach(function (el) {
      if (el.parentNode !== template) {
        // can't use template.children because of IE11
        return;
      }

      var tagName = el.tagName.toLowerCase();

      if (allowedElements.indexOf(tagName) === -1) {
        warn("Unrecognized element <".concat(tagName, ">"));
      }
    });
  };

  var showWarningsForAttributes = function showWarningsForAttributes(el, allowedAttributes) {
    toArray(el.attributes).forEach(function (attribute) {
      if (allowedAttributes.indexOf(attribute.name) === -1) {
        warn(["Unrecognized attribute \"".concat(attribute.name, "\" on <").concat(el.tagName.toLowerCase(), ">."), "".concat(allowedAttributes.length ? "Allowed attributes are: ".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);
      }
    });
  };

  var SHOW_CLASS_TIMEOUT = 10;
  /**
   * Open popup, add necessary classes and styles, fix scrollbar
   *
   * @param params
   */

  var openPopup = function openPopup(params) {
    var container = getContainer();
    var popup = getPopup();

    if (typeof params.willOpen === 'function') {
      params.willOpen(popup);
    } else if (typeof params.onBeforeOpen === 'function') {
      params.onBeforeOpen(popup); // @deprecated
    }

    var bodyStyles = window.getComputedStyle(document.body);
    var initialBodyOverflow = bodyStyles.overflowY;
    addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'

    setTimeout(function () {
      setScrollingVisibility(container, popup);
    }, SHOW_CLASS_TIMEOUT);

    if (isModal()) {
      fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);
      setAriaHidden();
    }

    if (!isToast() && !globalState.previousActiveElement) {
      globalState.previousActiveElement = document.activeElement;
    }

    runDidOpen(popup, params);
    removeClass(container, swalClasses['no-transition']);
  };

  var runDidOpen = function runDidOpen(popup, params) {
    if (typeof params.didOpen === 'function') {
      setTimeout(function () {
        return params.didOpen(popup);
      });
    } else if (typeof params.onOpen === 'function') {
      setTimeout(function () {
        return params.onOpen(popup);
      }); // @deprecated
    }
  };

  var swalOpenAnimationFinished = function swalOpenAnimationFinished(event) {
    var popup = getPopup();

    if (event.target !== popup) {
      return;
    }

    var container = getContainer();
    popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);
    container.style.overflowY = 'auto';
  };

  var setScrollingVisibility = function setScrollingVisibility(container, popup) {
    if (animationEndEvent && hasCssAnimation(popup)) {
      container.style.overflowY = 'hidden';
      popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);
    } else {
      container.style.overflowY = 'auto';
    }
  };

  var fixScrollContainer = function fixScrollContainer(container, scrollbarPadding, initialBodyOverflow) {
    iOSfix();
    IEfix();

    if (scrollbarPadding && initialBodyOverflow !== 'hidden') {
      fixScrollbar();
    } // sweetalert2/issues/1247


    setTimeout(function () {
      container.scrollTop = 0;
    });
  };

  var addClasses$1 = function addClasses(container, popup, params) {
    addClass(container, params.showClass.backdrop); // the workaround with setting/unsetting opacity is needed for #2019 and 2059

    popup.style.setProperty('opacity', '0', 'important');
    show(popup);
    setTimeout(function () {
      // Animate popup right after showing it
      addClass(popup, params.showClass.popup); // and remove the opacity workaround

      popup.style.removeProperty('opacity');
    }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062

    addClass([document.documentElement, document.body], swalClasses.shown);

    if (params.heightAuto && params.backdrop && !params.toast) {
      addClass([document.documentElement, document.body], swalClasses['height-auto']);
    }
  };

  var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) {
    if (params.input === 'select' || params.input === 'radio') {
      handleInputOptions(instance, params);
    } else if (['text', 'email', 'number', 'tel', 'textarea'].indexOf(params.input) !== -1 && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {
      handleInputValue(instance, params);
    }
  };
  var getInputValue = function getInputValue(instance, innerParams) {
    var input = instance.getInput();

    if (!input) {
      return null;
    }

    switch (innerParams.input) {
      case 'checkbox':
        return getCheckboxValue(input);

      case 'radio':
        return getRadioValue(input);

      case 'file':
        return getFileValue(input);

      default:
        return innerParams.inputAutoTrim ? input.value.trim() : input.value;
    }
  };

  var getCheckboxValue = function getCheckboxValue(input) {
    return input.checked ? 1 : 0;
  };

  var getRadioValue = function getRadioValue(input) {
    return input.checked ? input.value : null;
  };

  var getFileValue = function getFileValue(input) {
    return input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;
  };

  var handleInputOptions = function handleInputOptions(instance, params) {
    var content = getContent();

    var processInputOptions = function processInputOptions(inputOptions) {
      return populateInputOptions[params.input](content, formatInputOptions(inputOptions), params);
    };

    if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {
      showLoading(getConfirmButton());
      asPromise(params.inputOptions).then(function (inputOptions) {
        instance.hideLoading();
        processInputOptions(inputOptions);
      });
    } else if (_typeof(params.inputOptions) === 'object') {
      processInputOptions(params.inputOptions);
    } else {
      error("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(_typeof(params.inputOptions)));
    }
  };

  var handleInputValue = function handleInputValue(instance, params) {
    var input = instance.getInput();
    hide(input);
    asPromise(params.inputValue).then(function (inputValue) {
      input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : "".concat(inputValue);
      show(input);
      input.focus();
      instance.hideLoading();
    })["catch"](function (err) {
      error("Error in inputValue promise: ".concat(err));
      input.value = '';
      show(input);
      input.focus();
      instance.hideLoading();
    });
  };

  var populateInputOptions = {
    select: function select(content, inputOptions, params) {
      var select = getChildByClass(content, swalClasses.select);

      var renderOption = function renderOption(parent, optionLabel, optionValue) {
        var option = document.createElement('option');
        option.value = optionValue;
        setInnerHtml(option, optionLabel);
        option.selected = isSelected(optionValue, params.inputValue);
        parent.appendChild(option);
      };

      inputOptions.forEach(function (inputOption) {
        var optionValue = inputOption[0];
        var optionLabel = inputOption[1]; // <optgroup> spec:
        // https://www.w3.org/TR/html401/interact/forms.html#h-17.6
        // "...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)..."
        // check whether this is a <optgroup>

        if (Array.isArray(optionLabel)) {
          // if it is an array, then it is an <optgroup>
          var optgroup = document.createElement('optgroup');
          optgroup.label = optionValue;
          optgroup.disabled = false; // not configurable for now

          select.appendChild(optgroup);
          optionLabel.forEach(function (o) {
            return renderOption(optgroup, o[1], o[0]);
          });
        } else {
          // case of <option>
          renderOption(select, optionLabel, optionValue);
        }
      });
      select.focus();
    },
    radio: function radio(content, inputOptions, params) {
      var radio = getChildByClass(content, swalClasses.radio);
      inputOptions.forEach(function (inputOption) {
        var radioValue = inputOption[0];
        var radioLabel = inputOption[1];
        var radioInput = document.createElement('input');
        var radioLabelElement = document.createElement('label');
        radioInput.type = 'radio';
        radioInput.name = swalClasses.radio;
        radioInput.value = radioValue;

        if (isSelected(radioValue, params.inputValue)) {
          radioInput.checked = true;
        }

        var label = document.createElement('span');
        setInnerHtml(label, radioLabel);
        label.className = swalClasses.label;
        radioLabelElement.appendChild(radioInput);
        radioLabelElement.appendChild(label);
        radio.appendChild(radioLabelElement);
      });
      var radios = radio.querySelectorAll('input');

      if (radios.length) {
        radios[0].focus();
      }
    }
  };
  /**
   * Converts `inputOptions` into an array of `[value, label]`s
   * @param inputOptions
   */

  var formatInputOptions = function formatInputOptions(inputOptions) {
    var result = [];

    if (typeof Map !== 'undefined' && inputOptions instanceof Map) {
      inputOptions.forEach(function (value, key) {
        var valueFormatted = value;

        if (_typeof(valueFormatted) === 'object') {
          // case of <optgroup>
          valueFormatted = formatInputOptions(valueFormatted);
        }

        result.push([key, valueFormatted]);
      });
    } else {
      Object.keys(inputOptions).forEach(function (key) {
        var valueFormatted = inputOptions[key];

        if (_typeof(valueFormatted) === 'object') {
          // case of <optgroup>
          valueFormatted = formatInputOptions(valueFormatted);
        }

        result.push([key, valueFormatted]);
      });
    }

    return result;
  };

  var isSelected = function isSelected(optionValue, inputValue) {
    return inputValue && inputValue.toString() === optionValue.toString();
  };

  var handleConfirmButtonClick = function handleConfirmButtonClick(instance, innerParams) {
    instance.disableButtons();

    if (innerParams.input) {
      handleConfirmOrDenyWithInput(instance, innerParams, 'confirm');
    } else {
      confirm(instance, innerParams, true);
    }
  };
  var handleDenyButtonClick = function handleDenyButtonClick(instance, innerParams) {
    instance.disableButtons();

    if (innerParams.returnInputValueOnDeny) {
      handleConfirmOrDenyWithInput(instance, innerParams, 'deny');
    } else {
      deny(instance, innerParams, false);
    }
  };
  var handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) {
    instance.disableButtons();
    dismissWith(DismissReason.cancel);
  };

  var handleConfirmOrDenyWithInput = function handleConfirmOrDenyWithInput(instance, innerParams, type
  /* type is either 'confirm' or 'deny' */
  ) {
    var inputValue = getInputValue(instance, innerParams);

    if (innerParams.inputValidator) {
      handleInputValidator(instance, innerParams, inputValue);
    } else if (!instance.getInput().checkValidity()) {
      instance.enableButtons();
      instance.showValidationMessage(innerParams.validationMessage);
    } else if (type === 'deny') {
      deny(instance, innerParams, inputValue);
    } else {
      confirm(instance, innerParams, inputValue);
    }
  };

  var handleInputValidator = function handleInputValidator(instance, innerParams, inputValue) {
    instance.disableInput();
    var validationPromise = Promise.resolve().then(function () {
      return asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage));
    });
    validationPromise.then(function (validationMessage) {
      instance.enableButtons();
      instance.enableInput();

      if (validationMessage) {
        instance.showValidationMessage(validationMessage);
      } else {
        confirm(instance, innerParams, inputValue);
      }
    });
  };

  var deny = function deny(instance, innerParams, value) {
    if (innerParams.showLoaderOnDeny) {
      showLoading(getDenyButton());
    }

    if (innerParams.preDeny) {
      var preDenyPromise = Promise.resolve().then(function () {
        return asPromise(innerParams.preDeny(value, innerParams.validationMessage));
      });
      preDenyPromise.then(function (preDenyValue) {
        if (preDenyValue === false) {
          instance.hideLoading();
        } else {
          instance.closePopup({
            isDenied: true,
            value: typeof preDenyValue === 'undefined' ? value : preDenyValue
          });
        }
      });
    } else {
      instance.closePopup({
        isDenied: true,
        value: value
      });
    }
  };

  var succeedWith = function succeedWith(instance, value) {
    instance.closePopup({
      isConfirmed: true,
      value: value
    });
  };

  var confirm = function confirm(instance, innerParams, value) {
    if (innerParams.showLoaderOnConfirm) {
      showLoading(); // TODO: make showLoading an *instance* method
    }

    if (innerParams.preConfirm) {
      instance.resetValidationMessage();
      var preConfirmPromise = Promise.resolve().then(function () {
        return asPromise(innerParams.preConfirm(value, innerParams.validationMessage));
      });
      preConfirmPromise.then(function (preConfirmValue) {
        if (isVisible(getValidationMessage()) || preConfirmValue === false) {
          instance.hideLoading();
        } else {
          succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);
        }
      });
    } else {
      succeedWith(instance, value);
    }
  };

  var addKeydownHandler = function addKeydownHandler(instance, globalState, innerParams, dismissWith) {
    if (globalState.keydownTarget && globalState.keydownHandlerAdded) {
      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {
        capture: globalState.keydownListenerCapture
      });
      globalState.keydownHandlerAdded = false;
    }

    if (!innerParams.toast) {
      globalState.keydownHandler = function (e) {
        return keydownHandler(instance, e, dismissWith);
      };

      globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();
      globalState.keydownListenerCapture = innerParams.keydownListenerCapture;
      globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {
        capture: globalState.keydownListenerCapture
      });
      globalState.keydownHandlerAdded = true;
    }
  }; // Focus handling

  var setFocus = function setFocus(innerParams, index, increment) {
    var focusableElements = getFocusableElements(); // search for visible elements and select the next possible match

    if (focusableElements.length) {
      index = index + increment; // rollover to first item

      if (index === focusableElements.length) {
        index = 0; // go to last item
      } else if (index === -1) {
        index = focusableElements.length - 1;
      }

      return focusableElements[index].focus();
    } // no visible focusable elements, focus the popup


    getPopup().focus();
  };
  var arrowKeysNextButton = ['ArrowRight', 'ArrowDown', 'Right', 'Down' // IE11
  ];
  var arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp', 'Left', 'Up' // IE11
  ];
  var escKeys = ['Escape', 'Esc' // IE11
  ];

  var keydownHandler = function keydownHandler(instance, e, dismissWith) {
    var innerParams = privateProps.innerParams.get(instance);

    if (innerParams.stopKeydownPropagation) {
      e.stopPropagation();
    } // ENTER


    if (e.key === 'Enter') {
      handleEnter(instance, e, innerParams); // TAB
    } else if (e.key === 'Tab') {
      handleTab(e, innerParams); // ARROWS - switch focus between buttons
    } else if ([].concat(arrowKeysNextButton, arrowKeysPreviousButton).indexOf(e.key) !== -1) {
      handleArrows(e.key); // ESC
    } else if (escKeys.indexOf(e.key) !== -1) {
      handleEsc(e, innerParams, dismissWith);
    }
  };

  var handleEnter = function handleEnter(instance, e, innerParams) {
    // #720 #721
    if (e.isComposing) {
      return;
    }

    if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) {
      if (['textarea', 'file'].indexOf(innerParams.input) !== -1) {
        return; // do not submit
      }

      clickConfirm();
      e.preventDefault();
    }
  };

  var handleTab = function handleTab(e, innerParams) {
    var targetElement = e.target;
    var focusableElements = getFocusableElements();
    var btnIndex = -1;

    for (var i = 0; i < focusableElements.length; i++) {
      if (targetElement === focusableElements[i]) {
        btnIndex = i;
        break;
      }
    }

    if (!e.shiftKey) {
      // Cycle to the next button
      setFocus(innerParams, btnIndex, 1);
    } else {
      // Cycle to the prev button
      setFocus(innerParams, btnIndex, -1);
    }

    e.stopPropagation();
    e.preventDefault();
  };

  var handleArrows = function handleArrows(key) {
    var confirmButton = getConfirmButton();
    var denyButton = getDenyButton();
    var cancelButton = getCancelButton();

    if (!([confirmButton, denyButton, cancelButton].indexOf(document.activeElement) !== -1)) {
      return;
    }

    var sibling = arrowKeysNextButton.indexOf(key) !== -1 ? 'nextElementSibling' : 'previousElementSibling';
    var buttonToFocus = document.activeElement[sibling];

    if (buttonToFocus) {
      buttonToFocus.focus();
    }
  };

  var handleEsc = function handleEsc(e, innerParams, dismissWith) {
    if (callIfFunction(innerParams.allowEscapeKey)) {
      e.preventDefault();
      dismissWith(DismissReason.esc);
    }
  };

  var handlePopupClick = function handlePopupClick(instance, domCache, dismissWith) {
    var innerParams = privateProps.innerParams.get(instance);

    if (innerParams.toast) {
      handleToastClick(instance, domCache, dismissWith);
    } else {
      // Ignore click events that had mousedown on the popup but mouseup on the container
      // This can happen when the user drags a slider
      handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup

      handleContainerMousedown(domCache);
      handleModalClick(instance, domCache, dismissWith);
    }
  };

  var handleToastClick = function handleToastClick(instance, domCache, dismissWith) {
    // Closing toast by internal click
    domCache.popup.onclick = function () {
      var innerParams = privateProps.innerParams.get(instance);

      if (innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.timer || innerParams.input) {
        return;
      }

      dismissWith(DismissReason.close);
    };
  };

  var ignoreOutsideClick = false;

  var handleModalMousedown = function handleModalMousedown(domCache) {
    domCache.popup.onmousedown = function () {
      domCache.container.onmouseup = function (e) {
        domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't
        // have any other direct children aside of the popup

        if (e.target === domCache.container) {
          ignoreOutsideClick = true;
        }
      };
    };
  };

  var handleContainerMousedown = function handleContainerMousedown(domCache) {
    domCache.container.onmousedown = function () {
      domCache.popup.onmouseup = function (e) {
        domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup

        if (e.target === domCache.popup || domCache.popup.contains(e.target)) {
          ignoreOutsideClick = true;
        }
      };
    };
  };

  var handleModalClick = function handleModalClick(instance, domCache, dismissWith) {
    domCache.container.onclick = function (e) {
      var innerParams = privateProps.innerParams.get(instance);

      if (ignoreOutsideClick) {
        ignoreOutsideClick = false;
        return;
      }

      if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {
        dismissWith(DismissReason.backdrop);
      }
    };
  };

  function _main(userParams) {
    var mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    showWarningsForParams(_extends({}, mixinParams, userParams));

    if (globalState.currentInstance) {
      globalState.currentInstance._destroy();
    }

    globalState.currentInstance = this;
    var innerParams = prepareParams(userParams, mixinParams);
    setParameters(innerParams);
    Object.freeze(innerParams); // clear the previous timer

    if (globalState.timeout) {
      globalState.timeout.stop();
      delete globalState.timeout;
    } // clear the restore focus timeout


    clearTimeout(globalState.restoreFocusTimeout);
    var domCache = populateDomCache(this);
    render(this, innerParams);
    privateProps.innerParams.set(this, innerParams);
    return swalPromise(this, domCache, innerParams);
  }

  var prepareParams = function prepareParams(userParams, mixinParams) {
    var templateParams = getTemplateParams(userParams);

    var showClass = _extends({}, defaultParams.showClass, mixinParams.showClass, templateParams.showClass, userParams.showClass);

    var hideClass = _extends({}, defaultParams.hideClass, mixinParams.hideClass, templateParams.hideClass, userParams.hideClass);

    var params = _extends({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131


    params.showClass = showClass;
    params.hideClass = hideClass; // @deprecated

    if (userParams.animation === false) {
      params.showClass = {
        popup: 'swal2-noanimation',
        backdrop: 'swal2-noanimation'
      };
      params.hideClass = {};
    }

    return params;
  };

  var swalPromise = function swalPromise(instance, domCache, innerParams) {
    return new Promise(function (resolve) {
      // functions to handle all closings/dismissals
      var dismissWith = function dismissWith(dismiss) {
        instance.closePopup({
          isDismissed: true,
          dismiss: dismiss
        });
      };

      privateMethods.swalPromiseResolve.set(instance, resolve);

      domCache.confirmButton.onclick = function () {
        return handleConfirmButtonClick(instance, innerParams);
      };

      domCache.denyButton.onclick = function () {
        return handleDenyButtonClick(instance, innerParams);
      };

      domCache.cancelButton.onclick = function () {
        return handleCancelButtonClick(instance, dismissWith);
      };

      domCache.closeButton.onclick = function () {
        return dismissWith(DismissReason.close);
      };

      handlePopupClick(instance, domCache, dismissWith);
      addKeydownHandler(instance, globalState, innerParams, dismissWith);

      if (innerParams.toast && (innerParams.input || innerParams.footer || innerParams.showCloseButton)) {
        addClass(document.body, swalClasses['toast-column']);
      } else {
        removeClass(document.body, swalClasses['toast-column']);
      }

      handleInputOptionsAndValue(instance, innerParams);
      openPopup(innerParams);
      setupTimer(globalState, innerParams, dismissWith);
      initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)

      setTimeout(function () {
        domCache.container.scrollTop = 0;
      });
    });
  };

  var populateDomCache = function populateDomCache(instance) {
    var domCache = {
      popup: getPopup(),
      container: getContainer(),
      content: getContent(),
      actions: getActions(),
      confirmButton: getConfirmButton(),
      denyButton: getDenyButton(),
      cancelButton: getCancelButton(),
      loader: getLoader(),
      closeButton: getCloseButton(),
      validationMessage: getValidationMessage(),
      progressSteps: getProgressSteps()
    };
    privateProps.domCache.set(instance, domCache);
    return domCache;
  };

  var setupTimer = function setupTimer(globalState$$1, innerParams, dismissWith) {
    var timerProgressBar = getTimerProgressBar();
    hide(timerProgressBar);

    if (innerParams.timer) {
      globalState$$1.timeout = new Timer(function () {
        dismissWith('timer');
        delete globalState$$1.timeout;
      }, innerParams.timer);

      if (innerParams.timerProgressBar) {
        show(timerProgressBar);
        setTimeout(function () {
          if (globalState$$1.timeout && globalState$$1.timeout.running) {
            // timer can be already stopped or unset at this point
            animateTimerProgressBar(innerParams.timer);
          }
        });
      }
    }
  };

  var initFocus = function initFocus(domCache, innerParams) {
    if (innerParams.toast) {
      return;
    }

    if (!callIfFunction(innerParams.allowEnterKey)) {
      return blurActiveElement();
    }

    if (!focusButton(domCache, innerParams)) {
      setFocus(innerParams, -1, 1);
    }
  };

  var focusButton = function focusButton(domCache, innerParams) {
    if (innerParams.focusDeny && isVisible(domCache.denyButton)) {
      domCache.denyButton.focus();
      return true;
    }

    if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {
      domCache.cancelButton.focus();
      return true;
    }

    if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {
      domCache.confirmButton.focus();
      return true;
    }

    return false;
  };

  var blurActiveElement = function blurActiveElement() {
    if (document.activeElement && typeof document.activeElement.blur === 'function') {
      document.activeElement.blur();
    }
  };

  /**
   * Updates popup parameters.
   */

  function update(params) {
    var popup = getPopup();
    var innerParams = privateProps.innerParams.get(this);

    if (!popup || hasClass(popup, innerParams.hideClass.popup)) {
      return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");
    }

    var validUpdatableParams = {}; // assign valid params from `params` to `defaults`

    Object.keys(params).forEach(function (param) {
      if (Swal.isUpdatableParameter(param)) {
        validUpdatableParams[param] = params[param];
      } else {
        warn("Invalid parameter to update: \"".concat(param, "\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md"));
      }
    });

    var updatedParams = _extends({}, innerParams, validUpdatableParams);

    render(this, updatedParams);
    privateProps.innerParams.set(this, updatedParams);
    Object.defineProperties(this, {
      params: {
        value: _extends({}, this.params, params),
        writable: false,
        enumerable: true
      }
    });
  }

  function _destroy() {
    var domCache = privateProps.domCache.get(this);
    var innerParams = privateProps.innerParams.get(this);

    if (!innerParams) {
      return; // This instance has already been destroyed
    } // Check if there is another Swal closing


    if (domCache.popup && globalState.swalCloseEventFinishedCallback) {
      globalState.swalCloseEventFinishedCallback();
      delete globalState.swalCloseEventFinishedCallback;
    } // Check if there is a swal disposal defer timer


    if (globalState.deferDisposalTimer) {
      clearTimeout(globalState.deferDisposalTimer);
      delete globalState.deferDisposalTimer;
    }

    runDidDestroy(innerParams);
    disposeSwal(this);
  }

  var runDidDestroy = function runDidDestroy(innerParams) {
    if (typeof innerParams.didDestroy === 'function') {
      innerParams.didDestroy();
    } else if (typeof innerParams.onDestroy === 'function') {
      innerParams.onDestroy(); // @deprecated
    }
  };

  var disposeSwal = function disposeSwal(instance) {
    // Unset this.params so GC will dispose it (#1569)
    delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)

    delete globalState.keydownHandler;
    delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569)

    unsetWeakMaps(privateProps);
    unsetWeakMaps(privateMethods);
  };

  var unsetWeakMaps = function unsetWeakMaps(obj) {
    for (var i in obj) {
      obj[i] = new WeakMap();
    }
  };



  var instanceMethods = /*#__PURE__*/Object.freeze({
    hideLoading: hideLoading,
    disableLoading: hideLoading,
    getInput: getInput$1,
    close: close,
    closePopup: close,
    closeModal: close,
    closeToast: close,
    enableButtons: enableButtons,
    disableButtons: disableButtons,
    enableInput: enableInput,
    disableInput: disableInput,
    showValidationMessage: showValidationMessage,
    resetValidationMessage: resetValidationMessage$1,
    getProgressSteps: getProgressSteps$1,
    _main: _main,
    update: update,
    _destroy: _destroy
  });

  var currentInstance;

  var SweetAlert = /*#__PURE__*/function () {
    function SweetAlert() {
      _classCallCheck(this, SweetAlert);

      // Prevent run in Node env
      if (typeof window === 'undefined') {
        return;
      } // Check for the existence of Promise


      if (typeof Promise === 'undefined') {
        error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)');
      }

      currentInstance = this;

      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }

      var outerParams = Object.freeze(this.constructor.argsToParams(args));
      Object.defineProperties(this, {
        params: {
          value: outerParams,
          writable: false,
          enumerable: true,
          configurable: true
        }
      });

      var promise = this._main(this.params);

      privateProps.promise.set(this, promise);
    } // `catch` cannot be the name of a module export, so we define our thenable methods here instead


    _createClass(SweetAlert, [{
      key: "then",
      value: function then(onFulfilled) {
        var promise = privateProps.promise.get(this);
        return promise.then(onFulfilled);
      }
    }, {
      key: "finally",
      value: function _finally(onFinally) {
        var promise = privateProps.promise.get(this);
        return promise["finally"](onFinally);
      }
    }]);

    return SweetAlert;
  }(); // Assign instance methods from src/instanceMethods/*.js to prototype


  _extends(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor


  _extends(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility


  Object.keys(instanceMethods).forEach(function (key) {
    SweetAlert[key] = function () {
      if (currentInstance) {
        var _currentInstance;

        return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments);
      }
    };
  });
  SweetAlert.DismissReason = DismissReason;
  SweetAlert.version = '10.15.5';

  var Swal = SweetAlert;
  Swal["default"] = Swal;

  return Swal;

}));
if (typeof this !== 'undefined' && this.Sweetalert2){  this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}

"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;padding:0;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:.125em .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(100,150,200,.5)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:5px;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0 1.6em}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#2778c4;color:#fff;font-size:1.0625em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#d14529;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#757575;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto}.swal2-validation-message{display:none;align-items:center;justify-content:center;margin:0 -2.7em;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}");

/***/ }),

/***/ "./node_modules/tether/dist/js/tether.js":
/*!***********************************************!*\
  !*** ./node_modules/tether/dist/js/tether.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! tether 1.4.7 */

(function(root, factory) {
  if (true) {
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  } else {}
}(this, function() {

'use strict';

var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }

var TetherBase = undefined;
if (typeof TetherBase === 'undefined') {
  TetherBase = { modules: [] };
}

var zeroElement = null;

// Same as native getBoundingClientRect, except it takes into account parent <frame> offsets
// if the element lies within a nested document (<frame> or <iframe>-like).
function getActualBoundingClientRect(node) {
  var boundingRect = node.getBoundingClientRect();

  // The original object returned by getBoundingClientRect is immutable, so we clone it
  // We can't use extend because the properties are not considered part of the object by hasOwnProperty in IE9
  var rect = {};
  for (var k in boundingRect) {
    rect[k] = boundingRect[k];
  }

  try {
    if (node.ownerDocument !== document) {
      var _frameElement = node.ownerDocument.defaultView.frameElement;
      if (_frameElement) {
        var frameRect = getActualBoundingClientRect(_frameElement);
        rect.top += frameRect.top;
        rect.bottom += frameRect.top;
        rect.left += frameRect.left;
        rect.right += frameRect.left;
      }
    }
  } catch (err) {
    // Ignore "Access is denied" in IE11/Edge
  }

  return rect;
}

function getScrollParents(el) {
  // In firefox if the el is inside an iframe with display: none; window.getComputedStyle() will return null;
  // https://bugzilla.mozilla.org/show_bug.cgi?id=548397
  var computedStyle = getComputedStyle(el) || {};
  var position = computedStyle.position;
  var parents = [];

  if (position === 'fixed') {
    return [el];
  }

  var parent = el;
  while ((parent = parent.parentNode) && parent && parent.nodeType === 1) {
    var style = undefined;
    try {
      style = getComputedStyle(parent);
    } catch (err) {}

    if (typeof style === 'undefined' || style === null) {
      parents.push(parent);
      return parents;
    }

    var _style = style;
    var overflow = _style.overflow;
    var overflowX = _style.overflowX;
    var overflowY = _style.overflowY;

    if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
      if (position !== 'absolute' || ['relative', 'absolute', 'fixed'].indexOf(style.position) >= 0) {
        parents.push(parent);
      }
    }
  }

  parents.push(el.ownerDocument.body);

  // If the node is within a frame, account for the parent window scroll
  if (el.ownerDocument !== document) {
    parents.push(el.ownerDocument.defaultView);
  }

  return parents;
}

var uniqueId = (function () {
  var id = 0;
  return function () {
    return ++id;
  };
})();

var zeroPosCache = {};
var getOrigin = function getOrigin() {
  // getBoundingClientRect is unfortunately too accurate.  It introduces a pixel or two of
  // jitter as the user scrolls that messes with our ability to detect if two positions
  // are equivilant or not.  We place an element at the top left of the page that will
  // get the same jitter, so we can cancel the two out.
  var node = zeroElement;
  if (!node || !document.body.contains(node)) {
    node = document.createElement('div');
    node.setAttribute('data-tether-id', uniqueId());
    extend(node.style, {
      top: 0,
      left: 0,
      position: 'absolute'
    });

    document.body.appendChild(node);

    zeroElement = node;
  }

  var id = node.getAttribute('data-tether-id');
  if (typeof zeroPosCache[id] === 'undefined') {
    zeroPosCache[id] = getActualBoundingClientRect(node);

    // Clear the cache when this position call is done
    defer(function () {
      delete zeroPosCache[id];
    });
  }

  return zeroPosCache[id];
};

function removeUtilElements() {
  if (zeroElement) {
    document.body.removeChild(zeroElement);
  }
  zeroElement = null;
};

function getBounds(el) {
  var doc = undefined;
  if (el === document) {
    doc = document;
    el = document.documentElement;
  } else {
    doc = el.ownerDocument;
  }

  var docEl = doc.documentElement;

  var box = getActualBoundingClientRect(el);

  var origin = getOrigin();

  box.top -= origin.top;
  box.left -= origin.left;

  if (typeof box.width === 'undefined') {
    box.width = document.body.scrollWidth - box.left - box.right;
  }
  if (typeof box.height === 'undefined') {
    box.height = document.body.scrollHeight - box.top - box.bottom;
  }

  box.top = box.top - docEl.clientTop;
  box.left = box.left - docEl.clientLeft;
  box.right = doc.body.clientWidth - box.width - box.left;
  box.bottom = doc.body.clientHeight - box.height - box.top;

  return box;
}

function getOffsetParent(el) {
  return el.offsetParent || document.documentElement;
}

var _scrollBarSize = null;
function getScrollBarSize() {
  if (_scrollBarSize) {
    return _scrollBarSize;
  }
  var inner = document.createElement('div');
  inner.style.width = '100%';
  inner.style.height = '200px';

  var outer = document.createElement('div');
  extend(outer.style, {
    position: 'absolute',
    top: 0,
    left: 0,
    pointerEvents: 'none',
    visibility: 'hidden',
    width: '200px',
    height: '150px',
    overflow: 'hidden'
  });

  outer.appendChild(inner);

  document.body.appendChild(outer);

  var widthContained = inner.offsetWidth;
  outer.style.overflow = 'scroll';
  var widthScroll = inner.offsetWidth;

  if (widthContained === widthScroll) {
    widthScroll = outer.clientWidth;
  }

  document.body.removeChild(outer);

  var width = widthContained - widthScroll;

  _scrollBarSize = { width: width, height: width };
  return _scrollBarSize;
}

function extend() {
  var out = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];

  var args = [];

  Array.prototype.push.apply(args, arguments);

  args.slice(1).forEach(function (obj) {
    if (obj) {
      for (var key in obj) {
        if (({}).hasOwnProperty.call(obj, key)) {
          out[key] = obj[key];
        }
      }
    }
  });

  return out;
}

function removeClass(el, name) {
  if (typeof el.classList !== 'undefined') {
    name.split(' ').forEach(function (cls) {
      if (cls.trim()) {
        el.classList.remove(cls);
      }
    });
  } else {
    var regex = new RegExp('(^| )' + name.split(' ').join('|') + '( |$)', 'gi');
    var className = getClassName(el).replace(regex, ' ');
    setClassName(el, className);
  }
}

function addClass(el, name) {
  if (typeof el.classList !== 'undefined') {
    name.split(' ').forEach(function (cls) {
      if (cls.trim()) {
        el.classList.add(cls);
      }
    });
  } else {
    removeClass(el, name);
    var cls = getClassName(el) + (' ' + name);
    setClassName(el, cls);
  }
}

function hasClass(el, name) {
  if (typeof el.classList !== 'undefined') {
    return el.classList.contains(name);
  }
  var className = getClassName(el);
  return new RegExp('(^| )' + name + '( |$)', 'gi').test(className);
}

function getClassName(el) {
  // Can't use just SVGAnimatedString here since nodes within a Frame in IE have
  // completely separately SVGAnimatedString base classes
  if (el.className instanceof el.ownerDocument.defaultView.SVGAnimatedString) {
    return el.className.baseVal;
  }
  return el.className;
}

function setClassName(el, className) {
  el.setAttribute('class', className);
}

function updateClasses(el, add, all) {
  // Of the set of 'all' classes, we need the 'add' classes, and only the
  // 'add' classes to be set.
  all.forEach(function (cls) {
    if (add.indexOf(cls) === -1 && hasClass(el, cls)) {
      removeClass(el, cls);
    }
  });

  add.forEach(function (cls) {
    if (!hasClass(el, cls)) {
      addClass(el, cls);
    }
  });
}

var deferred = [];

var defer = function defer(fn) {
  deferred.push(fn);
};

var flush = function flush() {
  var fn = undefined;
  while (fn = deferred.pop()) {
    fn();
  }
};

var Evented = (function () {
  function Evented() {
    _classCallCheck(this, Evented);
  }

  _createClass(Evented, [{
    key: 'on',
    value: function on(event, handler, ctx) {
      var once = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3];

      if (typeof this.bindings === 'undefined') {
        this.bindings = {};
      }
      if (typeof this.bindings[event] === 'undefined') {
        this.bindings[event] = [];
      }
      this.bindings[event].push({ handler: handler, ctx: ctx, once: once });
    }
  }, {
    key: 'once',
    value: function once(event, handler, ctx) {
      this.on(event, handler, ctx, true);
    }
  }, {
    key: 'off',
    value: function off(event, handler) {
      if (typeof this.bindings === 'undefined' || typeof this.bindings[event] === 'undefined') {
        return;
      }

      if (typeof handler === 'undefined') {
        delete this.bindings[event];
      } else {
        var i = 0;
        while (i < this.bindings[event].length) {
          if (this.bindings[event][i].handler === handler) {
            this.bindings[event].splice(i, 1);
          } else {
            ++i;
          }
        }
      }
    }
  }, {
    key: 'trigger',
    value: function trigger(event) {
      if (typeof this.bindings !== 'undefined' && this.bindings[event]) {
        var i = 0;

        for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
          args[_key - 1] = arguments[_key];
        }

        while (i < this.bindings[event].length) {
          var _bindings$event$i = this.bindings[event][i];
          var handler = _bindings$event$i.handler;
          var ctx = _bindings$event$i.ctx;
          var once = _bindings$event$i.once;

          var context = ctx;
          if (typeof context === 'undefined') {
            context = this;
          }

          handler.apply(context, args);

          if (once) {
            this.bindings[event].splice(i, 1);
          } else {
            ++i;
          }
        }
      }
    }
  }]);

  return Evented;
})();

TetherBase.Utils = {
  getActualBoundingClientRect: getActualBoundingClientRect,
  getScrollParents: getScrollParents,
  getBounds: getBounds,
  getOffsetParent: getOffsetParent,
  extend: extend,
  addClass: addClass,
  removeClass: removeClass,
  hasClass: hasClass,
  updateClasses: updateClasses,
  defer: defer,
  flush: flush,
  uniqueId: uniqueId,
  Evented: Evented,
  getScrollBarSize: getScrollBarSize,
  removeUtilElements: removeUtilElements
};
/* globals TetherBase, performance */

'use strict';

var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();

var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();

var _get = function get(_x6, _x7, _x8) { var _again = true; _function: while (_again) { var object = _x6, property = _x7, receiver = _x8; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x6 = parent; _x7 = property; _x8 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }

function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

if (typeof TetherBase === 'undefined') {
  throw new Error('You must include the utils.js file before tether.js');
}

var _TetherBase$Utils = TetherBase.Utils;
var getScrollParents = _TetherBase$Utils.getScrollParents;
var getBounds = _TetherBase$Utils.getBounds;
var getOffsetParent = _TetherBase$Utils.getOffsetParent;
var extend = _TetherBase$Utils.extend;
var addClass = _TetherBase$Utils.addClass;
var removeClass = _TetherBase$Utils.removeClass;
var updateClasses = _TetherBase$Utils.updateClasses;
var defer = _TetherBase$Utils.defer;
var flush = _TetherBase$Utils.flush;
var getScrollBarSize = _TetherBase$Utils.getScrollBarSize;
var removeUtilElements = _TetherBase$Utils.removeUtilElements;

function within(a, b) {
  var diff = arguments.length <= 2 || arguments[2] === undefined ? 1 : arguments[2];

  return a + diff >= b && b >= a - diff;
}

var transformKey = (function () {
  if (typeof document === 'undefined') {
    return '';
  }
  var el = document.createElement('div');

  var transforms = ['transform', 'WebkitTransform', 'OTransform', 'MozTransform', 'msTransform'];
  for (var i = 0; i < transforms.length; ++i) {
    var key = transforms[i];
    if (el.style[key] !== undefined) {
      return key;
    }
  }
})();

var tethers = [];

var position = function position() {
  tethers.forEach(function (tether) {
    tether.position(false);
  });
  flush();
};

function now() {
  if (typeof performance === 'object' && typeof performance.now === 'function') {
    return performance.now();
  }
  return +new Date();
}

(function () {
  var lastCall = null;
  var lastDuration = null;
  var pendingTimeout = null;

  var tick = function tick() {
    if (typeof lastDuration !== 'undefined' && lastDuration > 16) {
      // We voluntarily throttle ourselves if we can't manage 60fps
      lastDuration = Math.min(lastDuration - 16, 250);

      // Just in case this is the last event, remember to position just once more
      pendingTimeout = setTimeout(tick, 250);
      return;
    }

    if (typeof lastCall !== 'undefined' && now() - lastCall < 10) {
      // Some browsers call events a little too frequently, refuse to run more than is reasonable
      return;
    }

    if (pendingTimeout != null) {
      clearTimeout(pendingTimeout);
      pendingTimeout = null;
    }

    lastCall = now();
    position();
    lastDuration = now() - lastCall;
  };

  if (typeof window !== 'undefined' && typeof window.addEventListener !== 'undefined') {
    ['resize', 'scroll', 'touchmove'].forEach(function (event) {
      window.addEventListener(event, tick);
    });
  }
})();

var MIRROR_LR = {
  center: 'center',
  left: 'right',
  right: 'left'
};

var MIRROR_TB = {
  middle: 'middle',
  top: 'bottom',
  bottom: 'top'
};

var OFFSET_MAP = {
  top: 0,
  left: 0,
  middle: '50%',
  center: '50%',
  bottom: '100%',
  right: '100%'
};

var autoToFixedAttachment = function autoToFixedAttachment(attachment, relativeToAttachment) {
  var left = attachment.left;
  var top = attachment.top;

  if (left === 'auto') {
    left = MIRROR_LR[relativeToAttachment.left];
  }

  if (top === 'auto') {
    top = MIRROR_TB[relativeToAttachment.top];
  }

  return { left: left, top: top };
};

var attachmentToOffset = function attachmentToOffset(attachment) {
  var left = attachment.left;
  var top = attachment.top;

  if (typeof OFFSET_MAP[attachment.left] !== 'undefined') {
    left = OFFSET_MAP[attachment.left];
  }

  if (typeof OFFSET_MAP[attachment.top] !== 'undefined') {
    top = OFFSET_MAP[attachment.top];
  }

  return { left: left, top: top };
};

function addOffset() {
  var out = { top: 0, left: 0 };

  for (var _len = arguments.length, offsets = Array(_len), _key = 0; _key < _len; _key++) {
    offsets[_key] = arguments[_key];
  }

  offsets.forEach(function (_ref) {
    var top = _ref.top;
    var left = _ref.left;

    if (typeof top === 'string') {
      top = parseFloat(top, 10);
    }
    if (typeof left === 'string') {
      left = parseFloat(left, 10);
    }

    out.top += top;
    out.left += left;
  });

  return out;
}

function offsetToPx(offset, size) {
  if (typeof offset.left === 'string' && offset.left.indexOf('%') !== -1) {
    offset.left = parseFloat(offset.left, 10) / 100 * size.width;
  }
  if (typeof offset.top === 'string' && offset.top.indexOf('%') !== -1) {
    offset.top = parseFloat(offset.top, 10) / 100 * size.height;
  }

  return offset;
}

var parseOffset = function parseOffset(value) {
  var _value$split = value.split(' ');

  var _value$split2 = _slicedToArray(_value$split, 2);

  var top = _value$split2[0];
  var left = _value$split2[1];

  return { top: top, left: left };
};
var parseAttachment = parseOffset;

var TetherClass = (function (_Evented) {
  _inherits(TetherClass, _Evented);

  function TetherClass(options) {
    var _this = this;

    _classCallCheck(this, TetherClass);

    _get(Object.getPrototypeOf(TetherClass.prototype), 'constructor', this).call(this);
    this.position = this.position.bind(this);

    tethers.push(this);

    this.history = [];

    this.setOptions(options, false);

    TetherBase.modules.forEach(function (module) {
      if (typeof module.initialize !== 'undefined') {
        module.initialize.call(_this);
      }
    });

    this.position();
  }

  _createClass(TetherClass, [{
    key: 'getClass',
    value: function getClass() {
      var key = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0];
      var classes = this.options.classes;

      if (typeof classes !== 'undefined' && classes[key]) {
        return this.options.classes[key];
      } else if (this.options.classPrefix) {
        return this.options.classPrefix + '-' + key;
      } else {
        return key;
      }
    }
  }, {
    key: 'setOptions',
    value: function setOptions(options) {
      var _this2 = this;

      var pos = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];

      var defaults = {
        offset: '0 0',
        targetOffset: '0 0',
        targetAttachment: 'auto auto',
        classPrefix: 'tether'
      };

      this.options = extend(defaults, options);

      var _options = this.options;
      var element = _options.element;
      var target = _options.target;
      var targetModifier = _options.targetModifier;

      this.element = element;
      this.target = target;
      this.targetModifier = targetModifier;

      if (this.target === 'viewport') {
        this.target = document.body;
        this.targetModifier = 'visible';
      } else if (this.target === 'scroll-handle') {
        this.target = document.body;
        this.targetModifier = 'scroll-handle';
      }

      ['element', 'target'].forEach(function (key) {
        if (typeof _this2[key] === 'undefined') {
          throw new Error('Tether Error: Both element and target must be defined');
        }

        if (typeof _this2[key].jquery !== 'undefined') {
          _this2[key] = _this2[key][0];
        } else if (typeof _this2[key] === 'string') {
          _this2[key] = document.querySelector(_this2[key]);
        }
      });

      addClass(this.element, this.getClass('element'));
      if (!(this.options.addTargetClasses === false)) {
        addClass(this.target, this.getClass('target'));
      }

      if (!this.options.attachment) {
        throw new Error('Tether Error: You must provide an attachment');
      }

      this.targetAttachment = parseAttachment(this.options.targetAttachment);
      this.attachment = parseAttachment(this.options.attachment);
      this.offset = parseOffset(this.options.offset);
      this.targetOffset = parseOffset(this.options.targetOffset);

      if (typeof this.scrollParents !== 'undefined') {
        this.disable();
      }

      if (this.targetModifier === 'scroll-handle') {
        this.scrollParents = [this.target];
      } else {
        this.scrollParents = getScrollParents(this.target);
      }

      if (!(this.options.enabled === false)) {
        this.enable(pos);
      }
    }
  }, {
    key: 'getTargetBounds',
    value: function getTargetBounds() {
      if (typeof this.targetModifier !== 'undefined') {
        if (this.targetModifier === 'visible') {
          if (this.target === document.body) {
            return { top: pageYOffset, left: pageXOffset, height: innerHeight, width: innerWidth };
          } else {
            var bounds = getBounds(this.target);

            var out = {
              height: bounds.height,
              width: bounds.width,
              top: bounds.top,
              left: bounds.left
            };

            out.height = Math.min(out.height, bounds.height - (pageYOffset - bounds.top));
            out.height = Math.min(out.height, bounds.height - (bounds.top + bounds.height - (pageYOffset + innerHeight)));
            out.height = Math.min(innerHeight, out.height);
            out.height -= 2;

            out.width = Math.min(out.width, bounds.width - (pageXOffset - bounds.left));
            out.width = Math.min(out.width, bounds.width - (bounds.left + bounds.width - (pageXOffset + innerWidth)));
            out.width = Math.min(innerWidth, out.width);
            out.width -= 2;

            if (out.top < pageYOffset) {
              out.top = pageYOffset;
            }
            if (out.left < pageXOffset) {
              out.left = pageXOffset;
            }

            return out;
          }
        } else if (this.targetModifier === 'scroll-handle') {
          var bounds = undefined;
          var target = this.target;
          if (target === document.body) {
            target = document.documentElement;

            bounds = {
              left: pageXOffset,
              top: pageYOffset,
              height: innerHeight,
              width: innerWidth
            };
          } else {
            bounds = getBounds(target);
          }

          var style = getComputedStyle(target);

          var hasBottomScroll = target.scrollWidth > target.clientWidth || [style.overflow, style.overflowX].indexOf('scroll') >= 0 || this.target !== document.body;

          var scrollBottom = 0;
          if (hasBottomScroll) {
            scrollBottom = 15;
          }

          var height = bounds.height - parseFloat(style.borderTopWidth) - parseFloat(style.borderBottomWidth) - scrollBottom;

          var out = {
            width: 15,
            height: height * 0.975 * (height / target.scrollHeight),
            left: bounds.left + bounds.width - parseFloat(style.borderLeftWidth) - 15
          };

          var fitAdj = 0;
          if (height < 408 && this.target === document.body) {
            fitAdj = -0.00011 * Math.pow(height, 2) - 0.00727 * height + 22.58;
          }

          if (this.target !== document.body) {
            out.height = Math.max(out.height, 24);
          }

          var scrollPercentage = this.target.scrollTop / (target.scrollHeight - height);
          out.top = scrollPercentage * (height - out.height - fitAdj) + bounds.top + parseFloat(style.borderTopWidth);

          if (this.target === document.body) {
            out.height = Math.max(out.height, 24);
          }

          return out;
        }
      } else {
        return getBounds(this.target);
      }
    }
  }, {
    key: 'clearCache',
    value: function clearCache() {
      this._cache = {};
    }
  }, {
    key: 'cache',
    value: function cache(k, getter) {
      // More than one module will often need the same DOM info, so
      // we keep a cache which is cleared on each position call
      if (typeof this._cache === 'undefined') {
        this._cache = {};
      }

      if (typeof this._cache[k] === 'undefined') {
        this._cache[k] = getter.call(this);
      }

      return this._cache[k];
    }
  }, {
    key: 'enable',
    value: function enable() {
      var _this3 = this;

      var pos = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];

      if (!(this.options.addTargetClasses === false)) {
        addClass(this.target, this.getClass('enabled'));
      }
      addClass(this.element, this.getClass('enabled'));
      this.enabled = true;

      this.scrollParents.forEach(function (parent) {
        if (parent !== _this3.target.ownerDocument) {
          parent.addEventListener('scroll', _this3.position);
        }
      });

      if (pos) {
        this.position();
      }
    }
  }, {
    key: 'disable',
    value: function disable() {
      var _this4 = this;

      removeClass(this.target, this.getClass('enabled'));
      removeClass(this.element, this.getClass('enabled'));
      this.enabled = false;

      if (typeof this.scrollParents !== 'undefined') {
        this.scrollParents.forEach(function (parent) {
          parent.removeEventListener('scroll', _this4.position);
        });
      }
    }
  }, {
    key: 'destroy',
    value: function destroy() {
      var _this5 = this;

      this.disable();

      tethers.forEach(function (tether, i) {
        if (tether === _this5) {
          tethers.splice(i, 1);
        }
      });

      // Remove any elements we were using for convenience from the DOM
      if (tethers.length === 0) {
        removeUtilElements();
      }
    }
  }, {
    key: 'updateAttachClasses',
    value: function updateAttachClasses(elementAttach, targetAttach) {
      var _this6 = this;

      elementAttach = elementAttach || this.attachment;
      targetAttach = targetAttach || this.targetAttachment;
      var sides = ['left', 'top', 'bottom', 'right', 'middle', 'center'];

      if (typeof this._addAttachClasses !== 'undefined' && this._addAttachClasses.length) {
        // updateAttachClasses can be called more than once in a position call, so
        // we need to clean up after ourselves such that when the last defer gets
        // ran it doesn't add any extra classes from previous calls.
        this._addAttachClasses.splice(0, this._addAttachClasses.length);
      }

      if (typeof this._addAttachClasses === 'undefined') {
        this._addAttachClasses = [];
      }
      var add = this._addAttachClasses;

      if (elementAttach.top) {
        add.push(this.getClass('element-attached') + '-' + elementAttach.top);
      }
      if (elementAttach.left) {
        add.push(this.getClass('element-attached') + '-' + elementAttach.left);
      }
      if (targetAttach.top) {
        add.push(this.getClass('target-attached') + '-' + targetAttach.top);
      }
      if (targetAttach.left) {
        add.push(this.getClass('target-attached') + '-' + targetAttach.left);
      }

      var all = [];
      sides.forEach(function (side) {
        all.push(_this6.getClass('element-attached') + '-' + side);
        all.push(_this6.getClass('target-attached') + '-' + side);
      });

      defer(function () {
        if (!(typeof _this6._addAttachClasses !== 'undefined')) {
          return;
        }

        updateClasses(_this6.element, _this6._addAttachClasses, all);
        if (!(_this6.options.addTargetClasses === false)) {
          updateClasses(_this6.target, _this6._addAttachClasses, all);
        }

        delete _this6._addAttachClasses;
      });
    }
  }, {
    key: 'position',
    value: function position() {
      var _this7 = this;

      var flushChanges = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];

      // flushChanges commits the changes immediately, leave true unless you are positioning multiple
      // tethers (in which case call Tether.Utils.flush yourself when you're done)

      if (!this.enabled) {
        return;
      }

      this.clearCache();

      // Turn 'auto' attachments into the appropriate corner or edge
      var targetAttachment = autoToFixedAttachment(this.targetAttachment, this.attachment);

      this.updateAttachClasses(this.attachment, targetAttachment);

      var elementPos = this.cache('element-bounds', function () {
        return getBounds(_this7.element);
      });

      var width = elementPos.width;
      var height = elementPos.height;

      if (width === 0 && height === 0 && typeof this.lastSize !== 'undefined') {
        var _lastSize = this.lastSize;

        // We cache the height and width to make it possible to position elements that are
        // getting hidden.
        width = _lastSize.width;
        height = _lastSize.height;
      } else {
        this.lastSize = { width: width, height: height };
      }

      var targetPos = this.cache('target-bounds', function () {
        return _this7.getTargetBounds();
      });
      var targetSize = targetPos;

      // Get an actual px offset from the attachment
      var offset = offsetToPx(attachmentToOffset(this.attachment), { width: width, height: height });
      var targetOffset = offsetToPx(attachmentToOffset(targetAttachment), targetSize);

      var manualOffset = offsetToPx(this.offset, { width: width, height: height });
      var manualTargetOffset = offsetToPx(this.targetOffset, targetSize);

      // Add the manually provided offset
      offset = addOffset(offset, manualOffset);
      targetOffset = addOffset(targetOffset, manualTargetOffset);

      // It's now our goal to make (element position + offset) == (target position + target offset)
      var left = targetPos.left + targetOffset.left - offset.left;
      var top = targetPos.top + targetOffset.top - offset.top;

      for (var i = 0; i < TetherBase.modules.length; ++i) {
        var _module2 = TetherBase.modules[i];
        var ret = _module2.position.call(this, {
          left: left,
          top: top,
          targetAttachment: targetAttachment,
          targetPos: targetPos,
          elementPos: elementPos,
          offset: offset,
          targetOffset: targetOffset,
          manualOffset: manualOffset,
          manualTargetOffset: manualTargetOffset,
          scrollbarSize: scrollbarSize,
          attachment: this.attachment
        });

        if (ret === false) {
          return false;
        } else if (typeof ret === 'undefined' || typeof ret !== 'object') {
          continue;
        } else {
          top = ret.top;
          left = ret.left;
        }
      }

      // We describe the position three different ways to give the optimizer
      // a chance to decide the best possible way to position the element
      // with the fewest repaints.
      var next = {
        // It's position relative to the page (absolute positioning when
        // the element is a child of the body)
        page: {
          top: top,
          left: left
        },

        // It's position relative to the viewport (fixed positioning)
        viewport: {
          top: top - pageYOffset,
          bottom: pageYOffset - top - height + innerHeight,
          left: left - pageXOffset,
          right: pageXOffset - left - width + innerWidth
        }
      };

      var doc = this.target.ownerDocument;
      var win = doc.defaultView;

      var scrollbarSize = undefined;
      if (win.innerHeight > doc.documentElement.clientHeight) {
        scrollbarSize = this.cache('scrollbar-size', getScrollBarSize);
        next.viewport.bottom -= scrollbarSize.height;
      }

      if (win.innerWidth > doc.documentElement.clientWidth) {
        scrollbarSize = this.cache('scrollbar-size', getScrollBarSize);
        next.viewport.right -= scrollbarSize.width;
      }

      if (['', 'static'].indexOf(doc.body.style.position) === -1 || ['', 'static'].indexOf(doc.body.parentElement.style.position) === -1) {
        // Absolute positioning in the body will be relative to the page, not the 'initial containing block'
        next.page.bottom = doc.body.scrollHeight - top - height;
        next.page.right = doc.body.scrollWidth - left - width;
      }

      if (typeof this.options.optimizations !== 'undefined' && this.options.optimizations.moveElement !== false && !(typeof this.targetModifier !== 'undefined')) {
        (function () {
          var offsetParent = _this7.cache('target-offsetparent', function () {
            return getOffsetParent(_this7.target);
          });
          var offsetPosition = _this7.cache('target-offsetparent-bounds', function () {
            return getBounds(offsetParent);
          });
          var offsetParentStyle = getComputedStyle(offsetParent);
          var offsetParentSize = offsetPosition;

          var offsetBorder = {};
          ['Top', 'Left', 'Bottom', 'Right'].forEach(function (side) {
            offsetBorder[side.toLowerCase()] = parseFloat(offsetParentStyle['border' + side + 'Width']);
          });

          offsetPosition.right = doc.body.scrollWidth - offsetPosition.left - offsetParentSize.width + offsetBorder.right;
          offsetPosition.bottom = doc.body.scrollHeight - offsetPosition.top - offsetParentSize.height + offsetBorder.bottom;

          if (next.page.top >= offsetPosition.top + offsetBorder.top && next.page.bottom >= offsetPosition.bottom) {
            if (next.page.left >= offsetPosition.left + offsetBorder.left && next.page.right >= offsetPosition.right) {
              // We're within the visible part of the target's scroll parent
              var scrollTop = offsetParent.scrollTop;
              var scrollLeft = offsetParent.scrollLeft;

              // It's position relative to the target's offset parent (absolute positioning when
              // the element is moved to be a child of the target's offset parent).
              next.offset = {
                top: next.page.top - offsetPosition.top + scrollTop - offsetBorder.top,
                left: next.page.left - offsetPosition.left + scrollLeft - offsetBorder.left
              };
            }
          }
        })();
      }

      // We could also travel up the DOM and try each containing context, rather than only
      // looking at the body, but we're gonna get diminishing returns.

      this.move(next);

      this.history.unshift(next);

      if (this.history.length > 3) {
        this.history.pop();
      }

      if (flushChanges) {
        flush();
      }

      return true;
    }

    // THE ISSUE
  }, {
    key: 'move',
    value: function move(pos) {
      var _this8 = this;

      if (!(typeof this.element.parentNode !== 'undefined')) {
        return;
      }

      var same = {};

      for (var type in pos) {
        same[type] = {};

        for (var key in pos[type]) {
          var found = false;

          for (var i = 0; i < this.history.length; ++i) {
            var point = this.history[i];
            if (typeof point[type] !== 'undefined' && !within(point[type][key], pos[type][key])) {
              found = true;
              break;
            }
          }

          if (!found) {
            same[type][key] = true;
          }
        }
      }

      var css = { top: '', left: '', right: '', bottom: '' };

      var transcribe = function transcribe(_same, _pos) {
        var hasOptimizations = typeof _this8.options.optimizations !== 'undefined';
        var gpu = hasOptimizations ? _this8.options.optimizations.gpu : null;
        if (gpu !== false) {
          var yPos = undefined,
              xPos = undefined;
          if (_same.top) {
            css.top = 0;
            yPos = _pos.top;
          } else {
            css.bottom = 0;
            yPos = -_pos.bottom;
          }

          if (_same.left) {
            css.left = 0;
            xPos = _pos.left;
          } else {
            css.right = 0;
            xPos = -_pos.right;
          }

          if (typeof window.devicePixelRatio === 'number' && devicePixelRatio % 1 === 0) {
            xPos = Math.round(xPos * devicePixelRatio) / devicePixelRatio;
            yPos = Math.round(yPos * devicePixelRatio) / devicePixelRatio;
          }

          css[transformKey] = 'translateX(' + xPos + 'px) translateY(' + yPos + 'px)';

          if (transformKey !== 'msTransform') {
            // The Z transform will keep this in the GPU (faster, and prevents artifacts),
            // but IE9 doesn't support 3d transforms and will choke.
            css[transformKey] += " translateZ(0)";
          }
        } else {
          if (_same.top) {
            css.top = _pos.top + 'px';
          } else {
            css.bottom = _pos.bottom + 'px';
          }

          if (_same.left) {
            css.left = _pos.left + 'px';
          } else {
            css.right = _pos.right + 'px';
          }
        }
      };

      var moved = false;
      if ((same.page.top || same.page.bottom) && (same.page.left || same.page.right)) {
        css.position = 'absolute';
        transcribe(same.page, pos.page);
      } else if ((same.viewport.top || same.viewport.bottom) && (same.viewport.left || same.viewport.right)) {
        css.position = 'fixed';
        transcribe(same.viewport, pos.viewport);
      } else if (typeof same.offset !== 'undefined' && same.offset.top && same.offset.left) {
        (function () {
          css.position = 'absolute';
          var offsetParent = _this8.cache('target-offsetparent', function () {
            return getOffsetParent(_this8.target);
          });

          if (getOffsetParent(_this8.element) !== offsetParent) {
            defer(function () {
              _this8.element.parentNode.removeChild(_this8.element);
              offsetParent.appendChild(_this8.element);
            });
          }

          transcribe(same.offset, pos.offset);
          moved = true;
        })();
      } else {
        css.position = 'absolute';
        transcribe({ top: true, left: true }, pos.page);
      }

      if (!moved) {
        if (this.options.bodyElement) {
          if (this.element.parentNode !== this.options.bodyElement) {
            this.options.bodyElement.appendChild(this.element);
          }
        } else {
          var isFullscreenElement = function isFullscreenElement(e) {
            var d = e.ownerDocument;
            var fe = d.fullscreenElement || d.webkitFullscreenElement || d.mozFullScreenElement || d.msFullscreenElement;
            return fe === e;
          };

          var offsetParentIsBody = true;

          var currentNode = this.element.parentNode;
          while (currentNode && currentNode.nodeType === 1 && currentNode.tagName !== 'BODY' && !isFullscreenElement(currentNode)) {
            if (getComputedStyle(currentNode).position !== 'static') {
              offsetParentIsBody = false;
              break;
            }

            currentNode = currentNode.parentNode;
          }

          if (!offsetParentIsBody) {
            this.element.parentNode.removeChild(this.element);
            this.element.ownerDocument.body.appendChild(this.element);
          }
        }
      }

      // Any css change will trigger a repaint, so let's avoid one if nothing changed
      var writeCSS = {};
      var write = false;
      for (var key in css) {
        var val = css[key];
        var elVal = this.element.style[key];

        if (elVal !== val) {
          write = true;
          writeCSS[key] = val;
        }
      }

      if (write) {
        defer(function () {
          extend(_this8.element.style, writeCSS);
          _this8.trigger('repositioned');
        });
      }
    }
  }]);

  return TetherClass;
})(Evented);

TetherClass.modules = [];

TetherBase.position = position;

var Tether = extend(TetherClass, TetherBase);
/* globals TetherBase */

'use strict';

var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();

var _TetherBase$Utils = TetherBase.Utils;
var getBounds = _TetherBase$Utils.getBounds;
var extend = _TetherBase$Utils.extend;
var updateClasses = _TetherBase$Utils.updateClasses;
var defer = _TetherBase$Utils.defer;

var BOUNDS_FORMAT = ['left', 'top', 'right', 'bottom'];

function getBoundingRect(tether, to) {
  if (to === 'scrollParent') {
    to = tether.scrollParents[0];
  } else if (to === 'window') {
    to = [pageXOffset, pageYOffset, innerWidth + pageXOffset, innerHeight + pageYOffset];
  }

  if (to === document) {
    to = to.documentElement;
  }

  if (typeof to.nodeType !== 'undefined') {
    (function () {
      var node = to;
      var size = getBounds(to);
      var pos = size;
      var style = getComputedStyle(to);

      to = [pos.left, pos.top, size.width + pos.left, size.height + pos.top];

      // Account any parent Frames scroll offset
      if (node.ownerDocument !== document) {
        var win = node.ownerDocument.defaultView;
        to[0] += win.pageXOffset;
        to[1] += win.pageYOffset;
        to[2] += win.pageXOffset;
        to[3] += win.pageYOffset;
      }

      BOUNDS_FORMAT.forEach(function (side, i) {
        side = side[0].toUpperCase() + side.substr(1);
        if (side === 'Top' || side === 'Left') {
          to[i] += parseFloat(style['border' + side + 'Width']);
        } else {
          to[i] -= parseFloat(style['border' + side + 'Width']);
        }
      });
    })();
  }

  return to;
}

TetherBase.modules.push({
  position: function position(_ref) {
    var _this = this;

    var top = _ref.top;
    var left = _ref.left;
    var targetAttachment = _ref.targetAttachment;

    if (!this.options.constraints) {
      return true;
    }

    var _cache = this.cache('element-bounds', function () {
      return getBounds(_this.element);
    });

    var height = _cache.height;
    var width = _cache.width;

    if (width === 0 && height === 0 && typeof this.lastSize !== 'undefined') {
      var _lastSize = this.lastSize;

      // Handle the item getting hidden as a result of our positioning without glitching
      // the classes in and out
      width = _lastSize.width;
      height = _lastSize.height;
    }

    var targetSize = this.cache('target-bounds', function () {
      return _this.getTargetBounds();
    });

    var targetHeight = targetSize.height;
    var targetWidth = targetSize.width;

    var allClasses = [this.getClass('pinned'), this.getClass('out-of-bounds')];

    this.options.constraints.forEach(function (constraint) {
      var outOfBoundsClass = constraint.outOfBoundsClass;
      var pinnedClass = constraint.pinnedClass;

      if (outOfBoundsClass) {
        allClasses.push(outOfBoundsClass);
      }
      if (pinnedClass) {
        allClasses.push(pinnedClass);
      }
    });

    allClasses.forEach(function (cls) {
      ['left', 'top', 'right', 'bottom'].forEach(function (side) {
        allClasses.push(cls + '-' + side);
      });
    });

    var addClasses = [];

    var tAttachment = extend({}, targetAttachment);
    var eAttachment = extend({}, this.attachment);

    this.options.constraints.forEach(function (constraint) {
      var to = constraint.to;
      var attachment = constraint.attachment;
      var pin = constraint.pin;

      if (typeof attachment === 'undefined') {
        attachment = '';
      }

      var changeAttachX = undefined,
          changeAttachY = undefined;
      if (attachment.indexOf(' ') >= 0) {
        var _attachment$split = attachment.split(' ');

        var _attachment$split2 = _slicedToArray(_attachment$split, 2);

        changeAttachY = _attachment$split2[0];
        changeAttachX = _attachment$split2[1];
      } else {
        changeAttachX = changeAttachY = attachment;
      }

      var bounds = getBoundingRect(_this, to);

      if (changeAttachY === 'target' || changeAttachY === 'both') {
        if (top < bounds[1] && tAttachment.top === 'top') {
          top += targetHeight;
          tAttachment.top = 'bottom';
        }

        if (top + height > bounds[3] && tAttachment.top === 'bottom') {
          top -= targetHeight;
          tAttachment.top = 'top';
        }
      }

      if (changeAttachY === 'together') {
        if (tAttachment.top === 'top') {
          if (eAttachment.top === 'bottom' && top < bounds[1]) {
            top += targetHeight;
            tAttachment.top = 'bottom';

            top += height;
            eAttachment.top = 'top';
          } else if (eAttachment.top === 'top' && top + height > bounds[3] && top - (height - targetHeight) >= bounds[1]) {
            top -= height - targetHeight;
            tAttachment.top = 'bottom';

            eAttachment.top = 'bottom';
          }
        }

        if (tAttachment.top === 'bottom') {
          if (eAttachment.top === 'top' && top + height > bounds[3]) {
            top -= targetHeight;
            tAttachment.top = 'top';

            top -= height;
            eAttachment.top = 'bottom';
          } else if (eAttachment.top === 'bottom' && top < bounds[1] && top + (height * 2 - targetHeight) <= bounds[3]) {
            top += height - targetHeight;
            tAttachment.top = 'top';

            eAttachment.top = 'top';
          }
        }

        if (tAttachment.top === 'middle') {
          if (top + height > bounds[3] && eAttachment.top === 'top') {
            top -= height;
            eAttachment.top = 'bottom';
          } else if (top < bounds[1] && eAttachment.top === 'bottom') {
            top += height;
            eAttachment.top = 'top';
          }
        }
      }

      if (changeAttachX === 'target' || changeAttachX === 'both') {
        if (left < bounds[0] && tAttachment.left === 'left') {
          left += targetWidth;
          tAttachment.left = 'right';
        }

        if (left + width > bounds[2] && tAttachment.left === 'right') {
          left -= targetWidth;
          tAttachment.left = 'left';
        }
      }

      if (changeAttachX === 'together') {
        if (left < bounds[0] && tAttachment.left === 'left') {
          if (eAttachment.left === 'right') {
            left += targetWidth;
            tAttachment.left = 'right';

            left += width;
            eAttachment.left = 'left';
          } else if (eAttachment.left === 'left') {
            left += targetWidth;
            tAttachment.left = 'right';

            left -= width;
            eAttachment.left = 'right';
          }
        } else if (left + width > bounds[2] && tAttachment.left === 'right') {
          if (eAttachment.left === 'left') {
            left -= targetWidth;
            tAttachment.left = 'left';

            left -= width;
            eAttachment.left = 'right';
          } else if (eAttachment.left === 'right') {
            left -= targetWidth;
            tAttachment.left = 'left';

            left += width;
            eAttachment.left = 'left';
          }
        } else if (tAttachment.left === 'center') {
          if (left + width > bounds[2] && eAttachment.left === 'left') {
            left -= width;
            eAttachment.left = 'right';
          } else if (left < bounds[0] && eAttachment.left === 'right') {
            left += width;
            eAttachment.left = 'left';
          }
        }
      }

      if (changeAttachY === 'element' || changeAttachY === 'both') {
        if (top < bounds[1] && eAttachment.top === 'bottom') {
          top += height;
          eAttachment.top = 'top';
        }

        if (top + height > bounds[3] && eAttachment.top === 'top') {
          top -= height;
          eAttachment.top = 'bottom';
        }
      }

      if (changeAttachX === 'element' || changeAttachX === 'both') {
        if (left < bounds[0]) {
          if (eAttachment.left === 'right') {
            left += width;
            eAttachment.left = 'left';
          } else if (eAttachment.left === 'center') {
            left += width / 2;
            eAttachment.left = 'left';
          }
        }

        if (left + width > bounds[2]) {
          if (eAttachment.left === 'left') {
            left -= width;
            eAttachment.left = 'right';
          } else if (eAttachment.left === 'center') {
            left -= width / 2;
            eAttachment.left = 'right';
          }
        }
      }

      if (typeof pin === 'string') {
        pin = pin.split(',').map(function (p) {
          return p.trim();
        });
      } else if (pin === true) {
        pin = ['top', 'left', 'right', 'bottom'];
      }

      pin = pin || [];

      var pinned = [];
      var oob = [];

      if (top < bounds[1]) {
        if (pin.indexOf('top') >= 0) {
          top = bounds[1];
          pinned.push('top');
        } else {
          oob.push('top');
        }
      }

      if (top + height > bounds[3]) {
        if (pin.indexOf('bottom') >= 0) {
          top = bounds[3] - height;
          pinned.push('bottom');
        } else {
          oob.push('bottom');
        }
      }

      if (left < bounds[0]) {
        if (pin.indexOf('left') >= 0) {
          left = bounds[0];
          pinned.push('left');
        } else {
          oob.push('left');
        }
      }

      if (left + width > bounds[2]) {
        if (pin.indexOf('right') >= 0) {
          left = bounds[2] - width;
          pinned.push('right');
        } else {
          oob.push('right');
        }
      }

      if (pinned.length) {
        (function () {
          var pinnedClass = undefined;
          if (typeof _this.options.pinnedClass !== 'undefined') {
            pinnedClass = _this.options.pinnedClass;
          } else {
            pinnedClass = _this.getClass('pinned');
          }

          addClasses.push(pinnedClass);
          pinned.forEach(function (side) {
            addClasses.push(pinnedClass + '-' + side);
          });
        })();
      }

      if (oob.length) {
        (function () {
          var oobClass = undefined;
          if (typeof _this.options.outOfBoundsClass !== 'undefined') {
            oobClass = _this.options.outOfBoundsClass;
          } else {
            oobClass = _this.getClass('out-of-bounds');
          }

          addClasses.push(oobClass);
          oob.forEach(function (side) {
            addClasses.push(oobClass + '-' + side);
          });
        })();
      }

      if (pinned.indexOf('left') >= 0 || pinned.indexOf('right') >= 0) {
        eAttachment.left = tAttachment.left = false;
      }
      if (pinned.indexOf('top') >= 0 || pinned.indexOf('bottom') >= 0) {
        eAttachment.top = tAttachment.top = false;
      }

      if (tAttachment.top !== targetAttachment.top || tAttachment.left !== targetAttachment.left || eAttachment.top !== _this.attachment.top || eAttachment.left !== _this.attachment.left) {
        _this.updateAttachClasses(eAttachment, tAttachment);
        _this.trigger('update', {
          attachment: eAttachment,
          targetAttachment: tAttachment
        });
      }
    });

    defer(function () {
      if (!(_this.options.addTargetClasses === false)) {
        updateClasses(_this.target, addClasses, allClasses);
      }
      updateClasses(_this.element, addClasses, allClasses);
    });

    return { top: top, left: left };
  }
});
/* globals TetherBase */

'use strict';

var _TetherBase$Utils = TetherBase.Utils;
var getBounds = _TetherBase$Utils.getBounds;
var updateClasses = _TetherBase$Utils.updateClasses;
var defer = _TetherBase$Utils.defer;

TetherBase.modules.push({
  position: function position(_ref) {
    var _this = this;

    var top = _ref.top;
    var left = _ref.left;

    var _cache = this.cache('element-bounds', function () {
      return getBounds(_this.element);
    });

    var height = _cache.height;
    var width = _cache.width;

    var targetPos = this.getTargetBounds();

    var bottom = top + height;
    var right = left + width;

    var abutted = [];
    if (top <= targetPos.bottom && bottom >= targetPos.top) {
      ['left', 'right'].forEach(function (side) {
        var targetPosSide = targetPos[side];
        if (targetPosSide === left || targetPosSide === right) {
          abutted.push(side);
        }
      });
    }

    if (left <= targetPos.right && right >= targetPos.left) {
      ['top', 'bottom'].forEach(function (side) {
        var targetPosSide = targetPos[side];
        if (targetPosSide === top || targetPosSide === bottom) {
          abutted.push(side);
        }
      });
    }

    var allClasses = [];
    var addClasses = [];

    var sides = ['left', 'top', 'right', 'bottom'];
    allClasses.push(this.getClass('abutted'));
    sides.forEach(function (side) {
      allClasses.push(_this.getClass('abutted') + '-' + side);
    });

    if (abutted.length) {
      addClasses.push(this.getClass('abutted'));
    }

    abutted.forEach(function (side) {
      addClasses.push(_this.getClass('abutted') + '-' + side);
    });

    defer(function () {
      if (!(_this.options.addTargetClasses === false)) {
        updateClasses(_this.target, addClasses, allClasses);
      }
      updateClasses(_this.element, addClasses, allClasses);
    });

    return true;
  }
});
/* globals TetherBase */

'use strict';

var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();

TetherBase.modules.push({
  position: function position(_ref) {
    var top = _ref.top;
    var left = _ref.left;

    if (!this.options.shift) {
      return;
    }

    var shift = this.options.shift;
    if (typeof this.options.shift === 'function') {
      shift = this.options.shift.call(this, { top: top, left: left });
    }

    var shiftTop = undefined,
        shiftLeft = undefined;
    if (typeof shift === 'string') {
      shift = shift.split(' ');
      shift[1] = shift[1] || shift[0];

      var _shift = shift;

      var _shift2 = _slicedToArray(_shift, 2);

      shiftTop = _shift2[0];
      shiftLeft = _shift2[1];

      shiftTop = parseFloat(shiftTop, 10);
      shiftLeft = parseFloat(shiftLeft, 10);
    } else {
      shiftTop = shift.top;
      shiftLeft = shift.left;
    }

    top += shiftTop;
    left += shiftLeft;

    return { top: top, left: left };
  }
});
return Tether;

}));


/***/ }),

/***/ "./node_modules/timers-browserify/main.js":
/*!************************************************!*\
  !*** ./node_modules/timers-browserify/main.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) ||
            (typeof self !== "undefined" && self) ||
            window;
var apply = Function.prototype.apply;

// DOM APIs, for completeness

exports.setTimeout = function() {
  return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);
};
exports.setInterval = function() {
  return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);
};
exports.clearTimeout =
exports.clearInterval = function(timeout) {
  if (timeout) {
    timeout.close();
  }
};

function Timeout(id, clearFn) {
  this._id = id;
  this._clearFn = clearFn;
}
Timeout.prototype.unref = Timeout.prototype.ref = function() {};
Timeout.prototype.close = function() {
  this._clearFn.call(scope, this._id);
};

// Does not start the time, just sets up the members needed.
exports.enroll = function(item, msecs) {
  clearTimeout(item._idleTimeoutId);
  item._idleTimeout = msecs;
};

exports.unenroll = function(item) {
  clearTimeout(item._idleTimeoutId);
  item._idleTimeout = -1;
};

exports._unrefActive = exports.active = function(item) {
  clearTimeout(item._idleTimeoutId);

  var msecs = item._idleTimeout;
  if (msecs >= 0) {
    item._idleTimeoutId = setTimeout(function onTimeout() {
      if (item._onTimeout)
        item._onTimeout();
    }, msecs);
  }
};

// setimmediate attaches itself to the global object
__webpack_require__(/*! setimmediate */ "./node_modules/setimmediate/setImmediate.js");
// On some exotic environments, it's not clear which object `setimmediate` was
// able to install onto.  Search each possibility in the same order as the
// `setimmediate` library.
exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) ||
                       (typeof global !== "undefined" && global.setImmediate) ||
                       (this && this.setImmediate);
exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
                         (typeof global !== "undefined" && global.clearImmediate) ||
                         (this && this.clearImmediate);

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))

/***/ }),

/***/ "./node_modules/vue-advanced-chat/dist/vue-advanced-chat.common.js":
/*!*************************************************************************!*\
  !*** ./node_modules/vue-advanced-chat/dist/vue-advanced-chat.common.js ***!
  \*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = "fb15");
/******/ })
/************************************************************************/
/******/ ({

/***/ "00ee":
/***/ (function(module, exports, __webpack_require__) {

var wellKnownSymbol = __webpack_require__("b622");

var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var test = {};

test[TO_STRING_TAG] = 'z';

module.exports = String(test) === '[object z]';


/***/ }),

/***/ "0366":
/***/ (function(module, exports, __webpack_require__) {

var aFunction = __webpack_require__("1c0b");

// optional / simple context binding
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 0: return function () {
      return fn.call(that);
    };
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "0538":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var aFunction = __webpack_require__("1c0b");
var isObject = __webpack_require__("861d");

var slice = [].slice;
var factories = {};

var construct = function (C, argsLength, args) {
  if (!(argsLength in factories)) {
    for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';
    // eslint-disable-next-line no-new-func
    factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');
  } return factories[argsLength](C, args);
};

// `Function.prototype.bind` method implementation
// https://tc39.es/ecma262/#sec-function.prototype.bind
module.exports = Function.bind || function bind(that /* , ...args */) {
  var fn = aFunction(this);
  var partArgs = slice.call(arguments, 1);
  var boundFunction = function bound(/* args... */) {
    var args = partArgs.concat(slice.call(arguments));
    return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);
  };
  if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;
  return boundFunction;
};


/***/ }),

/***/ "057f":
/***/ (function(module, exports, __webpack_require__) {

var toIndexedObject = __webpack_require__("fc6a");
var nativeGetOwnPropertyNames = __webpack_require__("241c").f;

var toString = {}.toString;

var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
  ? Object.getOwnPropertyNames(window) : [];

var getWindowNames = function (it) {
  try {
    return nativeGetOwnPropertyNames(it);
  } catch (error) {
    return windowNames.slice();
  }
};

// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
module.exports.f = function getOwnPropertyNames(it) {
  return windowNames && toString.call(it) == '[object Window]'
    ? getWindowNames(it)
    : nativeGetOwnPropertyNames(toIndexedObject(it));
};


/***/ }),

/***/ "06cf":
/***/ (function(module, exports, __webpack_require__) {

var DESCRIPTORS = __webpack_require__("83ab");
var propertyIsEnumerableModule = __webpack_require__("d1e7");
var createPropertyDescriptor = __webpack_require__("5c6c");
var toIndexedObject = __webpack_require__("fc6a");
var toPrimitive = __webpack_require__("c04e");
var has = __webpack_require__("5135");
var IE8_DOM_DEFINE = __webpack_require__("0cfb");

var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;

// `Object.getOwnPropertyDescriptor` method
// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
  O = toIndexedObject(O);
  P = toPrimitive(P, true);
  if (IE8_DOM_DEFINE) try {
    return nativeGetOwnPropertyDescriptor(O, P);
  } catch (error) { /* empty */ }
  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
};


/***/ }),

/***/ "0b25":
/***/ (function(module, exports, __webpack_require__) {

var toInteger = __webpack_require__("a691");
var toLength = __webpack_require__("50c4");

// `ToIndex` abstract operation
// https://tc39.es/ecma262/#sec-toindex
module.exports = function (it) {
  if (it === undefined) return 0;
  var number = toInteger(it);
  var length = toLength(number);
  if (number !== length) throw RangeError('Wrong length or index');
  return length;
};


/***/ }),

/***/ "0cb2":
/***/ (function(module, exports, __webpack_require__) {

var toObject = __webpack_require__("7b0b");

var floor = Math.floor;
var replace = ''.replace;
var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g;
var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g;

// https://tc39.es/ecma262/#sec-getsubstitution
module.exports = function (matched, str, position, captures, namedCaptures, replacement) {
  var tailPos = position + matched.length;
  var m = captures.length;
  var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
  if (namedCaptures !== undefined) {
    namedCaptures = toObject(namedCaptures);
    symbols = SUBSTITUTION_SYMBOLS;
  }
  return replace.call(replacement, symbols, function (match, ch) {
    var capture;
    switch (ch.charAt(0)) {
      case '$': return '$';
      case '&': return matched;
      case '`': return str.slice(0, position);
      case "'": return str.slice(tailPos);
      case '<':
        capture = namedCaptures[ch.slice(1, -1)];
        break;
      default: // \d\d?
        var n = +ch;
        if (n === 0) return match;
        if (n > m) {
          var f = floor(n / 10);
          if (f === 0) return match;
          if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
          return match;
        }
        capture = captures[n - 1];
    }
    return capture === undefined ? '' : capture;
  });
};


/***/ }),

/***/ "0ccb":
/***/ (function(module, exports, __webpack_require__) {

// https://github.com/tc39/proposal-string-pad-start-end
var toLength = __webpack_require__("50c4");
var repeat = __webpack_require__("1148");
var requireObjectCoercible = __webpack_require__("1d80");

var ceil = Math.ceil;

// `String.prototype.{ padStart, padEnd }` methods implementation
var createMethod = function (IS_END) {
  return function ($this, maxLength, fillString) {
    var S = String(requireObjectCoercible($this));
    var stringLength = S.length;
    var fillStr = fillString === undefined ? ' ' : String(fillString);
    var intMaxLength = toLength(maxLength);
    var fillLen, stringFiller;
    if (intMaxLength <= stringLength || fillStr == '') return S;
    fillLen = intMaxLength - stringLength;
    stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));
    if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
    return IS_END ? S + stringFiller : stringFiller + S;
  };
};

module.exports = {
  // `String.prototype.padStart` method
  // https://tc39.es/ecma262/#sec-string.prototype.padstart
  start: createMethod(false),
  // `String.prototype.padEnd` method
  // https://tc39.es/ecma262/#sec-string.prototype.padend
  end: createMethod(true)
};


/***/ }),

/***/ "0cfb":
/***/ (function(module, exports, __webpack_require__) {

var DESCRIPTORS = __webpack_require__("83ab");
var fails = __webpack_require__("d039");
var createElement = __webpack_require__("cc12");

// Thank's IE8 for his funny defineProperty
module.exports = !DESCRIPTORS && !fails(function () {
  return Object.defineProperty(createElement('div'), 'a', {
    get: function () { return 7; }
  }).a != 7;
});


/***/ }),

/***/ "0d03":
/***/ (function(module, exports, __webpack_require__) {

var redefine = __webpack_require__("6eeb");

var DatePrototype = Date.prototype;
var INVALID_DATE = 'Invalid Date';
var TO_STRING = 'toString';
var nativeDateToString = DatePrototype[TO_STRING];
var getTime = DatePrototype.getTime;

// `Date.prototype.toString` method
// https://tc39.es/ecma262/#sec-date.prototype.tostring
if (new Date(NaN) + '' != INVALID_DATE) {
  redefine(DatePrototype, TO_STRING, function toString() {
    var value = getTime.call(this);
    // eslint-disable-next-line no-self-compare
    return value === value ? nativeDateToString.call(this) : INVALID_DATE;
  });
}


/***/ }),

/***/ "0d3b":
/***/ (function(module, exports, __webpack_require__) {

var fails = __webpack_require__("d039");
var wellKnownSymbol = __webpack_require__("b622");
var IS_PURE = __webpack_require__("c430");

var ITERATOR = wellKnownSymbol('iterator');

module.exports = !fails(function () {
  var url = new URL('b?a=1&b=2&c=3', 'http://a');
  var searchParams = url.searchParams;
  var result = '';
  url.pathname = 'c%20d';
  searchParams.forEach(function (value, key) {
    searchParams['delete']('b');
    result += key + value;
  });
  return (IS_PURE && !url.toJSON)
    || !searchParams.sort
    || url.href !== 'http://a/c%20d?a=1&c=3'
    || searchParams.get('c') !== '3'
    || String(new URLSearchParams('?a=1')) !== 'a=1'
    || !searchParams[ITERATOR]
    // throws in Edge
    || new URL('https://a@b').username !== 'a'
    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'
    // not punycoded in Edge
    || new URL('http://тест').host !== 'xn--e1aybc'
    // not escaped in Chrome 62-
    || new URL('http://a#б').hash !== '#%D0%B1'
    // fails in Chrome 66-
    || result !== 'a1c3'
    // throws in Safari
    || new URL('http://x', undefined).host !== 'x';
});


/***/ }),

/***/ "0f96":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "1148":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var toInteger = __webpack_require__("a691");
var requireObjectCoercible = __webpack_require__("1d80");

// `String.prototype.repeat` method implementation
// https://tc39.es/ecma262/#sec-string.prototype.repeat
module.exports = ''.repeat || function repeat(count) {
  var str = String(requireObjectCoercible(this));
  var result = '';
  var n = toInteger(count);
  if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');
  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;
  return result;
};


/***/ }),

/***/ "129f":
/***/ (function(module, exports) {

// `SameValue` abstract operation
// https://tc39.es/ecma262/#sec-samevalue
module.exports = Object.is || function is(x, y) {
  // eslint-disable-next-line no-self-compare
  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
};


/***/ }),

/***/ "13d5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var $reduce = __webpack_require__("d58f").left;
var arrayMethodIsStrict = __webpack_require__("a640");
var arrayMethodUsesToLength = __webpack_require__("ae40");
var CHROME_VERSION = __webpack_require__("2d00");
var IS_NODE = __webpack_require__("605d");

var STRICT_METHOD = arrayMethodIsStrict('reduce');
var USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });
// Chrome 80-82 has a critical bug
// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982
var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;

// `Array.prototype.reduce` method
// https://tc39.es/ecma262/#sec-array.prototype.reduce
$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH || CHROME_BUG }, {
  reduce: function reduce(callbackfn /* , initialValue */) {
    return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
  }
});


/***/ }),

/***/ "145e":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var toObject = __webpack_require__("7b0b");
var toAbsoluteIndex = __webpack_require__("23cb");
var toLength = __webpack_require__("50c4");

var min = Math.min;

// `Array.prototype.copyWithin` method implementation
// https://tc39.es/ecma262/#sec-array.prototype.copywithin
module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {
  var O = toObject(this);
  var len = toLength(O.length);
  var to = toAbsoluteIndex(target, len);
  var from = toAbsoluteIndex(start, len);
  var end = arguments.length > 2 ? arguments[2] : undefined;
  var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);
  var inc = 1;
  if (from < to && to < from + count) {
    inc = -1;
    from += count - 1;
    to += count - 1;
  }
  while (count-- > 0) {
    if (from in O) O[to] = O[from];
    else delete O[to];
    to += inc;
    from += inc;
  } return O;
};


/***/ }),

/***/ "14c3":
/***/ (function(module, exports, __webpack_require__) {

var classof = __webpack_require__("c6b6");
var regexpExec = __webpack_require__("9263");

// `RegExpExec` abstract operation
// https://tc39.es/ecma262/#sec-regexpexec
module.exports = function (R, S) {
  var exec = R.exec;
  if (typeof exec === 'function') {
    var result = exec.call(R, S);
    if (typeof result !== 'object') {
      throw TypeError('RegExp exec method returned something other than an Object or null');
    }
    return result;
  }

  if (classof(R) !== 'RegExp') {
    throw TypeError('RegExp#exec called on incompatible receiver');
  }

  return regexpExec.call(R, S);
};



/***/ }),

/***/ "159b":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");
var DOMIterables = __webpack_require__("fdbc");
var forEach = __webpack_require__("17c2");
var createNonEnumerableProperty = __webpack_require__("9112");

for (var COLLECTION_NAME in DOMIterables) {
  var Collection = global[COLLECTION_NAME];
  var CollectionPrototype = Collection && Collection.prototype;
  // some Chrome versions have non-configurable methods on DOMTokenList
  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {
    createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);
  } catch (error) {
    CollectionPrototype.forEach = forEach;
  }
}


/***/ }),

/***/ "1606":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatWindow_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a818");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatWindow_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatWindow_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "1652":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.stateify = exports.TokenState = exports.CharacterState = undefined;

var _class = __webpack_require__("254c");

function createStateClass() {
	return function (tClass) {
		this.j = [];
		this.T = tClass || null;
	};
}

/**
	A simple state machine that can emit token classes

	The `j` property in this class refers to state jumps. It's a
	multidimensional array where for each element:

	* index [0] is a symbol or class of symbols to transition to.
	* index [1] is a State instance which matches

	The type of symbol will depend on the target implementation for this class.
	In Linkify, we have a two-stage scanner. Each stage uses this state machine
	but with a slighly different (polymorphic) implementation.

	The `T` property refers to the token class.

	TODO: Can the `on` and `next` methods be combined?

	@class BaseState
*/
var BaseState = createStateClass();
BaseState.prototype = {
	defaultTransition: false,

	/**
 	@method constructor
 	@param {Class} tClass Pass in the kind of token to emit if there are
 		no jumps after this state and the state is accepting.
 */

	/**
 	On the given symbol(s), this machine should go to the given state
 		@method on
 	@param {Array|Mixed} symbol
 	@param {BaseState} state Note that the type of this state should be the
 		same as the current instance (i.e., don't pass in a different
 		subclass)
 */
	on: function on(symbol, state) {
		if (symbol instanceof Array) {
			for (var i = 0; i < symbol.length; i++) {
				this.j.push([symbol[i], state]);
			}
			return this;
		}
		this.j.push([symbol, state]);
		return this;
	},


	/**
 	Given the next item, returns next state for that item
 	@method next
 	@param {Mixed} item Should be an instance of the symbols handled by
 		this particular machine.
 	@return {State} state Returns false if no jumps are available
 */
	next: function next(item) {
		for (var i = 0; i < this.j.length; i++) {
			var jump = this.j[i];
			var symbol = jump[0]; // Next item to check for
			var state = jump[1]; // State to jump to if items match

			// compare item with symbol
			if (this.test(item, symbol)) {
				return state;
			}
		}

		// Nowhere left to jump!
		return this.defaultTransition;
	},


	/**
 	Does this state accept?
 	`true` only of `this.T` exists
 		@method accepts
 	@return {Boolean}
 */
	accepts: function accepts() {
		return !!this.T;
	},


	/**
 	Determine whether a given item "symbolizes" the symbol, where symbol is
 	a class of items handled by this state machine.
 		This method should be overriden in extended classes.
 		@method test
 	@param {Mixed} item Does this item match the given symbol?
 	@param {Mixed} symbol
 	@return {Boolean}
 */
	test: function test(item, symbol) {
		return item === symbol;
	},


	/**
 	Emit the token for this State (just return it in this case)
 	If this emits a token, this instance is an accepting state
 	@method emit
 	@return {Class} T
 */
	emit: function emit() {
		return this.T;
	}
};

/**
	State machine for string-based input

	@class CharacterState
	@extends BaseState
*/
var CharacterState = (0, _class.inherits)(BaseState, createStateClass(), {
	/**
 	Does the given character match the given character or regular
 	expression?
 		@method test
 	@param {String} char
 	@param {String|RegExp} charOrRegExp
 	@return {Boolean}
 */
	test: function test(character, charOrRegExp) {
		return character === charOrRegExp || charOrRegExp instanceof RegExp && charOrRegExp.test(character);
	}
});

/**
	State machine for input in the form of TextTokens

	@class TokenState
	@extends BaseState
*/
var TokenState = (0, _class.inherits)(BaseState, createStateClass(), {

	/**
  * Similar to `on`, but returns the state the results in the transition from
  * the given item
  * @method jump
  * @param {Mixed} item
  * @param {Token} [token]
  * @return state
  */
	jump: function jump(token) {
		var tClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;

		var state = this.next(new token('')); // dummy temp token
		if (state === this.defaultTransition) {
			// Make a new state!
			state = new this.constructor(tClass);
			this.on(token, state);
		} else if (tClass) {
			state.T = tClass;
		}
		return state;
	},


	/**
 	Is the given token an instance of the given token class?
 		@method test
 	@param {TextToken} token
 	@param {Class} tokenClass
 	@return {Boolean}
 */
	test: function test(token, tokenClass) {
		return token instanceof tokenClass;
	}
});

/**
	Given a non-empty target string, generates states (if required) for each
	consecutive substring of characters in str starting from the beginning of
	the string. The final state will have a special value, as specified in
	options. All other "in between" substrings will have a default end state.

	This turns the state machine into a Trie-like data structure (rather than a
	intelligently-designed DFA).

	Note that I haven't really tried these with any strings other than
	DOMAIN.

	@param {String} str
	@param {CharacterState} start State to jump from the first character
	@param {Class} endToken Token class to emit when the given string has been
		matched and no more jumps exist.
	@param {Class} defaultToken "Filler token", or which token type to emit when
		we don't have a full match
	@return {Array} list of newly-created states
*/
function stateify(str, start, endToken, defaultToken) {
	var i = 0,
	    len = str.length,
	    state = start,
	    newStates = [],
	    nextState = void 0;

	// Find the next state without a jump to the next character
	while (i < len && (nextState = state.next(str[i]))) {
		state = nextState;
		i++;
	}

	if (i >= len) {
		return [];
	} // no new tokens were added

	while (i < len - 1) {
		nextState = new CharacterState(defaultToken);
		newStates.push(nextState);
		state.on(str[i], nextState);
		state = nextState;
		i++;
	}

	nextState = new CharacterState(endToken);
	newStates.push(nextState);
	state.on(str[len - 1], nextState);

	return newStates;
}

exports.CharacterState = CharacterState;
exports.TokenState = TokenState;
exports.stateify = stateify;

/***/ }),

/***/ "170b":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var toLength = __webpack_require__("50c4");
var toAbsoluteIndex = __webpack_require__("23cb");
var speciesConstructor = __webpack_require__("4840");

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.subarray` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray
exportTypedArrayMethod('subarray', function subarray(begin, end) {
  var O = aTypedArray(this);
  var length = O.length;
  var beginIndex = toAbsoluteIndex(begin, length);
  return new (speciesConstructor(O, O.constructor))(
    O.buffer,
    O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,
    toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)
  );
});


/***/ }),

/***/ "1726":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormatMessage_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4f8d");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormatMessage_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormatMessage_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "17c2":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $forEach = __webpack_require__("b727").forEach;
var arrayMethodIsStrict = __webpack_require__("a640");
var arrayMethodUsesToLength = __webpack_require__("ae40");

var STRICT_METHOD = arrayMethodIsStrict('forEach');
var USES_TO_LENGTH = arrayMethodUsesToLength('forEach');

// `Array.prototype.forEach` method implementation
// https://tc39.es/ecma262/#sec-array.prototype.foreach
module.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {
  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
} : [].forEach;


/***/ }),

/***/ "182d":
/***/ (function(module, exports, __webpack_require__) {

var toPositiveInteger = __webpack_require__("f8cd");

module.exports = function (it, BYTES) {
  var offset = toPositiveInteger(it);
  if (offset % BYTES) throw RangeError('Wrong offset');
  return offset;
};


/***/ }),

/***/ "19aa":
/***/ (function(module, exports) {

module.exports = function (it, Constructor, name) {
  if (!(it instanceof Constructor)) {
    throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');
  } return it;
};


/***/ }),

/***/ "1a98":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectMobile", function() { return detectMobile; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iOSDevice", function() { return iOSDevice; });
/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("caad");
/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2532");
/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_1__);


function detectMobile() {
  var userAgent = getUserAgent();
  var userAgentPart = userAgent.substr(0, 4);
  return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(userAgent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i.test(userAgentPart);
}

function getUserAgent() {
  var userAgent = navigator.userAgent || navigator.vendor || window.opera || null;
  if (!userAgent) throw new Error('Failed to look for user agent information.');
  return userAgent;
}

function iOSDevice() {
  return ['iPad', 'iPhone', 'iPod'].includes(navigator.platform) || navigator.userAgent.includes('Mac') && 'ontouchend' in document;
}

/***/ }),

/***/ "1b51":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageImage_vue_vue_type_style_index_0_id_66c96f2b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("9f1f");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageImage_vue_vue_type_style_index_0_id_66c96f2b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageImage_vue_vue_type_style_index_0_id_66c96f2b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "1be4":
/***/ (function(module, exports, __webpack_require__) {

var getBuiltIn = __webpack_require__("d066");

module.exports = getBuiltIn('document', 'documentElement');


/***/ }),

/***/ "1c0b":
/***/ (function(module, exports) {

module.exports = function (it) {
  if (typeof it != 'function') {
    throw TypeError(String(it) + ' is not a function');
  } return it;
};


/***/ }),

/***/ "1c7e":
/***/ (function(module, exports, __webpack_require__) {

var wellKnownSymbol = __webpack_require__("b622");

var ITERATOR = wellKnownSymbol('iterator');
var SAFE_CLOSING = false;

try {
  var called = 0;
  var iteratorWithReturn = {
    next: function () {
      return { done: !!called++ };
    },
    'return': function () {
      SAFE_CLOSING = true;
    }
  };
  iteratorWithReturn[ITERATOR] = function () {
    return this;
  };
  // eslint-disable-next-line no-throw-literal
  Array.from(iteratorWithReturn, function () { throw 2; });
} catch (error) { /* empty */ }

module.exports = function (exec, SKIP_CLOSING) {
  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
  var ITERATION_SUPPORT = false;
  try {
    var object = {};
    object[ITERATOR] = function () {
      return {
        next: function () {
          return { done: ITERATION_SUPPORT = true };
        }
      };
    };
    exec(object);
  } catch (error) { /* empty */ }
  return ITERATION_SUPPORT;
};


/***/ }),

/***/ "1cdc":
/***/ (function(module, exports, __webpack_require__) {

var userAgent = __webpack_require__("342f");

module.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);


/***/ }),

/***/ "1d1c":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");
var DESCRIPTORS = __webpack_require__("83ab");
var defineProperties = __webpack_require__("37e8");

// `Object.defineProperties` method
// https://tc39.es/ecma262/#sec-object.defineproperties
$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {
  defineProperties: defineProperties
});


/***/ }),

/***/ "1d80":
/***/ (function(module, exports) {

// `RequireObjectCoercible` abstract operation
// https://tc39.es/ecma262/#sec-requireobjectcoercible
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on " + it);
  return it;
};


/***/ }),

/***/ "1dde":
/***/ (function(module, exports, __webpack_require__) {

var fails = __webpack_require__("d039");
var wellKnownSymbol = __webpack_require__("b622");
var V8_VERSION = __webpack_require__("2d00");

var SPECIES = wellKnownSymbol('species');

module.exports = function (METHOD_NAME) {
  // We can't use this feature detection in V8 since it causes
  // deoptimization and serious performance degradation
  // https://github.com/zloirock/core-js/issues/677
  return V8_VERSION >= 51 || !fails(function () {
    var array = [];
    var constructor = array.constructor = {};
    constructor[SPECIES] = function () {
      return { foo: 1 };
    };
    return array[METHOD_NAME](Boolean).foo !== 1;
  });
};


/***/ }),

/***/ "219c":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
var $sort = [].sort;

// `%TypedArray%.prototype.sort` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort
exportTypedArrayMethod('sort', function sort(comparefn) {
  return $sort.call(aTypedArray(this), comparefn);
});


/***/ }),

/***/ "2266":
/***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__("825a");
var isArrayIteratorMethod = __webpack_require__("e95a");
var toLength = __webpack_require__("50c4");
var bind = __webpack_require__("0366");
var getIteratorMethod = __webpack_require__("35a1");
var iteratorClose = __webpack_require__("2a62");

var Result = function (stopped, result) {
  this.stopped = stopped;
  this.result = result;
};

module.exports = function (iterable, unboundFunction, options) {
  var that = options && options.that;
  var AS_ENTRIES = !!(options && options.AS_ENTRIES);
  var IS_ITERATOR = !!(options && options.IS_ITERATOR);
  var INTERRUPTED = !!(options && options.INTERRUPTED);
  var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);
  var iterator, iterFn, index, length, result, next, step;

  var stop = function (condition) {
    if (iterator) iteratorClose(iterator);
    return new Result(true, condition);
  };

  var callFn = function (value) {
    if (AS_ENTRIES) {
      anObject(value);
      return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
    } return INTERRUPTED ? fn(value, stop) : fn(value);
  };

  if (IS_ITERATOR) {
    iterator = iterable;
  } else {
    iterFn = getIteratorMethod(iterable);
    if (typeof iterFn != 'function') throw TypeError('Target is not iterable');
    // optimisation for array iterators
    if (isArrayIteratorMethod(iterFn)) {
      for (index = 0, length = toLength(iterable.length); length > index; index++) {
        result = callFn(iterable[index]);
        if (result && result instanceof Result) return result;
      } return new Result(false);
    }
    iterator = iterFn.call(iterable);
  }

  next = iterator.next;
  while (!(step = next.call(iterator)).done) {
    try {
      result = callFn(step.value);
    } catch (error) {
      iteratorClose(iterator);
      throw error;
    }
    if (typeof result == 'object' && result && result instanceof Result) return result;
  } return new Result(false);
};


/***/ }),

/***/ "2315":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var createHTML = __webpack_require__("857a");
var forcedStringHTMLMethod = __webpack_require__("af03");

// `String.prototype.strike` method
// https://tc39.es/ecma262/#sec-string.prototype.strike
$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {
  strike: function strike() {
    return createHTML(this, 'strike', '', '');
  }
});


/***/ }),

/***/ "23cb":
/***/ (function(module, exports, __webpack_require__) {

var toInteger = __webpack_require__("a691");

var max = Math.max;
var min = Math.min;

// Helper for a popular repeating case of the spec:
// Let integer be ? ToInteger(index).
// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
module.exports = function (index, length) {
  var integer = toInteger(index);
  return integer < 0 ? max(integer + length, 0) : min(integer, length);
};


/***/ }),

/***/ "23e7":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");
var getOwnPropertyDescriptor = __webpack_require__("06cf").f;
var createNonEnumerableProperty = __webpack_require__("9112");
var redefine = __webpack_require__("6eeb");
var setGlobal = __webpack_require__("ce4e");
var copyConstructorProperties = __webpack_require__("e893");
var isForced = __webpack_require__("94ca");

/*
  options.target      - name of the target object
  options.global      - target is the global object
  options.stat        - export as static methods of target
  options.proto       - export as prototype methods of target
  options.real        - real prototype method for the `pure` version
  options.forced      - export even if the native feature is available
  options.bind        - bind methods to the target, required for the `pure` version
  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version
  options.unsafe      - use the simple assignment of property instead of delete + defineProperty
  options.sham        - add a flag to not completely full polyfills
  options.enumerable  - export as enumerable property
  options.noTargetGet - prevent calling a getter on target
*/
module.exports = function (options, source) {
  var TARGET = options.target;
  var GLOBAL = options.global;
  var STATIC = options.stat;
  var FORCED, target, key, targetProperty, sourceProperty, descriptor;
  if (GLOBAL) {
    target = global;
  } else if (STATIC) {
    target = global[TARGET] || setGlobal(TARGET, {});
  } else {
    target = (global[TARGET] || {}).prototype;
  }
  if (target) for (key in source) {
    sourceProperty = source[key];
    if (options.noTargetGet) {
      descriptor = getOwnPropertyDescriptor(target, key);
      targetProperty = descriptor && descriptor.value;
    } else targetProperty = target[key];
    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
    // contained in target
    if (!FORCED && targetProperty !== undefined) {
      if (typeof sourceProperty === typeof targetProperty) continue;
      copyConstructorProperties(sourceProperty, targetProperty);
    }
    // add a flag to not completely full polyfills
    if (options.sham || (targetProperty && targetProperty.sham)) {
      createNonEnumerableProperty(sourceProperty, 'sham', true);
    }
    // extend global
    redefine(target, key, sourceProperty, options);
  }
};


/***/ }),

/***/ "241c":
/***/ (function(module, exports, __webpack_require__) {

var internalObjectKeys = __webpack_require__("ca84");
var enumBugKeys = __webpack_require__("7839");

var hiddenKeys = enumBugKeys.concat('length', 'prototype');

// `Object.getOwnPropertyNames` method
// https://tc39.es/ecma262/#sec-object.getownpropertynames
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
  return internalObjectKeys(O, hiddenKeys);
};


/***/ }),

/***/ "2532":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var notARegExp = __webpack_require__("5a34");
var requireObjectCoercible = __webpack_require__("1d80");
var correctIsRegExpLogic = __webpack_require__("ab13");

// `String.prototype.includes` method
// https://tc39.es/ecma262/#sec-string.prototype.includes
$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {
  includes: function includes(searchString /* , position = 0 */) {
    return !!~String(requireObjectCoercible(this))
      .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);
  }
});


/***/ }),

/***/ "254c":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.inherits = inherits;
function inherits(parent, child) {
	var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};

	var extended = Object.create(parent.prototype);
	for (var p in props) {
		extended[p] = props[p];
	}
	extended.constructor = child;
	child.prototype = extended;
	return child;
}

/***/ }),

/***/ "2582":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomsSearch_vue_vue_type_style_index_0_id_75dd31cd_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4596");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomsSearch_vue_vue_type_style_index_0_id_75dd31cd_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomsSearch_vue_vue_type_style_index_0_id_75dd31cd_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "25a1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var $reduceRight = __webpack_require__("d58f").right;

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.reduceRicht` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright
exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {
  return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
});


/***/ }),

/***/ "25f0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var redefine = __webpack_require__("6eeb");
var anObject = __webpack_require__("825a");
var fails = __webpack_require__("d039");
var flags = __webpack_require__("ad6d");

var TO_STRING = 'toString';
var RegExpPrototype = RegExp.prototype;
var nativeToString = RegExpPrototype[TO_STRING];

var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
// FF44- RegExp#toString has a wrong name
var INCORRECT_NAME = nativeToString.name != TO_STRING;

// `RegExp.prototype.toString` method
// https://tc39.es/ecma262/#sec-regexp.prototype.tostring
if (NOT_GENERIC || INCORRECT_NAME) {
  redefine(RegExp.prototype, TO_STRING, function toString() {
    var R = anObject(this);
    var p = String(R.source);
    var rf = R.flags;
    var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);
    return '/' + p + '/' + f;
  }, { unsafe: true });
}


/***/ }),

/***/ "2626":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var getBuiltIn = __webpack_require__("d066");
var definePropertyModule = __webpack_require__("9bf2");
var wellKnownSymbol = __webpack_require__("b622");
var DESCRIPTORS = __webpack_require__("83ab");

var SPECIES = wellKnownSymbol('species');

module.exports = function (CONSTRUCTOR_NAME) {
  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);
  var defineProperty = definePropertyModule.f;

  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {
    defineProperty(Constructor, SPECIES, {
      configurable: true,
      get: function () { return this; }
    });
  }
};


/***/ }),

/***/ "277d":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");
var isArray = __webpack_require__("e8b5");

// `Array.isArray` method
// https://tc39.es/ecma262/#sec-array.isarray
$({ target: 'Array', stat: true }, {
  isArray: isArray
});


/***/ }),

/***/ "2911":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageActions_vue_vue_type_style_index_0_id_2caa176e_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("0f96");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageActions_vue_vue_type_style_index_0_id_2caa176e_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageActions_vue_vue_type_style_index_0_id_2caa176e_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "2954":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var speciesConstructor = __webpack_require__("4840");
var fails = __webpack_require__("d039");

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
var $slice = [].slice;

var FORCED = fails(function () {
  // eslint-disable-next-line no-undef
  new Int8Array(1).slice();
});

// `%TypedArray%.prototype.slice` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice
exportTypedArrayMethod('slice', function slice(start, end) {
  var list = $slice.call(aTypedArray(this), start, end);
  var C = speciesConstructor(this, this.constructor);
  var index = 0;
  var length = list.length;
  var result = new (aTypedArrayConstructor(C))(length);
  while (length > index) result[index] = list[index++];
  return result;
}, FORCED);


/***/ }),

/***/ "2a62":
/***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__("825a");

module.exports = function (iterator) {
  var returnMethod = iterator['return'];
  if (returnMethod !== undefined) {
    return anObject(returnMethod.call(iterator)).value;
  }
};


/***/ }),

/***/ "2b3d":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
__webpack_require__("3ca3");
var $ = __webpack_require__("23e7");
var DESCRIPTORS = __webpack_require__("83ab");
var USE_NATIVE_URL = __webpack_require__("0d3b");
var global = __webpack_require__("da84");
var defineProperties = __webpack_require__("37e8");
var redefine = __webpack_require__("6eeb");
var anInstance = __webpack_require__("19aa");
var has = __webpack_require__("5135");
var assign = __webpack_require__("60da");
var arrayFrom = __webpack_require__("4df4");
var codeAt = __webpack_require__("6547").codeAt;
var toASCII = __webpack_require__("5fb2");
var setToStringTag = __webpack_require__("d44e");
var URLSearchParamsModule = __webpack_require__("9861");
var InternalStateModule = __webpack_require__("69f3");

var NativeURL = global.URL;
var URLSearchParams = URLSearchParamsModule.URLSearchParams;
var getInternalSearchParamsState = URLSearchParamsModule.getState;
var setInternalState = InternalStateModule.set;
var getInternalURLState = InternalStateModule.getterFor('URL');
var floor = Math.floor;
var pow = Math.pow;

var INVALID_AUTHORITY = 'Invalid authority';
var INVALID_SCHEME = 'Invalid scheme';
var INVALID_HOST = 'Invalid host';
var INVALID_PORT = 'Invalid port';

var ALPHA = /[A-Za-z]/;
var ALPHANUMERIC = /[\d+-.A-Za-z]/;
var DIGIT = /\d/;
var HEX_START = /^(0x|0X)/;
var OCT = /^[0-7]+$/;
var DEC = /^\d+$/;
var HEX = /^[\dA-Fa-f]+$/;
// eslint-disable-next-line no-control-regex
var FORBIDDEN_HOST_CODE_POINT = /[\u0000\u0009\u000A\u000D #%/:?@[\\]]/;
// eslint-disable-next-line no-control-regex
var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\u0000\u0009\u000A\u000D #/:?@[\\]]/;
// eslint-disable-next-line no-control-regex
var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g;
// eslint-disable-next-line no-control-regex
var TAB_AND_NEW_LINE = /[\u0009\u000A\u000D]/g;
var EOF;

var parseHost = function (url, input) {
  var result, codePoints, index;
  if (input.charAt(0) == '[') {
    if (input.charAt(input.length - 1) != ']') return INVALID_HOST;
    result = parseIPv6(input.slice(1, -1));
    if (!result) return INVALID_HOST;
    url.host = result;
  // opaque host
  } else if (!isSpecial(url)) {
    if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;
    result = '';
    codePoints = arrayFrom(input);
    for (index = 0; index < codePoints.length; index++) {
      result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);
    }
    url.host = result;
  } else {
    input = toASCII(input);
    if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;
    result = parseIPv4(input);
    if (result === null) return INVALID_HOST;
    url.host = result;
  }
};

var parseIPv4 = function (input) {
  var parts = input.split('.');
  var partsLength, numbers, index, part, radix, number, ipv4;
  if (parts.length && parts[parts.length - 1] == '') {
    parts.pop();
  }
  partsLength = parts.length;
  if (partsLength > 4) return input;
  numbers = [];
  for (index = 0; index < partsLength; index++) {
    part = parts[index];
    if (part == '') return input;
    radix = 10;
    if (part.length > 1 && part.charAt(0) == '0') {
      radix = HEX_START.test(part) ? 16 : 8;
      part = part.slice(radix == 8 ? 1 : 2);
    }
    if (part === '') {
      number = 0;
    } else {
      if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;
      number = parseInt(part, radix);
    }
    numbers.push(number);
  }
  for (index = 0; index < partsLength; index++) {
    number = numbers[index];
    if (index == partsLength - 1) {
      if (number >= pow(256, 5 - partsLength)) return null;
    } else if (number > 255) return null;
  }
  ipv4 = numbers.pop();
  for (index = 0; index < numbers.length; index++) {
    ipv4 += numbers[index] * pow(256, 3 - index);
  }
  return ipv4;
};

// eslint-disable-next-line max-statements
var parseIPv6 = function (input) {
  var address = [0, 0, 0, 0, 0, 0, 0, 0];
  var pieceIndex = 0;
  var compress = null;
  var pointer = 0;
  var value, length, numbersSeen, ipv4Piece, number, swaps, swap;

  var char = function () {
    return input.charAt(pointer);
  };

  if (char() == ':') {
    if (input.charAt(1) != ':') return;
    pointer += 2;
    pieceIndex++;
    compress = pieceIndex;
  }
  while (char()) {
    if (pieceIndex == 8) return;
    if (char() == ':') {
      if (compress !== null) return;
      pointer++;
      pieceIndex++;
      compress = pieceIndex;
      continue;
    }
    value = length = 0;
    while (length < 4 && HEX.test(char())) {
      value = value * 16 + parseInt(char(), 16);
      pointer++;
      length++;
    }
    if (char() == '.') {
      if (length == 0) return;
      pointer -= length;
      if (pieceIndex > 6) return;
      numbersSeen = 0;
      while (char()) {
        ipv4Piece = null;
        if (numbersSeen > 0) {
          if (char() == '.' && numbersSeen < 4) pointer++;
          else return;
        }
        if (!DIGIT.test(char())) return;
        while (DIGIT.test(char())) {
          number = parseInt(char(), 10);
          if (ipv4Piece === null) ipv4Piece = number;
          else if (ipv4Piece == 0) return;
          else ipv4Piece = ipv4Piece * 10 + number;
          if (ipv4Piece > 255) return;
          pointer++;
        }
        address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;
        numbersSeen++;
        if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;
      }
      if (numbersSeen != 4) return;
      break;
    } else if (char() == ':') {
      pointer++;
      if (!char()) return;
    } else if (char()) return;
    address[pieceIndex++] = value;
  }
  if (compress !== null) {
    swaps = pieceIndex - compress;
    pieceIndex = 7;
    while (pieceIndex != 0 && swaps > 0) {
      swap = address[pieceIndex];
      address[pieceIndex--] = address[compress + swaps - 1];
      address[compress + --swaps] = swap;
    }
  } else if (pieceIndex != 8) return;
  return address;
};

var findLongestZeroSequence = function (ipv6) {
  var maxIndex = null;
  var maxLength = 1;
  var currStart = null;
  var currLength = 0;
  var index = 0;
  for (; index < 8; index++) {
    if (ipv6[index] !== 0) {
      if (currLength > maxLength) {
        maxIndex = currStart;
        maxLength = currLength;
      }
      currStart = null;
      currLength = 0;
    } else {
      if (currStart === null) currStart = index;
      ++currLength;
    }
  }
  if (currLength > maxLength) {
    maxIndex = currStart;
    maxLength = currLength;
  }
  return maxIndex;
};

var serializeHost = function (host) {
  var result, index, compress, ignore0;
  // ipv4
  if (typeof host == 'number') {
    result = [];
    for (index = 0; index < 4; index++) {
      result.unshift(host % 256);
      host = floor(host / 256);
    } return result.join('.');
  // ipv6
  } else if (typeof host == 'object') {
    result = '';
    compress = findLongestZeroSequence(host);
    for (index = 0; index < 8; index++) {
      if (ignore0 && host[index] === 0) continue;
      if (ignore0) ignore0 = false;
      if (compress === index) {
        result += index ? ':' : '::';
        ignore0 = true;
      } else {
        result += host[index].toString(16);
        if (index < 7) result += ':';
      }
    }
    return '[' + result + ']';
  } return host;
};

var C0ControlPercentEncodeSet = {};
var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {
  ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1
});
var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {
  '#': 1, '?': 1, '{': 1, '}': 1
});
var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {
  '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1
});

var percentEncode = function (char, set) {
  var code = codeAt(char, 0);
  return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);
};

var specialSchemes = {
  ftp: 21,
  file: null,
  http: 80,
  https: 443,
  ws: 80,
  wss: 443
};

var isSpecial = function (url) {
  return has(specialSchemes, url.scheme);
};

var includesCredentials = function (url) {
  return url.username != '' || url.password != '';
};

var cannotHaveUsernamePasswordPort = function (url) {
  return !url.host || url.cannotBeABaseURL || url.scheme == 'file';
};

var isWindowsDriveLetter = function (string, normalized) {
  var second;
  return string.length == 2 && ALPHA.test(string.charAt(0))
    && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));
};

var startsWithWindowsDriveLetter = function (string) {
  var third;
  return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (
    string.length == 2 ||
    ((third = string.charAt(2)) === '/' || third === '\\' || third === '?' || third === '#')
  );
};

var shortenURLsPath = function (url) {
  var path = url.path;
  var pathSize = path.length;
  if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {
    path.pop();
  }
};

var isSingleDot = function (segment) {
  return segment === '.' || segment.toLowerCase() === '%2e';
};

var isDoubleDot = function (segment) {
  segment = segment.toLowerCase();
  return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';
};

// States:
var SCHEME_START = {};
var SCHEME = {};
var NO_SCHEME = {};
var SPECIAL_RELATIVE_OR_AUTHORITY = {};
var PATH_OR_AUTHORITY = {};
var RELATIVE = {};
var RELATIVE_SLASH = {};
var SPECIAL_AUTHORITY_SLASHES = {};
var SPECIAL_AUTHORITY_IGNORE_SLASHES = {};
var AUTHORITY = {};
var HOST = {};
var HOSTNAME = {};
var PORT = {};
var FILE = {};
var FILE_SLASH = {};
var FILE_HOST = {};
var PATH_START = {};
var PATH = {};
var CANNOT_BE_A_BASE_URL_PATH = {};
var QUERY = {};
var FRAGMENT = {};

// eslint-disable-next-line max-statements
var parseURL = function (url, input, stateOverride, base) {
  var state = stateOverride || SCHEME_START;
  var pointer = 0;
  var buffer = '';
  var seenAt = false;
  var seenBracket = false;
  var seenPasswordToken = false;
  var codePoints, char, bufferCodePoints, failure;

  if (!stateOverride) {
    url.scheme = '';
    url.username = '';
    url.password = '';
    url.host = null;
    url.port = null;
    url.path = [];
    url.query = null;
    url.fragment = null;
    url.cannotBeABaseURL = false;
    input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');
  }

  input = input.replace(TAB_AND_NEW_LINE, '');

  codePoints = arrayFrom(input);

  while (pointer <= codePoints.length) {
    char = codePoints[pointer];
    switch (state) {
      case SCHEME_START:
        if (char && ALPHA.test(char)) {
          buffer += char.toLowerCase();
          state = SCHEME;
        } else if (!stateOverride) {
          state = NO_SCHEME;
          continue;
        } else return INVALID_SCHEME;
        break;

      case SCHEME:
        if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {
          buffer += char.toLowerCase();
        } else if (char == ':') {
          if (stateOverride && (
            (isSpecial(url) != has(specialSchemes, buffer)) ||
            (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||
            (url.scheme == 'file' && !url.host)
          )) return;
          url.scheme = buffer;
          if (stateOverride) {
            if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;
            return;
          }
          buffer = '';
          if (url.scheme == 'file') {
            state = FILE;
          } else if (isSpecial(url) && base && base.scheme == url.scheme) {
            state = SPECIAL_RELATIVE_OR_AUTHORITY;
          } else if (isSpecial(url)) {
            state = SPECIAL_AUTHORITY_SLASHES;
          } else if (codePoints[pointer + 1] == '/') {
            state = PATH_OR_AUTHORITY;
            pointer++;
          } else {
            url.cannotBeABaseURL = true;
            url.path.push('');
            state = CANNOT_BE_A_BASE_URL_PATH;
          }
        } else if (!stateOverride) {
          buffer = '';
          state = NO_SCHEME;
          pointer = 0;
          continue;
        } else return INVALID_SCHEME;
        break;

      case NO_SCHEME:
        if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;
        if (base.cannotBeABaseURL && char == '#') {
          url.scheme = base.scheme;
          url.path = base.path.slice();
          url.query = base.query;
          url.fragment = '';
          url.cannotBeABaseURL = true;
          state = FRAGMENT;
          break;
        }
        state = base.scheme == 'file' ? FILE : RELATIVE;
        continue;

      case SPECIAL_RELATIVE_OR_AUTHORITY:
        if (char == '/' && codePoints[pointer + 1] == '/') {
          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
          pointer++;
        } else {
          state = RELATIVE;
          continue;
        } break;

      case PATH_OR_AUTHORITY:
        if (char == '/') {
          state = AUTHORITY;
          break;
        } else {
          state = PATH;
          continue;
        }

      case RELATIVE:
        url.scheme = base.scheme;
        if (char == EOF) {
          url.username = base.username;
          url.password = base.password;
          url.host = base.host;
          url.port = base.port;
          url.path = base.path.slice();
          url.query = base.query;
        } else if (char == '/' || (char == '\\' && isSpecial(url))) {
          state = RELATIVE_SLASH;
        } else if (char == '?') {
          url.username = base.username;
          url.password = base.password;
          url.host = base.host;
          url.port = base.port;
          url.path = base.path.slice();
          url.query = '';
          state = QUERY;
        } else if (char == '#') {
          url.username = base.username;
          url.password = base.password;
          url.host = base.host;
          url.port = base.port;
          url.path = base.path.slice();
          url.query = base.query;
          url.fragment = '';
          state = FRAGMENT;
        } else {
          url.username = base.username;
          url.password = base.password;
          url.host = base.host;
          url.port = base.port;
          url.path = base.path.slice();
          url.path.pop();
          state = PATH;
          continue;
        } break;

      case RELATIVE_SLASH:
        if (isSpecial(url) && (char == '/' || char == '\\')) {
          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
        } else if (char == '/') {
          state = AUTHORITY;
        } else {
          url.username = base.username;
          url.password = base.password;
          url.host = base.host;
          url.port = base.port;
          state = PATH;
          continue;
        } break;

      case SPECIAL_AUTHORITY_SLASHES:
        state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
        if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;
        pointer++;
        break;

      case SPECIAL_AUTHORITY_IGNORE_SLASHES:
        if (char != '/' && char != '\\') {
          state = AUTHORITY;
          continue;
        } break;

      case AUTHORITY:
        if (char == '@') {
          if (seenAt) buffer = '%40' + buffer;
          seenAt = true;
          bufferCodePoints = arrayFrom(buffer);
          for (var i = 0; i < bufferCodePoints.length; i++) {
            var codePoint = bufferCodePoints[i];
            if (codePoint == ':' && !seenPasswordToken) {
              seenPasswordToken = true;
              continue;
            }
            var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);
            if (seenPasswordToken) url.password += encodedCodePoints;
            else url.username += encodedCodePoints;
          }
          buffer = '';
        } else if (
          char == EOF || char == '/' || char == '?' || char == '#' ||
          (char == '\\' && isSpecial(url))
        ) {
          if (seenAt && buffer == '') return INVALID_AUTHORITY;
          pointer -= arrayFrom(buffer).length + 1;
          buffer = '';
          state = HOST;
        } else buffer += char;
        break;

      case HOST:
      case HOSTNAME:
        if (stateOverride && url.scheme == 'file') {
          state = FILE_HOST;
          continue;
        } else if (char == ':' && !seenBracket) {
          if (buffer == '') return INVALID_HOST;
          failure = parseHost(url, buffer);
          if (failure) return failure;
          buffer = '';
          state = PORT;
          if (stateOverride == HOSTNAME) return;
        } else if (
          char == EOF || char == '/' || char == '?' || char == '#' ||
          (char == '\\' && isSpecial(url))
        ) {
          if (isSpecial(url) && buffer == '') return INVALID_HOST;
          if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;
          failure = parseHost(url, buffer);
          if (failure) return failure;
          buffer = '';
          state = PATH_START;
          if (stateOverride) return;
          continue;
        } else {
          if (char == '[') seenBracket = true;
          else if (char == ']') seenBracket = false;
          buffer += char;
        } break;

      case PORT:
        if (DIGIT.test(char)) {
          buffer += char;
        } else if (
          char == EOF || char == '/' || char == '?' || char == '#' ||
          (char == '\\' && isSpecial(url)) ||
          stateOverride
        ) {
          if (buffer != '') {
            var port = parseInt(buffer, 10);
            if (port > 0xFFFF) return INVALID_PORT;
            url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;
            buffer = '';
          }
          if (stateOverride) return;
          state = PATH_START;
          continue;
        } else return INVALID_PORT;
        break;

      case FILE:
        url.scheme = 'file';
        if (char == '/' || char == '\\') state = FILE_SLASH;
        else if (base && base.scheme == 'file') {
          if (char == EOF) {
            url.host = base.host;
            url.path = base.path.slice();
            url.query = base.query;
          } else if (char == '?') {
            url.host = base.host;
            url.path = base.path.slice();
            url.query = '';
            state = QUERY;
          } else if (char == '#') {
            url.host = base.host;
            url.path = base.path.slice();
            url.query = base.query;
            url.fragment = '';
            state = FRAGMENT;
          } else {
            if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {
              url.host = base.host;
              url.path = base.path.slice();
              shortenURLsPath(url);
            }
            state = PATH;
            continue;
          }
        } else {
          state = PATH;
          continue;
        } break;

      case FILE_SLASH:
        if (char == '/' || char == '\\') {
          state = FILE_HOST;
          break;
        }
        if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {
          if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);
          else url.host = base.host;
        }
        state = PATH;
        continue;

      case FILE_HOST:
        if (char == EOF || char == '/' || char == '\\' || char == '?' || char == '#') {
          if (!stateOverride && isWindowsDriveLetter(buffer)) {
            state = PATH;
          } else if (buffer == '') {
            url.host = '';
            if (stateOverride) return;
            state = PATH_START;
          } else {
            failure = parseHost(url, buffer);
            if (failure) return failure;
            if (url.host == 'localhost') url.host = '';
            if (stateOverride) return;
            buffer = '';
            state = PATH_START;
          } continue;
        } else buffer += char;
        break;

      case PATH_START:
        if (isSpecial(url)) {
          state = PATH;
          if (char != '/' && char != '\\') continue;
        } else if (!stateOverride && char == '?') {
          url.query = '';
          state = QUERY;
        } else if (!stateOverride && char == '#') {
          url.fragment = '';
          state = FRAGMENT;
        } else if (char != EOF) {
          state = PATH;
          if (char != '/') continue;
        } break;

      case PATH:
        if (
          char == EOF || char == '/' ||
          (char == '\\' && isSpecial(url)) ||
          (!stateOverride && (char == '?' || char == '#'))
        ) {
          if (isDoubleDot(buffer)) {
            shortenURLsPath(url);
            if (char != '/' && !(char == '\\' && isSpecial(url))) {
              url.path.push('');
            }
          } else if (isSingleDot(buffer)) {
            if (char != '/' && !(char == '\\' && isSpecial(url))) {
              url.path.push('');
            }
          } else {
            if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {
              if (url.host) url.host = '';
              buffer = buffer.charAt(0) + ':'; // normalize windows drive letter
            }
            url.path.push(buffer);
          }
          buffer = '';
          if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {
            while (url.path.length > 1 && url.path[0] === '') {
              url.path.shift();
            }
          }
          if (char == '?') {
            url.query = '';
            state = QUERY;
          } else if (char == '#') {
            url.fragment = '';
            state = FRAGMENT;
          }
        } else {
          buffer += percentEncode(char, pathPercentEncodeSet);
        } break;

      case CANNOT_BE_A_BASE_URL_PATH:
        if (char == '?') {
          url.query = '';
          state = QUERY;
        } else if (char == '#') {
          url.fragment = '';
          state = FRAGMENT;
        } else if (char != EOF) {
          url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);
        } break;

      case QUERY:
        if (!stateOverride && char == '#') {
          url.fragment = '';
          state = FRAGMENT;
        } else if (char != EOF) {
          if (char == "'" && isSpecial(url)) url.query += '%27';
          else if (char == '#') url.query += '%23';
          else url.query += percentEncode(char, C0ControlPercentEncodeSet);
        } break;

      case FRAGMENT:
        if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);
        break;
    }

    pointer++;
  }
};

// `URL` constructor
// https://url.spec.whatwg.org/#url-class
var URLConstructor = function URL(url /* , base */) {
  var that = anInstance(this, URLConstructor, 'URL');
  var base = arguments.length > 1 ? arguments[1] : undefined;
  var urlString = String(url);
  var state = setInternalState(that, { type: 'URL' });
  var baseState, failure;
  if (base !== undefined) {
    if (base instanceof URLConstructor) baseState = getInternalURLState(base);
    else {
      failure = parseURL(baseState = {}, String(base));
      if (failure) throw TypeError(failure);
    }
  }
  failure = parseURL(state, urlString, null, baseState);
  if (failure) throw TypeError(failure);
  var searchParams = state.searchParams = new URLSearchParams();
  var searchParamsState = getInternalSearchParamsState(searchParams);
  searchParamsState.updateSearchParams(state.query);
  searchParamsState.updateURL = function () {
    state.query = String(searchParams) || null;
  };
  if (!DESCRIPTORS) {
    that.href = serializeURL.call(that);
    that.origin = getOrigin.call(that);
    that.protocol = getProtocol.call(that);
    that.username = getUsername.call(that);
    that.password = getPassword.call(that);
    that.host = getHost.call(that);
    that.hostname = getHostname.call(that);
    that.port = getPort.call(that);
    that.pathname = getPathname.call(that);
    that.search = getSearch.call(that);
    that.searchParams = getSearchParams.call(that);
    that.hash = getHash.call(that);
  }
};

var URLPrototype = URLConstructor.prototype;

var serializeURL = function () {
  var url = getInternalURLState(this);
  var scheme = url.scheme;
  var username = url.username;
  var password = url.password;
  var host = url.host;
  var port = url.port;
  var path = url.path;
  var query = url.query;
  var fragment = url.fragment;
  var output = scheme + ':';
  if (host !== null) {
    output += '//';
    if (includesCredentials(url)) {
      output += username + (password ? ':' + password : '') + '@';
    }
    output += serializeHost(host);
    if (port !== null) output += ':' + port;
  } else if (scheme == 'file') output += '//';
  output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';
  if (query !== null) output += '?' + query;
  if (fragment !== null) output += '#' + fragment;
  return output;
};

var getOrigin = function () {
  var url = getInternalURLState(this);
  var scheme = url.scheme;
  var port = url.port;
  if (scheme == 'blob') try {
    return new URL(scheme.path[0]).origin;
  } catch (error) {
    return 'null';
  }
  if (scheme == 'file' || !isSpecial(url)) return 'null';
  return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');
};

var getProtocol = function () {
  return getInternalURLState(this).scheme + ':';
};

var getUsername = function () {
  return getInternalURLState(this).username;
};

var getPassword = function () {
  return getInternalURLState(this).password;
};

var getHost = function () {
  var url = getInternalURLState(this);
  var host = url.host;
  var port = url.port;
  return host === null ? ''
    : port === null ? serializeHost(host)
    : serializeHost(host) + ':' + port;
};

var getHostname = function () {
  var host = getInternalURLState(this).host;
  return host === null ? '' : serializeHost(host);
};

var getPort = function () {
  var port = getInternalURLState(this).port;
  return port === null ? '' : String(port);
};

var getPathname = function () {
  var url = getInternalURLState(this);
  var path = url.path;
  return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';
};

var getSearch = function () {
  var query = getInternalURLState(this).query;
  return query ? '?' + query : '';
};

var getSearchParams = function () {
  return getInternalURLState(this).searchParams;
};

var getHash = function () {
  var fragment = getInternalURLState(this).fragment;
  return fragment ? '#' + fragment : '';
};

var accessorDescriptor = function (getter, setter) {
  return { get: getter, set: setter, configurable: true, enumerable: true };
};

if (DESCRIPTORS) {
  defineProperties(URLPrototype, {
    // `URL.prototype.href` accessors pair
    // https://url.spec.whatwg.org/#dom-url-href
    href: accessorDescriptor(serializeURL, function (href) {
      var url = getInternalURLState(this);
      var urlString = String(href);
      var failure = parseURL(url, urlString);
      if (failure) throw TypeError(failure);
      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);
    }),
    // `URL.prototype.origin` getter
    // https://url.spec.whatwg.org/#dom-url-origin
    origin: accessorDescriptor(getOrigin),
    // `URL.prototype.protocol` accessors pair
    // https://url.spec.whatwg.org/#dom-url-protocol
    protocol: accessorDescriptor(getProtocol, function (protocol) {
      var url = getInternalURLState(this);
      parseURL(url, String(protocol) + ':', SCHEME_START);
    }),
    // `URL.prototype.username` accessors pair
    // https://url.spec.whatwg.org/#dom-url-username
    username: accessorDescriptor(getUsername, function (username) {
      var url = getInternalURLState(this);
      var codePoints = arrayFrom(String(username));
      if (cannotHaveUsernamePasswordPort(url)) return;
      url.username = '';
      for (var i = 0; i < codePoints.length; i++) {
        url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);
      }
    }),
    // `URL.prototype.password` accessors pair
    // https://url.spec.whatwg.org/#dom-url-password
    password: accessorDescriptor(getPassword, function (password) {
      var url = getInternalURLState(this);
      var codePoints = arrayFrom(String(password));
      if (cannotHaveUsernamePasswordPort(url)) return;
      url.password = '';
      for (var i = 0; i < codePoints.length; i++) {
        url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);
      }
    }),
    // `URL.prototype.host` accessors pair
    // https://url.spec.whatwg.org/#dom-url-host
    host: accessorDescriptor(getHost, function (host) {
      var url = getInternalURLState(this);
      if (url.cannotBeABaseURL) return;
      parseURL(url, String(host), HOST);
    }),
    // `URL.prototype.hostname` accessors pair
    // https://url.spec.whatwg.org/#dom-url-hostname
    hostname: accessorDescriptor(getHostname, function (hostname) {
      var url = getInternalURLState(this);
      if (url.cannotBeABaseURL) return;
      parseURL(url, String(hostname), HOSTNAME);
    }),
    // `URL.prototype.port` accessors pair
    // https://url.spec.whatwg.org/#dom-url-port
    port: accessorDescriptor(getPort, function (port) {
      var url = getInternalURLState(this);
      if (cannotHaveUsernamePasswordPort(url)) return;
      port = String(port);
      if (port == '') url.port = null;
      else parseURL(url, port, PORT);
    }),
    // `URL.prototype.pathname` accessors pair
    // https://url.spec.whatwg.org/#dom-url-pathname
    pathname: accessorDescriptor(getPathname, function (pathname) {
      var url = getInternalURLState(this);
      if (url.cannotBeABaseURL) return;
      url.path = [];
      parseURL(url, pathname + '', PATH_START);
    }),
    // `URL.prototype.search` accessors pair
    // https://url.spec.whatwg.org/#dom-url-search
    search: accessorDescriptor(getSearch, function (search) {
      var url = getInternalURLState(this);
      search = String(search);
      if (search == '') {
        url.query = null;
      } else {
        if ('?' == search.charAt(0)) search = search.slice(1);
        url.query = '';
        parseURL(url, search, QUERY);
      }
      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);
    }),
    // `URL.prototype.searchParams` getter
    // https://url.spec.whatwg.org/#dom-url-searchparams
    searchParams: accessorDescriptor(getSearchParams),
    // `URL.prototype.hash` accessors pair
    // https://url.spec.whatwg.org/#dom-url-hash
    hash: accessorDescriptor(getHash, function (hash) {
      var url = getInternalURLState(this);
      hash = String(hash);
      if (hash == '') {
        url.fragment = null;
        return;
      }
      if ('#' == hash.charAt(0)) hash = hash.slice(1);
      url.fragment = '';
      parseURL(url, hash, FRAGMENT);
    })
  });
}

// `URL.prototype.toJSON` method
// https://url.spec.whatwg.org/#dom-url-tojson
redefine(URLPrototype, 'toJSON', function toJSON() {
  return serializeURL.call(this);
}, { enumerable: true });

// `URL.prototype.toString` method
// https://url.spec.whatwg.org/#URL-stringification-behavior
redefine(URLPrototype, 'toString', function toString() {
  return serializeURL.call(this);
}, { enumerable: true });

if (NativeURL) {
  var nativeCreateObjectURL = NativeURL.createObjectURL;
  var nativeRevokeObjectURL = NativeURL.revokeObjectURL;
  // `URL.createObjectURL` method
  // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
  // eslint-disable-next-line no-unused-vars
  if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {
    return nativeCreateObjectURL.apply(NativeURL, arguments);
  });
  // `URL.revokeObjectURL` method
  // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL
  // eslint-disable-next-line no-unused-vars
  if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {
    return nativeRevokeObjectURL.apply(NativeURL, arguments);
  });
}

setToStringTag(URLConstructor, 'URL');

$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {
  URL: URLConstructor
});


/***/ }),

/***/ "2ca0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var getOwnPropertyDescriptor = __webpack_require__("06cf").f;
var toLength = __webpack_require__("50c4");
var notARegExp = __webpack_require__("5a34");
var requireObjectCoercible = __webpack_require__("1d80");
var correctIsRegExpLogic = __webpack_require__("ab13");
var IS_PURE = __webpack_require__("c430");

var nativeStartsWith = ''.startsWith;
var min = Math.min;

var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');
// https://github.com/zloirock/core-js/pull/702
var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {
  var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');
  return descriptor && !descriptor.writable;
}();

// `String.prototype.startsWith` method
// https://tc39.es/ecma262/#sec-string.prototype.startswith
$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {
  startsWith: function startsWith(searchString /* , position = 0 */) {
    var that = String(requireObjectCoercible(this));
    notARegExp(searchString);
    var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));
    var search = String(searchString);
    return nativeStartsWith
      ? nativeStartsWith.call(that, search, index)
      : that.slice(index, index + search.length) === search;
  }
});


/***/ }),

/***/ "2cf4":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");
var fails = __webpack_require__("d039");
var bind = __webpack_require__("0366");
var html = __webpack_require__("1be4");
var createElement = __webpack_require__("cc12");
var IS_IOS = __webpack_require__("1cdc");
var IS_NODE = __webpack_require__("605d");

var location = global.location;
var set = global.setImmediate;
var clear = global.clearImmediate;
var process = global.process;
var MessageChannel = global.MessageChannel;
var Dispatch = global.Dispatch;
var counter = 0;
var queue = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
var defer, channel, port;

var run = function (id) {
  // eslint-disable-next-line no-prototype-builtins
  if (queue.hasOwnProperty(id)) {
    var fn = queue[id];
    delete queue[id];
    fn();
  }
};

var runner = function (id) {
  return function () {
    run(id);
  };
};

var listener = function (event) {
  run(event.data);
};

var post = function (id) {
  // old engines have not location.origin
  global.postMessage(id + '', location.protocol + '//' + location.host);
};

// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
if (!set || !clear) {
  set = function setImmediate(fn) {
    var args = [];
    var i = 1;
    while (arguments.length > i) args.push(arguments[i++]);
    queue[++counter] = function () {
      // eslint-disable-next-line no-new-func
      (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);
    };
    defer(counter);
    return counter;
  };
  clear = function clearImmediate(id) {
    delete queue[id];
  };
  // Node.js 0.8-
  if (IS_NODE) {
    defer = function (id) {
      process.nextTick(runner(id));
    };
  // Sphere (JS game engine) Dispatch API
  } else if (Dispatch && Dispatch.now) {
    defer = function (id) {
      Dispatch.now(runner(id));
    };
  // Browsers with MessageChannel, includes WebWorkers
  // except iOS - https://github.com/zloirock/core-js/issues/624
  } else if (MessageChannel && !IS_IOS) {
    channel = new MessageChannel();
    port = channel.port2;
    channel.port1.onmessage = listener;
    defer = bind(port.postMessage, port, 1);
  // Browsers with postMessage, skip WebWorkers
  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
  } else if (
    global.addEventListener &&
    typeof postMessage == 'function' &&
    !global.importScripts &&
    location && location.protocol !== 'file:' &&
    !fails(post)
  ) {
    defer = post;
    global.addEventListener('message', listener, false);
  // IE8-
  } else if (ONREADYSTATECHANGE in createElement('script')) {
    defer = function (id) {
      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {
        html.removeChild(this);
        run(id);
      };
    };
  // Rest old browsers
  } else {
    defer = function (id) {
      setTimeout(runner(id), 0);
    };
  }
}

module.exports = {
  set: set,
  clear: clear
};


/***/ }),

/***/ "2d00":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");
var userAgent = __webpack_require__("342f");

var process = global.process;
var versions = process && process.versions;
var v8 = versions && versions.v8;
var match, version;

if (v8) {
  match = v8.split('.');
  version = match[0] + match[1];
} else if (userAgent) {
  match = userAgent.match(/Edge\/(\d+)/);
  if (!match || match[1] >= 74) {
    match = userAgent.match(/Chrome\/(\d+)/);
    if (match) version = match[1];
  }
}

module.exports = version && +version;


/***/ }),

/***/ "2d78":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.tokenize = exports.test = exports.scanner = exports.parser = exports.options = exports.inherits = exports.find = undefined;

var _class = __webpack_require__("254c");

var _options = __webpack_require__("316e");

var options = _interopRequireWildcard(_options);

var _scanner = __webpack_require__("b7fe");

var scanner = _interopRequireWildcard(_scanner);

var _parser = __webpack_require__("4128");

var parser = _interopRequireWildcard(_parser);

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

if (!Array.isArray) {
	Array.isArray = function (arg) {
		return Object.prototype.toString.call(arg) === '[object Array]';
	};
}

/**
	Converts a string into tokens that represent linkable and non-linkable bits
	@method tokenize
	@param {String} str
	@return {Array} tokens
*/
var tokenize = function tokenize(str) {
	return parser.run(scanner.run(str));
};

/**
	Returns a list of linkable items in the given string.
*/
var find = function find(str) {
	var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;

	var tokens = tokenize(str);
	var filtered = [];

	for (var i = 0; i < tokens.length; i++) {
		var token = tokens[i];
		if (token.isLink && (!type || token.type === type)) {
			filtered.push(token.toObject());
		}
	}

	return filtered;
};

/**
	Is the given string valid linkable text of some sort
	Note that this does not trim the text for you.

	Optionally pass in a second `type` param, which is the type of link to test
	for.

	For example,

		test(str, 'email');

	Will return `true` if str is a valid email.
*/
var test = function test(str) {
	var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;

	var tokens = tokenize(str);
	return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].type === type);
};

// Scanner and parser provide states and tokens for the lexicographic stage
// (will be used to add additional link types)
exports.find = find;
exports.inherits = _class.inherits;
exports.options = options;
exports.parser = parser;
exports.scanner = scanner;
exports.test = test;
exports.tokenize = tokenize;

/***/ }),

/***/ "2e79":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "3113":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Loader_vue_vue_type_style_index_0_id_fd7c39d0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e3b2");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Loader_vue_vue_type_style_index_0_id_fd7c39d0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Loader_vue_vue_type_style_index_0_id_fd7c39d0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "316e":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

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; };

var defaults = {
	defaultProtocol: 'http',
	events: null,
	format: noop,
	formatHref: noop,
	nl2br: false,
	tagName: 'a',
	target: typeToTarget,
	validate: true,
	ignoreTags: [],
	attributes: null,
	className: 'linkified' // Deprecated value - no default class will be provided in the future
};

exports.defaults = defaults;
exports.Options = Options;
exports.contains = contains;


function Options(opts) {
	opts = opts || {};

	this.defaultProtocol = opts.hasOwnProperty('defaultProtocol') ? opts.defaultProtocol : defaults.defaultProtocol;
	this.events = opts.hasOwnProperty('events') ? opts.events : defaults.events;
	this.format = opts.hasOwnProperty('format') ? opts.format : defaults.format;
	this.formatHref = opts.hasOwnProperty('formatHref') ? opts.formatHref : defaults.formatHref;
	this.nl2br = opts.hasOwnProperty('nl2br') ? opts.nl2br : defaults.nl2br;
	this.tagName = opts.hasOwnProperty('tagName') ? opts.tagName : defaults.tagName;
	this.target = opts.hasOwnProperty('target') ? opts.target : defaults.target;
	this.validate = opts.hasOwnProperty('validate') ? opts.validate : defaults.validate;
	this.ignoreTags = [];

	// linkAttributes and linkClass is deprecated
	this.attributes = opts.attributes || opts.linkAttributes || defaults.attributes;
	this.className = opts.hasOwnProperty('className') ? opts.className : opts.linkClass || defaults.className;

	// Make all tags names upper case
	var ignoredTags = opts.hasOwnProperty('ignoreTags') ? opts.ignoreTags : defaults.ignoreTags;
	for (var i = 0; i < ignoredTags.length; i++) {
		this.ignoreTags.push(ignoredTags[i].toUpperCase());
	}
}

Options.prototype = {
	/**
  * Given the token, return all options for how it should be displayed
  */
	resolve: function resolve(token) {
		var href = token.toHref(this.defaultProtocol);
		return {
			formatted: this.get('format', token.toString(), token),
			formattedHref: this.get('formatHref', href, token),
			tagName: this.get('tagName', href, token),
			className: this.get('className', href, token),
			target: this.get('target', href, token),
			events: this.getObject('events', href, token),
			attributes: this.getObject('attributes', href, token)
		};
	},


	/**
  * Returns true or false based on whether a token should be displayed as a
  * link based on the user options. By default,
  */
	check: function check(token) {
		return this.get('validate', token.toString(), token);
	},


	// Private methods

	/**
  * Resolve an option's value based on the value of the option and the given
  * params.
  * @param {String} key Name of option to use
  * @param operator will be passed to the target option if it's method
  * @param {MultiToken} token The token from linkify.tokenize
  */
	get: function get(key, operator, token) {
		var optionValue = void 0,
		    option = this[key];
		if (!option) {
			return option;
		}

		switch (typeof option === 'undefined' ? 'undefined' : _typeof(option)) {
			case 'function':
				return option(operator, token.type);
			case 'object':
				optionValue = option.hasOwnProperty(token.type) ? option[token.type] : defaults[key];
				return typeof optionValue === 'function' ? optionValue(operator, token.type) : optionValue;
		}

		return option;
	},
	getObject: function getObject(key, operator, token) {
		var option = this[key];
		return typeof option === 'function' ? option(operator, token.type) : option;
	}
};

/**
 * Quick indexOf replacement for checking the ignoreTags option
 */
function contains(arr, value) {
	for (var i = 0; i < arr.length; i++) {
		if (arr[i] === value) {
			return true;
		}
	}
	return false;
}

function noop(val) {
	return val;
}

function typeToTarget(href, type) {
	return type === 'url' ? '_blank' : null;
}

/***/ }),

/***/ "3280":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var $lastIndexOf = __webpack_require__("e58c");

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.lastIndexOf` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof
// eslint-disable-next-line no-unused-vars
exportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {
  return $lastIndexOf.apply(aTypedArray(this), arguments);
});


/***/ }),

/***/ "342f":
/***/ (function(module, exports, __webpack_require__) {

var getBuiltIn = __webpack_require__("d066");

module.exports = getBuiltIn('navigator', 'userAgent') || '';


/***/ }),

/***/ "34ba":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "3534":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "35a1":
/***/ (function(module, exports, __webpack_require__) {

var classof = __webpack_require__("f5df");
var Iterators = __webpack_require__("3f8c");
var wellKnownSymbol = __webpack_require__("b622");

var ITERATOR = wellKnownSymbol('iterator');

module.exports = function (it) {
  if (it != undefined) return it[ITERATOR]
    || it['@@iterator']
    || Iterators[classof(it)];
};


/***/ }),

/***/ "35f2":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SvgIcon_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("62ed");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SvgIcon_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SvgIcon_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "37e8":
/***/ (function(module, exports, __webpack_require__) {

var DESCRIPTORS = __webpack_require__("83ab");
var definePropertyModule = __webpack_require__("9bf2");
var anObject = __webpack_require__("825a");
var objectKeys = __webpack_require__("df75");

// `Object.defineProperties` method
// https://tc39.es/ecma262/#sec-object.defineproperties
module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
  anObject(O);
  var keys = objectKeys(Properties);
  var length = keys.length;
  var index = 0;
  var key;
  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);
  return O;
};


/***/ }),

/***/ "3a7b":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var $findIndex = __webpack_require__("b727").findIndex;

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.findIndex` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex
exportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {
  return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
});


/***/ }),

/***/ "3bbe":
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__("861d");

module.exports = function (it) {
  if (!isObject(it) && it !== null) {
    throw TypeError("Can't set " + String(it) + ' as a prototype');
  } return it;
};


/***/ }),

/***/ "3c5d":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var toLength = __webpack_require__("50c4");
var toOffset = __webpack_require__("182d");
var toObject = __webpack_require__("7b0b");
var fails = __webpack_require__("d039");

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

var FORCED = fails(function () {
  // eslint-disable-next-line no-undef
  new Int8Array(1).set({});
});

// `%TypedArray%.prototype.set` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set
exportTypedArrayMethod('set', function set(arrayLike /* , offset */) {
  aTypedArray(this);
  var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);
  var length = this.length;
  var src = toObject(arrayLike);
  var len = toLength(src.length);
  var index = 0;
  if (len + offset > length) throw RangeError('Wrong length');
  while (index < len) this[offset + index] = src[index++];
}, FORCED);


/***/ }),

/***/ "3ca3":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var charAt = __webpack_require__("6547").charAt;
var InternalStateModule = __webpack_require__("69f3");
var defineIterator = __webpack_require__("7dd0");

var STRING_ITERATOR = 'String Iterator';
var setInternalState = InternalStateModule.set;
var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);

// `String.prototype[@@iterator]` method
// https://tc39.es/ecma262/#sec-string.prototype-@@iterator
defineIterator(String, 'String', function (iterated) {
  setInternalState(this, {
    type: STRING_ITERATOR,
    string: String(iterated),
    index: 0
  });
// `%StringIteratorPrototype%.next` method
// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next
}, function next() {
  var state = getInternalState(this);
  var string = state.string;
  var index = state.index;
  var point;
  if (index >= string.length) return { value: undefined, done: true };
  point = charAt(string, index);
  state.index += point.length;
  return { value: point, done: false };
});


/***/ }),

/***/ "3f8c":
/***/ (function(module, exports) {

module.exports = {};


/***/ }),

/***/ "3fcc":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var $map = __webpack_require__("b727").map;
var speciesConstructor = __webpack_require__("4840");

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.map` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map
exportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {
  return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {
    return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);
  });
});


/***/ }),

/***/ "408a":
/***/ (function(module, exports, __webpack_require__) {

var classof = __webpack_require__("c6b6");

// `thisNumberValue` abstract operation
// https://tc39.es/ecma262/#sec-thisnumbervalue
module.exports = function (value) {
  if (typeof value != 'number' && classof(value) != 'Number') {
    throw TypeError('Incorrect invocation');
  }
  return +value;
};


/***/ }),

/***/ "4128":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.start = exports.run = exports.TOKENS = exports.State = undefined;

var _state = __webpack_require__("1652");

var _multi = __webpack_require__("bea1");

var MULTI_TOKENS = _interopRequireWildcard(_multi);

var _text = __webpack_require__("7656");

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

/**
	Not exactly parser, more like the second-stage scanner (although we can
	theoretically hotswap the code here with a real parser in the future... but
	for a little URL-finding utility abstract syntax trees may be a little
	overkill).

	URL format: http://en.wikipedia.org/wiki/URI_scheme
	Email format: http://en.wikipedia.org/wiki/Email_address (links to RFC in
	reference)

	@module linkify
	@submodule parser
	@main parser
*/

var makeState = function makeState(tokenClass) {
	return new _state.TokenState(tokenClass);
};

// The universal starting state.
var S_START = makeState();

// Intermediate states for URLs. Note that domains that begin with a protocol
// are treated slighly differently from those that don't.
var S_PROTOCOL = makeState(); // e.g., 'http:'
var S_MAILTO = makeState(); // 'mailto:'
var S_PROTOCOL_SLASH = makeState(); // e.g., '/', 'http:/''
var S_PROTOCOL_SLASH_SLASH = makeState(); // e.g., '//', 'http://'
var S_DOMAIN = makeState(); // parsed string ends with a potential domain name (A)
var S_DOMAIN_DOT = makeState(); // (A) domain followed by DOT
var S_TLD = makeState(_multi.URL); // (A) Simplest possible URL with no query string
var S_TLD_COLON = makeState(); // (A) URL followed by colon (potential port number here)
var S_TLD_PORT = makeState(_multi.URL); // TLD followed by a port number
var S_URL = makeState(_multi.URL); // Long URL with optional port and maybe query string
var S_URL_NON_ACCEPTING = makeState(); // URL followed by some symbols (will not be part of the final URL)
var S_URL_OPENBRACE = makeState(); // URL followed by {
var S_URL_OPENBRACKET = makeState(); // URL followed by [
var S_URL_OPENANGLEBRACKET = makeState(); // URL followed by <
var S_URL_OPENPAREN = makeState(); // URL followed by (
var S_URL_OPENBRACE_Q = makeState(_multi.URL); // URL followed by { and some symbols that the URL can end it
var S_URL_OPENBRACKET_Q = makeState(_multi.URL); // URL followed by [ and some symbols that the URL can end it
var S_URL_OPENANGLEBRACKET_Q = makeState(_multi.URL); // URL followed by < and some symbols that the URL can end it
var S_URL_OPENPAREN_Q = makeState(_multi.URL); // URL followed by ( and some symbols that the URL can end it
var S_URL_OPENBRACE_SYMS = makeState(); // S_URL_OPENBRACE_Q followed by some symbols it cannot end it
var S_URL_OPENBRACKET_SYMS = makeState(); // S_URL_OPENBRACKET_Q followed by some symbols it cannot end it
var S_URL_OPENANGLEBRACKET_SYMS = makeState(); // S_URL_OPENANGLEBRACKET_Q followed by some symbols it cannot end it
var S_URL_OPENPAREN_SYMS = makeState(); // S_URL_OPENPAREN_Q followed by some symbols it cannot end it
var S_EMAIL_DOMAIN = makeState(); // parsed string starts with local email info + @ with a potential domain name (C)
var S_EMAIL_DOMAIN_DOT = makeState(); // (C) domain followed by DOT
var S_EMAIL = makeState(_multi.EMAIL); // (C) Possible email address (could have more tlds)
var S_EMAIL_COLON = makeState(); // (C) URL followed by colon (potential port number here)
var S_EMAIL_PORT = makeState(_multi.EMAIL); // (C) Email address with a port
var S_MAILTO_EMAIL = makeState(_multi.MAILTOEMAIL); // Email that begins with the mailto prefix (D)
var S_MAILTO_EMAIL_NON_ACCEPTING = makeState(); // (D) Followed by some non-query string chars
var S_LOCALPART = makeState(); // Local part of the email address
var S_LOCALPART_AT = makeState(); // Local part of the email address plus @
var S_LOCALPART_DOT = makeState(); // Local part of the email address plus '.' (localpart cannot end in .)
var S_NL = makeState(_multi.NL); // single new line

// Make path from start to protocol (with '//')
S_START.on(_text.NL, S_NL).on(_text.PROTOCOL, S_PROTOCOL).on(_text.MAILTO, S_MAILTO).on(_text.SLASH, S_PROTOCOL_SLASH);

S_PROTOCOL.on(_text.SLASH, S_PROTOCOL_SLASH);
S_PROTOCOL_SLASH.on(_text.SLASH, S_PROTOCOL_SLASH_SLASH);

// The very first potential domain name
S_START.on(_text.TLD, S_DOMAIN).on(_text.DOMAIN, S_DOMAIN).on(_text.LOCALHOST, S_TLD).on(_text.NUM, S_DOMAIN);

// Force URL for protocol followed by anything sane
S_PROTOCOL_SLASH_SLASH.on(_text.TLD, S_URL).on(_text.DOMAIN, S_URL).on(_text.NUM, S_URL).on(_text.LOCALHOST, S_URL);

// Account for dots and hyphens
// hyphens are usually parts of domain names
S_DOMAIN.on(_text.DOT, S_DOMAIN_DOT);
S_EMAIL_DOMAIN.on(_text.DOT, S_EMAIL_DOMAIN_DOT);

// Hyphen can jump back to a domain name

// After the first domain and a dot, we can find either a URL or another domain
S_DOMAIN_DOT.on(_text.TLD, S_TLD).on(_text.DOMAIN, S_DOMAIN).on(_text.NUM, S_DOMAIN).on(_text.LOCALHOST, S_DOMAIN);

S_EMAIL_DOMAIN_DOT.on(_text.TLD, S_EMAIL).on(_text.DOMAIN, S_EMAIL_DOMAIN).on(_text.NUM, S_EMAIL_DOMAIN).on(_text.LOCALHOST, S_EMAIL_DOMAIN);

// S_TLD accepts! But the URL could be longer, try to find a match greedily
// The `run` function should be able to "rollback" to the accepting state
S_TLD.on(_text.DOT, S_DOMAIN_DOT);
S_EMAIL.on(_text.DOT, S_EMAIL_DOMAIN_DOT);

// Become real URLs after `SLASH` or `COLON NUM SLASH`
// Here PSS and non-PSS converge
S_TLD.on(_text.COLON, S_TLD_COLON).on(_text.SLASH, S_URL);
S_TLD_COLON.on(_text.NUM, S_TLD_PORT);
S_TLD_PORT.on(_text.SLASH, S_URL);
S_EMAIL.on(_text.COLON, S_EMAIL_COLON);
S_EMAIL_COLON.on(_text.NUM, S_EMAIL_PORT);

// Types of characters the URL can definitely end in
var qsAccepting = [_text.DOMAIN, _text.AT, _text.LOCALHOST, _text.NUM, _text.PLUS, _text.POUND, _text.PROTOCOL, _text.SLASH, _text.TLD, _text.UNDERSCORE, _text.SYM, _text.AMPERSAND];

// Types of tokens that can follow a URL and be part of the query string
// but cannot be the very last characters
// Characters that cannot appear in the URL at all should be excluded
var qsNonAccepting = [_text.COLON, _text.DOT, _text.QUERY, _text.PUNCTUATION, _text.CLOSEBRACE, _text.CLOSEBRACKET, _text.CLOSEANGLEBRACKET, _text.CLOSEPAREN, _text.OPENBRACE, _text.OPENBRACKET, _text.OPENANGLEBRACKET, _text.OPENPAREN];

// These states are responsible primarily for determining whether or not to
// include the final round bracket.

// URL, followed by an opening bracket
S_URL.on(_text.OPENBRACE, S_URL_OPENBRACE).on(_text.OPENBRACKET, S_URL_OPENBRACKET).on(_text.OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET).on(_text.OPENPAREN, S_URL_OPENPAREN);

// URL with extra symbols at the end, followed by an opening bracket
S_URL_NON_ACCEPTING.on(_text.OPENBRACE, S_URL_OPENBRACE).on(_text.OPENBRACKET, S_URL_OPENBRACKET).on(_text.OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET).on(_text.OPENPAREN, S_URL_OPENPAREN);

// Closing bracket component. This character WILL be included in the URL
S_URL_OPENBRACE.on(_text.CLOSEBRACE, S_URL);
S_URL_OPENBRACKET.on(_text.CLOSEBRACKET, S_URL);
S_URL_OPENANGLEBRACKET.on(_text.CLOSEANGLEBRACKET, S_URL);
S_URL_OPENPAREN.on(_text.CLOSEPAREN, S_URL);
S_URL_OPENBRACE_Q.on(_text.CLOSEBRACE, S_URL);
S_URL_OPENBRACKET_Q.on(_text.CLOSEBRACKET, S_URL);
S_URL_OPENANGLEBRACKET_Q.on(_text.CLOSEANGLEBRACKET, S_URL);
S_URL_OPENPAREN_Q.on(_text.CLOSEPAREN, S_URL);
S_URL_OPENBRACE_SYMS.on(_text.CLOSEBRACE, S_URL);
S_URL_OPENBRACKET_SYMS.on(_text.CLOSEBRACKET, S_URL);
S_URL_OPENANGLEBRACKET_SYMS.on(_text.CLOSEANGLEBRACKET, S_URL);
S_URL_OPENPAREN_SYMS.on(_text.CLOSEPAREN, S_URL);

// URL that beings with an opening bracket, followed by a symbols.
// Note that the final state can still be `S_URL_OPENBRACE_Q` (if the URL only
// has a single opening bracket for some reason).
S_URL_OPENBRACE.on(qsAccepting, S_URL_OPENBRACE_Q);
S_URL_OPENBRACKET.on(qsAccepting, S_URL_OPENBRACKET_Q);
S_URL_OPENANGLEBRACKET.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);
S_URL_OPENPAREN.on(qsAccepting, S_URL_OPENPAREN_Q);
S_URL_OPENBRACE.on(qsNonAccepting, S_URL_OPENBRACE_SYMS);
S_URL_OPENBRACKET.on(qsNonAccepting, S_URL_OPENBRACKET_SYMS);
S_URL_OPENANGLEBRACKET.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);
S_URL_OPENPAREN.on(qsNonAccepting, S_URL_OPENPAREN_SYMS);

// URL that begins with an opening bracket, followed by some symbols
S_URL_OPENBRACE_Q.on(qsAccepting, S_URL_OPENBRACE_Q);
S_URL_OPENBRACKET_Q.on(qsAccepting, S_URL_OPENBRACKET_Q);
S_URL_OPENANGLEBRACKET_Q.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);
S_URL_OPENPAREN_Q.on(qsAccepting, S_URL_OPENPAREN_Q);
S_URL_OPENBRACE_Q.on(qsNonAccepting, S_URL_OPENBRACE_Q);
S_URL_OPENBRACKET_Q.on(qsNonAccepting, S_URL_OPENBRACKET_Q);
S_URL_OPENANGLEBRACKET_Q.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_Q);
S_URL_OPENPAREN_Q.on(qsNonAccepting, S_URL_OPENPAREN_Q);

S_URL_OPENBRACE_SYMS.on(qsAccepting, S_URL_OPENBRACE_Q);
S_URL_OPENBRACKET_SYMS.on(qsAccepting, S_URL_OPENBRACKET_Q);
S_URL_OPENANGLEBRACKET_SYMS.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);
S_URL_OPENPAREN_SYMS.on(qsAccepting, S_URL_OPENPAREN_Q);
S_URL_OPENBRACE_SYMS.on(qsNonAccepting, S_URL_OPENBRACE_SYMS);
S_URL_OPENBRACKET_SYMS.on(qsNonAccepting, S_URL_OPENBRACKET_SYMS);
S_URL_OPENANGLEBRACKET_SYMS.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);
S_URL_OPENPAREN_SYMS.on(qsNonAccepting, S_URL_OPENPAREN_SYMS);

// Account for the query string
S_URL.on(qsAccepting, S_URL);
S_URL_NON_ACCEPTING.on(qsAccepting, S_URL);

S_URL.on(qsNonAccepting, S_URL_NON_ACCEPTING);
S_URL_NON_ACCEPTING.on(qsNonAccepting, S_URL_NON_ACCEPTING);

// Email address-specific state definitions
// Note: We are not allowing '/' in email addresses since this would interfere
// with real URLs

// For addresses with the mailto prefix
// 'mailto:' followed by anything sane is a valid email
S_MAILTO.on(_text.TLD, S_MAILTO_EMAIL).on(_text.DOMAIN, S_MAILTO_EMAIL).on(_text.NUM, S_MAILTO_EMAIL).on(_text.LOCALHOST, S_MAILTO_EMAIL);

// Greedily get more potential valid email values
S_MAILTO_EMAIL.on(qsAccepting, S_MAILTO_EMAIL).on(qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);
S_MAILTO_EMAIL_NON_ACCEPTING.on(qsAccepting, S_MAILTO_EMAIL).on(qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);

// For addresses without the mailto prefix
// Tokens allowed in the localpart of the email
var localpartAccepting = [_text.DOMAIN, _text.NUM, _text.PLUS, _text.POUND, _text.QUERY, _text.UNDERSCORE, _text.SYM, _text.AMPERSAND, _text.TLD];

// Some of the tokens in `localpartAccepting` are already accounted for here and
// will not be overwritten (don't worry)
S_DOMAIN.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT);
S_TLD.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT);
S_DOMAIN_DOT.on(localpartAccepting, S_LOCALPART);

// Okay we're on a localpart. Now what?
// TODO: IP addresses and what if the email starts with numbers?
S_LOCALPART.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT) // close to an email address now
.on(_text.DOT, S_LOCALPART_DOT);
S_LOCALPART_DOT.on(localpartAccepting, S_LOCALPART);
S_LOCALPART_AT.on(_text.TLD, S_EMAIL_DOMAIN).on(_text.DOMAIN, S_EMAIL_DOMAIN).on(_text.LOCALHOST, S_EMAIL);
// States following `@` defined above

var run = function run(tokens) {
	var len = tokens.length;
	var cursor = 0;
	var multis = [];
	var textTokens = [];

	while (cursor < len) {
		var state = S_START;
		var secondState = null;
		var nextState = null;
		var multiLength = 0;
		var latestAccepting = null;
		var sinceAccepts = -1;

		while (cursor < len && !(secondState = state.next(tokens[cursor]))) {
			// Starting tokens with nowhere to jump to.
			// Consider these to be just plain text
			textTokens.push(tokens[cursor++]);
		}

		while (cursor < len && (nextState = secondState || state.next(tokens[cursor]))) {

			// Get the next state
			secondState = null;
			state = nextState;

			// Keep track of the latest accepting state
			if (state.accepts()) {
				sinceAccepts = 0;
				latestAccepting = state;
			} else if (sinceAccepts >= 0) {
				sinceAccepts++;
			}

			cursor++;
			multiLength++;
		}

		if (sinceAccepts < 0) {

			// No accepting state was found, part of a regular text token
			// Add all the tokens we looked at to the text tokens array
			for (var i = cursor - multiLength; i < cursor; i++) {
				textTokens.push(tokens[i]);
			}
		} else {

			// Accepting state!

			// First close off the textTokens (if available)
			if (textTokens.length > 0) {
				multis.push(new _multi.TEXT(textTokens));
				textTokens = [];
			}

			// Roll back to the latest accepting state
			cursor -= sinceAccepts;
			multiLength -= sinceAccepts;

			// Create a new multitoken
			var MULTI = latestAccepting.emit();
			multis.push(new MULTI(tokens.slice(cursor - multiLength, cursor)));
		}
	}

	// Finally close off the textTokens (if available)
	if (textTokens.length > 0) {
		multis.push(new _multi.TEXT(textTokens));
	}

	return multis;
};

exports.State = _state.TokenState;
exports.TOKENS = MULTI_TOKENS;
exports.run = run;
exports.start = S_START;

/***/ }),

/***/ "4160":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var forEach = __webpack_require__("17c2");

// `Array.prototype.forEach` method
// https://tc39.es/ecma262/#sec-array.prototype.foreach
$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {
  forEach: forEach
});


/***/ }),

/***/ "428f":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");

module.exports = global;


/***/ }),

/***/ "44ad":
/***/ (function(module, exports, __webpack_require__) {

var fails = __webpack_require__("d039");
var classof = __webpack_require__("c6b6");

var split = ''.split;

// fallback for non-array-like ES3 and non-enumerable old V8 strings
module.exports = fails(function () {
  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
  // eslint-disable-next-line no-prototype-builtins
  return !Object('z').propertyIsEnumerable(0);
}) ? function (it) {
  return classof(it) == 'String' ? split.call(it, '') : Object(it);
} : Object;


/***/ }),

/***/ "44d2":
/***/ (function(module, exports, __webpack_require__) {

var wellKnownSymbol = __webpack_require__("b622");
var create = __webpack_require__("7c73");
var definePropertyModule = __webpack_require__("9bf2");

var UNSCOPABLES = wellKnownSymbol('unscopables');
var ArrayPrototype = Array.prototype;

// Array.prototype[@@unscopables]
// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
if (ArrayPrototype[UNSCOPABLES] == undefined) {
  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {
    configurable: true,
    value: create(null)
  });
}

// add a key to Array.prototype[@@unscopables]
module.exports = function (key) {
  ArrayPrototype[UNSCOPABLES][key] = true;
};


/***/ }),

/***/ "44de":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");

module.exports = function (a, b) {
  var console = global.console;
  if (console && console.error) {
    arguments.length === 1 ? console.error(a) : console.error(a, b);
  }
};


/***/ }),

/***/ "44e7":
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__("861d");
var classof = __webpack_require__("c6b6");
var wellKnownSymbol = __webpack_require__("b622");

var MATCH = wellKnownSymbol('match');

// `IsRegExp` abstract operation
// https://tc39.es/ecma262/#sec-isregexp
module.exports = function (it) {
  var isRegExp;
  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');
};


/***/ }),

/***/ "4596":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "45fc":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var $some = __webpack_require__("b727").some;
var arrayMethodIsStrict = __webpack_require__("a640");
var arrayMethodUsesToLength = __webpack_require__("ae40");

var STRICT_METHOD = arrayMethodIsStrict('some');
var USES_TO_LENGTH = arrayMethodUsesToLength('some');

// `Array.prototype.some` method
// https://tc39.es/ecma262/#sec-array.prototype.some
$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {
  some: function some(callbackfn /* , thisArg */) {
    return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  }
});


/***/ }),

/***/ "466d":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var fixRegExpWellKnownSymbolLogic = __webpack_require__("d784");
var anObject = __webpack_require__("825a");
var toLength = __webpack_require__("50c4");
var requireObjectCoercible = __webpack_require__("1d80");
var advanceStringIndex = __webpack_require__("8aa5");
var regExpExec = __webpack_require__("14c3");

// @@match logic
fixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {
  return [
    // `String.prototype.match` method
    // https://tc39.es/ecma262/#sec-string.prototype.match
    function match(regexp) {
      var O = requireObjectCoercible(this);
      var matcher = regexp == undefined ? undefined : regexp[MATCH];
      return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
    },
    // `RegExp.prototype[@@match]` method
    // https://tc39.es/ecma262/#sec-regexp.prototype-@@match
    function (regexp) {
      var res = maybeCallNative(nativeMatch, regexp, this);
      if (res.done) return res.value;

      var rx = anObject(regexp);
      var S = String(this);

      if (!rx.global) return regExpExec(rx, S);

      var fullUnicode = rx.unicode;
      rx.lastIndex = 0;
      var A = [];
      var n = 0;
      var result;
      while ((result = regExpExec(rx, S)) !== null) {
        var matchStr = String(result[0]);
        A[n] = matchStr;
        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
        n++;
      }
      return n === 0 ? null : A;
    }
  ];
});


/***/ }),

/***/ "46f3":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
function createTokenClass() {
	return function (value) {
		if (value) {
			this.v = value;
		}
	};
}

exports.createTokenClass = createTokenClass;

/***/ }),

/***/ "4795":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");
var global = __webpack_require__("da84");
var userAgent = __webpack_require__("342f");

var slice = [].slice;
var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check

var wrap = function (scheduler) {
  return function (handler, timeout /* , ...arguments */) {
    var boundArgs = arguments.length > 2;
    var args = boundArgs ? slice.call(arguments, 2) : undefined;
    return scheduler(boundArgs ? function () {
      // eslint-disable-next-line no-new-func
      (typeof handler == 'function' ? handler : Function(handler)).apply(this, args);
    } : handler, timeout);
  };
};

// ie9- setTimeout & setInterval additional parameters fix
// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers
$({ global: true, bind: true, forced: MSIE }, {
  // `setTimeout` method
  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout
  setTimeout: wrap(global.setTimeout),
  // `setInterval` method
  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval
  setInterval: wrap(global.setInterval)
});


/***/ }),

/***/ "4840":
/***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__("825a");
var aFunction = __webpack_require__("1c0b");
var wellKnownSymbol = __webpack_require__("b622");

var SPECIES = wellKnownSymbol('species');

// `SpeciesConstructor` abstract operation
// https://tc39.es/ecma262/#sec-speciesconstructor
module.exports = function (O, defaultConstructor) {
  var C = anObject(O).constructor;
  var S;
  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);
};


/***/ }),

/***/ "4930":
/***/ (function(module, exports, __webpack_require__) {

var fails = __webpack_require__("d039");

module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
  // Chrome 38 Symbol has incorrect toString conversion
  // eslint-disable-next-line no-undef
  return !String(Symbol());
});


/***/ }),

/***/ "4978":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "498a":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var $trim = __webpack_require__("58a8").trim;
var forcedStringTrimMethod = __webpack_require__("c8d2");

// `String.prototype.trim` method
// https://tc39.es/ecma262/#sec-string.prototype.trim
$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {
  trim: function trim() {
    return $trim(this);
  }
});


/***/ }),

/***/ "4c1d":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "roomsValidation", function() { return /* binding */ roomsValidation; });
__webpack_require__.d(__webpack_exports__, "partcipantsValidation", function() { return /* binding */ partcipantsValidation; });
__webpack_require__.d(__webpack_exports__, "messagesValidation", function() { return /* binding */ messagesValidation; });

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.every.js
var es_array_every = __webpack_require__("a623");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find.js
var es_array_find = __webpack_require__("7db0");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.is-array.js
var es_array_is_array = __webpack_require__("277d");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.js
var es_symbol = __webpack_require__("a4d3");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.description.js
var es_symbol_description = __webpack_require__("e01a");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.iterator.js
var es_symbol_iterator = __webpack_require__("d28b");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js
var es_array_iterator = __webpack_require__("e260");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js
var es_object_to_string = __webpack_require__("d3b7");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js
var es_string_iterator = __webpack_require__("3ca3");

// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js
var web_dom_collections_iterator = __webpack_require__("ddb0");

// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js







function _typeof(obj) {
  "@babel/helpers - typeof";

  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
    _typeof = function _typeof(obj) {
      return typeof obj;
    };
  } else {
    _typeof = function _typeof(obj) {
      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    };
  }

  return _typeof(obj);
}
// CONCATENATED MODULE: ./src/utils/data-validation.js




function roomsValidation(obj) {
  var roomsValidate = [{
    key: 'roomId',
    type: ['string', 'number']
  }, {
    key: 'roomName',
    type: ['string']
  }, {
    key: 'users',
    type: ['array']
  }];

  var validate = function validate(obj, props) {
    return props.every(function (prop) {
      var validType = false;

      if (prop.type[0] === 'array' && Array.isArray(obj[prop.key])) {
        validType = true;
      } else if (prop.type.find(function (t) {
        return t === _typeof(obj[prop.key]);
      })) {
        validType = true;
      }

      return validType && checkObjectValid(obj, prop.key);
    });
  };

  if (!validate(obj, roomsValidate)) {
    throw new Error('Rooms object is not valid! Must contain roomId[String, Number], roomName[String] and users[Array]');
  }
}
function partcipantsValidation(obj) {
  var participantsValidate = [{
    key: '_id',
    type: ['string', 'number']
  }, {
    key: 'username',
    type: ['string']
  }];

  var validate = function validate(obj, props) {
    return props.every(function (prop) {
      var validType = prop.type.find(function (t) {
        return t === _typeof(obj[prop.key]);
      });
      return validType && checkObjectValid(obj, prop.key);
    });
  };

  if (!validate(obj, participantsValidate)) {
    throw new Error('Participants object is not valid! Must contain _id[String, Number] and username[String]');
  }
}
function messagesValidation(obj) {
  var messagesValidate = [{
    key: '_id',
    type: ['string', 'number']
  }, {
    key: 'content',
    type: ['string', 'number']
  }, {
    key: 'senderId',
    type: ['string', 'number']
  }];

  var validate = function validate(obj, props) {
    return props.every(function (prop) {
      var validType = prop.type.find(function (t) {
        return t === _typeof(obj[prop.key]);
      });
      return validType && checkObjectValid(obj, prop.key);
    });
  };

  if (!validate(obj, messagesValidate)) {
    throw new Error('Messages object is not valid! Must contain _id[String, Number], content[String, Number] and senderId[String, Number]');
  }
}

function checkObjectValid(obj, key) {
  return Object.prototype.hasOwnProperty.call(obj, key) && obj[key] !== null && obj[key] !== undefined;
}

/***/ }),

/***/ "4d63":
/***/ (function(module, exports, __webpack_require__) {

var DESCRIPTORS = __webpack_require__("83ab");
var global = __webpack_require__("da84");
var isForced = __webpack_require__("94ca");
var inheritIfRequired = __webpack_require__("7156");
var defineProperty = __webpack_require__("9bf2").f;
var getOwnPropertyNames = __webpack_require__("241c").f;
var isRegExp = __webpack_require__("44e7");
var getFlags = __webpack_require__("ad6d");
var stickyHelpers = __webpack_require__("9f7f");
var redefine = __webpack_require__("6eeb");
var fails = __webpack_require__("d039");
var setInternalState = __webpack_require__("69f3").set;
var setSpecies = __webpack_require__("2626");
var wellKnownSymbol = __webpack_require__("b622");

var MATCH = wellKnownSymbol('match');
var NativeRegExp = global.RegExp;
var RegExpPrototype = NativeRegExp.prototype;
var re1 = /a/g;
var re2 = /a/g;

// "new" should create a new object, old webkit bug
var CORRECT_NEW = new NativeRegExp(re1) !== re1;

var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;

var FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {
  re2[MATCH] = false;
  // RegExp constructor can alter flags and IsRegExp works correct with @@match
  return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';
})));

// `RegExp` constructor
// https://tc39.es/ecma262/#sec-regexp-constructor
if (FORCED) {
  var RegExpWrapper = function RegExp(pattern, flags) {
    var thisIsRegExp = this instanceof RegExpWrapper;
    var patternIsRegExp = isRegExp(pattern);
    var flagsAreUndefined = flags === undefined;
    var sticky;

    if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {
      return pattern;
    }

    if (CORRECT_NEW) {
      if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;
    } else if (pattern instanceof RegExpWrapper) {
      if (flagsAreUndefined) flags = getFlags.call(pattern);
      pattern = pattern.source;
    }

    if (UNSUPPORTED_Y) {
      sticky = !!flags && flags.indexOf('y') > -1;
      if (sticky) flags = flags.replace(/y/g, '');
    }

    var result = inheritIfRequired(
      CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),
      thisIsRegExp ? this : RegExpPrototype,
      RegExpWrapper
    );

    if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });

    return result;
  };
  var proxy = function (key) {
    key in RegExpWrapper || defineProperty(RegExpWrapper, key, {
      configurable: true,
      get: function () { return NativeRegExp[key]; },
      set: function (it) { NativeRegExp[key] = it; }
    });
  };
  var keys = getOwnPropertyNames(NativeRegExp);
  var index = 0;
  while (keys.length > index) proxy(keys[index++]);
  RegExpPrototype.constructor = RegExpWrapper;
  RegExpWrapper.prototype = RegExpPrototype;
  redefine(global, 'RegExp', RegExpWrapper);
}

// https://tc39.es/ecma262/#sec-get-regexp-@@species
setSpecies('RegExp');


/***/ }),

/***/ "4d64":
/***/ (function(module, exports, __webpack_require__) {

var toIndexedObject = __webpack_require__("fc6a");
var toLength = __webpack_require__("50c4");
var toAbsoluteIndex = __webpack_require__("23cb");

// `Array.prototype.{ indexOf, includes }` methods implementation
var createMethod = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIndexedObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) {
      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};

module.exports = {
  // `Array.prototype.includes` method
  // https://tc39.es/ecma262/#sec-array.prototype.includes
  includes: createMethod(true),
  // `Array.prototype.indexOf` method
  // https://tc39.es/ecma262/#sec-array.prototype.indexof
  indexOf: createMethod(false)
};


/***/ }),

/***/ "4de4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var $filter = __webpack_require__("b727").filter;
var arrayMethodHasSpeciesSupport = __webpack_require__("1dde");
var arrayMethodUsesToLength = __webpack_require__("ae40");

var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');
// Edge 14- issue
var USES_TO_LENGTH = arrayMethodUsesToLength('filter');

// `Array.prototype.filter` method
// https://tc39.es/ecma262/#sec-array.prototype.filter
// with adding support of @@species
$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
  filter: function filter(callbackfn /* , thisArg */) {
    return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  }
});


/***/ }),

/***/ "4df4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var bind = __webpack_require__("0366");
var toObject = __webpack_require__("7b0b");
var callWithSafeIterationClosing = __webpack_require__("9bdd");
var isArrayIteratorMethod = __webpack_require__("e95a");
var toLength = __webpack_require__("50c4");
var createProperty = __webpack_require__("8418");
var getIteratorMethod = __webpack_require__("35a1");

// `Array.from` method implementation
// https://tc39.es/ecma262/#sec-array.from
module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
  var O = toObject(arrayLike);
  var C = typeof this == 'function' ? this : Array;
  var argumentsLength = arguments.length;
  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
  var mapping = mapfn !== undefined;
  var iteratorMethod = getIteratorMethod(O);
  var index = 0;
  var length, result, step, iterator, next, value;
  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
  // if the target is not iterable or it's an array with the default iterator - use a simple case
  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {
    iterator = iteratorMethod.call(O);
    next = iterator.next;
    result = new C();
    for (;!(step = next.call(iterator)).done; index++) {
      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
      createProperty(result, index, value);
    }
  } else {
    length = toLength(O.length);
    result = new C(length);
    for (;length > index; index++) {
      value = mapping ? mapfn(O[index], index) : O[index];
      createProperty(result, index, value);
    }
  }
  result.length = index;
  return result;
};


/***/ }),

/***/ "4e82":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var aFunction = __webpack_require__("1c0b");
var toObject = __webpack_require__("7b0b");
var fails = __webpack_require__("d039");
var arrayMethodIsStrict = __webpack_require__("a640");

var test = [];
var nativeSort = test.sort;

// IE8-
var FAILS_ON_UNDEFINED = fails(function () {
  test.sort(undefined);
});
// V8 bug
var FAILS_ON_NULL = fails(function () {
  test.sort(null);
});
// Old WebKit
var STRICT_METHOD = arrayMethodIsStrict('sort');

var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;

// `Array.prototype.sort` method
// https://tc39.es/ecma262/#sec-array.prototype.sort
$({ target: 'Array', proto: true, forced: FORCED }, {
  sort: function sort(comparefn) {
    return comparefn === undefined
      ? nativeSort.call(toObject(this))
      : nativeSort.call(toObject(this), aFunction(comparefn));
  }
});


/***/ }),

/***/ "4f8d":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "4fad":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");
var $entries = __webpack_require__("6f53").entries;

// `Object.entries` method
// https://tc39.es/ecma262/#sec-object.entries
$({ target: 'Object', stat: true }, {
  entries: function entries(O) {
    return $entries(O);
  }
});


/***/ }),

/***/ "50c4":
/***/ (function(module, exports, __webpack_require__) {

var toInteger = __webpack_require__("a691");

var min = Math.min;

// `ToLength` abstract operation
// https://tc39.es/ecma262/#sec-tolength
module.exports = function (argument) {
  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
};


/***/ }),

/***/ "5135":
/***/ (function(module, exports) {

var hasOwnProperty = {}.hasOwnProperty;

module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "5319":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var fixRegExpWellKnownSymbolLogic = __webpack_require__("d784");
var anObject = __webpack_require__("825a");
var toLength = __webpack_require__("50c4");
var toInteger = __webpack_require__("a691");
var requireObjectCoercible = __webpack_require__("1d80");
var advanceStringIndex = __webpack_require__("8aa5");
var getSubstitution = __webpack_require__("0cb2");
var regExpExec = __webpack_require__("14c3");

var max = Math.max;
var min = Math.min;

var maybeToString = function (it) {
  return it === undefined ? it : String(it);
};

// @@replace logic
fixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {
  var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;
  var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;
  var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';

  return [
    // `String.prototype.replace` method
    // https://tc39.es/ecma262/#sec-string.prototype.replace
    function replace(searchValue, replaceValue) {
      var O = requireObjectCoercible(this);
      var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];
      return replacer !== undefined
        ? replacer.call(searchValue, O, replaceValue)
        : nativeReplace.call(String(O), searchValue, replaceValue);
    },
    // `RegExp.prototype[@@replace]` method
    // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
    function (regexp, replaceValue) {
      if (
        (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||
        (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)
      ) {
        var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);
        if (res.done) return res.value;
      }

      var rx = anObject(regexp);
      var S = String(this);

      var functionalReplace = typeof replaceValue === 'function';
      if (!functionalReplace) replaceValue = String(replaceValue);

      var global = rx.global;
      if (global) {
        var fullUnicode = rx.unicode;
        rx.lastIndex = 0;
      }
      var results = [];
      while (true) {
        var result = regExpExec(rx, S);
        if (result === null) break;

        results.push(result);
        if (!global) break;

        var matchStr = String(result[0]);
        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
      }

      var accumulatedResult = '';
      var nextSourcePosition = 0;
      for (var i = 0; i < results.length; i++) {
        result = results[i];

        var matched = String(result[0]);
        var position = max(min(toInteger(result.index), S.length), 0);
        var captures = [];
        // NOTE: This is equivalent to
        //   captures = result.slice(1).map(maybeToString)
        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
        // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
        var namedCaptures = result.groups;
        if (functionalReplace) {
          var replacerArgs = [matched].concat(captures, position, S);
          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
          var replacement = String(replaceValue.apply(undefined, replacerArgs));
        } else {
          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
        }
        if (position >= nextSourcePosition) {
          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
          nextSourcePosition = position + matched.length;
        }
      }
      return accumulatedResult + S.slice(nextSourcePosition);
    }
  ];
});


/***/ }),

/***/ "54b6":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Message_vue_vue_type_style_index_0_id_91e9e26c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2e79");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Message_vue_vue_type_style_index_0_id_91e9e26c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Message_vue_vue_type_style_index_0_id_91e9e26c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "5692":
/***/ (function(module, exports, __webpack_require__) {

var IS_PURE = __webpack_require__("c430");
var store = __webpack_require__("c6cd");

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: '3.8.3',
  mode: IS_PURE ? 'pure' : 'global',
  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "56ef":
/***/ (function(module, exports, __webpack_require__) {

var getBuiltIn = __webpack_require__("d066");
var getOwnPropertyNamesModule = __webpack_require__("241c");
var getOwnPropertySymbolsModule = __webpack_require__("7418");
var anObject = __webpack_require__("825a");

// all object keys, includes non-enumerable and symbols
module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
  var keys = getOwnPropertyNamesModule.f(anObject(it));
  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
};


/***/ }),

/***/ "5899":
/***/ (function(module, exports) {

// a string of all valid unicode whitespaces
// eslint-disable-next-line max-len
module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';


/***/ }),

/***/ "589c":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AudioControl_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("c8ce");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AudioControl_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AudioControl_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "58a8":
/***/ (function(module, exports, __webpack_require__) {

var requireObjectCoercible = __webpack_require__("1d80");
var whitespaces = __webpack_require__("5899");

var whitespace = '[' + whitespaces + ']';
var ltrim = RegExp('^' + whitespace + whitespace + '*');
var rtrim = RegExp(whitespace + whitespace + '*$');

// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
var createMethod = function (TYPE) {
  return function ($this) {
    var string = String(requireObjectCoercible($this));
    if (TYPE & 1) string = string.replace(ltrim, '');
    if (TYPE & 2) string = string.replace(rtrim, '');
    return string;
  };
};

module.exports = {
  // `String.prototype.{ trimLeft, trimStart }` methods
  // https://tc39.es/ecma262/#sec-string.prototype.trimstart
  start: createMethod(1),
  // `String.prototype.{ trimRight, trimEnd }` methods
  // https://tc39.es/ecma262/#sec-string.prototype.trimend
  end: createMethod(2),
  // `String.prototype.trim` method
  // https://tc39.es/ecma262/#sec-string.prototype.trim
  trim: createMethod(3)
};


/***/ }),

/***/ "5a34":
/***/ (function(module, exports, __webpack_require__) {

var isRegExp = __webpack_require__("44e7");

module.exports = function (it) {
  if (isRegExp(it)) {
    throw TypeError("The method doesn't accept regular expressions");
  } return it;
};


/***/ }),

/***/ "5c6c":
/***/ (function(module, exports) {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "5f96":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
var $join = [].join;

// `%TypedArray%.prototype.join` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join
// eslint-disable-next-line no-unused-vars
exportTypedArrayMethod('join', function join(separator) {
  return $join.apply(aTypedArray(this), arguments);
});


/***/ }),

/***/ "5fb2":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js
var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1
var base = 36;
var tMin = 1;
var tMax = 26;
var skew = 38;
var damp = 700;
var initialBias = 72;
var initialN = 128; // 0x80
var delimiter = '-'; // '\x2D'
var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars
var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators
var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';
var baseMinusTMin = base - tMin;
var floor = Math.floor;
var stringFromCharCode = String.fromCharCode;

/**
 * Creates an array containing the numeric code points of each Unicode
 * character in the string. While JavaScript uses UCS-2 internally,
 * this function will convert a pair of surrogate halves (each of which
 * UCS-2 exposes as separate characters) into a single code point,
 * matching UTF-16.
 */
var ucs2decode = function (string) {
  var output = [];
  var counter = 0;
  var length = string.length;
  while (counter < length) {
    var value = string.charCodeAt(counter++);
    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
      // It's a high surrogate, and there is a next character.
      var extra = string.charCodeAt(counter++);
      if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.
        output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
      } else {
        // It's an unmatched surrogate; only append this code unit, in case the
        // next code unit is the high surrogate of a surrogate pair.
        output.push(value);
        counter--;
      }
    } else {
      output.push(value);
    }
  }
  return output;
};

/**
 * Converts a digit/integer into a basic code point.
 */
var digitToBasic = function (digit) {
  //  0..25 map to ASCII a..z or A..Z
  // 26..35 map to ASCII 0..9
  return digit + 22 + 75 * (digit < 26);
};

/**
 * Bias adaptation function as per section 3.4 of RFC 3492.
 * https://tools.ietf.org/html/rfc3492#section-3.4
 */
var adapt = function (delta, numPoints, firstTime) {
  var k = 0;
  delta = firstTime ? floor(delta / damp) : delta >> 1;
  delta += floor(delta / numPoints);
  for (; delta > baseMinusTMin * tMax >> 1; k += base) {
    delta = floor(delta / baseMinusTMin);
  }
  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
};

/**
 * Converts a string of Unicode symbols (e.g. a domain name label) to a
 * Punycode string of ASCII-only symbols.
 */
// eslint-disable-next-line  max-statements
var encode = function (input) {
  var output = [];

  // Convert the input in UCS-2 to an array of Unicode code points.
  input = ucs2decode(input);

  // Cache the length.
  var inputLength = input.length;

  // Initialize the state.
  var n = initialN;
  var delta = 0;
  var bias = initialBias;
  var i, currentValue;

  // Handle the basic code points.
  for (i = 0; i < input.length; i++) {
    currentValue = input[i];
    if (currentValue < 0x80) {
      output.push(stringFromCharCode(currentValue));
    }
  }

  var basicLength = output.length; // number of basic code points.
  var handledCPCount = basicLength; // number of code points that have been handled;

  // Finish the basic string with a delimiter unless it's empty.
  if (basicLength) {
    output.push(delimiter);
  }

  // Main encoding loop:
  while (handledCPCount < inputLength) {
    // All non-basic code points < n have been handled already. Find the next larger one:
    var m = maxInt;
    for (i = 0; i < input.length; i++) {
      currentValue = input[i];
      if (currentValue >= n && currentValue < m) {
        m = currentValue;
      }
    }

    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.
    var handledCPCountPlusOne = handledCPCount + 1;
    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
      throw RangeError(OVERFLOW_ERROR);
    }

    delta += (m - n) * handledCPCountPlusOne;
    n = m;

    for (i = 0; i < input.length; i++) {
      currentValue = input[i];
      if (currentValue < n && ++delta > maxInt) {
        throw RangeError(OVERFLOW_ERROR);
      }
      if (currentValue == n) {
        // Represent delta as a generalized variable-length integer.
        var q = delta;
        for (var k = base; /* no condition */; k += base) {
          var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
          if (q < t) break;
          var qMinusT = q - t;
          var baseMinusT = base - t;
          output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));
          q = floor(qMinusT / baseMinusT);
        }

        output.push(stringFromCharCode(digitToBasic(q)));
        bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
        delta = 0;
        ++handledCPCount;
      }
    }

    ++delta;
    ++n;
  }
  return output.join('');
};

module.exports = function (input) {
  var encoded = [];
  var labels = input.toLowerCase().replace(regexSeparators, '\u002E').split('.');
  var i, label;
  for (i = 0; i < labels.length; i++) {
    label = labels[i];
    encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);
  }
  return encoded.join('.');
};


/***/ }),

/***/ "605d":
/***/ (function(module, exports, __webpack_require__) {

var classof = __webpack_require__("c6b6");
var global = __webpack_require__("da84");

module.exports = classof(global.process) == 'process';


/***/ }),

/***/ "60bd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var global = __webpack_require__("da84");
var ArrayBufferViewCore = __webpack_require__("ebb5");
var ArrayIterators = __webpack_require__("e260");
var wellKnownSymbol = __webpack_require__("b622");

var ITERATOR = wellKnownSymbol('iterator');
var Uint8Array = global.Uint8Array;
var arrayValues = ArrayIterators.values;
var arrayKeys = ArrayIterators.keys;
var arrayEntries = ArrayIterators.entries;
var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
var nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];

var CORRECT_ITER_NAME = !!nativeTypedArrayIterator
  && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);

var typedArrayValues = function values() {
  return arrayValues.call(aTypedArray(this));
};

// `%TypedArray%.prototype.entries` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries
exportTypedArrayMethod('entries', function entries() {
  return arrayEntries.call(aTypedArray(this));
});
// `%TypedArray%.prototype.keys` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys
exportTypedArrayMethod('keys', function keys() {
  return arrayKeys.call(aTypedArray(this));
});
// `%TypedArray%.prototype.values` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values
exportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);
// `%TypedArray%.prototype[@@iterator]` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator
exportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);


/***/ }),

/***/ "60da":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var DESCRIPTORS = __webpack_require__("83ab");
var fails = __webpack_require__("d039");
var objectKeys = __webpack_require__("df75");
var getOwnPropertySymbolsModule = __webpack_require__("7418");
var propertyIsEnumerableModule = __webpack_require__("d1e7");
var toObject = __webpack_require__("7b0b");
var IndexedObject = __webpack_require__("44ad");

var nativeAssign = Object.assign;
var defineProperty = Object.defineProperty;

// `Object.assign` method
// https://tc39.es/ecma262/#sec-object.assign
module.exports = !nativeAssign || fails(function () {
  // should have correct order of operations (Edge bug)
  if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {
    enumerable: true,
    get: function () {
      defineProperty(this, 'b', {
        value: 3,
        enumerable: false
      });
    }
  }), { b: 2 })).b !== 1) return true;
  // should work with symbols and should have deterministic property order (V8 bug)
  var A = {};
  var B = {};
  // eslint-disable-next-line no-undef
  var symbol = Symbol();
  var alphabet = 'abcdefghijklmnopqrst';
  A[symbol] = 7;
  alphabet.split('').forEach(function (chr) { B[chr] = chr; });
  return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;
}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
  var T = toObject(target);
  var argumentsLength = arguments.length;
  var index = 1;
  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
  var propertyIsEnumerable = propertyIsEnumerableModule.f;
  while (argumentsLength > index) {
    var S = IndexedObject(arguments[index++]);
    var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);
    var length = keys.length;
    var j = 0;
    var key;
    while (length > j) {
      key = keys[j++];
      if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];
    }
  } return T;
} : nativeAssign;


/***/ }),

/***/ "621a":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var global = __webpack_require__("da84");
var DESCRIPTORS = __webpack_require__("83ab");
var NATIVE_ARRAY_BUFFER = __webpack_require__("a981");
var createNonEnumerableProperty = __webpack_require__("9112");
var redefineAll = __webpack_require__("e2cc");
var fails = __webpack_require__("d039");
var anInstance = __webpack_require__("19aa");
var toInteger = __webpack_require__("a691");
var toLength = __webpack_require__("50c4");
var toIndex = __webpack_require__("0b25");
var IEEE754 = __webpack_require__("77a7");
var getPrototypeOf = __webpack_require__("e163");
var setPrototypeOf = __webpack_require__("d2bb");
var getOwnPropertyNames = __webpack_require__("241c").f;
var defineProperty = __webpack_require__("9bf2").f;
var arrayFill = __webpack_require__("81d5");
var setToStringTag = __webpack_require__("d44e");
var InternalStateModule = __webpack_require__("69f3");

var getInternalState = InternalStateModule.get;
var setInternalState = InternalStateModule.set;
var ARRAY_BUFFER = 'ArrayBuffer';
var DATA_VIEW = 'DataView';
var PROTOTYPE = 'prototype';
var WRONG_LENGTH = 'Wrong length';
var WRONG_INDEX = 'Wrong index';
var NativeArrayBuffer = global[ARRAY_BUFFER];
var $ArrayBuffer = NativeArrayBuffer;
var $DataView = global[DATA_VIEW];
var $DataViewPrototype = $DataView && $DataView[PROTOTYPE];
var ObjectPrototype = Object.prototype;
var RangeError = global.RangeError;

var packIEEE754 = IEEE754.pack;
var unpackIEEE754 = IEEE754.unpack;

var packInt8 = function (number) {
  return [number & 0xFF];
};

var packInt16 = function (number) {
  return [number & 0xFF, number >> 8 & 0xFF];
};

var packInt32 = function (number) {
  return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];
};

var unpackInt32 = function (buffer) {
  return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];
};

var packFloat32 = function (number) {
  return packIEEE754(number, 23, 4);
};

var packFloat64 = function (number) {
  return packIEEE754(number, 52, 8);
};

var addGetter = function (Constructor, key) {
  defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });
};

var get = function (view, count, index, isLittleEndian) {
  var intIndex = toIndex(index);
  var store = getInternalState(view);
  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);
  var bytes = getInternalState(store.buffer).bytes;
  var start = intIndex + store.byteOffset;
  var pack = bytes.slice(start, start + count);
  return isLittleEndian ? pack : pack.reverse();
};

var set = function (view, count, index, conversion, value, isLittleEndian) {
  var intIndex = toIndex(index);
  var store = getInternalState(view);
  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);
  var bytes = getInternalState(store.buffer).bytes;
  var start = intIndex + store.byteOffset;
  var pack = conversion(+value);
  for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];
};

if (!NATIVE_ARRAY_BUFFER) {
  $ArrayBuffer = function ArrayBuffer(length) {
    anInstance(this, $ArrayBuffer, ARRAY_BUFFER);
    var byteLength = toIndex(length);
    setInternalState(this, {
      bytes: arrayFill.call(new Array(byteLength), 0),
      byteLength: byteLength
    });
    if (!DESCRIPTORS) this.byteLength = byteLength;
  };

  $DataView = function DataView(buffer, byteOffset, byteLength) {
    anInstance(this, $DataView, DATA_VIEW);
    anInstance(buffer, $ArrayBuffer, DATA_VIEW);
    var bufferLength = getInternalState(buffer).byteLength;
    var offset = toInteger(byteOffset);
    if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');
    byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
    if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);
    setInternalState(this, {
      buffer: buffer,
      byteLength: byteLength,
      byteOffset: offset
    });
    if (!DESCRIPTORS) {
      this.buffer = buffer;
      this.byteLength = byteLength;
      this.byteOffset = offset;
    }
  };

  if (DESCRIPTORS) {
    addGetter($ArrayBuffer, 'byteLength');
    addGetter($DataView, 'buffer');
    addGetter($DataView, 'byteLength');
    addGetter($DataView, 'byteOffset');
  }

  redefineAll($DataView[PROTOTYPE], {
    getInt8: function getInt8(byteOffset) {
      return get(this, 1, byteOffset)[0] << 24 >> 24;
    },
    getUint8: function getUint8(byteOffset) {
      return get(this, 1, byteOffset)[0];
    },
    getInt16: function getInt16(byteOffset /* , littleEndian */) {
      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);
      return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
    },
    getUint16: function getUint16(byteOffset /* , littleEndian */) {
      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);
      return bytes[1] << 8 | bytes[0];
    },
    getInt32: function getInt32(byteOffset /* , littleEndian */) {
      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));
    },
    getUint32: function getUint32(byteOffset /* , littleEndian */) {
      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;
    },
    getFloat32: function getFloat32(byteOffset /* , littleEndian */) {
      return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);
    },
    getFloat64: function getFloat64(byteOffset /* , littleEndian */) {
      return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);
    },
    setInt8: function setInt8(byteOffset, value) {
      set(this, 1, byteOffset, packInt8, value);
    },
    setUint8: function setUint8(byteOffset, value) {
      set(this, 1, byteOffset, packInt8, value);
    },
    setInt16: function setInt16(byteOffset, value /* , littleEndian */) {
      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);
    },
    setUint16: function setUint16(byteOffset, value /* , littleEndian */) {
      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);
    },
    setInt32: function setInt32(byteOffset, value /* , littleEndian */) {
      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);
    },
    setUint32: function setUint32(byteOffset, value /* , littleEndian */) {
      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);
    },
    setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {
      set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);
    },
    setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {
      set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);
    }
  });
} else {
  if (!fails(function () {
    NativeArrayBuffer(1);
  }) || !fails(function () {
    new NativeArrayBuffer(-1); // eslint-disable-line no-new
  }) || fails(function () {
    new NativeArrayBuffer(); // eslint-disable-line no-new
    new NativeArrayBuffer(1.5); // eslint-disable-line no-new
    new NativeArrayBuffer(NaN); // eslint-disable-line no-new
    return NativeArrayBuffer.name != ARRAY_BUFFER;
  })) {
    $ArrayBuffer = function ArrayBuffer(length) {
      anInstance(this, $ArrayBuffer);
      return new NativeArrayBuffer(toIndex(length));
    };
    var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];
    for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {
      if (!((key = keys[j++]) in $ArrayBuffer)) {
        createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);
      }
    }
    ArrayBufferPrototype.constructor = $ArrayBuffer;
  }

  // WebKit bug - the same parent prototype for typed arrays and data view
  if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {
    setPrototypeOf($DataViewPrototype, ObjectPrototype);
  }

  // iOS Safari 7.x bug
  var testView = new $DataView(new $ArrayBuffer(2));
  var nativeSetInt8 = $DataViewPrototype.setInt8;
  testView.setInt8(0, 2147483648);
  testView.setInt8(1, 2147483649);
  if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {
    setInt8: function setInt8(byteOffset, value) {
      nativeSetInt8.call(this, byteOffset, value << 24 >> 24);
    },
    setUint8: function setUint8(byteOffset, value) {
      nativeSetInt8.call(this, byteOffset, value << 24 >> 24);
    }
  }, { unsafe: true });
}

setToStringTag($ArrayBuffer, ARRAY_BUFFER);
setToStringTag($DataView, DATA_VIEW);

module.exports = {
  ArrayBuffer: $ArrayBuffer,
  DataView: $DataView
};


/***/ }),

/***/ "62ed":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "649e":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var $some = __webpack_require__("b727").some;

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.some` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some
exportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {
  return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
});


/***/ }),

/***/ "64e5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var fails = __webpack_require__("d039");
var padStart = __webpack_require__("0ccb").start;

var abs = Math.abs;
var DatePrototype = Date.prototype;
var getTime = DatePrototype.getTime;
var nativeDateToISOString = DatePrototype.toISOString;

// `Date.prototype.toISOString` method implementation
// https://tc39.es/ecma262/#sec-date.prototype.toisostring
// PhantomJS / old WebKit fails here:
module.exports = (fails(function () {
  return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';
}) || !fails(function () {
  nativeDateToISOString.call(new Date(NaN));
})) ? function toISOString() {
  if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');
  var date = this;
  var year = date.getUTCFullYear();
  var milliseconds = date.getUTCMilliseconds();
  var sign = year < 0 ? '-' : year > 9999 ? '+' : '';
  return sign + padStart(abs(year), sign ? 6 : 4, 0) +
    '-' + padStart(date.getUTCMonth() + 1, 2, 0) +
    '-' + padStart(date.getUTCDate(), 2, 0) +
    'T' + padStart(date.getUTCHours(), 2, 0) +
    ':' + padStart(date.getUTCMinutes(), 2, 0) +
    ':' + padStart(date.getUTCSeconds(), 2, 0) +
    '.' + padStart(milliseconds, 3, 0) +
    'Z';
} : nativeDateToISOString;


/***/ }),

/***/ "6547":
/***/ (function(module, exports, __webpack_require__) {

var toInteger = __webpack_require__("a691");
var requireObjectCoercible = __webpack_require__("1d80");

// `String.prototype.{ codePointAt, at }` methods implementation
var createMethod = function (CONVERT_TO_STRING) {
  return function ($this, pos) {
    var S = String(requireObjectCoercible($this));
    var position = toInteger(pos);
    var size = S.length;
    var first, second;
    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
    first = S.charCodeAt(position);
    return first < 0xD800 || first > 0xDBFF || position + 1 === size
      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
        ? CONVERT_TO_STRING ? S.charAt(position) : first
        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
  };
};

module.exports = {
  // `String.prototype.codePointAt` method
  // https://tc39.es/ecma262/#sec-string.prototype.codepointat
  codeAt: createMethod(false),
  // `String.prototype.at` method
  // https://github.com/mathiasbynens/String.prototype.at
  charAt: createMethod(true)
};


/***/ }),

/***/ "65f0":
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__("861d");
var isArray = __webpack_require__("e8b5");
var wellKnownSymbol = __webpack_require__("b622");

var SPECIES = wellKnownSymbol('species');

// `ArraySpeciesCreate` abstract operation
// https://tc39.es/ecma262/#sec-arrayspeciescreate
module.exports = function (originalArray, length) {
  var C;
  if (isArray(originalArray)) {
    C = originalArray.constructor;
    // cross-realm fallback
    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
    else if (isObject(C)) {
      C = C[SPECIES];
      if (C === null) C = undefined;
    }
  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
};


/***/ }),

/***/ "669f":
/***/ (function(module, exports, __webpack_require__) {

!function(e,o){ true?module.exports=o():undefined}(this,function(){return function(e){function o(a){if(t[a])return t[a].exports;var n=t[a]={i:a,l:!1,exports:{}};return e[a].call(n.exports,n,n.exports,o),n.l=!0,n.exports}var t={};return o.m=e,o.c=t,o.i=function(e){return e},o.d=function(e,t,a){o.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:a})},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},o.p="/dist-module/",o(o.s=3)}([function(e,o,t){var a=t(4)(t(1),t(5),null,null,null);e.exports=a.exports},function(e,o,t){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var a=t(2),n=function(e){return e&&e.__esModule?e:{default:e}}(a);o.default={props:{search:{type:String,required:!1,default:""},emojiTable:{type:Object,required:!1,default:function(){return n.default}}},data:function(){return{display:{x:0,y:0,visible:!1}}},computed:{emojis:function(){if(this.search){var e={};for(var o in this.emojiTable){e[o]={};for(var t in this.emojiTable[o])new RegExp(".*"+this.search+".*").test(t)&&(e[o][t]=this.emojiTable[o][t]);0===Object.keys(e[o]).length&&delete e[o]}return e}return this.emojiTable}},methods:{insert:function(e){this.$emit("emoji",e)},toggle:function(e){this.display.visible=!this.display.visible,this.display.x=e.clientX,this.display.y=e.clientY},hide:function(){this.display.visible=!1},escape:function(e){!0===this.display.visible&&27===e.keyCode&&(this.display.visible=!1)}},directives:{"click-outside":{bind:function(e,o,t){if("function"==typeof o.value){var a=o.modifiers.bubble,n=function(t){(a||!e.contains(t.target)&&e!==t.target)&&o.value(t)};e.__vueClickOutside__=n,document.addEventListener("click",n)}},unbind:function(e,o){document.removeEventListener("click",e.__vueClickOutside__),e.__vueClickOutside__=null}}},mounted:function(){document.addEventListener("keyup",this.escape)},destroyed:function(){document.removeEventListener("keyup",this.escape)}}},function(e,o,t){"use strict";Object.defineProperty(o,"__esModule",{value:!0}),o.default={"Frequently used":{thumbs_up:"👍","-1":"👎",sob:"😭",confused:"😕",neutral_face:"😐",blush:"😊",heart_eyes:"😍"},People:{smile:"😄",smiley:"😃",grinning:"😀",blush:"😊",wink:"😉",heart_eyes:"😍",kissing_heart:"😘",kissing_closed_eyes:"😚",kissing:"😗",kissing_smiling_eyes:"😙",stuck_out_tongue_winking_eye:"😜",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue:"😛",flushed:"😳",grin:"😁",pensive:"😔",relieved:"😌",unamused:"😒",disappointed:"😞",persevere:"😣",cry:"😢",joy:"😂",sob:"😭",sleepy:"😪",disappointed_relieved:"😥",cold_sweat:"😰",sweat_smile:"😅",sweat:"😓",weary:"😩",tired_face:"😫",fearful:"😨",scream:"😱",angry:"😠",rage:"😡",triumph:"😤",confounded:"😖",laughing:"😆",yum:"😋",mask:"😷",sunglasses:"😎",sleeping:"😴",dizzy_face:"😵",astonished:"😲",worried:"😟",frowning:"😦",anguished:"😧",imp:"👿",open_mouth:"😮",grimacing:"😬",neutral_face:"😐",confused:"😕",hushed:"😯",smirk:"😏",expressionless:"😑",man_with_gua_pi_mao:"👲",man_with_turban:"👳",cop:"👮",construction_worker:"👷",guardsman:"💂",baby:"👶",boy:"👦",girl:"👧",man:"👨",woman:"👩",older_man:"👴",older_woman:"👵",person_with_blond_hair:"👱",angel:"👼",princess:"👸",smiley_cat:"😺",smile_cat:"😸",heart_eyes_cat:"😻",kissing_cat:"😽",smirk_cat:"😼",scream_cat:"🙀",crying_cat_face:"😿",joy_cat:"😹",pouting_cat:"😾",japanese_ogre:"👹",japanese_goblin:"👺",see_no_evil:"🙈",hear_no_evil:"🙉",speak_no_evil:"🙊",skull:"💀",alien:"👽",hankey:"💩",fire:"🔥",sparkles:"✨",star2:"🌟",dizzy:"💫",boom:"💥",anger:"💢",sweat_drops:"💦",droplet:"💧",zzz:"💤",dash:"💨",ear:"👂",eyes:"👀",nose:"👃",tongue:"👅",lips:"👄",thumbs_up:"👍","-1":"👎",ok_hand:"👌",facepunch:"👊",fist:"✊",wave:"👋",hand:"✋",open_hands:"👐",point_up_2:"👆",point_down:"👇",point_right:"👉",point_left:"👈",raised_hands:"🙌",pray:"🙏",clap:"👏",muscle:"💪",walking:"🚶",runner:"🏃",dancer:"💃",couple:"👫",family:"👪",couplekiss:"💏",couple_with_heart:"💑",dancers:"👯",ok_woman:"🙆",no_good:"🙅",information_desk_person:"💁",raising_hand:"🙋",massage:"💆",haircut:"💇",nail_care:"💅",bride_with_veil:"👰",person_with_pouting_face:"🙎",person_frowning:"🙍",bow:"🙇",tophat:"🎩",crown:"👑",womans_hat:"👒",athletic_shoe:"👟",mans_shoe:"👞",sandal:"👡",high_heel:"👠",boot:"👢",shirt:"👕",necktie:"👔",womans_clothes:"👚",dress:"👗",running_shirt_with_sash:"🎽",jeans:"👖",kimono:"👘",bikini:"👙",briefcase:"💼",handbag:"👜",pouch:"👝",purse:"👛",eyeglasses:"👓",ribbon:"🎀",closed_umbrella:"🌂",lipstick:"💄",yellow_heart:"💛",blue_heart:"💙",purple_heart:"💜",green_heart:"💚",broken_heart:"💔",heartpulse:"💗",heartbeat:"💓",two_hearts:"💕",sparkling_heart:"💖",revolving_hearts:"💞",cupid:"💘",love_letter:"💌",kiss:"💋",ring:"💍",gem:"💎",bust_in_silhouette:"👤",speech_balloon:"💬",footprints:"👣"},Nature:{dog:"🐶",wolf:"🐺",cat:"🐱",mouse:"🐭",hamster:"🐹",rabbit:"🐰",frog:"🐸",tiger:"🐯",koala:"🐨",bear:"🐻",pig:"🐷",pig_nose:"🐽",cow:"🐮",boar:"🐗",monkey_face:"🐵",monkey:"🐒",horse:"🐴",sheep:"🐑",elephant:"🐘",panda_face:"🐼",penguin:"🐧",bird:"🐦",baby_chick:"🐤",hatched_chick:"🐥",hatching_chick:"🐣",chicken:"🐔",snake:"🐍",turtle:"🐢",bug:"🐛",bee:"🐝",ant:"🐜",beetle:"🐞",snail:"🐌",octopus:"🐙",shell:"🐚",tropical_fish:"🐠",fish:"🐟",dolphin:"🐬",whale:"🐳",racehorse:"🐎",dragon_face:"🐲",blowfish:"🐡",camel:"🐫",poodle:"🐩",feet:"🐾",bouquet:"💐",cherry_blossom:"🌸",tulip:"🌷",four_leaf_clover:"🍀",rose:"🌹",sunflower:"🌻",hibiscus:"🌺",maple_leaf:"🍁",leaves:"🍃",fallen_leaf:"🍂",herb:"🌿",ear_of_rice:"🌾",mushroom:"🍄",cactus:"🌵",palm_tree:"🌴",chestnut:"🌰",seedling:"🌱",blossom:"🌼",new_moon:"🌑",first_quarter_moon:"🌓",moon:"🌔",full_moon:"🌕",first_quarter_moon_with_face:"🌛",crescent_moon:"🌙",earth_asia:"🌏",volcano:"🌋",milky_way:"🌌",stars:"🌠",partly_sunny:"⛅",snowman:"⛄",cyclone:"🌀",foggy:"🌁",rainbow:"🌈",ocean:"🌊"},Objects:{bamboo:"🎍",gift_heart:"💝",dolls:"🎎",school_satchel:"🎒",mortar_board:"🎓",flags:"🎏",fireworks:"🎆",sparkler:"🎇",wind_chime:"🎐",rice_scene:"🎑",jack_o_lantern:"🎃",ghost:"👻",santa:"🎅",christmas_tree:"🎄",gift:"🎁",tanabata_tree:"🎋",tada:"🎉",confetti_ball:"🎊",balloon:"🎈",crossed_flags:"🎌",crystal_ball:"🔮",movie_camera:"🎥",camera:"📷",video_camera:"📹",vhs:"📼",cd:"💿",dvd:"📀",minidisc:"💽",floppy_disk:"💾",computer:"💻",iphone:"📱",telephone_receiver:"📞",pager:"📟",fax:"📠",satellite:"📡",tv:"📺",radio:"📻",loud_sound:"🔊",bell:"🔔",loudspeaker:"📢",mega:"📣",hourglass_flowing_sand:"⏳",hourglass:"⌛",alarm_clock:"⏰",watch:"⌚",unlock:"🔓",lock:"🔒",lock_with_ink_pen:"🔏",closed_lock_with_key:"🔐",key:"🔑",mag_right:"🔎",bulb:"💡",flashlight:"🔦",electric_plug:"🔌",battery:"🔋",mag:"🔍",bath:"🛀",toilet:"🚽",wrench:"🔧",nut_and_bolt:"🔩",hammer:"🔨",door:"🚪",smoking:"🚬",bomb:"💣",gun:"🔫",hocho:"🔪",pill:"💊",syringe:"💉",moneybag:"💰",yen:"💴",dollar:"💵",credit_card:"💳",money_with_wings:"💸",calling:"📲","e-mail":"📧",inbox_tray:"📥",outbox_tray:"📤",envelope_with_arrow:"📩",incoming_envelope:"📨",mailbox:"📫",mailbox_closed:"📪",postbox:"📮",package:"📦",memo:"📝",page_facing_up:"📄",page_with_curl:"📃",bookmark_tabs:"📑",bar_chart:"📊",chart_with_upwards_trend:"📈",chart_with_downwards_trend:"📉",scroll:"📜",clipboard:"📋",date:"📅",calendar:"📆",card_index:"📇",file_folder:"📁",open_file_folder:"📂",pushpin:"📌",paperclip:"📎",straight_ruler:"📏",triangular_ruler:"📐",closed_book:"📕",green_book:"📗",blue_book:"📘",orange_book:"📙",notebook:"📓",notebook_with_decorative_cover:"📔",ledger:"📒",books:"📚",book:"📖",bookmark:"🔖",name_badge:"📛",newspaper:"📰",art:"🎨",clapper:"🎬",microphone:"🎤",headphones:"🎧",musical_score:"🎼",musical_note:"🎵",notes:"🎶",musical_keyboard:"🎹",violin:"🎻",trumpet:"🎺",saxophone:"🎷",guitar:"🎸",space_invader:"👾",video_game:"🎮",black_joker:"🃏",flower_playing_cards:"🎴",mahjong:"🀄",game_die:"🎲",dart:"🎯",football:"🏈",basketball:"🏀",soccer:"⚽",baseball:"⚾",tennis:"🎾","8ball":"🎱",bowling:"🎳",golf:"⛳",checkered_flag:"🏁",trophy:"🏆",ski:"🎿",snowboarder:"🏂",swimmer:"🏊",surfer:"🏄",fishing_pole_and_fish:"🎣",tea:"🍵",sake:"🍶",beer:"🍺",beers:"🍻",cocktail:"🍸",tropical_drink:"🍹",wine_glass:"🍷",fork_and_knife:"🍴",pizza:"🍕",hamburger:"🍔",fries:"🍟",poultry_leg:"🍗",meat_on_bone:"🍖",spaghetti:"🍝",curry:"🍛",fried_shrimp:"🍤",bento:"🍱",sushi:"🍣",fish_cake:"🍥",rice_ball:"🍙",rice_cracker:"🍘",rice:"🍚",ramen:"🍜",stew:"🍲",oden:"🍢",dango:"🍡",egg:"🍳",bread:"🍞",doughnut:"🍩",custard:"🍮",icecream:"🍦",ice_cream:"🍨",shaved_ice:"🍧",birthday:"🎂",cake:"🍰",cookie:"🍪",chocolate_bar:"🍫",candy:"🍬",lollipop:"🍭",honey_pot:"🍯",apple:"🍎",green_apple:"🍏",tangerine:"🍊",cherries:"🍒",grapes:"🍇",watermelon:"🍉",strawberry:"🍓",peach:"🍑",melon:"🍈",banana:"🍌",pineapple:"🍍",sweet_potato:"🍠",eggplant:"🍆",tomato:"🍅",corn:"🌽"},Places:{house:"🏠",house_with_garden:"🏡",school:"🏫",office:"🏢",post_office:"🏣",hospital:"🏥",bank:"🏦",convenience_store:"🏪",love_hotel:"🏩",hotel:"🏨",wedding:"💒",church:"⛪",department_store:"🏬",city_sunrise:"🌇",city_sunset:"🌆",japanese_castle:"🏯",european_castle:"🏰",tent:"⛺",factory:"🏭",tokyo_tower:"🗼",japan:"🗾",mount_fuji:"🗻",sunrise_over_mountains:"🌄",sunrise:"🌅",night_with_stars:"🌃",statue_of_liberty:"🗽",bridge_at_night:"🌉",carousel_horse:"🎠",ferris_wheel:"🎡",fountain:"⛲",roller_coaster:"🎢",ship:"🚢",boat:"⛵",speedboat:"🚤",rocket:"🚀",seat:"💺",station:"🚉",bullettrain_side:"🚄",bullettrain_front:"🚅",metro:"🚇",railway_car:"🚃",bus:"🚌",blue_car:"🚙",car:"🚗",taxi:"🚕",truck:"🚚",rotating_light:"🚨",police_car:"🚓",fire_engine:"🚒",ambulance:"🚑",bike:"🚲",barber:"💈",busstop:"🚏",ticket:"🎫",traffic_light:"🚥",construction:"🚧",beginner:"🔰",fuelpump:"⛽",izakaya_lantern:"🏮",slot_machine:"🎰",moyai:"🗿",circus_tent:"🎪",performing_arts:"🎭",round_pushpin:"📍",triangular_flag_on_post:"🚩"},Symbols:{keycap_ten:"🔟",1234:"🔢",symbols:"🔣",capital_abcd:"🔠",abcd:"🔡",abc:"🔤",arrow_up_small:"🔼",arrow_down_small:"🔽",rewind:"⏪",fast_forward:"⏩",arrow_double_up:"⏫",arrow_double_down:"⏬",ok:"🆗",new:"🆕",up:"🆙",cool:"🆒",free:"🆓",ng:"🆖",signal_strength:"📶",cinema:"🎦",koko:"🈁",u6307:"🈯",u7a7a:"🈳",u6e80:"🈵",u5408:"🈴",u7981:"🈲",ideograph_advantage:"🉐",u5272:"🈹",u55b6:"🈺",u6709:"🈶",u7121:"🈚",restroom:"🚻",mens:"🚹",womens:"🚺",baby_symbol:"🚼",wc:"🚾",no_smoking:"🚭",u7533:"🈸",accept:"🉑",cl:"🆑",sos:"🆘",id:"🆔",no_entry_sign:"🚫",underage:"🔞",no_entry:"⛔",negative_squared_cross_mark:"❎",white_check_mark:"✅",heart_decoration:"💟",vs:"🆚",vibration_mode:"📳",mobile_phone_off:"📴",ab:"🆎",diamond_shape_with_a_dot_inside:"💠",ophiuchus:"⛎",six_pointed_star:"🔯",atm:"🏧",chart:"💹",heavy_dollar_sign:"💲",currency_exchange:"💱",x:"❌",exclamation:"❗",question:"❓",grey_exclamation:"❕",grey_question:"❔",o:"⭕",top:"🔝",end:"🔚",back:"🔙",on:"🔛",soon:"🔜",arrows_clockwise:"🔃",clock12:"🕛",clock1:"🕐",clock2:"🕑",clock3:"🕒",clock4:"🕓",clock5:"🕔",clock6:"🕕",clock7:"🕖",clock8:"🕗",clock9:"🕘",clock10:"🕙",clock11:"🕚",heavy_plus_sign:"➕",heavy_minus_sign:"➖",heavy_division_sign:"➗",white_flower:"💮",100:"💯",radio_button:"🔘",link:"🔗",curly_loop:"➰",trident:"🔱",small_red_triangle:"🔺",black_square_button:"🔲",white_square_button:"🔳",red_circle:"🔴",large_blue_circle:"🔵",small_red_triangle_down:"🔻",white_large_square:"⬜",black_large_square:"⬛",large_orange_diamond:"🔶",large_blue_diamond:"🔷",small_orange_diamond:"🔸",small_blue_diamond:"🔹"}}},function(e,o,t){"use strict";Object.defineProperty(o,"__esModule",{value:!0}),o.EmojiPickerPlugin=o.EmojiPicker=void 0;var a=t(0),n=function(e){return e&&e.__esModule?e:{default:e}}(a),i={install:function(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.component("emoji-picker",n.default)}};"undefined"!=typeof window&&(window.EmojiPicker=i),o.EmojiPicker=n.default,o.EmojiPickerPlugin=i,o.default=n.default},function(e,o){e.exports=function(e,o,t,a,n){var i,r=e=e||{},s=typeof e.default;"object"!==s&&"function"!==s||(i=e,r=e.default);var l="function"==typeof r?r.options:r;o&&(l.render=o.render,l.staticRenderFns=o.staticRenderFns),a&&(l._scopeId=a);var _;if(n?(_=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(n)},l._ssrRegister=_):t&&(_=t),_){var c=l.functional,u=c?l.render:l.beforeCreate;c?l.render=function(e,o){return _.call(o),u(e,o)}:l.beforeCreate=u?[].concat(u,_):[_]}return{esModule:i,exports:r,options:l}}},function(e,o){e.exports={render:function(){var e=this,o=e.$createElement,t=e._self._c||o;return t("div",[e._t("emoji-invoker",null,{events:{click:function(o){return e.toggle(o)}}}),e._v(" "),e.display.visible?t("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:e.hide,expression:"hide"}]},[e._t("emoji-picker",null,{emojis:e.emojis,insert:e.insert,display:e.display})],2):e._e()],2)},staticRenderFns:[]}}])});
//# sourceMappingURL=main.js.map

/***/ }),

/***/ "6738":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Room_vue_vue_type_style_index_0_id_cb4b1406_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("3534");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Room_vue_vue_type_style_index_0_id_cb4b1406_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Room_vue_vue_type_style_index_0_id_cb4b1406_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "68ab":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomUsersTag_vue_vue_type_style_index_0_id_38381158_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eb6c");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomUsersTag_vue_vue_type_style_index_0_id_38381158_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomUsersTag_vue_vue_type_style_index_0_id_38381158_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "68fb":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "69f3":
/***/ (function(module, exports, __webpack_require__) {

var NATIVE_WEAK_MAP = __webpack_require__("7f9a");
var global = __webpack_require__("da84");
var isObject = __webpack_require__("861d");
var createNonEnumerableProperty = __webpack_require__("9112");
var objectHas = __webpack_require__("5135");
var shared = __webpack_require__("c6cd");
var sharedKey = __webpack_require__("f772");
var hiddenKeys = __webpack_require__("d012");

var WeakMap = global.WeakMap;
var set, get, has;

var enforce = function (it) {
  return has(it) ? get(it) : set(it, {});
};

var getterFor = function (TYPE) {
  return function (it) {
    var state;
    if (!isObject(it) || (state = get(it)).type !== TYPE) {
      throw TypeError('Incompatible receiver, ' + TYPE + ' required');
    } return state;
  };
};

if (NATIVE_WEAK_MAP) {
  var store = shared.state || (shared.state = new WeakMap());
  var wmget = store.get;
  var wmhas = store.has;
  var wmset = store.set;
  set = function (it, metadata) {
    metadata.facade = it;
    wmset.call(store, it, metadata);
    return metadata;
  };
  get = function (it) {
    return wmget.call(store, it) || {};
  };
  has = function (it) {
    return wmhas.call(store, it);
  };
} else {
  var STATE = sharedKey('state');
  hiddenKeys[STATE] = true;
  set = function (it, metadata) {
    metadata.facade = it;
    createNonEnumerableProperty(it, STATE, metadata);
    return metadata;
  };
  get = function (it) {
    return objectHas(it, STATE) ? it[STATE] : {};
  };
  has = function (it) {
    return objectHas(it, STATE);
  };
}

module.exports = {
  set: set,
  get: get,
  has: has,
  enforce: enforce,
  getterFor: getterFor
};


/***/ }),

/***/ "6eba":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");

// `Date.now` method
// https://tc39.es/ecma262/#sec-date.now
$({ target: 'Date', stat: true }, {
  now: function now() {
    return new Date().getTime();
  }
});


/***/ }),

/***/ "6eeb":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");
var createNonEnumerableProperty = __webpack_require__("9112");
var has = __webpack_require__("5135");
var setGlobal = __webpack_require__("ce4e");
var inspectSource = __webpack_require__("8925");
var InternalStateModule = __webpack_require__("69f3");

var getInternalState = InternalStateModule.get;
var enforceInternalState = InternalStateModule.enforce;
var TEMPLATE = String(String).split('String');

(module.exports = function (O, key, value, options) {
  var unsafe = options ? !!options.unsafe : false;
  var simple = options ? !!options.enumerable : false;
  var noTargetGet = options ? !!options.noTargetGet : false;
  var state;
  if (typeof value == 'function') {
    if (typeof key == 'string' && !has(value, 'name')) {
      createNonEnumerableProperty(value, 'name', key);
    }
    state = enforceInternalState(value);
    if (!state.source) {
      state.source = TEMPLATE.join(typeof key == 'string' ? key : '');
    }
  }
  if (O === global) {
    if (simple) O[key] = value;
    else setGlobal(key, value);
    return;
  } else if (!unsafe) {
    delete O[key];
  } else if (!noTargetGet && O[key]) {
    simple = true;
  }
  if (simple) O[key] = value;
  else createNonEnumerableProperty(O, key, value);
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, 'toString', function toString() {
  return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
});


/***/ }),

/***/ "6f53":
/***/ (function(module, exports, __webpack_require__) {

var DESCRIPTORS = __webpack_require__("83ab");
var objectKeys = __webpack_require__("df75");
var toIndexedObject = __webpack_require__("fc6a");
var propertyIsEnumerable = __webpack_require__("d1e7").f;

// `Object.{ entries, values }` methods implementation
var createMethod = function (TO_ENTRIES) {
  return function (it) {
    var O = toIndexedObject(it);
    var keys = objectKeys(O);
    var length = keys.length;
    var i = 0;
    var result = [];
    var key;
    while (length > i) {
      key = keys[i++];
      if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {
        result.push(TO_ENTRIES ? [key, O[key]] : O[key]);
      }
    }
    return result;
  };
};

module.exports = {
  // `Object.entries` method
  // https://tc39.es/ecma262/#sec-object.entries
  entries: createMethod(true),
  // `Object.values` method
  // https://tc39.es/ecma262/#sec-object.values
  values: createMethod(false)
};


/***/ }),

/***/ "7156":
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__("861d");
var setPrototypeOf = __webpack_require__("d2bb");

// makes subclassing work correct for wrapped built-ins
module.exports = function ($this, dummy, Wrapper) {
  var NewTarget, NewTargetPrototype;
  if (
    // it can work only with native `setPrototypeOf`
    setPrototypeOf &&
    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
    typeof (NewTarget = dummy.constructor) == 'function' &&
    NewTarget !== Wrapper &&
    isObject(NewTargetPrototype = NewTarget.prototype) &&
    NewTargetPrototype !== Wrapper.prototype
  ) setPrototypeOf($this, NewTargetPrototype);
  return $this;
};


/***/ }),

/***/ "72f7":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var exportTypedArrayMethod = __webpack_require__("ebb5").exportTypedArrayMethod;
var fails = __webpack_require__("d039");
var global = __webpack_require__("da84");

var Uint8Array = global.Uint8Array;
var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};
var arrayToString = [].toString;
var arrayJoin = [].join;

if (fails(function () { arrayToString.call({}); })) {
  arrayToString = function toString() {
    return arrayJoin.call(this);
  };
}

var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;

// `%TypedArray%.prototype.toString` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring
exportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);


/***/ }),

/***/ "735e":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var $fill = __webpack_require__("81d5");

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.fill` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill
// eslint-disable-next-line no-unused-vars
exportTypedArrayMethod('fill', function fill(value /* , start, end */) {
  return $fill.apply(aTypedArray(this), arguments);
});


/***/ }),

/***/ "7418":
/***/ (function(module, exports) {

exports.f = Object.getOwnPropertySymbols;


/***/ }),

/***/ "746f":
/***/ (function(module, exports, __webpack_require__) {

var path = __webpack_require__("428f");
var has = __webpack_require__("5135");
var wrappedWellKnownSymbolModule = __webpack_require__("e538");
var defineProperty = __webpack_require__("9bf2").f;

module.exports = function (NAME) {
  var Symbol = path.Symbol || (path.Symbol = {});
  if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {
    value: wrappedWellKnownSymbolModule.f(NAME)
  });
};


/***/ }),

/***/ "74e8":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var global = __webpack_require__("da84");
var DESCRIPTORS = __webpack_require__("83ab");
var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__("8aa7");
var ArrayBufferViewCore = __webpack_require__("ebb5");
var ArrayBufferModule = __webpack_require__("621a");
var anInstance = __webpack_require__("19aa");
var createPropertyDescriptor = __webpack_require__("5c6c");
var createNonEnumerableProperty = __webpack_require__("9112");
var toLength = __webpack_require__("50c4");
var toIndex = __webpack_require__("0b25");
var toOffset = __webpack_require__("182d");
var toPrimitive = __webpack_require__("c04e");
var has = __webpack_require__("5135");
var classof = __webpack_require__("f5df");
var isObject = __webpack_require__("861d");
var create = __webpack_require__("7c73");
var setPrototypeOf = __webpack_require__("d2bb");
var getOwnPropertyNames = __webpack_require__("241c").f;
var typedArrayFrom = __webpack_require__("a078");
var forEach = __webpack_require__("b727").forEach;
var setSpecies = __webpack_require__("2626");
var definePropertyModule = __webpack_require__("9bf2");
var getOwnPropertyDescriptorModule = __webpack_require__("06cf");
var InternalStateModule = __webpack_require__("69f3");
var inheritIfRequired = __webpack_require__("7156");

var getInternalState = InternalStateModule.get;
var setInternalState = InternalStateModule.set;
var nativeDefineProperty = definePropertyModule.f;
var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
var round = Math.round;
var RangeError = global.RangeError;
var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
var DataView = ArrayBufferModule.DataView;
var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;
var TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;
var TypedArray = ArrayBufferViewCore.TypedArray;
var TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;
var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;
var isTypedArray = ArrayBufferViewCore.isTypedArray;
var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';
var WRONG_LENGTH = 'Wrong length';

var fromList = function (C, list) {
  var index = 0;
  var length = list.length;
  var result = new (aTypedArrayConstructor(C))(length);
  while (length > index) result[index] = list[index++];
  return result;
};

var addGetter = function (it, key) {
  nativeDefineProperty(it, key, { get: function () {
    return getInternalState(this)[key];
  } });
};

var isArrayBuffer = function (it) {
  var klass;
  return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';
};

var isTypedArrayIndex = function (target, key) {
  return isTypedArray(target)
    && typeof key != 'symbol'
    && key in target
    && String(+key) == String(key);
};

var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {
  return isTypedArrayIndex(target, key = toPrimitive(key, true))
    ? createPropertyDescriptor(2, target[key])
    : nativeGetOwnPropertyDescriptor(target, key);
};

var wrappedDefineProperty = function defineProperty(target, key, descriptor) {
  if (isTypedArrayIndex(target, key = toPrimitive(key, true))
    && isObject(descriptor)
    && has(descriptor, 'value')
    && !has(descriptor, 'get')
    && !has(descriptor, 'set')
    // TODO: add validation descriptor w/o calling accessors
    && !descriptor.configurable
    && (!has(descriptor, 'writable') || descriptor.writable)
    && (!has(descriptor, 'enumerable') || descriptor.enumerable)
  ) {
    target[key] = descriptor.value;
    return target;
  } return nativeDefineProperty(target, key, descriptor);
};

if (DESCRIPTORS) {
  if (!NATIVE_ARRAY_BUFFER_VIEWS) {
    getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;
    definePropertyModule.f = wrappedDefineProperty;
    addGetter(TypedArrayPrototype, 'buffer');
    addGetter(TypedArrayPrototype, 'byteOffset');
    addGetter(TypedArrayPrototype, 'byteLength');
    addGetter(TypedArrayPrototype, 'length');
  }

  $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {
    getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,
    defineProperty: wrappedDefineProperty
  });

  module.exports = function (TYPE, wrapper, CLAMPED) {
    var BYTES = TYPE.match(/\d+$/)[0] / 8;
    var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';
    var GETTER = 'get' + TYPE;
    var SETTER = 'set' + TYPE;
    var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];
    var TypedArrayConstructor = NativeTypedArrayConstructor;
    var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;
    var exported = {};

    var getter = function (that, index) {
      var data = getInternalState(that);
      return data.view[GETTER](index * BYTES + data.byteOffset, true);
    };

    var setter = function (that, index, value) {
      var data = getInternalState(that);
      if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;
      data.view[SETTER](index * BYTES + data.byteOffset, value, true);
    };

    var addElement = function (that, index) {
      nativeDefineProperty(that, index, {
        get: function () {
          return getter(this, index);
        },
        set: function (value) {
          return setter(this, index, value);
        },
        enumerable: true
      });
    };

    if (!NATIVE_ARRAY_BUFFER_VIEWS) {
      TypedArrayConstructor = wrapper(function (that, data, offset, $length) {
        anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);
        var index = 0;
        var byteOffset = 0;
        var buffer, byteLength, length;
        if (!isObject(data)) {
          length = toIndex(data);
          byteLength = length * BYTES;
          buffer = new ArrayBuffer(byteLength);
        } else if (isArrayBuffer(data)) {
          buffer = data;
          byteOffset = toOffset(offset, BYTES);
          var $len = data.byteLength;
          if ($length === undefined) {
            if ($len % BYTES) throw RangeError(WRONG_LENGTH);
            byteLength = $len - byteOffset;
            if (byteLength < 0) throw RangeError(WRONG_LENGTH);
          } else {
            byteLength = toLength($length) * BYTES;
            if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);
          }
          length = byteLength / BYTES;
        } else if (isTypedArray(data)) {
          return fromList(TypedArrayConstructor, data);
        } else {
          return typedArrayFrom.call(TypedArrayConstructor, data);
        }
        setInternalState(that, {
          buffer: buffer,
          byteOffset: byteOffset,
          byteLength: byteLength,
          length: length,
          view: new DataView(buffer)
        });
        while (index < length) addElement(that, index++);
      });

      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);
      TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);
    } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {
      TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {
        anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);
        return inheritIfRequired(function () {
          if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));
          if (isArrayBuffer(data)) return $length !== undefined
            ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)
            : typedArrayOffset !== undefined
              ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))
              : new NativeTypedArrayConstructor(data);
          if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);
          return typedArrayFrom.call(TypedArrayConstructor, data);
        }(), dummy, TypedArrayConstructor);
      });

      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);
      forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {
        if (!(key in TypedArrayConstructor)) {
          createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);
        }
      });
      TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;
    }

    if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {
      createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);
    }

    if (TYPED_ARRAY_TAG) {
      createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);
    }

    exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;

    $({
      global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS
    }, exported);

    if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {
      createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);
    }

    if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {
      createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);
    }

    setSpecies(CONSTRUCTOR_NAME);
  };
} else module.exports = function () { /* empty */ };


/***/ }),

/***/ "74fe":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__("2d78");


/***/ }),

/***/ "7656":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.AMPERSAND = exports.CLOSEPAREN = exports.CLOSEANGLEBRACKET = exports.CLOSEBRACKET = exports.CLOSEBRACE = exports.OPENPAREN = exports.OPENANGLEBRACKET = exports.OPENBRACKET = exports.OPENBRACE = exports.WS = exports.TLD = exports.SYM = exports.UNDERSCORE = exports.SLASH = exports.MAILTO = exports.PROTOCOL = exports.QUERY = exports.POUND = exports.PLUS = exports.NUM = exports.NL = exports.LOCALHOST = exports.PUNCTUATION = exports.DOT = exports.COLON = exports.AT = exports.DOMAIN = exports.Base = undefined;

var _createTokenClass = __webpack_require__("46f3");

var _class = __webpack_require__("254c");

/******************************************************************************
	Text Tokens
	Tokens composed of strings
******************************************************************************/

/**
	Abstract class used for manufacturing text tokens.
	Pass in the value this token represents

	@class TextToken
	@abstract
*/
var TextToken = (0, _createTokenClass.createTokenClass)();
TextToken.prototype = {
	toString: function toString() {
		return this.v + '';
	}
};

function inheritsToken(value) {
	var props = value ? { v: value } : {};
	return (0, _class.inherits)(TextToken, (0, _createTokenClass.createTokenClass)(), props);
}

/**
	A valid domain token
	@class DOMAIN
	@extends TextToken
*/
var DOMAIN = inheritsToken();

/**
	@class AT
	@extends TextToken
*/
var AT = inheritsToken('@');

/**
	Represents a single colon `:` character

	@class COLON
	@extends TextToken
*/
var COLON = inheritsToken(':');

/**
	@class DOT
	@extends TextToken
*/
var DOT = inheritsToken('.');

/**
	A character class that can surround the URL, but which the URL cannot begin
	or end with. Does not include certain English punctuation like parentheses.

	@class PUNCTUATION
	@extends TextToken
*/
var PUNCTUATION = inheritsToken();

/**
	The word localhost (by itself)
	@class LOCALHOST
	@extends TextToken
*/
var LOCALHOST = inheritsToken();

/**
	Newline token
	@class NL
	@extends TextToken
*/
var NL = inheritsToken('\n');

/**
	@class NUM
	@extends TextToken
*/
var NUM = inheritsToken();

/**
	@class PLUS
	@extends TextToken
*/
var PLUS = inheritsToken('+');

/**
	@class POUND
	@extends TextToken
*/
var POUND = inheritsToken('#');

/**
	Represents a web URL protocol. Supported types include

	* `http:`
	* `https:`
	* `ftp:`
	* `ftps:`

	@class PROTOCOL
	@extends TextToken
*/
var PROTOCOL = inheritsToken();

/**
	Represents the start of the email URI protocol

	@class MAILTO
	@extends TextToken
*/
var MAILTO = inheritsToken('mailto:');

/**
	@class QUERY
	@extends TextToken
*/
var QUERY = inheritsToken('?');

/**
	@class SLASH
	@extends TextToken
*/
var SLASH = inheritsToken('/');

/**
	@class UNDERSCORE
	@extends TextToken
*/
var UNDERSCORE = inheritsToken('_');

/**
	One ore more non-whitespace symbol.
	@class SYM
	@extends TextToken
*/
var SYM = inheritsToken();

/**
	@class TLD
	@extends TextToken
*/
var TLD = inheritsToken();

/**
	Represents a string of consecutive whitespace characters

	@class WS
	@extends TextToken
*/
var WS = inheritsToken();

/**
	Opening/closing bracket classes
*/

var OPENBRACE = inheritsToken('{');
var OPENBRACKET = inheritsToken('[');
var OPENANGLEBRACKET = inheritsToken('<');
var OPENPAREN = inheritsToken('(');
var CLOSEBRACE = inheritsToken('}');
var CLOSEBRACKET = inheritsToken(']');
var CLOSEANGLEBRACKET = inheritsToken('>');
var CLOSEPAREN = inheritsToken(')');

var AMPERSAND = inheritsToken('&');

exports.Base = TextToken;
exports.DOMAIN = DOMAIN;
exports.AT = AT;
exports.COLON = COLON;
exports.DOT = DOT;
exports.PUNCTUATION = PUNCTUATION;
exports.LOCALHOST = LOCALHOST;
exports.NL = NL;
exports.NUM = NUM;
exports.PLUS = PLUS;
exports.POUND = POUND;
exports.QUERY = QUERY;
exports.PROTOCOL = PROTOCOL;
exports.MAILTO = MAILTO;
exports.SLASH = SLASH;
exports.UNDERSCORE = UNDERSCORE;
exports.SYM = SYM;
exports.TLD = TLD;
exports.WS = WS;
exports.OPENBRACE = OPENBRACE;
exports.OPENBRACKET = OPENBRACKET;
exports.OPENANGLEBRACKET = OPENANGLEBRACKET;
exports.OPENPAREN = OPENPAREN;
exports.CLOSEBRACE = CLOSEBRACE;
exports.CLOSEBRACKET = CLOSEBRACKET;
exports.CLOSEANGLEBRACKET = CLOSEANGLEBRACKET;
exports.CLOSEPAREN = CLOSEPAREN;
exports.AMPERSAND = AMPERSAND;

/***/ }),

/***/ "77a7":
/***/ (function(module, exports) {

// IEEE754 conversions based on https://github.com/feross/ieee754
// eslint-disable-next-line no-shadow-restricted-names
var Infinity = 1 / 0;
var abs = Math.abs;
var pow = Math.pow;
var floor = Math.floor;
var log = Math.log;
var LN2 = Math.LN2;

var pack = function (number, mantissaLength, bytes) {
  var buffer = new Array(bytes);
  var exponentLength = bytes * 8 - mantissaLength - 1;
  var eMax = (1 << exponentLength) - 1;
  var eBias = eMax >> 1;
  var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;
  var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;
  var index = 0;
  var exponent, mantissa, c;
  number = abs(number);
  // eslint-disable-next-line no-self-compare
  if (number != number || number === Infinity) {
    // eslint-disable-next-line no-self-compare
    mantissa = number != number ? 1 : 0;
    exponent = eMax;
  } else {
    exponent = floor(log(number) / LN2);
    if (number * (c = pow(2, -exponent)) < 1) {
      exponent--;
      c *= 2;
    }
    if (exponent + eBias >= 1) {
      number += rt / c;
    } else {
      number += rt * pow(2, 1 - eBias);
    }
    if (number * c >= 2) {
      exponent++;
      c /= 2;
    }
    if (exponent + eBias >= eMax) {
      mantissa = 0;
      exponent = eMax;
    } else if (exponent + eBias >= 1) {
      mantissa = (number * c - 1) * pow(2, mantissaLength);
      exponent = exponent + eBias;
    } else {
      mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);
      exponent = 0;
    }
  }
  for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);
  exponent = exponent << mantissaLength | mantissa;
  exponentLength += mantissaLength;
  for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);
  buffer[--index] |= sign * 128;
  return buffer;
};

var unpack = function (buffer, mantissaLength) {
  var bytes = buffer.length;
  var exponentLength = bytes * 8 - mantissaLength - 1;
  var eMax = (1 << exponentLength) - 1;
  var eBias = eMax >> 1;
  var nBits = exponentLength - 7;
  var index = bytes - 1;
  var sign = buffer[index--];
  var exponent = sign & 127;
  var mantissa;
  sign >>= 7;
  for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);
  mantissa = exponent & (1 << -nBits) - 1;
  exponent >>= -nBits;
  nBits += mantissaLength;
  for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);
  if (exponent === 0) {
    exponent = 1 - eBias;
  } else if (exponent === eMax) {
    return mantissa ? NaN : sign ? -Infinity : Infinity;
  } else {
    mantissa = mantissa + pow(2, mantissaLength);
    exponent = exponent - eBias;
  } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);
};

module.exports = {
  pack: pack,
  unpack: unpack
};


/***/ }),

/***/ "7839":
/***/ (function(module, exports) {

// IE8- don't enum bug keys
module.exports = [
  'constructor',
  'hasOwnProperty',
  'isPrototypeOf',
  'propertyIsEnumerable',
  'toLocaleString',
  'toString',
  'valueOf'
];


/***/ }),

/***/ "798d":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomHeader_vue_vue_type_style_index_0_id_64950a2c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("c0f0");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomHeader_vue_vue_type_style_index_0_id_64950a2c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomHeader_vue_vue_type_style_index_0_id_64950a2c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "7a82":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");
var DESCRIPTORS = __webpack_require__("83ab");
var objectDefinePropertyModile = __webpack_require__("9bf2");

// `Object.defineProperty` method
// https://tc39.es/ecma262/#sec-object.defineproperty
$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {
  defineProperty: objectDefinePropertyModile.f
});


/***/ }),

/***/ "7b0b":
/***/ (function(module, exports, __webpack_require__) {

var requireObjectCoercible = __webpack_require__("1d80");

// `ToObject` abstract operation
// https://tc39.es/ecma262/#sec-toobject
module.exports = function (argument) {
  return Object(requireObjectCoercible(argument));
};


/***/ }),

/***/ "7c73":
/***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__("825a");
var defineProperties = __webpack_require__("37e8");
var enumBugKeys = __webpack_require__("7839");
var hiddenKeys = __webpack_require__("d012");
var html = __webpack_require__("1be4");
var documentCreateElement = __webpack_require__("cc12");
var sharedKey = __webpack_require__("f772");

var GT = '>';
var LT = '<';
var PROTOTYPE = 'prototype';
var SCRIPT = 'script';
var IE_PROTO = sharedKey('IE_PROTO');

var EmptyConstructor = function () { /* empty */ };

var scriptTag = function (content) {
  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
};

// Create object with fake `null` prototype: use ActiveX Object with cleared prototype
var NullProtoObjectViaActiveX = function (activeXDocument) {
  activeXDocument.write(scriptTag(''));
  activeXDocument.close();
  var temp = activeXDocument.parentWindow.Object;
  activeXDocument = null; // avoid memory leak
  return temp;
};

// Create object with fake `null` prototype: use iframe Object with cleared prototype
var NullProtoObjectViaIFrame = function () {
  // Thrash, waste and sodomy: IE GC bug
  var iframe = documentCreateElement('iframe');
  var JS = 'java' + SCRIPT + ':';
  var iframeDocument;
  iframe.style.display = 'none';
  html.appendChild(iframe);
  // https://github.com/zloirock/core-js/issues/475
  iframe.src = String(JS);
  iframeDocument = iframe.contentWindow.document;
  iframeDocument.open();
  iframeDocument.write(scriptTag('document.F=Object'));
  iframeDocument.close();
  return iframeDocument.F;
};

// Check for document.domain and active x support
// No need to use active x approach when document.domain is not set
// see https://github.com/es-shims/es5-shim/issues/150
// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
// avoid IE GC bug
var activeXDocument;
var NullProtoObject = function () {
  try {
    /* global ActiveXObject */
    activeXDocument = document.domain && new ActiveXObject('htmlfile');
  } catch (error) { /* ignore */ }
  NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
  var length = enumBugKeys.length;
  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
  return NullProtoObject();
};

hiddenKeys[IE_PROTO] = true;

// `Object.create` method
// https://tc39.es/ecma262/#sec-object.create
module.exports = Object.create || function create(O, Properties) {
  var result;
  if (O !== null) {
    EmptyConstructor[PROTOTYPE] = anObject(O);
    result = new EmptyConstructor();
    EmptyConstructor[PROTOTYPE] = null;
    // add "__proto__" for Object.getPrototypeOf polyfill
    result[IE_PROTO] = O;
  } else result = NullProtoObject();
  return Properties === undefined ? result : defineProperties(result, Properties);
};


/***/ }),

/***/ "7db0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var $find = __webpack_require__("b727").find;
var addToUnscopables = __webpack_require__("44d2");
var arrayMethodUsesToLength = __webpack_require__("ae40");

var FIND = 'find';
var SKIPS_HOLES = true;

var USES_TO_LENGTH = arrayMethodUsesToLength(FIND);

// Shouldn't skip holes
if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });

// `Array.prototype.find` method
// https://tc39.es/ecma262/#sec-array.prototype.find
$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {
  find: function find(callbackfn /* , that = undefined */) {
    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  }
});

// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
addToUnscopables(FIND);


/***/ }),

/***/ "7dd0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var createIteratorConstructor = __webpack_require__("9ed3");
var getPrototypeOf = __webpack_require__("e163");
var setPrototypeOf = __webpack_require__("d2bb");
var setToStringTag = __webpack_require__("d44e");
var createNonEnumerableProperty = __webpack_require__("9112");
var redefine = __webpack_require__("6eeb");
var wellKnownSymbol = __webpack_require__("b622");
var IS_PURE = __webpack_require__("c430");
var Iterators = __webpack_require__("3f8c");
var IteratorsCore = __webpack_require__("ae93");

var IteratorPrototype = IteratorsCore.IteratorPrototype;
var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
var ITERATOR = wellKnownSymbol('iterator');
var KEYS = 'keys';
var VALUES = 'values';
var ENTRIES = 'entries';

var returnThis = function () { return this; };

module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
  createIteratorConstructor(IteratorConstructor, NAME, next);

  var getIterationMethod = function (KIND) {
    if (KIND === DEFAULT && defaultIterator) return defaultIterator;
    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];
    switch (KIND) {
      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };
      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };
      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };
    } return function () { return new IteratorConstructor(this); };
  };

  var TO_STRING_TAG = NAME + ' Iterator';
  var INCORRECT_VALUES_NAME = false;
  var IterablePrototype = Iterable.prototype;
  var nativeIterator = IterablePrototype[ITERATOR]
    || IterablePrototype['@@iterator']
    || DEFAULT && IterablePrototype[DEFAULT];
  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);
  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;
  var CurrentIteratorPrototype, methods, KEY;

  // fix native
  if (anyNativeIterator) {
    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));
    if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {
        if (setPrototypeOf) {
          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
        } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {
          createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);
        }
      }
      // Set @@toStringTag to native iterators
      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);
      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;
    }
  }

  // fix Array#{values, @@iterator}.name in V8 / FF
  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {
    INCORRECT_VALUES_NAME = true;
    defaultIterator = function values() { return nativeIterator.call(this); };
  }

  // define iterator
  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {
    createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);
  }
  Iterators[NAME] = defaultIterator;

  // export additional methods
  if (DEFAULT) {
    methods = {
      values: getIterationMethod(VALUES),
      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
      entries: getIterationMethod(ENTRIES)
    };
    if (FORCED) for (KEY in methods) {
      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
        redefine(IterablePrototype, KEY, methods[KEY]);
      }
    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
  }

  return methods;
};


/***/ }),

/***/ "7e12":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");
var trim = __webpack_require__("58a8").trim;
var whitespaces = __webpack_require__("5899");

var $parseFloat = global.parseFloat;
var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;

// `parseFloat` method
// https://tc39.es/ecma262/#sec-parsefloat-string
module.exports = FORCED ? function parseFloat(string) {
  var trimmedString = trim(String(string));
  var result = $parseFloat(trimmedString);
  return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;
} : $parseFloat;


/***/ }),

/***/ "7f9a":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");
var inspectSource = __webpack_require__("8925");

var WeakMap = global.WeakMap;

module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));


/***/ }),

/***/ "81d5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var toObject = __webpack_require__("7b0b");
var toAbsoluteIndex = __webpack_require__("23cb");
var toLength = __webpack_require__("50c4");

// `Array.prototype.fill` method implementation
// https://tc39.es/ecma262/#sec-array.prototype.fill
module.exports = function fill(value /* , start = 0, end = @length */) {
  var O = toObject(this);
  var length = toLength(O.length);
  var argumentsLength = arguments.length;
  var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);
  var end = argumentsLength > 2 ? arguments[2] : undefined;
  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
  while (endPos > index) O[index++] = value;
  return O;
};


/***/ }),

/***/ "825a":
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__("861d");

module.exports = function (it) {
  if (!isObject(it)) {
    throw TypeError(String(it) + ' is not an object');
  } return it;
};


/***/ }),

/***/ "82f8":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var $includes = __webpack_require__("4d64").includes;

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.includes` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes
exportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {
  return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
});


/***/ }),

/***/ "83ab":
/***/ (function(module, exports, __webpack_require__) {

var fails = __webpack_require__("d039");

// Detect IE8's incomplete defineProperty implementation
module.exports = !fails(function () {
  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
});


/***/ }),

/***/ "8418":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var toPrimitive = __webpack_require__("c04e");
var definePropertyModule = __webpack_require__("9bf2");
var createPropertyDescriptor = __webpack_require__("5c6c");

module.exports = function (object, key, value) {
  var propertyKey = toPrimitive(key);
  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));
  else object[propertyKey] = value;
};


/***/ }),

/***/ "841c":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var fixRegExpWellKnownSymbolLogic = __webpack_require__("d784");
var anObject = __webpack_require__("825a");
var requireObjectCoercible = __webpack_require__("1d80");
var sameValue = __webpack_require__("129f");
var regExpExec = __webpack_require__("14c3");

// @@search logic
fixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {
  return [
    // `String.prototype.search` method
    // https://tc39.es/ecma262/#sec-string.prototype.search
    function search(regexp) {
      var O = requireObjectCoercible(this);
      var searcher = regexp == undefined ? undefined : regexp[SEARCH];
      return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
    },
    // `RegExp.prototype[@@search]` method
    // https://tc39.es/ecma262/#sec-regexp.prototype-@@search
    function (regexp) {
      var res = maybeCallNative(nativeSearch, regexp, this);
      if (res.done) return res.value;

      var rx = anObject(regexp);
      var S = String(this);

      var previousLastIndex = rx.lastIndex;
      if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;
      var result = regExpExec(rx, S);
      if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;
      return result === null ? -1 : result.index;
    }
  ];
});


/***/ }),

/***/ "857a":
/***/ (function(module, exports, __webpack_require__) {

var requireObjectCoercible = __webpack_require__("1d80");

var quot = /"/g;

// B.2.3.2.1 CreateHTML(string, tag, attribute, value)
// https://tc39.es/ecma262/#sec-createhtml
module.exports = function (string, tag, attribute, value) {
  var S = String(requireObjectCoercible(string));
  var p1 = '<' + tag;
  if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
  return p1 + '>' + S + '</' + tag + '>';
};


/***/ }),

/***/ "861d":
/***/ (function(module, exports) {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "8875":
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// addapted from the document.currentScript polyfill by Adam Miller
// MIT license
// source: https://github.com/amiller-gh/currentScript-polyfill

// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505

(function (root, factory) {
  if (true) {
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  } else {}
}(typeof self !== 'undefined' ? self : this, function () {
  function getCurrentScript () {
    var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')
    // for chrome
    if (!descriptor && 'currentScript' in document && document.currentScript) {
      return document.currentScript
    }

    // for other browsers with native support for currentScript
    if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {
      return document.currentScript
    }
  
    // IE 8-10 support script readyState
    // IE 11+ & Firefox support stack trace
    try {
      throw new Error();
    }
    catch (err) {
      // Find the second match for the "at" string to get file src url from stack.
      var ieStackRegExp = /.*at [^(]*\((.*):(.+):(.+)\)$/ig,
        ffStackRegExp = /@([^@]*):(\d+):(\d+)\s*$/ig,
        stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),
        scriptLocation = (stackDetails && stackDetails[1]) || false,
        line = (stackDetails && stackDetails[2]) || false,
        currentLocation = document.location.href.replace(document.location.hash, ''),
        pageSource,
        inlineScriptSourceRegExp,
        inlineScriptSource,
        scripts = document.getElementsByTagName('script'); // Live NodeList collection
  
      if (scriptLocation === currentLocation) {
        pageSource = document.documentElement.outerHTML;
        inlineScriptSourceRegExp = new RegExp('(?:[^\\n]+?\\n){0,' + (line - 2) + '}[^<]*<script>([\\d\\D]*?)<\\/script>[\\d\\D]*', 'i');
        inlineScriptSource = pageSource.replace(inlineScriptSourceRegExp, '$1').trim();
      }
  
      for (var i = 0; i < scripts.length; i++) {
        // If ready state is interactive, return the script tag
        if (scripts[i].readyState === 'interactive') {
          return scripts[i];
        }
  
        // If src matches, return the script tag
        if (scripts[i].src === scriptLocation) {
          return scripts[i];
        }
  
        // If inline source matches, return the script tag
        if (
          scriptLocation === currentLocation &&
          scripts[i].innerHTML &&
          scripts[i].innerHTML.trim() === inlineScriptSource
        ) {
          return scripts[i];
        }
      }
  
      // If no match, return null
      return null;
    }
  };

  return getCurrentScript
}));


/***/ }),

/***/ "8925":
/***/ (function(module, exports, __webpack_require__) {

var store = __webpack_require__("c6cd");

var functionToString = Function.toString;

// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper
if (typeof store.inspectSource != 'function') {
  store.inspectSource = function (it) {
    return functionToString.call(it);
  };
}

module.exports = store.inspectSource;


/***/ }),

/***/ "893f":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "8aa5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var charAt = __webpack_require__("6547").charAt;

// `AdvanceStringIndex` abstract operation
// https://tc39.es/ecma262/#sec-advancestringindex
module.exports = function (S, index, unicode) {
  return index + (unicode ? charAt(S, index).length : 1);
};


/***/ }),

/***/ "8aa7":
/***/ (function(module, exports, __webpack_require__) {

/* eslint-disable no-new */
var global = __webpack_require__("da84");
var fails = __webpack_require__("d039");
var checkCorrectnessOfIteration = __webpack_require__("1c7e");
var NATIVE_ARRAY_BUFFER_VIEWS = __webpack_require__("ebb5").NATIVE_ARRAY_BUFFER_VIEWS;

var ArrayBuffer = global.ArrayBuffer;
var Int8Array = global.Int8Array;

module.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {
  Int8Array(1);
}) || !fails(function () {
  new Int8Array(-1);
}) || !checkCorrectnessOfIteration(function (iterable) {
  new Int8Array();
  new Int8Array(null);
  new Int8Array(1.5);
  new Int8Array(iterable);
}, true) || fails(function () {
  // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill
  return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;
});


/***/ }),

/***/ "8b09":
/***/ (function(module, exports, __webpack_require__) {

var createTypedArrayConstructor = __webpack_require__("74e8");

// `Int16Array` constructor
// https://tc39.es/ecma262/#sec-typedarray-objects
createTypedArrayConstructor('Int16', function (init) {
  return function Int16Array(data, byteOffset, length) {
    return init(this, data, byteOffset, length);
  };
});


/***/ }),

/***/ "90e3":
/***/ (function(module, exports) {

var id = 0;
var postfix = Math.random();

module.exports = function (key) {
  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
};


/***/ }),

/***/ "9112":
/***/ (function(module, exports, __webpack_require__) {

var DESCRIPTORS = __webpack_require__("83ab");
var definePropertyModule = __webpack_require__("9bf2");
var createPropertyDescriptor = __webpack_require__("5c6c");

module.exports = DESCRIPTORS ? function (object, key, value) {
  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "9263":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var regexpFlags = __webpack_require__("ad6d");
var stickyHelpers = __webpack_require__("9f7f");

var nativeExec = RegExp.prototype.exec;
// This always refers to the native implementation, because the
// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
// which loads this file before patching the method.
var nativeReplace = String.prototype.replace;

var patchedExec = nativeExec;

var UPDATES_LAST_INDEX_WRONG = (function () {
  var re1 = /a/;
  var re2 = /b*/g;
  nativeExec.call(re1, 'a');
  nativeExec.call(re2, 'a');
  return re1.lastIndex !== 0 || re2.lastIndex !== 0;
})();

var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;

// nonparticipating capturing group, copied from es5-shim's String#split patch.
var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;

var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;

if (PATCH) {
  patchedExec = function exec(str) {
    var re = this;
    var lastIndex, reCopy, match, i;
    var sticky = UNSUPPORTED_Y && re.sticky;
    var flags = regexpFlags.call(re);
    var source = re.source;
    var charsAdded = 0;
    var strCopy = str;

    if (sticky) {
      flags = flags.replace('y', '');
      if (flags.indexOf('g') === -1) {
        flags += 'g';
      }

      strCopy = String(str).slice(re.lastIndex);
      // Support anchored sticky behavior.
      if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) {
        source = '(?: ' + source + ')';
        strCopy = ' ' + strCopy;
        charsAdded++;
      }
      // ^(? + rx + ) is needed, in combination with some str slicing, to
      // simulate the 'y' flag.
      reCopy = new RegExp('^(?:' + source + ')', flags);
    }

    if (NPCG_INCLUDED) {
      reCopy = new RegExp('^' + source + '$(?!\\s)', flags);
    }
    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;

    match = nativeExec.call(sticky ? reCopy : re, strCopy);

    if (sticky) {
      if (match) {
        match.input = match.input.slice(charsAdded);
        match[0] = match[0].slice(charsAdded);
        match.index = re.lastIndex;
        re.lastIndex += match[0].length;
      } else re.lastIndex = 0;
    } else if (UPDATES_LAST_INDEX_WRONG && match) {
      re.lastIndex = re.global ? match.index + match[0].length : lastIndex;
    }
    if (NPCG_INCLUDED && match && match.length > 1) {
      // Fix browsers whose `exec` methods don't consistently return `undefined`
      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
      nativeReplace.call(match[0], reCopy, function () {
        for (i = 1; i < arguments.length - 2; i++) {
          if (arguments[i] === undefined) match[i] = undefined;
        }
      });
    }

    return match;
  };
}

module.exports = patchedExec;


/***/ }),

/***/ "94ca":
/***/ (function(module, exports, __webpack_require__) {

var fails = __webpack_require__("d039");

var replacement = /#|\.prototype\./;

var isForced = function (feature, detection) {
  var value = data[normalize(feature)];
  return value == POLYFILL ? true
    : value == NATIVE ? false
    : typeof detection == 'function' ? fails(detection)
    : !!detection;
};

var normalize = isForced.normalize = function (string) {
  return String(string).replace(replacement, '.').toLowerCase();
};

var data = isForced.data = {};
var NATIVE = isForced.NATIVE = 'N';
var POLYFILL = isForced.POLYFILL = 'P';

module.exports = isForced;


/***/ }),

/***/ "96cf":
/***/ (function(module, exports, __webpack_require__) {

/**
 * Copyright (c) 2014-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

var runtime = (function (exports) {
  "use strict";

  var Op = Object.prototype;
  var hasOwn = Op.hasOwnProperty;
  var undefined; // More compressible than void 0.
  var $Symbol = typeof Symbol === "function" ? Symbol : {};
  var iteratorSymbol = $Symbol.iterator || "@@iterator";
  var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
  var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";

  function define(obj, key, value) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
    return obj[key];
  }
  try {
    // IE 8 has a broken Object.defineProperty that only works on DOM objects.
    define({}, "");
  } catch (err) {
    define = function(obj, key, value) {
      return obj[key] = value;
    };
  }

  function wrap(innerFn, outerFn, self, tryLocsList) {
    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
    var generator = Object.create(protoGenerator.prototype);
    var context = new Context(tryLocsList || []);

    // The ._invoke method unifies the implementations of the .next,
    // .throw, and .return methods.
    generator._invoke = makeInvokeMethod(innerFn, self, context);

    return generator;
  }
  exports.wrap = wrap;

  // Try/catch helper to minimize deoptimizations. Returns a completion
  // record like context.tryEntries[i].completion. This interface could
  // have been (and was previously) designed to take a closure to be
  // invoked without arguments, but in all the cases we care about we
  // already have an existing method we want to call, so there's no need
  // to create a new function object. We can even get away with assuming
  // the method takes exactly one argument, since that happens to be true
  // in every case, so we don't have to touch the arguments object. The
  // only additional allocation required is the completion record, which
  // has a stable shape and so hopefully should be cheap to allocate.
  function tryCatch(fn, obj, arg) {
    try {
      return { type: "normal", arg: fn.call(obj, arg) };
    } catch (err) {
      return { type: "throw", arg: err };
    }
  }

  var GenStateSuspendedStart = "suspendedStart";
  var GenStateSuspendedYield = "suspendedYield";
  var GenStateExecuting = "executing";
  var GenStateCompleted = "completed";

  // Returning this object from the innerFn has the same effect as
  // breaking out of the dispatch switch statement.
  var ContinueSentinel = {};

  // Dummy constructor functions that we use as the .constructor and
  // .constructor.prototype properties for functions that return Generator
  // objects. For full spec compliance, you may wish to configure your
  // minifier not to mangle the names of these two functions.
  function Generator() {}
  function GeneratorFunction() {}
  function GeneratorFunctionPrototype() {}

  // This is a polyfill for %IteratorPrototype% for environments that
  // don't natively support it.
  var IteratorPrototype = {};
  IteratorPrototype[iteratorSymbol] = function () {
    return this;
  };

  var getProto = Object.getPrototypeOf;
  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
  if (NativeIteratorPrototype &&
      NativeIteratorPrototype !== Op &&
      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
    // This environment has a native %IteratorPrototype%; use it instead
    // of the polyfill.
    IteratorPrototype = NativeIteratorPrototype;
  }

  var Gp = GeneratorFunctionPrototype.prototype =
    Generator.prototype = Object.create(IteratorPrototype);
  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
  GeneratorFunctionPrototype.constructor = GeneratorFunction;
  GeneratorFunction.displayName = define(
    GeneratorFunctionPrototype,
    toStringTagSymbol,
    "GeneratorFunction"
  );

  // Helper for defining the .next, .throw, and .return methods of the
  // Iterator interface in terms of a single ._invoke method.
  function defineIteratorMethods(prototype) {
    ["next", "throw", "return"].forEach(function(method) {
      define(prototype, method, function(arg) {
        return this._invoke(method, arg);
      });
    });
  }

  exports.isGeneratorFunction = function(genFun) {
    var ctor = typeof genFun === "function" && genFun.constructor;
    return ctor
      ? ctor === GeneratorFunction ||
        // For the native GeneratorFunction constructor, the best we can
        // do is to check its .name property.
        (ctor.displayName || ctor.name) === "GeneratorFunction"
      : false;
  };

  exports.mark = function(genFun) {
    if (Object.setPrototypeOf) {
      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
    } else {
      genFun.__proto__ = GeneratorFunctionPrototype;
      define(genFun, toStringTagSymbol, "GeneratorFunction");
    }
    genFun.prototype = Object.create(Gp);
    return genFun;
  };

  // Within the body of any async function, `await x` is transformed to
  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
  // `hasOwn.call(value, "__await")` to determine if the yielded value is
  // meant to be awaited.
  exports.awrap = function(arg) {
    return { __await: arg };
  };

  function AsyncIterator(generator, PromiseImpl) {
    function invoke(method, arg, resolve, reject) {
      var record = tryCatch(generator[method], generator, arg);
      if (record.type === "throw") {
        reject(record.arg);
      } else {
        var result = record.arg;
        var value = result.value;
        if (value &&
            typeof value === "object" &&
            hasOwn.call(value, "__await")) {
          return PromiseImpl.resolve(value.__await).then(function(value) {
            invoke("next", value, resolve, reject);
          }, function(err) {
            invoke("throw", err, resolve, reject);
          });
        }

        return PromiseImpl.resolve(value).then(function(unwrapped) {
          // When a yielded Promise is resolved, its final value becomes
          // the .value of the Promise<{value,done}> result for the
          // current iteration.
          result.value = unwrapped;
          resolve(result);
        }, function(error) {
          // If a rejected Promise was yielded, throw the rejection back
          // into the async generator function so it can be handled there.
          return invoke("throw", error, resolve, reject);
        });
      }
    }

    var previousPromise;

    function enqueue(method, arg) {
      function callInvokeWithMethodAndArg() {
        return new PromiseImpl(function(resolve, reject) {
          invoke(method, arg, resolve, reject);
        });
      }

      return previousPromise =
        // If enqueue has been called before, then we want to wait until
        // all previous Promises have been resolved before calling invoke,
        // so that results are always delivered in the correct order. If
        // enqueue has not been called before, then it is important to
        // call invoke immediately, without waiting on a callback to fire,
        // so that the async generator function has the opportunity to do
        // any necessary setup in a predictable way. This predictability
        // is why the Promise constructor synchronously invokes its
        // executor callback, and why async functions synchronously
        // execute code before the first await. Since we implement simple
        // async functions in terms of async generators, it is especially
        // important to get this right, even though it requires care.
        previousPromise ? previousPromise.then(
          callInvokeWithMethodAndArg,
          // Avoid propagating failures to Promises returned by later
          // invocations of the iterator.
          callInvokeWithMethodAndArg
        ) : callInvokeWithMethodAndArg();
    }

    // Define the unified helper method that is used to implement .next,
    // .throw, and .return (see defineIteratorMethods).
    this._invoke = enqueue;
  }

  defineIteratorMethods(AsyncIterator.prototype);
  AsyncIterator.prototype[asyncIteratorSymbol] = function () {
    return this;
  };
  exports.AsyncIterator = AsyncIterator;

  // Note that simple async functions are implemented on top of
  // AsyncIterator objects; they just return a Promise for the value of
  // the final result produced by the iterator.
  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
    if (PromiseImpl === void 0) PromiseImpl = Promise;

    var iter = new AsyncIterator(
      wrap(innerFn, outerFn, self, tryLocsList),
      PromiseImpl
    );

    return exports.isGeneratorFunction(outerFn)
      ? iter // If outerFn is a generator, return the full iterator.
      : iter.next().then(function(result) {
          return result.done ? result.value : iter.next();
        });
  };

  function makeInvokeMethod(innerFn, self, context) {
    var state = GenStateSuspendedStart;

    return function invoke(method, arg) {
      if (state === GenStateExecuting) {
        throw new Error("Generator is already running");
      }

      if (state === GenStateCompleted) {
        if (method === "throw") {
          throw arg;
        }

        // Be forgiving, per 25.3.3.3.3 of the spec:
        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
        return doneResult();
      }

      context.method = method;
      context.arg = arg;

      while (true) {
        var delegate = context.delegate;
        if (delegate) {
          var delegateResult = maybeInvokeDelegate(delegate, context);
          if (delegateResult) {
            if (delegateResult === ContinueSentinel) continue;
            return delegateResult;
          }
        }

        if (context.method === "next") {
          // Setting context._sent for legacy support of Babel's
          // function.sent implementation.
          context.sent = context._sent = context.arg;

        } else if (context.method === "throw") {
          if (state === GenStateSuspendedStart) {
            state = GenStateCompleted;
            throw context.arg;
          }

          context.dispatchException(context.arg);

        } else if (context.method === "return") {
          context.abrupt("return", context.arg);
        }

        state = GenStateExecuting;

        var record = tryCatch(innerFn, self, context);
        if (record.type === "normal") {
          // If an exception is thrown from innerFn, we leave state ===
          // GenStateExecuting and loop back for another invocation.
          state = context.done
            ? GenStateCompleted
            : GenStateSuspendedYield;

          if (record.arg === ContinueSentinel) {
            continue;
          }

          return {
            value: record.arg,
            done: context.done
          };

        } else if (record.type === "throw") {
          state = GenStateCompleted;
          // Dispatch the exception by looping back around to the
          // context.dispatchException(context.arg) call above.
          context.method = "throw";
          context.arg = record.arg;
        }
      }
    };
  }

  // Call delegate.iterator[context.method](context.arg) and handle the
  // result, either by returning a { value, done } result from the
  // delegate iterator, or by modifying context.method and context.arg,
  // setting context.delegate to null, and returning the ContinueSentinel.
  function maybeInvokeDelegate(delegate, context) {
    var method = delegate.iterator[context.method];
    if (method === undefined) {
      // A .throw or .return when the delegate iterator has no .throw
      // method always terminates the yield* loop.
      context.delegate = null;

      if (context.method === "throw") {
        // Note: ["return"] must be used for ES3 parsing compatibility.
        if (delegate.iterator["return"]) {
          // If the delegate iterator has a return method, give it a
          // chance to clean up.
          context.method = "return";
          context.arg = undefined;
          maybeInvokeDelegate(delegate, context);

          if (context.method === "throw") {
            // If maybeInvokeDelegate(context) changed context.method from
            // "return" to "throw", let that override the TypeError below.
            return ContinueSentinel;
          }
        }

        context.method = "throw";
        context.arg = new TypeError(
          "The iterator does not provide a 'throw' method");
      }

      return ContinueSentinel;
    }

    var record = tryCatch(method, delegate.iterator, context.arg);

    if (record.type === "throw") {
      context.method = "throw";
      context.arg = record.arg;
      context.delegate = null;
      return ContinueSentinel;
    }

    var info = record.arg;

    if (! info) {
      context.method = "throw";
      context.arg = new TypeError("iterator result is not an object");
      context.delegate = null;
      return ContinueSentinel;
    }

    if (info.done) {
      // Assign the result of the finished delegate to the temporary
      // variable specified by delegate.resultName (see delegateYield).
      context[delegate.resultName] = info.value;

      // Resume execution at the desired location (see delegateYield).
      context.next = delegate.nextLoc;

      // If context.method was "throw" but the delegate handled the
      // exception, let the outer generator proceed normally. If
      // context.method was "next", forget context.arg since it has been
      // "consumed" by the delegate iterator. If context.method was
      // "return", allow the original .return call to continue in the
      // outer generator.
      if (context.method !== "return") {
        context.method = "next";
        context.arg = undefined;
      }

    } else {
      // Re-yield the result returned by the delegate method.
      return info;
    }

    // The delegate iterator is finished, so forget it and continue with
    // the outer generator.
    context.delegate = null;
    return ContinueSentinel;
  }

  // Define Generator.prototype.{next,throw,return} in terms of the
  // unified ._invoke helper method.
  defineIteratorMethods(Gp);

  define(Gp, toStringTagSymbol, "Generator");

  // A Generator should always return itself as the iterator object when the
  // @@iterator function is called on it. Some browsers' implementations of the
  // iterator prototype chain incorrectly implement this, causing the Generator
  // object to not be returned from this call. This ensures that doesn't happen.
  // See https://github.com/facebook/regenerator/issues/274 for more details.
  Gp[iteratorSymbol] = function() {
    return this;
  };

  Gp.toString = function() {
    return "[object Generator]";
  };

  function pushTryEntry(locs) {
    var entry = { tryLoc: locs[0] };

    if (1 in locs) {
      entry.catchLoc = locs[1];
    }

    if (2 in locs) {
      entry.finallyLoc = locs[2];
      entry.afterLoc = locs[3];
    }

    this.tryEntries.push(entry);
  }

  function resetTryEntry(entry) {
    var record = entry.completion || {};
    record.type = "normal";
    delete record.arg;
    entry.completion = record;
  }

  function Context(tryLocsList) {
    // The root entry object (effectively a try statement without a catch
    // or a finally block) gives us a place to store values thrown from
    // locations where there is no enclosing try statement.
    this.tryEntries = [{ tryLoc: "root" }];
    tryLocsList.forEach(pushTryEntry, this);
    this.reset(true);
  }

  exports.keys = function(object) {
    var keys = [];
    for (var key in object) {
      keys.push(key);
    }
    keys.reverse();

    // Rather than returning an object with a next method, we keep
    // things simple and return the next function itself.
    return function next() {
      while (keys.length) {
        var key = keys.pop();
        if (key in object) {
          next.value = key;
          next.done = false;
          return next;
        }
      }

      // To avoid creating an additional object, we just hang the .value
      // and .done properties off the next function object itself. This
      // also ensures that the minifier will not anonymize the function.
      next.done = true;
      return next;
    };
  };

  function values(iterable) {
    if (iterable) {
      var iteratorMethod = iterable[iteratorSymbol];
      if (iteratorMethod) {
        return iteratorMethod.call(iterable);
      }

      if (typeof iterable.next === "function") {
        return iterable;
      }

      if (!isNaN(iterable.length)) {
        var i = -1, next = function next() {
          while (++i < iterable.length) {
            if (hasOwn.call(iterable, i)) {
              next.value = iterable[i];
              next.done = false;
              return next;
            }
          }

          next.value = undefined;
          next.done = true;

          return next;
        };

        return next.next = next;
      }
    }

    // Return an iterator with no values.
    return { next: doneResult };
  }
  exports.values = values;

  function doneResult() {
    return { value: undefined, done: true };
  }

  Context.prototype = {
    constructor: Context,

    reset: function(skipTempReset) {
      this.prev = 0;
      this.next = 0;
      // Resetting context._sent for legacy support of Babel's
      // function.sent implementation.
      this.sent = this._sent = undefined;
      this.done = false;
      this.delegate = null;

      this.method = "next";
      this.arg = undefined;

      this.tryEntries.forEach(resetTryEntry);

      if (!skipTempReset) {
        for (var name in this) {
          // Not sure about the optimal order of these conditions:
          if (name.charAt(0) === "t" &&
              hasOwn.call(this, name) &&
              !isNaN(+name.slice(1))) {
            this[name] = undefined;
          }
        }
      }
    },

    stop: function() {
      this.done = true;

      var rootEntry = this.tryEntries[0];
      var rootRecord = rootEntry.completion;
      if (rootRecord.type === "throw") {
        throw rootRecord.arg;
      }

      return this.rval;
    },

    dispatchException: function(exception) {
      if (this.done) {
        throw exception;
      }

      var context = this;
      function handle(loc, caught) {
        record.type = "throw";
        record.arg = exception;
        context.next = loc;

        if (caught) {
          // If the dispatched exception was caught by a catch block,
          // then let that catch block handle the exception normally.
          context.method = "next";
          context.arg = undefined;
        }

        return !! caught;
      }

      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        var record = entry.completion;

        if (entry.tryLoc === "root") {
          // Exception thrown outside of any try block that could handle
          // it, so set the completion value of the entire function to
          // throw the exception.
          return handle("end");
        }

        if (entry.tryLoc <= this.prev) {
          var hasCatch = hasOwn.call(entry, "catchLoc");
          var hasFinally = hasOwn.call(entry, "finallyLoc");

          if (hasCatch && hasFinally) {
            if (this.prev < entry.catchLoc) {
              return handle(entry.catchLoc, true);
            } else if (this.prev < entry.finallyLoc) {
              return handle(entry.finallyLoc);
            }

          } else if (hasCatch) {
            if (this.prev < entry.catchLoc) {
              return handle(entry.catchLoc, true);
            }

          } else if (hasFinally) {
            if (this.prev < entry.finallyLoc) {
              return handle(entry.finallyLoc);
            }

          } else {
            throw new Error("try statement without catch or finally");
          }
        }
      }
    },

    abrupt: function(type, arg) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.tryLoc <= this.prev &&
            hasOwn.call(entry, "finallyLoc") &&
            this.prev < entry.finallyLoc) {
          var finallyEntry = entry;
          break;
        }
      }

      if (finallyEntry &&
          (type === "break" ||
           type === "continue") &&
          finallyEntry.tryLoc <= arg &&
          arg <= finallyEntry.finallyLoc) {
        // Ignore the finally entry if control is not jumping to a
        // location outside the try/catch block.
        finallyEntry = null;
      }

      var record = finallyEntry ? finallyEntry.completion : {};
      record.type = type;
      record.arg = arg;

      if (finallyEntry) {
        this.method = "next";
        this.next = finallyEntry.finallyLoc;
        return ContinueSentinel;
      }

      return this.complete(record);
    },

    complete: function(record, afterLoc) {
      if (record.type === "throw") {
        throw record.arg;
      }

      if (record.type === "break" ||
          record.type === "continue") {
        this.next = record.arg;
      } else if (record.type === "return") {
        this.rval = this.arg = record.arg;
        this.method = "return";
        this.next = "end";
      } else if (record.type === "normal" && afterLoc) {
        this.next = afterLoc;
      }

      return ContinueSentinel;
    },

    finish: function(finallyLoc) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.finallyLoc === finallyLoc) {
          this.complete(entry.completion, entry.afterLoc);
          resetTryEntry(entry);
          return ContinueSentinel;
        }
      }
    },

    "catch": function(tryLoc) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.tryLoc === tryLoc) {
          var record = entry.completion;
          if (record.type === "throw") {
            var thrown = record.arg;
            resetTryEntry(entry);
          }
          return thrown;
        }
      }

      // The context.catch method must only be called with a location
      // argument that corresponds to a known catch block.
      throw new Error("illegal catch attempt");
    },

    delegateYield: function(iterable, resultName, nextLoc) {
      this.delegate = {
        iterator: values(iterable),
        resultName: resultName,
        nextLoc: nextLoc
      };

      if (this.method === "next") {
        // Deliberately forget the last sent value so that we don't
        // accidentally pass it on to the delegate.
        this.arg = undefined;
      }

      return ContinueSentinel;
    }
  };

  // Regardless of whether this script is executing as a CommonJS module
  // or not, return the runtime object so that we can declare the variable
  // regeneratorRuntime in the outer scope, which allows this module to be
  // injected easily by `bin/regenerator --include-runtime script.js`.
  return exports;

}(
  // If this script is executing as a CommonJS module, use module.exports
  // as the regeneratorRuntime namespace. Otherwise create a new empty
  // object. Either way, the resulting object will be used to initialize
  // the regeneratorRuntime variable at the top of this file.
   true ? module.exports : undefined
));

try {
  regeneratorRuntime = runtime;
} catch (accidentalStrictMode) {
  // This module should not be running in strict mode, so the above
  // assignment should always work unless something is misconfigured. Just
  // in case runtime.js accidentally runs in strict mode, we can escape
  // strict mode using a global Function call. This could conceivably fail
  // if a Content Security Policy forbids using Function, but in that case
  // the proper solution is to fix the accidental strict mode problem. If
  // you've misconfigured your bundler to force strict mode and applied a
  // CSP to forbid Function, and you're not willing to fix either of those
  // problems, please detail your unique predicament in a GitHub issue.
  Function("r", "regeneratorRuntime = r")(runtime);
}


/***/ }),

/***/ "9861":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
__webpack_require__("e260");
var $ = __webpack_require__("23e7");
var getBuiltIn = __webpack_require__("d066");
var USE_NATIVE_URL = __webpack_require__("0d3b");
var redefine = __webpack_require__("6eeb");
var redefineAll = __webpack_require__("e2cc");
var setToStringTag = __webpack_require__("d44e");
var createIteratorConstructor = __webpack_require__("9ed3");
var InternalStateModule = __webpack_require__("69f3");
var anInstance = __webpack_require__("19aa");
var hasOwn = __webpack_require__("5135");
var bind = __webpack_require__("0366");
var classof = __webpack_require__("f5df");
var anObject = __webpack_require__("825a");
var isObject = __webpack_require__("861d");
var create = __webpack_require__("7c73");
var createPropertyDescriptor = __webpack_require__("5c6c");
var getIterator = __webpack_require__("9a1f");
var getIteratorMethod = __webpack_require__("35a1");
var wellKnownSymbol = __webpack_require__("b622");

var $fetch = getBuiltIn('fetch');
var Headers = getBuiltIn('Headers');
var ITERATOR = wellKnownSymbol('iterator');
var URL_SEARCH_PARAMS = 'URLSearchParams';
var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';
var setInternalState = InternalStateModule.set;
var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);
var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);

var plus = /\+/g;
var sequences = Array(4);

var percentSequence = function (bytes) {
  return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi'));
};

var percentDecode = function (sequence) {
  try {
    return decodeURIComponent(sequence);
  } catch (error) {
    return sequence;
  }
};

var deserialize = function (it) {
  var result = it.replace(plus, ' ');
  var bytes = 4;
  try {
    return decodeURIComponent(result);
  } catch (error) {
    while (bytes) {
      result = result.replace(percentSequence(bytes--), percentDecode);
    }
    return result;
  }
};

var find = /[!'()~]|%20/g;

var replace = {
  '!': '%21',
  "'": '%27',
  '(': '%28',
  ')': '%29',
  '~': '%7E',
  '%20': '+'
};

var replacer = function (match) {
  return replace[match];
};

var serialize = function (it) {
  return encodeURIComponent(it).replace(find, replacer);
};

var parseSearchParams = function (result, query) {
  if (query) {
    var attributes = query.split('&');
    var index = 0;
    var attribute, entry;
    while (index < attributes.length) {
      attribute = attributes[index++];
      if (attribute.length) {
        entry = attribute.split('=');
        result.push({
          key: deserialize(entry.shift()),
          value: deserialize(entry.join('='))
        });
      }
    }
  }
};

var updateSearchParams = function (query) {
  this.entries.length = 0;
  parseSearchParams(this.entries, query);
};

var validateArgumentsLength = function (passed, required) {
  if (passed < required) throw TypeError('Not enough arguments');
};

var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {
  setInternalState(this, {
    type: URL_SEARCH_PARAMS_ITERATOR,
    iterator: getIterator(getInternalParamsState(params).entries),
    kind: kind
  });
}, 'Iterator', function next() {
  var state = getInternalIteratorState(this);
  var kind = state.kind;
  var step = state.iterator.next();
  var entry = step.value;
  if (!step.done) {
    step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];
  } return step;
});

// `URLSearchParams` constructor
// https://url.spec.whatwg.org/#interface-urlsearchparams
var URLSearchParamsConstructor = function URLSearchParams(/* init */) {
  anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);
  var init = arguments.length > 0 ? arguments[0] : undefined;
  var that = this;
  var entries = [];
  var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;

  setInternalState(that, {
    type: URL_SEARCH_PARAMS,
    entries: entries,
    updateURL: function () { /* empty */ },
    updateSearchParams: updateSearchParams
  });

  if (init !== undefined) {
    if (isObject(init)) {
      iteratorMethod = getIteratorMethod(init);
      if (typeof iteratorMethod === 'function') {
        iterator = iteratorMethod.call(init);
        next = iterator.next;
        while (!(step = next.call(iterator)).done) {
          entryIterator = getIterator(anObject(step.value));
          entryNext = entryIterator.next;
          if (
            (first = entryNext.call(entryIterator)).done ||
            (second = entryNext.call(entryIterator)).done ||
            !entryNext.call(entryIterator).done
          ) throw TypeError('Expected sequence with length 2');
          entries.push({ key: first.value + '', value: second.value + '' });
        }
      } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });
    } else {
      parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');
    }
  }
};

var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;

redefineAll(URLSearchParamsPrototype, {
  // `URLSearchParams.prototype.append` method
  // https://url.spec.whatwg.org/#dom-urlsearchparams-append
  append: function append(name, value) {
    validateArgumentsLength(arguments.length, 2);
    var state = getInternalParamsState(this);
    state.entries.push({ key: name + '', value: value + '' });
    state.updateURL();
  },
  // `URLSearchParams.prototype.delete` method
  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete
  'delete': function (name) {
    validateArgumentsLength(arguments.length, 1);
    var state = getInternalParamsState(this);
    var entries = state.entries;
    var key = name + '';
    var index = 0;
    while (index < entries.length) {
      if (entries[index].key === key) entries.splice(index, 1);
      else index++;
    }
    state.updateURL();
  },
  // `URLSearchParams.prototype.get` method
  // https://url.spec.whatwg.org/#dom-urlsearchparams-get
  get: function get(name) {
    validateArgumentsLength(arguments.length, 1);
    var entries = getInternalParamsState(this).entries;
    var key = name + '';
    var index = 0;
    for (; index < entries.length; index++) {
      if (entries[index].key === key) return entries[index].value;
    }
    return null;
  },
  // `URLSearchParams.prototype.getAll` method
  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall
  getAll: function getAll(name) {
    validateArgumentsLength(arguments.length, 1);
    var entries = getInternalParamsState(this).entries;
    var key = name + '';
    var result = [];
    var index = 0;
    for (; index < entries.length; index++) {
      if (entries[index].key === key) result.push(entries[index].value);
    }
    return result;
  },
  // `URLSearchParams.prototype.has` method
  // https://url.spec.whatwg.org/#dom-urlsearchparams-has
  has: function has(name) {
    validateArgumentsLength(arguments.length, 1);
    var entries = getInternalParamsState(this).entries;
    var key = name + '';
    var index = 0;
    while (index < entries.length) {
      if (entries[index++].key === key) return true;
    }
    return false;
  },
  // `URLSearchParams.prototype.set` method
  // https://url.spec.whatwg.org/#dom-urlsearchparams-set
  set: function set(name, value) {
    validateArgumentsLength(arguments.length, 1);
    var state = getInternalParamsState(this);
    var entries = state.entries;
    var found = false;
    var key = name + '';
    var val = value + '';
    var index = 0;
    var entry;
    for (; index < entries.length; index++) {
      entry = entries[index];
      if (entry.key === key) {
        if (found) entries.splice(index--, 1);
        else {
          found = true;
          entry.value = val;
        }
      }
    }
    if (!found) entries.push({ key: key, value: val });
    state.updateURL();
  },
  // `URLSearchParams.prototype.sort` method
  // https://url.spec.whatwg.org/#dom-urlsearchparams-sort
  sort: function sort() {
    var state = getInternalParamsState(this);
    var entries = state.entries;
    // Array#sort is not stable in some engines
    var slice = entries.slice();
    var entry, entriesIndex, sliceIndex;
    entries.length = 0;
    for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {
      entry = slice[sliceIndex];
      for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {
        if (entries[entriesIndex].key > entry.key) {
          entries.splice(entriesIndex, 0, entry);
          break;
        }
      }
      if (entriesIndex === sliceIndex) entries.push(entry);
    }
    state.updateURL();
  },
  // `URLSearchParams.prototype.forEach` method
  forEach: function forEach(callback /* , thisArg */) {
    var entries = getInternalParamsState(this).entries;
    var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);
    var index = 0;
    var entry;
    while (index < entries.length) {
      entry = entries[index++];
      boundFunction(entry.value, entry.key, this);
    }
  },
  // `URLSearchParams.prototype.keys` method
  keys: function keys() {
    return new URLSearchParamsIterator(this, 'keys');
  },
  // `URLSearchParams.prototype.values` method
  values: function values() {
    return new URLSearchParamsIterator(this, 'values');
  },
  // `URLSearchParams.prototype.entries` method
  entries: function entries() {
    return new URLSearchParamsIterator(this, 'entries');
  }
}, { enumerable: true });

// `URLSearchParams.prototype[@@iterator]` method
redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);

// `URLSearchParams.prototype.toString` method
// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior
redefine(URLSearchParamsPrototype, 'toString', function toString() {
  var entries = getInternalParamsState(this).entries;
  var result = [];
  var index = 0;
  var entry;
  while (index < entries.length) {
    entry = entries[index++];
    result.push(serialize(entry.key) + '=' + serialize(entry.value));
  } return result.join('&');
}, { enumerable: true });

setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);

$({ global: true, forced: !USE_NATIVE_URL }, {
  URLSearchParams: URLSearchParamsConstructor
});

// Wrap `fetch` for correct work with polyfilled `URLSearchParams`
// https://github.com/zloirock/core-js/issues/674
if (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {
  $({ global: true, enumerable: true, forced: true }, {
    fetch: function fetch(input /* , init */) {
      var args = [input];
      var init, body, headers;
      if (arguments.length > 1) {
        init = arguments[1];
        if (isObject(init)) {
          body = init.body;
          if (classof(body) === URL_SEARCH_PARAMS) {
            headers = init.headers ? new Headers(init.headers) : new Headers();
            if (!headers.has('content-type')) {
              headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
            }
            init = create(init, {
              body: createPropertyDescriptor(0, String(body)),
              headers: createPropertyDescriptor(0, headers)
            });
          }
        }
        args.push(init);
      } return $fetch.apply(this, args);
    }
  });
}

module.exports = {
  URLSearchParams: URLSearchParamsConstructor,
  getState: getInternalParamsState
};


/***/ }),

/***/ "99af":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var fails = __webpack_require__("d039");
var isArray = __webpack_require__("e8b5");
var isObject = __webpack_require__("861d");
var toObject = __webpack_require__("7b0b");
var toLength = __webpack_require__("50c4");
var createProperty = __webpack_require__("8418");
var arraySpeciesCreate = __webpack_require__("65f0");
var arrayMethodHasSpeciesSupport = __webpack_require__("1dde");
var wellKnownSymbol = __webpack_require__("b622");
var V8_VERSION = __webpack_require__("2d00");

var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';

// We can't use this feature detection in V8 since it causes
// deoptimization and serious performance degradation
// https://github.com/zloirock/core-js/issues/679
var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {
  var array = [];
  array[IS_CONCAT_SPREADABLE] = false;
  return array.concat()[0] !== array;
});

var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');

var isConcatSpreadable = function (O) {
  if (!isObject(O)) return false;
  var spreadable = O[IS_CONCAT_SPREADABLE];
  return spreadable !== undefined ? !!spreadable : isArray(O);
};

var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;

// `Array.prototype.concat` method
// https://tc39.es/ecma262/#sec-array.prototype.concat
// with adding support of @@isConcatSpreadable and @@species
$({ target: 'Array', proto: true, forced: FORCED }, {
  concat: function concat(arg) { // eslint-disable-line no-unused-vars
    var O = toObject(this);
    var A = arraySpeciesCreate(O, 0);
    var n = 0;
    var i, k, length, len, E;
    for (i = -1, length = arguments.length; i < length; i++) {
      E = i === -1 ? O : arguments[i];
      if (isConcatSpreadable(E)) {
        len = toLength(E.length);
        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
      } else {
        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
        createProperty(A, n++, E);
      }
    }
    A.length = n;
    return A;
  }
});


/***/ }),

/***/ "9a1f":
/***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__("825a");
var getIteratorMethod = __webpack_require__("35a1");

module.exports = function (it) {
  var iteratorMethod = getIteratorMethod(it);
  if (typeof iteratorMethod != 'function') {
    throw TypeError(String(it) + ' is not iterable');
  } return anObject(iteratorMethod.call(it));
};


/***/ }),

/***/ "9a8c":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var $copyWithin = __webpack_require__("145e");

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.copyWithin` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin
exportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {
  return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
});


/***/ }),

/***/ "9bdd":
/***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__("825a");
var iteratorClose = __webpack_require__("2a62");

// call something on iterator step with safe closing on error
module.exports = function (iterator, fn, value, ENTRIES) {
  try {
    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
  // 7.4.6 IteratorClose(iterator, completion)
  } catch (error) {
    iteratorClose(iterator);
    throw error;
  }
};


/***/ }),

/***/ "9bf2":
/***/ (function(module, exports, __webpack_require__) {

var DESCRIPTORS = __webpack_require__("83ab");
var IE8_DOM_DEFINE = __webpack_require__("0cfb");
var anObject = __webpack_require__("825a");
var toPrimitive = __webpack_require__("c04e");

var nativeDefineProperty = Object.defineProperty;

// `Object.defineProperty` method
// https://tc39.es/ecma262/#sec-object.defineproperty
exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return nativeDefineProperty(O, P, Attributes);
  } catch (error) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "9ed3":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var IteratorPrototype = __webpack_require__("ae93").IteratorPrototype;
var create = __webpack_require__("7c73");
var createPropertyDescriptor = __webpack_require__("5c6c");
var setToStringTag = __webpack_require__("d44e");
var Iterators = __webpack_require__("3f8c");

var returnThis = function () { return this; };

module.exports = function (IteratorConstructor, NAME, next) {
  var TO_STRING_TAG = NAME + ' Iterator';
  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });
  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);
  Iterators[TO_STRING_TAG] = returnThis;
  return IteratorConstructor;
};


/***/ }),

/***/ "9f1f":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "9f7f":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var fails = __webpack_require__("d039");

// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,
// so we use an intermediate function.
function RE(s, f) {
  return RegExp(s, f);
}

exports.UNSUPPORTED_Y = fails(function () {
  // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
  var re = RE('a', 'y');
  re.lastIndex = 2;
  return re.exec('abcd') != null;
});

exports.BROKEN_CARET = fails(function () {
  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
  var re = RE('^r', 'gy');
  re.lastIndex = 2;
  return re.exec('str') != null;
});


/***/ }),

/***/ "a078":
/***/ (function(module, exports, __webpack_require__) {

var toObject = __webpack_require__("7b0b");
var toLength = __webpack_require__("50c4");
var getIteratorMethod = __webpack_require__("35a1");
var isArrayIteratorMethod = __webpack_require__("e95a");
var bind = __webpack_require__("0366");
var aTypedArrayConstructor = __webpack_require__("ebb5").aTypedArrayConstructor;

module.exports = function from(source /* , mapfn, thisArg */) {
  var O = toObject(source);
  var argumentsLength = arguments.length;
  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
  var mapping = mapfn !== undefined;
  var iteratorMethod = getIteratorMethod(O);
  var i, length, result, step, iterator, next;
  if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {
    iterator = iteratorMethod.call(O);
    next = iterator.next;
    O = [];
    while (!(step = next.call(iterator)).done) {
      O.push(step.value);
    }
  }
  if (mapping && argumentsLength > 2) {
    mapfn = bind(mapfn, arguments[2], 2);
  }
  length = toLength(O.length);
  result = new (aTypedArrayConstructor(this))(length);
  for (i = 0; length > i; i++) {
    result[i] = mapping ? mapfn(O[i], i) : O[i];
  }
  return result;
};


/***/ }),

/***/ "a15b":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var IndexedObject = __webpack_require__("44ad");
var toIndexedObject = __webpack_require__("fc6a");
var arrayMethodIsStrict = __webpack_require__("a640");

var nativeJoin = [].join;

var ES3_STRINGS = IndexedObject != Object;
var STRICT_METHOD = arrayMethodIsStrict('join', ',');

// `Array.prototype.join` method
// https://tc39.es/ecma262/#sec-array.prototype.join
$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {
  join: function join(separator) {
    return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);
  }
});


/***/ }),

/***/ "a231":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomMessageReply_vue_vue_type_style_index_0_id_ba6c1600_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d996");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomMessageReply_vue_vue_type_style_index_0_id_ba6c1600_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomMessageReply_vue_vue_type_style_index_0_id_ba6c1600_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "a4b4":
/***/ (function(module, exports, __webpack_require__) {

var userAgent = __webpack_require__("342f");

module.exports = /web0s(?!.*chrome)/i.test(userAgent);


/***/ }),

/***/ "a4d3":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var global = __webpack_require__("da84");
var getBuiltIn = __webpack_require__("d066");
var IS_PURE = __webpack_require__("c430");
var DESCRIPTORS = __webpack_require__("83ab");
var NATIVE_SYMBOL = __webpack_require__("4930");
var USE_SYMBOL_AS_UID = __webpack_require__("fdbf");
var fails = __webpack_require__("d039");
var has = __webpack_require__("5135");
var isArray = __webpack_require__("e8b5");
var isObject = __webpack_require__("861d");
var anObject = __webpack_require__("825a");
var toObject = __webpack_require__("7b0b");
var toIndexedObject = __webpack_require__("fc6a");
var toPrimitive = __webpack_require__("c04e");
var createPropertyDescriptor = __webpack_require__("5c6c");
var nativeObjectCreate = __webpack_require__("7c73");
var objectKeys = __webpack_require__("df75");
var getOwnPropertyNamesModule = __webpack_require__("241c");
var getOwnPropertyNamesExternal = __webpack_require__("057f");
var getOwnPropertySymbolsModule = __webpack_require__("7418");
var getOwnPropertyDescriptorModule = __webpack_require__("06cf");
var definePropertyModule = __webpack_require__("9bf2");
var propertyIsEnumerableModule = __webpack_require__("d1e7");
var createNonEnumerableProperty = __webpack_require__("9112");
var redefine = __webpack_require__("6eeb");
var shared = __webpack_require__("5692");
var sharedKey = __webpack_require__("f772");
var hiddenKeys = __webpack_require__("d012");
var uid = __webpack_require__("90e3");
var wellKnownSymbol = __webpack_require__("b622");
var wrappedWellKnownSymbolModule = __webpack_require__("e538");
var defineWellKnownSymbol = __webpack_require__("746f");
var setToStringTag = __webpack_require__("d44e");
var InternalStateModule = __webpack_require__("69f3");
var $forEach = __webpack_require__("b727").forEach;

var HIDDEN = sharedKey('hidden');
var SYMBOL = 'Symbol';
var PROTOTYPE = 'prototype';
var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
var setInternalState = InternalStateModule.set;
var getInternalState = InternalStateModule.getterFor(SYMBOL);
var ObjectPrototype = Object[PROTOTYPE];
var $Symbol = global.Symbol;
var $stringify = getBuiltIn('JSON', 'stringify');
var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
var nativeDefineProperty = definePropertyModule.f;
var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
var nativePropertyIsEnumerable = propertyIsEnumerableModule.f;
var AllSymbols = shared('symbols');
var ObjectPrototypeSymbols = shared('op-symbols');
var StringToSymbolRegistry = shared('string-to-symbol-registry');
var SymbolToStringRegistry = shared('symbol-to-string-registry');
var WellKnownSymbolsStore = shared('wks');
var QObject = global.QObject;
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;

// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDescriptor = DESCRIPTORS && fails(function () {
  return nativeObjectCreate(nativeDefineProperty({}, 'a', {
    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }
  })).a != 7;
}) ? function (O, P, Attributes) {
  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);
  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];
  nativeDefineProperty(O, P, Attributes);
  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {
    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);
  }
} : nativeDefineProperty;

var wrap = function (tag, description) {
  var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);
  setInternalState(symbol, {
    type: SYMBOL,
    tag: tag,
    description: description
  });
  if (!DESCRIPTORS) symbol.description = description;
  return symbol;
};

var isSymbol = USE_SYMBOL_AS_UID ? function (it) {
  return typeof it == 'symbol';
} : function (it) {
  return Object(it) instanceof $Symbol;
};

var $defineProperty = function defineProperty(O, P, Attributes) {
  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);
  anObject(O);
  var key = toPrimitive(P, true);
  anObject(Attributes);
  if (has(AllSymbols, key)) {
    if (!Attributes.enumerable) {
      if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));
      O[HIDDEN][key] = true;
    } else {
      if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;
      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });
    } return setSymbolDescriptor(O, key, Attributes);
  } return nativeDefineProperty(O, key, Attributes);
};

var $defineProperties = function defineProperties(O, Properties) {
  anObject(O);
  var properties = toIndexedObject(Properties);
  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
  $forEach(keys, function (key) {
    if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);
  });
  return O;
};

var $create = function create(O, Properties) {
  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);
};

var $propertyIsEnumerable = function propertyIsEnumerable(V) {
  var P = toPrimitive(V, true);
  var enumerable = nativePropertyIsEnumerable.call(this, P);
  if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;
  return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;
};

var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
  var it = toIndexedObject(O);
  var key = toPrimitive(P, true);
  if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;
  var descriptor = nativeGetOwnPropertyDescriptor(it, key);
  if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {
    descriptor.enumerable = true;
  }
  return descriptor;
};

var $getOwnPropertyNames = function getOwnPropertyNames(O) {
  var names = nativeGetOwnPropertyNames(toIndexedObject(O));
  var result = [];
  $forEach(names, function (key) {
    if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);
  });
  return result;
};

var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;
  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
  var result = [];
  $forEach(names, function (key) {
    if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {
      result.push(AllSymbols[key]);
    }
  });
  return result;
};

// `Symbol` constructor
// https://tc39.es/ecma262/#sec-symbol-constructor
if (!NATIVE_SYMBOL) {
  $Symbol = function Symbol() {
    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');
    var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);
    var tag = uid(description);
    var setter = function (value) {
      if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);
      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
      setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));
    };
    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });
    return wrap(tag, description);
  };

  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
    return getInternalState(this).tag;
  });

  redefine($Symbol, 'withoutSetter', function (description) {
    return wrap(uid(description), description);
  });

  propertyIsEnumerableModule.f = $propertyIsEnumerable;
  definePropertyModule.f = $defineProperty;
  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;
  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;

  wrappedWellKnownSymbolModule.f = function (name) {
    return wrap(wellKnownSymbol(name), name);
  };

  if (DESCRIPTORS) {
    // https://github.com/tc39/proposal-Symbol-description
    nativeDefineProperty($Symbol[PROTOTYPE], 'description', {
      configurable: true,
      get: function description() {
        return getInternalState(this).description;
      }
    });
    if (!IS_PURE) {
      redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });
    }
  }
}

$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {
  Symbol: $Symbol
});

$forEach(objectKeys(WellKnownSymbolsStore), function (name) {
  defineWellKnownSymbol(name);
});

$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {
  // `Symbol.for` method
  // https://tc39.es/ecma262/#sec-symbol.for
  'for': function (key) {
    var string = String(key);
    if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];
    var symbol = $Symbol(string);
    StringToSymbolRegistry[string] = symbol;
    SymbolToStringRegistry[symbol] = string;
    return symbol;
  },
  // `Symbol.keyFor` method
  // https://tc39.es/ecma262/#sec-symbol.keyfor
  keyFor: function keyFor(sym) {
    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');
    if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
  },
  useSetter: function () { USE_SETTER = true; },
  useSimple: function () { USE_SETTER = false; }
});

$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {
  // `Object.create` method
  // https://tc39.es/ecma262/#sec-object.create
  create: $create,
  // `Object.defineProperty` method
  // https://tc39.es/ecma262/#sec-object.defineproperty
  defineProperty: $defineProperty,
  // `Object.defineProperties` method
  // https://tc39.es/ecma262/#sec-object.defineproperties
  defineProperties: $defineProperties,
  // `Object.getOwnPropertyDescriptor` method
  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors
  getOwnPropertyDescriptor: $getOwnPropertyDescriptor
});

$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {
  // `Object.getOwnPropertyNames` method
  // https://tc39.es/ecma262/#sec-object.getownpropertynames
  getOwnPropertyNames: $getOwnPropertyNames,
  // `Object.getOwnPropertySymbols` method
  // https://tc39.es/ecma262/#sec-object.getownpropertysymbols
  getOwnPropertySymbols: $getOwnPropertySymbols
});

// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {
  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
    return getOwnPropertySymbolsModule.f(toObject(it));
  }
});

// `JSON.stringify` method behavior with symbols
// https://tc39.es/ecma262/#sec-json.stringify
if ($stringify) {
  var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {
    var symbol = $Symbol();
    // MS Edge converts symbol values to JSON as {}
    return $stringify([symbol]) != '[null]'
      // WebKit converts symbol values to JSON as null
      || $stringify({ a: symbol }) != '{}'
      // V8 throws on boxed symbols
      || $stringify(Object(symbol)) != '{}';
  });

  $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {
    // eslint-disable-next-line no-unused-vars
    stringify: function stringify(it, replacer, space) {
      var args = [it];
      var index = 1;
      var $replacer;
      while (arguments.length > index) args.push(arguments[index++]);
      $replacer = replacer;
      if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
      if (!isArray(replacer)) replacer = function (key, value) {
        if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
        if (!isSymbol(value)) return value;
      };
      args[1] = replacer;
      return $stringify.apply(null, args);
    }
  });
}

// `Symbol.prototype[@@toPrimitive]` method
// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive
if (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {
  createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
}
// `Symbol.prototype[@@toStringTag]` property
// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag
setToStringTag($Symbol, SYMBOL);

hiddenKeys[HIDDEN] = true;


/***/ }),

/***/ "a623":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var $every = __webpack_require__("b727").every;
var arrayMethodIsStrict = __webpack_require__("a640");
var arrayMethodUsesToLength = __webpack_require__("ae40");

var STRICT_METHOD = arrayMethodIsStrict('every');
var USES_TO_LENGTH = arrayMethodUsesToLength('every');

// `Array.prototype.every` method
// https://tc39.es/ecma262/#sec-array.prototype.every
$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {
  every: function every(callbackfn /* , thisArg */) {
    return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  }
});


/***/ }),

/***/ "a630":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");
var from = __webpack_require__("4df4");
var checkCorrectnessOfIteration = __webpack_require__("1c7e");

var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {
  Array.from(iterable);
});

// `Array.from` method
// https://tc39.es/ecma262/#sec-array.from
$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {
  from: from
});


/***/ }),

/***/ "a640":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var fails = __webpack_require__("d039");

module.exports = function (METHOD_NAME, argument) {
  var method = [][METHOD_NAME];
  return !!method && fails(function () {
    // eslint-disable-next-line no-useless-call,no-throw-literal
    method.call(null, argument || function () { throw 1; }, 1);
  });
};


/***/ }),

/***/ "a691":
/***/ (function(module, exports) {

var ceil = Math.ceil;
var floor = Math.floor;

// `ToInteger` abstract operation
// https://tc39.es/ecma262/#sec-tointeger
module.exports = function (argument) {
  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
};


/***/ }),

/***/ "a818":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "a910":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageReactions_vue_vue_type_style_index_0_id_f0352b14_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e3f7");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageReactions_vue_vue_type_style_index_0_id_f0352b14_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageReactions_vue_vue_type_style_index_0_id_f0352b14_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "a975":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var $every = __webpack_require__("b727").every;

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.every` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every
exportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {
  return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
});


/***/ }),

/***/ "a981":
/***/ (function(module, exports) {

module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';


/***/ }),

/***/ "a9e3":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var DESCRIPTORS = __webpack_require__("83ab");
var global = __webpack_require__("da84");
var isForced = __webpack_require__("94ca");
var redefine = __webpack_require__("6eeb");
var has = __webpack_require__("5135");
var classof = __webpack_require__("c6b6");
var inheritIfRequired = __webpack_require__("7156");
var toPrimitive = __webpack_require__("c04e");
var fails = __webpack_require__("d039");
var create = __webpack_require__("7c73");
var getOwnPropertyNames = __webpack_require__("241c").f;
var getOwnPropertyDescriptor = __webpack_require__("06cf").f;
var defineProperty = __webpack_require__("9bf2").f;
var trim = __webpack_require__("58a8").trim;

var NUMBER = 'Number';
var NativeNumber = global[NUMBER];
var NumberPrototype = NativeNumber.prototype;

// Opera ~12 has broken Object#toString
var BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;

// `ToNumber` abstract operation
// https://tc39.es/ecma262/#sec-tonumber
var toNumber = function (argument) {
  var it = toPrimitive(argument, false);
  var first, third, radix, maxCode, digits, length, index, code;
  if (typeof it == 'string' && it.length > 2) {
    it = trim(it);
    first = it.charCodeAt(0);
    if (first === 43 || first === 45) {
      third = it.charCodeAt(2);
      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix
    } else if (first === 48) {
      switch (it.charCodeAt(1)) {
        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i
        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i
        default: return +it;
      }
      digits = it.slice(2);
      length = digits.length;
      for (index = 0; index < length; index++) {
        code = digits.charCodeAt(index);
        // parseInt parses a string to a first unavailable symbol
        // but ToNumber should return NaN if a string contains unavailable symbols
        if (code < 48 || code > maxCode) return NaN;
      } return parseInt(digits, radix);
    }
  } return +it;
};

// `Number` constructor
// https://tc39.es/ecma262/#sec-number-constructor
if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {
  var NumberWrapper = function Number(value) {
    var it = arguments.length < 1 ? 0 : value;
    var dummy = this;
    return dummy instanceof NumberWrapper
      // check on 1..constructor(foo) case
      && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)
        ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);
  };
  for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (
    // ES3:
    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
    // ES2015 (in case, if modules with ES2015 Number statics required before):
    'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
    'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +
    // ESNext
    'fromString,range'
  ).split(','), j = 0, key; keys.length > j; j++) {
    if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {
      defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));
    }
  }
  NumberWrapper.prototype = NumberPrototype;
  NumberPrototype.constructor = NumberWrapper;
  redefine(global, NUMBER, NumberWrapper);
}


/***/ }),

/***/ "ab13":
/***/ (function(module, exports, __webpack_require__) {

var wellKnownSymbol = __webpack_require__("b622");

var MATCH = wellKnownSymbol('match');

module.exports = function (METHOD_NAME) {
  var regexp = /./;
  try {
    '/./'[METHOD_NAME](regexp);
  } catch (error1) {
    try {
      regexp[MATCH] = false;
      return '/./'[METHOD_NAME](regexp);
    } catch (error2) { /* empty */ }
  } return false;
};


/***/ }),

/***/ "ac1f":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var exec = __webpack_require__("9263");

// `RegExp.prototype.exec` method
// https://tc39.es/ecma262/#sec-regexp.prototype.exec
$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {
  exec: exec
});


/***/ }),

/***/ "accc":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");
var toISOString = __webpack_require__("64e5");

// `Date.prototype.toISOString` method
// https://tc39.es/ecma262/#sec-date.prototype.toisostring
// PhantomJS / old WebKit has a broken implementations
$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {
  toISOString: toISOString
});


/***/ }),

/***/ "acd8":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");
var parseFloatImplementation = __webpack_require__("7e12");

// `parseFloat` method
// https://tc39.es/ecma262/#sec-parsefloat-string
$({ global: true, forced: parseFloat != parseFloatImplementation }, {
  parseFloat: parseFloatImplementation
});


/***/ }),

/***/ "ace4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var fails = __webpack_require__("d039");
var ArrayBufferModule = __webpack_require__("621a");
var anObject = __webpack_require__("825a");
var toAbsoluteIndex = __webpack_require__("23cb");
var toLength = __webpack_require__("50c4");
var speciesConstructor = __webpack_require__("4840");

var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
var DataView = ArrayBufferModule.DataView;
var nativeArrayBufferSlice = ArrayBuffer.prototype.slice;

var INCORRECT_SLICE = fails(function () {
  return !new ArrayBuffer(2).slice(1, undefined).byteLength;
});

// `ArrayBuffer.prototype.slice` method
// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice
$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {
  slice: function slice(start, end) {
    if (nativeArrayBufferSlice !== undefined && end === undefined) {
      return nativeArrayBufferSlice.call(anObject(this), start); // FF fix
    }
    var length = anObject(this).byteLength;
    var first = toAbsoluteIndex(start, length);
    var fin = toAbsoluteIndex(end === undefined ? length : end, length);
    var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));
    var viewSource = new DataView(this);
    var viewTarget = new DataView(result);
    var index = 0;
    while (first < fin) {
      viewTarget.setUint8(index++, viewSource.getUint8(first++));
    } return result;
  }
});


/***/ }),

/***/ "ad6d":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var anObject = __webpack_require__("825a");

// `RegExp.prototype.flags` getter implementation
// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
module.exports = function () {
  var that = anObject(this);
  var result = '';
  if (that.global) result += 'g';
  if (that.ignoreCase) result += 'i';
  if (that.multiline) result += 'm';
  if (that.dotAll) result += 's';
  if (that.unicode) result += 'u';
  if (that.sticky) result += 'y';
  return result;
};


/***/ }),

/***/ "ae40":
/***/ (function(module, exports, __webpack_require__) {

var DESCRIPTORS = __webpack_require__("83ab");
var fails = __webpack_require__("d039");
var has = __webpack_require__("5135");

var defineProperty = Object.defineProperty;
var cache = {};

var thrower = function (it) { throw it; };

module.exports = function (METHOD_NAME, options) {
  if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];
  if (!options) options = {};
  var method = [][METHOD_NAME];
  var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;
  var argument0 = has(options, 0) ? options[0] : thrower;
  var argument1 = has(options, 1) ? options[1] : undefined;

  return cache[METHOD_NAME] = !!method && !fails(function () {
    if (ACCESSORS && !DESCRIPTORS) return true;
    var O = { length: -1 };

    if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });
    else O[1] = 1;

    method.call(O, argument0, argument1);
  });
};


/***/ }),

/***/ "ae93":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var fails = __webpack_require__("d039");
var getPrototypeOf = __webpack_require__("e163");
var createNonEnumerableProperty = __webpack_require__("9112");
var has = __webpack_require__("5135");
var wellKnownSymbol = __webpack_require__("b622");
var IS_PURE = __webpack_require__("c430");

var ITERATOR = wellKnownSymbol('iterator');
var BUGGY_SAFARI_ITERATORS = false;

var returnThis = function () { return this; };

// `%IteratorPrototype%` object
// https://tc39.es/ecma262/#sec-%iteratorprototype%-object
var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;

if ([].keys) {
  arrayIterator = [].keys();
  // Safari 8 has buggy iterators w/o `next`
  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;
  else {
    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;
  }
}

var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {
  var test = {};
  // FF44- legacy iterators case
  return IteratorPrototype[ITERATOR].call(test) !== test;
});

if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};

// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
if ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {
  createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);
}

module.exports = {
  IteratorPrototype: IteratorPrototype,
  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
};


/***/ }),

/***/ "af03":
/***/ (function(module, exports, __webpack_require__) {

var fails = __webpack_require__("d039");

// check the existence of a method, lowercase
// of a tag and escaping quotes in arguments
module.exports = function (METHOD_NAME) {
  return fails(function () {
    var test = ''[METHOD_NAME]('"');
    return test !== test.toLowerCase() || test.split('"').length > 3;
  });
};


/***/ }),

/***/ "b041":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var TO_STRING_TAG_SUPPORT = __webpack_require__("00ee");
var classof = __webpack_require__("f5df");

// `Object.prototype.toString` method implementation
// https://tc39.es/ecma262/#sec-object.prototype.tostring
module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {
  return '[object ' + classof(this) + ']';
};


/***/ }),

/***/ "b0c0":
/***/ (function(module, exports, __webpack_require__) {

var DESCRIPTORS = __webpack_require__("83ab");
var defineProperty = __webpack_require__("9bf2").f;

var FunctionPrototype = Function.prototype;
var FunctionPrototypeToString = FunctionPrototype.toString;
var nameRE = /^\s*function ([^ (]*)/;
var NAME = 'name';

// Function instances `.name` property
// https://tc39.es/ecma262/#sec-function-instances-name
if (DESCRIPTORS && !(NAME in FunctionPrototype)) {
  defineProperty(FunctionPrototype, NAME, {
    configurable: true,
    get: function () {
      try {
        return FunctionPrototypeToString.call(this).match(nameRE)[1];
      } catch (error) {
        return '';
      }
    }
  });
}


/***/ }),

/***/ "b39a":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var global = __webpack_require__("da84");
var ArrayBufferViewCore = __webpack_require__("ebb5");
var fails = __webpack_require__("d039");

var Int8Array = global.Int8Array;
var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
var $toLocaleString = [].toLocaleString;
var $slice = [].slice;

// iOS Safari 6.x fails here
var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {
  $toLocaleString.call(new Int8Array(1));
});

var FORCED = fails(function () {
  return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();
}) || !fails(function () {
  Int8Array.prototype.toLocaleString.call([1, 2]);
});

// `%TypedArray%.prototype.toLocaleString` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring
exportTypedArrayMethod('toLocaleString', function toLocaleString() {
  return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);
}, FORCED);


/***/ }),

/***/ "b575":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");
var getOwnPropertyDescriptor = __webpack_require__("06cf").f;
var macrotask = __webpack_require__("2cf4").set;
var IS_IOS = __webpack_require__("1cdc");
var IS_WEBOS_WEBKIT = __webpack_require__("a4b4");
var IS_NODE = __webpack_require__("605d");

var MutationObserver = global.MutationObserver || global.WebKitMutationObserver;
var document = global.document;
var process = global.process;
var Promise = global.Promise;
// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`
var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');
var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;

var flush, head, last, notify, toggle, node, promise, then;

// modern engines have queueMicrotask method
if (!queueMicrotask) {
  flush = function () {
    var parent, fn;
    if (IS_NODE && (parent = process.domain)) parent.exit();
    while (head) {
      fn = head.fn;
      head = head.next;
      try {
        fn();
      } catch (error) {
        if (head) notify();
        else last = undefined;
        throw error;
      }
    } last = undefined;
    if (parent) parent.enter();
  };

  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339
  // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898
  if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {
    toggle = true;
    node = document.createTextNode('');
    new MutationObserver(flush).observe(node, { characterData: true });
    notify = function () {
      node.data = toggle = !toggle;
    };
  // environments with maybe non-completely correct, but existent Promise
  } else if (Promise && Promise.resolve) {
    // Promise.resolve without an argument throws an error in LG WebOS 2
    promise = Promise.resolve(undefined);
    then = promise.then;
    notify = function () {
      then.call(promise, flush);
    };
  // Node.js without promises
  } else if (IS_NODE) {
    notify = function () {
      process.nextTick(flush);
    };
  // for other environments - macrotask based on:
  // - setImmediate
  // - MessageChannel
  // - window.postMessag
  // - onreadystatechange
  // - setTimeout
  } else {
    notify = function () {
      // strange IE + webpack dev server bug - use .call(global)
      macrotask.call(global, flush);
    };
  }
}

module.exports = queueMicrotask || function (fn) {
  var task = { fn: fn, next: undefined };
  if (last) last.next = task;
  if (!head) {
    head = task;
    notify();
  } last = task;
};


/***/ }),

/***/ "b622":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");
var shared = __webpack_require__("5692");
var has = __webpack_require__("5135");
var uid = __webpack_require__("90e3");
var NATIVE_SYMBOL = __webpack_require__("4930");
var USE_SYMBOL_AS_UID = __webpack_require__("fdbf");

var WellKnownSymbolsStore = shared('wks');
var Symbol = global.Symbol;
var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;

module.exports = function (name) {
  if (!has(WellKnownSymbolsStore, name)) {
    if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];
    else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
  } return WellKnownSymbolsStore[name];
};


/***/ }),

/***/ "b64b":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");
var toObject = __webpack_require__("7b0b");
var nativeKeys = __webpack_require__("df75");
var fails = __webpack_require__("d039");

var FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });

// `Object.keys` method
// https://tc39.es/ecma262/#sec-object.keys
$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
  keys: function keys(it) {
    return nativeKeys(toObject(it));
  }
});


/***/ }),

/***/ "b680":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var toInteger = __webpack_require__("a691");
var thisNumberValue = __webpack_require__("408a");
var repeat = __webpack_require__("1148");
var fails = __webpack_require__("d039");

var nativeToFixed = 1.0.toFixed;
var floor = Math.floor;

var pow = function (x, n, acc) {
  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
};

var log = function (x) {
  var n = 0;
  var x2 = x;
  while (x2 >= 4096) {
    n += 12;
    x2 /= 4096;
  }
  while (x2 >= 2) {
    n += 1;
    x2 /= 2;
  } return n;
};

var FORCED = nativeToFixed && (
  0.00008.toFixed(3) !== '0.000' ||
  0.9.toFixed(0) !== '1' ||
  1.255.toFixed(2) !== '1.25' ||
  1000000000000000128.0.toFixed(0) !== '1000000000000000128'
) || !fails(function () {
  // V8 ~ Android 4.3-
  nativeToFixed.call({});
});

// `Number.prototype.toFixed` method
// https://tc39.es/ecma262/#sec-number.prototype.tofixed
$({ target: 'Number', proto: true, forced: FORCED }, {
  // eslint-disable-next-line max-statements
  toFixed: function toFixed(fractionDigits) {
    var number = thisNumberValue(this);
    var fractDigits = toInteger(fractionDigits);
    var data = [0, 0, 0, 0, 0, 0];
    var sign = '';
    var result = '0';
    var e, z, j, k;

    var multiply = function (n, c) {
      var index = -1;
      var c2 = c;
      while (++index < 6) {
        c2 += n * data[index];
        data[index] = c2 % 1e7;
        c2 = floor(c2 / 1e7);
      }
    };

    var divide = function (n) {
      var index = 6;
      var c = 0;
      while (--index >= 0) {
        c += data[index];
        data[index] = floor(c / n);
        c = (c % n) * 1e7;
      }
    };

    var dataToString = function () {
      var index = 6;
      var s = '';
      while (--index >= 0) {
        if (s !== '' || index === 0 || data[index] !== 0) {
          var t = String(data[index]);
          s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;
        }
      } return s;
    };

    if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');
    // eslint-disable-next-line no-self-compare
    if (number != number) return 'NaN';
    if (number <= -1e21 || number >= 1e21) return String(number);
    if (number < 0) {
      sign = '-';
      number = -number;
    }
    if (number > 1e-21) {
      e = log(number * pow(2, 69, 1)) - 69;
      z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);
      z *= 0x10000000000000;
      e = 52 - e;
      if (e > 0) {
        multiply(0, z);
        j = fractDigits;
        while (j >= 7) {
          multiply(1e7, 0);
          j -= 7;
        }
        multiply(pow(10, j, 1), 0);
        j = e - 1;
        while (j >= 23) {
          divide(1 << 23);
          j -= 23;
        }
        divide(1 << j);
        multiply(1, 1);
        divide(2);
        result = dataToString();
      } else {
        multiply(0, z);
        multiply(1 << -e, 0);
        result = dataToString() + repeat.call('0', fractDigits);
      }
    }
    if (fractDigits > 0) {
      k = result.length;
      result = sign + (k <= fractDigits
        ? '0.' + repeat.call('0', fractDigits - k) + result
        : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));
    } else {
      result = sign + result;
    } return result;
  }
});


/***/ }),

/***/ "b727":
/***/ (function(module, exports, __webpack_require__) {

var bind = __webpack_require__("0366");
var IndexedObject = __webpack_require__("44ad");
var toObject = __webpack_require__("7b0b");
var toLength = __webpack_require__("50c4");
var arraySpeciesCreate = __webpack_require__("65f0");

var push = [].push;

// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation
var createMethod = function (TYPE) {
  var IS_MAP = TYPE == 1;
  var IS_FILTER = TYPE == 2;
  var IS_SOME = TYPE == 3;
  var IS_EVERY = TYPE == 4;
  var IS_FIND_INDEX = TYPE == 6;
  var IS_FILTER_OUT = TYPE == 7;
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  return function ($this, callbackfn, that, specificCreate) {
    var O = toObject($this);
    var self = IndexedObject(O);
    var boundFunction = bind(callbackfn, that, 3);
    var length = toLength(self.length);
    var index = 0;
    var create = specificCreate || arraySpeciesCreate;
    var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;
    var value, result;
    for (;length > index; index++) if (NO_HOLES || index in self) {
      value = self[index];
      result = boundFunction(value, index, O);
      if (TYPE) {
        if (IS_MAP) target[index] = result; // map
        else if (result) switch (TYPE) {
          case 3: return true;              // some
          case 5: return value;             // find
          case 6: return index;             // findIndex
          case 2: push.call(target, value); // filter
        } else switch (TYPE) {
          case 4: return false;             // every
          case 7: push.call(target, value); // filterOut
        }
      }
    }
    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
  };
};

module.exports = {
  // `Array.prototype.forEach` method
  // https://tc39.es/ecma262/#sec-array.prototype.foreach
  forEach: createMethod(0),
  // `Array.prototype.map` method
  // https://tc39.es/ecma262/#sec-array.prototype.map
  map: createMethod(1),
  // `Array.prototype.filter` method
  // https://tc39.es/ecma262/#sec-array.prototype.filter
  filter: createMethod(2),
  // `Array.prototype.some` method
  // https://tc39.es/ecma262/#sec-array.prototype.some
  some: createMethod(3),
  // `Array.prototype.every` method
  // https://tc39.es/ecma262/#sec-array.prototype.every
  every: createMethod(4),
  // `Array.prototype.find` method
  // https://tc39.es/ecma262/#sec-array.prototype.find
  find: createMethod(5),
  // `Array.prototype.findIndex` method
  // https://tc39.es/ecma262/#sec-array.prototype.findIndex
  findIndex: createMethod(6),
  // `Array.prototype.filterOut` method
  // https://github.com/tc39/proposal-array-filtering
  filterOut: createMethod(7)
};


/***/ }),

/***/ "b7fe":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.start = exports.run = exports.TOKENS = exports.State = undefined;

var _state = __webpack_require__("1652");

var _text = __webpack_require__("7656");

var TOKENS = _interopRequireWildcard(_text);

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

var tlds = 'aaa|aarp|abarth|abb|abbott|abbvie|abc|able|abogado|abudhabi|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|aetna|af|afamilycompany|afl|africa|ag|agakhan|agency|ai|aig|aigo|airbus|airforce|airtel|akdn|al|alfaromeo|alibaba|alipay|allfinanz|allstate|ally|alsace|alstom|am|americanexpress|americanfamily|amex|amfam|amica|amsterdam|analytics|android|anquan|anz|ao|aol|apartments|app|apple|aq|aquarelle|ar|arab|aramco|archi|army|arpa|art|arte|as|asda|asia|associates|at|athleta|attorney|au|auction|audi|audible|audio|auspost|author|auto|autos|avianca|aw|aws|ax|axa|az|azure|ba|baby|baidu|banamex|bananarepublic|band|bank|bar|barcelona|barclaycard|barclays|barefoot|bargains|baseball|basketball|bauhaus|bayern|bb|bbc|bbt|bbva|bcg|bcn|bd|be|beats|beauty|beer|bentley|berlin|best|bestbuy|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|blanco|blockbuster|blog|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bofa|bom|bond|boo|book|booking|boots|bosch|bostik|boston|bot|boutique|box|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|calvinklein|cam|camera|camp|cancerresearch|canon|capetown|capital|capitalone|car|caravan|cards|care|career|careers|cars|cartier|casa|case|caseih|cash|casino|cat|catering|catholic|cba|cbn|cbre|cbs|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chintai|chloe|christmas|chrome|chrysler|church|ci|cipriani|circle|cisco|citadel|citi|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|comcast|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cookingchannel|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruise|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|data|date|dating|datsun|day|dclk|dds|de|deal|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|dhl|diamonds|diet|digital|direct|directory|discount|discover|dish|diy|dj|dk|dm|dnp|do|docs|doctor|dodge|dog|doha|domains|dot|download|drive|dtv|dubai|duck|dunlop|duns|dupont|durban|dvag|dvr|dz|earth|eat|ec|eco|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epost|epson|equipment|er|ericsson|erni|es|esq|estate|esurance|et|etisalat|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|extraspace|fage|fail|fairwinds|faith|family|fan|fans|farm|farmers|fashion|fast|fedex|feedback|ferrari|ferrero|fi|fiat|fidelity|fido|film|final|finance|financial|fire|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|flir|florist|flowers|fly|fm|fo|foo|food|foodnetwork|football|ford|forex|forsale|forum|foundation|fox|fr|free|fresenius|frl|frogans|frontdoor|frontier|ftr|fujitsu|fujixerox|fun|fund|furniture|futbol|fyi|ga|gal|gallery|gallo|gallup|game|games|gap|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|george|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glade|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|godaddy|gold|goldpoint|golf|goo|goodhands|goodyear|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|grocery|group|gs|gt|gu|guardian|gucci|guge|guide|guitars|guru|gw|gy|hair|hamburg|hangout|haus|hbo|hdfc|hdfcbank|health|healthcare|help|helsinki|here|hermes|hgtv|hiphop|hisamitsu|hitachi|hiv|hk|hkt|hm|hn|hockey|holdings|holiday|homedepot|homegoods|homes|homesense|honda|honeywell|horse|hospital|host|hosting|hot|hoteles|hotels|hotmail|house|how|hr|hsbc|ht|htc|hu|hughes|hyatt|hyundai|ibm|icbc|ice|icu|id|ie|ieee|ifm|ikano|il|im|imamat|imdb|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|intel|international|intuit|investments|io|ipiranga|iq|ir|irish|is|iselect|ismaili|ist|istanbul|it|itau|itv|iveco|iwc|jaguar|java|jcb|jcp|je|jeep|jetzt|jewelry|jio|jlc|jll|jm|jmp|jnj|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|juniper|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kindle|kitchen|kiwi|km|kn|koeln|komatsu|kosher|kp|kpmg|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|ladbrokes|lamborghini|lamer|lancaster|lancia|lancome|land|landrover|lanxess|lasalle|lat|latino|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|lefrak|legal|lego|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|lilly|limited|limo|lincoln|linde|link|lipsy|live|living|lixil|lk|loan|loans|locker|locus|loft|lol|london|lotte|lotto|love|lpl|lplfinancial|lr|ls|lt|ltd|ltda|lu|lundbeck|lupin|luxe|luxury|lv|ly|ma|macys|madrid|maif|maison|makeup|man|management|mango|map|market|marketing|markets|marriott|marshalls|maserati|mattel|mba|mc|mckinsey|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|merckmsd|metlife|mg|mh|miami|microsoft|mil|mini|mint|mit|mitsubishi|mk|ml|mlb|mls|mm|mma|mn|mo|mobi|mobile|mobily|moda|moe|moi|mom|monash|money|monster|mopar|mormon|mortgage|moscow|moto|motorcycles|mov|movie|movistar|mp|mq|mr|ms|msd|mt|mtn|mtr|mu|museum|mutual|mv|mw|mx|my|mz|na|nab|nadex|nagoya|name|nationwide|natura|navy|nba|nc|ne|nec|net|netbank|netflix|network|neustar|new|newholland|news|next|nextdirect|nexus|nf|nfl|ng|ngo|nhk|ni|nico|nike|nikon|ninja|nissan|nissay|nl|no|nokia|northwesternmutual|norton|now|nowruz|nowtv|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|observer|off|office|okinawa|olayan|olayangroup|oldnavy|ollo|om|omega|one|ong|onl|online|onyourside|ooo|open|oracle|orange|org|organic|origins|osaka|otsuka|ott|ovh|pa|page|panasonic|panerai|paris|pars|partners|parts|party|passagens|pay|pccw|pe|pet|pf|pfizer|pg|ph|pharmacy|phd|philips|phone|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pioneer|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pnc|pohl|poker|politie|porn|post|pr|pramerica|praxi|press|prime|pro|prod|productions|prof|progressive|promo|properties|property|protection|pru|prudential|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|qvc|racing|radio|raid|re|read|realestate|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|reliance|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|richardli|ricoh|rightathome|ril|rio|rip|rmit|ro|rocher|rocks|rodeo|rogers|room|rs|rsvp|ru|rugby|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsclub|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|save|saxo|sb|sbi|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scjohnson|scor|scot|sd|se|search|seat|secure|security|seek|select|sener|services|ses|seven|sew|sex|sexy|sfr|sg|sh|shangrila|sharp|shaw|shell|shia|shiksha|shoes|shop|shopping|shouji|show|showtime|shriram|si|silk|sina|singles|site|sj|sk|ski|skin|sky|skype|sl|sling|sm|smart|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|srt|st|stada|staples|star|starhub|statebank|statefarm|statoil|stc|stcgroup|stockholm|storage|store|stream|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiftcover|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|talk|taobao|target|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|tdk|team|tech|technology|tel|telecity|telefonica|temasek|tennis|teva|tf|tg|th|thd|theater|theatre|tiaa|tickets|tienda|tiffany|tips|tires|tirol|tj|tjmaxx|tjx|tk|tkmaxx|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tr|trade|trading|training|travel|travelchannel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubank|ubs|uconnect|ug|uk|unicom|university|uno|uol|ups|us|uy|uz|va|vacations|vana|vanguard|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|vig|viking|villas|vin|vip|virgin|visa|vision|vista|vistaprint|viva|vivo|vlaanderen|vn|vodka|volkswagen|volvo|vote|voting|voto|voyage|vu|vuelos|wales|walmart|walter|wang|wanggou|warman|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weibo|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|winners|wme|wolterskluwer|woodside|work|works|world|wow|ws|wtc|wtf|xbox|xerox|xfinity|xihuan|xin|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--30rr7y|xn--3bst00m|xn--3ds443g|xn--3e0b707e|xn--3hcrj9c|xn--3oq18vl8pn36a|xn--3pxu8k|xn--42c2d9a|xn--45br5cyl|xn--45brj9c|xn--45q11c|xn--4gbrim|xn--54b7fta0cc|xn--55qw42g|xn--55qx5d|xn--5su34j936bgsg|xn--5tzm5g|xn--6frz82g|xn--6qq986b3xl|xn--80adxhks|xn--80ao21a|xn--80aqecdr1a|xn--80asehdb|xn--80aswg|xn--8y0a063a|xn--90a3ac|xn--90ae|xn--90ais|xn--9dbq2a|xn--9et52u|xn--9krt00a|xn--b4w605ferd|xn--bck1b9a5dre4c|xn--c1avg|xn--c2br7g|xn--cck2b3b|xn--cg4bki|xn--clchc0ea0b2g2a9gcd|xn--czr694b|xn--czrs0t|xn--czru2d|xn--d1acj3b|xn--d1alf|xn--e1a4c|xn--eckvdtc9d|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fhbei|xn--fiq228c5hs|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--fjq720a|xn--flw351e|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--fzys8d69uvgm|xn--g2xx48c|xn--gckr3f0f|xn--gecrj9c|xn--gk3at1e|xn--h2breg3eve|xn--h2brj9c|xn--h2brj9c8c|xn--hxt814e|xn--i1b6b1a6a2e|xn--imr513n|xn--io0a7i|xn--j1aef|xn--j1amh|xn--j6w193g|xn--jlq61u9w7b|xn--jvr189m|xn--kcrx77d1x4a|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--kput3i|xn--l1acc|xn--lgbbat1ad8j|xn--mgb9awbf|xn--mgba3a3ejt|xn--mgba3a4f16a|xn--mgba7c0bbn0a|xn--mgbaakc7dvf|xn--mgbaam7a8h|xn--mgbab2bd|xn--mgbai9azgqp6j|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a|xn--mgbbh1a71e|xn--mgbc0a9azcg|xn--mgbca7dzdo|xn--mgberp4a5d4ar|xn--mgbgu82a|xn--mgbi4ecexp|xn--mgbpl2fh|xn--mgbt3dhd|xn--mgbtx2b|xn--mgbx4cd0ab|xn--mix891f|xn--mk1bu44c|xn--mxtq1m|xn--ngbc5azd|xn--ngbe9e0a|xn--ngbrx|xn--node|xn--nqv7f|xn--nqv7fs00ema|xn--nyqy26a|xn--o3cw4h|xn--ogbpf8fl|xn--p1acf|xn--p1ai|xn--pbt977c|xn--pgbs0dh|xn--pssy2u|xn--q9jyb4c|xn--qcka1pmc|xn--qxam|xn--rhqv96g|xn--rovu88b|xn--rvc1e0am3e|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--tckwe|xn--tiq49xqyj|xn--unup4y|xn--vermgensberater-ctb|xn--vermgensberatung-pwb|xn--vhquv|xn--vuq861b|xn--w4r85el8fhu5dnra|xn--w4rs40l|xn--wgbh1c|xn--wgbl6a|xn--xhq521b|xn--xkc2al3hye2a|xn--xkc2dl3a5ee0h|xn--y9a3aq|xn--yfro4i67o|xn--ygbi2ammx|xn--zfr164b|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|you|youtube|yt|yun|za|zappos|zara|zero|zip|zippo|zm|zone|zuerich|zw'.split('|'); // macro, see gulpfile.js

/**
	The scanner provides an interface that takes a string of text as input, and
	outputs an array of tokens instances that can be used for easy URL parsing.

	@module linkify
	@submodule scanner
	@main scanner
*/

var NUMBERS = '0123456789'.split('');
var ALPHANUM = '0123456789abcdefghijklmnopqrstuvwxyz'.split('');
var WHITESPACE = [' ', '\f', '\r', '\t', '\v', '\xA0', '\u1680', '\u180E']; // excluding line breaks

var domainStates = []; // states that jump to DOMAIN on /[a-z0-9]/
var makeState = function makeState(tokenClass) {
	return new _state.CharacterState(tokenClass);
};

// Frequently used states
var S_START = makeState();
var S_NUM = makeState(_text.NUM);
var S_DOMAIN = makeState(_text.DOMAIN);
var S_DOMAIN_HYPHEN = makeState(); // domain followed by 1 or more hyphen characters
var S_WS = makeState(_text.WS);

// States for special URL symbols
S_START.on('@', makeState(_text.AT)).on('.', makeState(_text.DOT)).on('+', makeState(_text.PLUS)).on('#', makeState(_text.POUND)).on('?', makeState(_text.QUERY)).on('/', makeState(_text.SLASH)).on('_', makeState(_text.UNDERSCORE)).on(':', makeState(_text.COLON)).on('{', makeState(_text.OPENBRACE)).on('[', makeState(_text.OPENBRACKET)).on('<', makeState(_text.OPENANGLEBRACKET)).on('(', makeState(_text.OPENPAREN)).on('}', makeState(_text.CLOSEBRACE)).on(']', makeState(_text.CLOSEBRACKET)).on('>', makeState(_text.CLOSEANGLEBRACKET)).on(')', makeState(_text.CLOSEPAREN)).on('&', makeState(_text.AMPERSAND)).on([',', ';', '!', '"', '\''], makeState(_text.PUNCTUATION));

// Whitespace jumps
// Tokens of only non-newline whitespace are arbitrarily long
S_START.on('\n', makeState(_text.NL)).on(WHITESPACE, S_WS);

// If any whitespace except newline, more whitespace!
S_WS.on(WHITESPACE, S_WS);

// Generates states for top-level domains
// Note that this is most accurate when tlds are in alphabetical order
for (var i = 0; i < tlds.length; i++) {
	var newStates = (0, _state.stateify)(tlds[i], S_START, _text.TLD, _text.DOMAIN);
	domainStates.push.apply(domainStates, newStates);
}

// Collect the states generated by different protocls
var partialProtocolFileStates = (0, _state.stateify)('file', S_START, _text.DOMAIN, _text.DOMAIN);
var partialProtocolFtpStates = (0, _state.stateify)('ftp', S_START, _text.DOMAIN, _text.DOMAIN);
var partialProtocolHttpStates = (0, _state.stateify)('http', S_START, _text.DOMAIN, _text.DOMAIN);
var partialProtocolMailtoStates = (0, _state.stateify)('mailto', S_START, _text.DOMAIN, _text.DOMAIN);

// Add the states to the array of DOMAINeric states
domainStates.push.apply(domainStates, partialProtocolFileStates);
domainStates.push.apply(domainStates, partialProtocolFtpStates);
domainStates.push.apply(domainStates, partialProtocolHttpStates);
domainStates.push.apply(domainStates, partialProtocolMailtoStates);

// Protocol states
var S_PROTOCOL_FILE = partialProtocolFileStates.pop();
var S_PROTOCOL_FTP = partialProtocolFtpStates.pop();
var S_PROTOCOL_HTTP = partialProtocolHttpStates.pop();
var S_MAILTO = partialProtocolMailtoStates.pop();
var S_PROTOCOL_SECURE = makeState(_text.DOMAIN);
var S_FULL_PROTOCOL = makeState(_text.PROTOCOL); // Full protocol ends with COLON
var S_FULL_MAILTO = makeState(_text.MAILTO); // Mailto ends with COLON

// Secure protocols (end with 's')
S_PROTOCOL_FTP.on('s', S_PROTOCOL_SECURE).on(':', S_FULL_PROTOCOL);

S_PROTOCOL_HTTP.on('s', S_PROTOCOL_SECURE).on(':', S_FULL_PROTOCOL);

domainStates.push(S_PROTOCOL_SECURE);

// Become protocol tokens after a COLON
S_PROTOCOL_FILE.on(':', S_FULL_PROTOCOL);
S_PROTOCOL_SECURE.on(':', S_FULL_PROTOCOL);
S_MAILTO.on(':', S_FULL_MAILTO);

// Localhost
var partialLocalhostStates = (0, _state.stateify)('localhost', S_START, _text.LOCALHOST, _text.DOMAIN);
domainStates.push.apply(domainStates, partialLocalhostStates);

// Everything else
// DOMAINs make more DOMAINs
// Number and character transitions
S_START.on(NUMBERS, S_NUM);
S_NUM.on('-', S_DOMAIN_HYPHEN).on(NUMBERS, S_NUM).on(ALPHANUM, S_DOMAIN); // number becomes DOMAIN

S_DOMAIN.on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);

// All the generated states should have a jump to DOMAIN
for (var _i = 0; _i < domainStates.length; _i++) {
	domainStates[_i].on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);
}

S_DOMAIN_HYPHEN.on('-', S_DOMAIN_HYPHEN).on(NUMBERS, S_DOMAIN).on(ALPHANUM, S_DOMAIN);

// Set default transition
S_START.defaultTransition = makeState(_text.SYM);

/**
	Given a string, returns an array of TOKEN instances representing the
	composition of that string.

	@method run
	@param {String} str Input string to scan
	@return {Array} Array of TOKEN instances
*/
var run = function run(str) {

	// The state machine only looks at lowercase strings.
	// This selective `toLowerCase` is used because lowercasing the entire
	// string causes the length and character position to vary in some in some
	// non-English strings. This happens only on V8-based runtimes.
	var lowerStr = str.replace(/[A-Z]/g, function (c) {
		return c.toLowerCase();
	});
	var len = str.length;
	var tokens = []; // return value

	var cursor = 0;

	// Tokenize the string
	while (cursor < len) {
		var state = S_START;
		var nextState = null;
		var tokenLength = 0;
		var latestAccepting = null;
		var sinceAccepts = -1;

		while (cursor < len && (nextState = state.next(lowerStr[cursor]))) {
			state = nextState;

			// Keep track of the latest accepting state
			if (state.accepts()) {
				sinceAccepts = 0;
				latestAccepting = state;
			} else if (sinceAccepts >= 0) {
				sinceAccepts++;
			}

			tokenLength++;
			cursor++;
		}

		if (sinceAccepts < 0) {
			continue;
		} // Should never happen

		// Roll back to the latest accepting state
		cursor -= sinceAccepts;
		tokenLength -= sinceAccepts;

		// Get the class for the new token
		var TOKEN = latestAccepting.emit(); // Current token class

		// No more jumps, just make a new token
		tokens.push(new TOKEN(str.substr(cursor - tokenLength, tokenLength)));
	}

	return tokens;
};

var start = S_START;
exports.State = _state.CharacterState;
exports.TOKENS = TOKENS;
exports.run = run;
exports.start = start;

/***/ }),

/***/ "baa5":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");
var lastIndexOf = __webpack_require__("e58c");

// `Array.prototype.lastIndexOf` method
// https://tc39.es/ecma262/#sec-array.prototype.lastindexof
$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {
  lastIndexOf: lastIndexOf
});


/***/ }),

/***/ "bd43":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isImageFile", function() { return isImageFile; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVideoFile", function() { return isVideoFile; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isAudioFile", function() { return isAudioFile; });
/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("caad");
/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var core_js_modules_es_array_some_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("45fc");
/* harmony import */ var core_js_modules_es_array_some_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_some_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("2532");
/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("c9d9");





function checkMediaType(types, file) {
  if (!file) return;
  var type = file.type;
  return types.some(function (t) {
    return type.toLowerCase().includes(t);
  });
}

function isImageFile(file) {
  return checkMediaType(_constants__WEBPACK_IMPORTED_MODULE_3__[/* IMAGE_TYPES */ "b"], file);
}
function isVideoFile(file) {
  return checkMediaType(_constants__WEBPACK_IMPORTED_MODULE_3__[/* VIDEO_TYPES */ "c"], file);
}
function isAudioFile(file) {
  return checkMediaType(_constants__WEBPACK_IMPORTED_MODULE_3__[/* AUDIO_TYPES */ "a"], file);
}

/***/ }),

/***/ "bea1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.URL = exports.TEXT = exports.NL = exports.EMAIL = exports.MAILTOEMAIL = exports.Base = undefined;

var _createTokenClass = __webpack_require__("46f3");

var _class = __webpack_require__("254c");

var _text = __webpack_require__("7656");

/******************************************************************************
	Multi-Tokens
	Tokens composed of arrays of TextTokens
******************************************************************************/

// Is the given token a valid domain token?
// Should nums be included here?
function isDomainToken(token) {
	return token instanceof _text.DOMAIN || token instanceof _text.TLD;
}

/**
	Abstract class used for manufacturing tokens of text tokens. That is rather
	than the value for a token being a small string of text, it's value an array
	of text tokens.

	Used for grouping together URLs, emails, hashtags, and other potential
	creations.

	@class MultiToken
	@abstract
*/
var MultiToken = (0, _createTokenClass.createTokenClass)();

MultiToken.prototype = {
	/**
 	String representing the type for this token
 	@property type
 	@default 'TOKEN'
 */
	type: 'token',

	/**
 	Is this multitoken a link?
 	@property isLink
 	@default false
 */
	isLink: false,

	/**
 	Return the string this token represents.
 	@method toString
 	@return {String}
 */
	toString: function toString() {
		var result = [];
		for (var i = 0; i < this.v.length; i++) {
			result.push(this.v[i].toString());
		}
		return result.join('');
	},


	/**
 	What should the value for this token be in the `href` HTML attribute?
 	Returns the `.toString` value by default.
 		@method toHref
 	@return {String}
 */
	toHref: function toHref() {
		return this.toString();
	},


	/**
 	Returns a hash of relevant values for this token, which includes keys
 	* type - Kind of token ('url', 'email', etc.)
 	* value - Original text
 	* href - The value that should be added to the anchor tag's href
 		attribute
 		@method toObject
 	@param {String} [protocol] `'http'` by default
 	@return {Object}
 */
	toObject: function toObject() {
		var protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'http';

		return {
			type: this.type,
			value: this.toString(),
			href: this.toHref(protocol)
		};
	}
};

/**
	Represents an arbitrarily mailto email address with the prefix included
	@class MAILTO
	@extends MultiToken
*/
var MAILTOEMAIL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {
	type: 'email',
	isLink: true
});

/**
	Represents a list of tokens making up a valid email address
	@class EMAIL
	@extends MultiToken
*/
var EMAIL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {
	type: 'email',
	isLink: true,
	toHref: function toHref() {
		return 'mailto:' + this.toString();
	}
});

/**
	Represents some plain text
	@class TEXT
	@extends MultiToken
*/
var TEXT = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), { type: 'text' });

/**
	Multi-linebreak token - represents a line break
	@class NL
	@extends MultiToken
*/
var NL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), { type: 'nl' });

/**
	Represents a list of tokens making up a valid URL
	@class URL
	@extends MultiToken
*/
var URL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {
	type: 'url',
	isLink: true,

	/**
 	Lowercases relevant parts of the domain and adds the protocol if
 	required. Note that this will not escape unsafe HTML characters in the
 	URL.
 		@method href
 	@param {String} protocol
 	@return {String}
 */
	toHref: function toHref() {
		var protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'http';

		var hasProtocol = false;
		var hasSlashSlash = false;
		var tokens = this.v;
		var result = [];
		var i = 0;

		// Make the first part of the domain lowercase
		// Lowercase protocol
		while (tokens[i] instanceof _text.PROTOCOL) {
			hasProtocol = true;
			result.push(tokens[i].toString().toLowerCase());
			i++;
		}

		// Skip slash-slash
		while (tokens[i] instanceof _text.SLASH) {
			hasSlashSlash = true;
			result.push(tokens[i].toString());
			i++;
		}

		// Lowercase all other characters in the domain
		while (isDomainToken(tokens[i])) {
			result.push(tokens[i].toString().toLowerCase());
			i++;
		}

		// Leave all other characters as they were written
		for (; i < tokens.length; i++) {
			result.push(tokens[i].toString());
		}

		result = result.join('');

		if (!(hasProtocol || hasSlashSlash)) {
			result = protocol + '://' + result;
		}

		return result;
	},
	hasProtocol: function hasProtocol() {
		return this.v[0] instanceof _text.PROTOCOL;
	}
});

exports.Base = MultiToken;
exports.MAILTOEMAIL = MAILTOEMAIL;
exports.EMAIL = EMAIL;
exports.NL = NL;
exports.TEXT = TEXT;
exports.URL = URL;

/***/ }),

/***/ "c04e":
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__("861d");

// `ToPrimitive` abstract operation
// https://tc39.es/ecma262/#sec-toprimitive
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (input, PREFERRED_STRING) {
  if (!isObject(input)) return input;
  var fn, val;
  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "c0b6":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");
var bind = __webpack_require__("0538");

// `Function.prototype.bind` method
// https://tc39.es/ecma262/#sec-function.prototype.bind
$({ target: 'Function', proto: true }, {
  bind: bind
});


/***/ }),

/***/ "c0f0":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "c1ac":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var $filter = __webpack_require__("b727").filter;
var speciesConstructor = __webpack_require__("4840");

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.filter` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter
exportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {
  var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  var C = speciesConstructor(this, this.constructor);
  var index = 0;
  var length = list.length;
  var result = new (aTypedArrayConstructor(C))(length);
  while (length > index) result[index] = list[index++];
  return result;
});


/***/ }),

/***/ "c28b":
/***/ (function(module, exports, __webpack_require__) {

!function(e,n){ true?module.exports=n():undefined}(this,function(){var e="undefined"!=typeof window,n="undefined"!=typeof navigator,t=e&&("ontouchstart"in window||n&&navigator.msMaxTouchPoints>0)?["touchstart"]:["click"];function i(e){var n=e.event,t=e.handler;(0,e.middleware)(n)&&t(n)}function r(e,n){var r=function(e){var n="function"==typeof e;if(!n&&"object"!=typeof e)throw new Error("v-click-outside: Binding value must be a function or an object");return{handler:n?e:e.handler,middleware:e.middleware||function(e){return e},events:e.events||t,isActive:!(!1===e.isActive),detectIframe:!(!1===e.detectIframe)}}(n.value),d=r.handler,o=r.middleware,a=r.detectIframe;if(r.isActive){if(e["__v-click-outside"]=r.events.map(function(n){return{event:n,srcTarget:document.documentElement,handler:function(n){return function(e){var n=e.el,t=e.event,r=e.handler,d=e.middleware,o=t.path||t.composedPath&&t.composedPath();(o?o.indexOf(n)<0:!n.contains(t.target))&&i({event:t,handler:r,middleware:d})}({el:e,event:n,handler:d,middleware:o})}}}),a){var c={event:"blur",srcTarget:window,handler:function(n){return function(e){var n=e.el,t=e.event,r=e.handler,d=e.middleware;setTimeout(function(){var e=document.activeElement;e&&"IFRAME"===e.tagName&&!n.contains(e)&&i({event:t,handler:r,middleware:d})},0)}({el:e,event:n,handler:d,middleware:o})}};e["__v-click-outside"]=[].concat(e["__v-click-outside"],[c])}e["__v-click-outside"].forEach(function(n){var t=n.event,i=n.srcTarget,r=n.handler;return setTimeout(function(){e["__v-click-outside"]&&i.addEventListener(t,r,!1)},0)})}}function d(e){(e["__v-click-outside"]||[]).forEach(function(e){return e.srcTarget.removeEventListener(e.event,e.handler,!1)}),delete e["__v-click-outside"]}var o=e?{bind:r,update:function(e,n){var t=n.value,i=n.oldValue;JSON.stringify(t)!==JSON.stringify(i)&&(d(e),r(e,{value:t}))},unbind:d}:{};return{install:function(e){e.directive("click-outside",o)},directive:o}});
//# sourceMappingURL=v-click-outside.umd.js.map


/***/ }),

/***/ "c430":
/***/ (function(module, exports) {

module.exports = false;


/***/ }),

/***/ "c6b6":
/***/ (function(module, exports) {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "c6cd":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");
var setGlobal = __webpack_require__("ce4e");

var SHARED = '__core-js_shared__';
var store = global[SHARED] || setGlobal(SHARED, {});

module.exports = store;


/***/ }),

/***/ "c8ba":
/***/ (function(module, exports) {

var g;

// This works in non-strict mode
g = (function() {
	return this;
})();

try {
	// This works if eval is allowed (see CSP)
	g = g || new Function("return this")();
} catch (e) {
	// This works if the window reference is available
	if (typeof window === "object") g = window;
}

// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}

module.exports = g;


/***/ }),

/***/ "c8ce":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "c8d2":
/***/ (function(module, exports, __webpack_require__) {

var fails = __webpack_require__("d039");
var whitespaces = __webpack_require__("5899");

var non = '\u200B\u0085\u180E';

// check that a method works with the correct list
// of whitespaces and has a correct name
module.exports = function (METHOD_NAME) {
  return fails(function () {
    return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;
  });
};


/***/ }),

/***/ "c8fb":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "c975":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var $indexOf = __webpack_require__("4d64").indexOf;
var arrayMethodIsStrict = __webpack_require__("a640");
var arrayMethodUsesToLength = __webpack_require__("ae40");

var nativeIndexOf = [].indexOf;

var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;
var STRICT_METHOD = arrayMethodIsStrict('indexOf');
var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });

// `Array.prototype.indexOf` method
// https://tc39.es/ecma262/#sec-array.prototype.indexof
$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {
  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
    return NEGATIVE_ZERO
      // convert -0 to +0
      ? nativeIndexOf.apply(this, arguments) || 0
      : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);
  }
});


/***/ }),

/***/ "c9d9":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return IMAGE_TYPES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return VIDEO_TYPES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AUDIO_TYPES; });
var IMAGE_TYPES = ['png', 'jpg', 'jpeg', 'webp', 'svg', 'gif'];
var VIDEO_TYPES = ['mp4', 'video/ogg', 'webm', 'quicktime'];
var AUDIO_TYPES = ['mp3', 'audio/ogg', 'wav', 'mpeg'];

/***/ }),

/***/ "ca84":
/***/ (function(module, exports, __webpack_require__) {

var has = __webpack_require__("5135");
var toIndexedObject = __webpack_require__("fc6a");
var indexOf = __webpack_require__("4d64").indexOf;
var hiddenKeys = __webpack_require__("d012");

module.exports = function (object, names) {
  var O = toIndexedObject(object);
  var i = 0;
  var result = [];
  var key;
  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
  // Don't enum bug & hidden keys
  while (names.length > i) if (has(O, key = names[i++])) {
    ~indexOf(result, key) || result.push(key);
  }
  return result;
};


/***/ }),

/***/ "ca91":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var $reduce = __webpack_require__("d58f").left;

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.reduce` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce
exportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {
  return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
});


/***/ }),

/***/ "caad":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var $includes = __webpack_require__("4d64").includes;
var addToUnscopables = __webpack_require__("44d2");
var arrayMethodUsesToLength = __webpack_require__("ae40");

var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });

// `Array.prototype.includes` method
// https://tc39.es/ecma262/#sec-array.prototype.includes
$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {
  includes: function includes(el /* , fromIndex = 0 */) {
    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
  }
});

// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
addToUnscopables('includes');


/***/ }),

/***/ "cc12":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");
var isObject = __webpack_require__("861d");

var document = global.document;
// typeof document.createElement is 'object' in old IE
var EXISTS = isObject(document) && isObject(document.createElement);

module.exports = function (it) {
  return EXISTS ? document.createElement(it) : {};
};


/***/ }),

/***/ "cc71":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var createHTML = __webpack_require__("857a");
var forcedStringHTMLMethod = __webpack_require__("af03");

// `String.prototype.bold` method
// https://tc39.es/ecma262/#sec-string.prototype.bold
$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {
  bold: function bold() {
    return createHTML(this, 'b', '', '');
  }
});


/***/ }),

/***/ "cca6":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");
var assign = __webpack_require__("60da");

// `Object.assign` method
// https://tc39.es/ecma262/#sec-object.assign
$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {
  assign: assign
});


/***/ }),

/***/ "ccd9":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageReply_vue_vue_type_style_index_0_id_0a737ce0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("68fb");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageReply_vue_vue_type_style_index_0_id_0a737ce0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageReply_vue_vue_type_style_index_0_id_0a737ce0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "ccda":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_EmojiPicker_vue_vue_type_style_index_0_id_7ef95ce2_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("34ba");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_EmojiPicker_vue_vue_type_style_index_0_id_7ef95ce2_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_EmojiPicker_vue_vue_type_style_index_0_id_7ef95ce2_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "cd26":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
var floor = Math.floor;

// `%TypedArray%.prototype.reverse` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse
exportTypedArrayMethod('reverse', function reverse() {
  var that = this;
  var length = aTypedArray(that).length;
  var middle = floor(length / 2);
  var index = 0;
  var value;
  while (index < middle) {
    value = that[index];
    that[index++] = that[--length];
    that[length] = value;
  } return that;
});


/***/ }),

/***/ "cdf9":
/***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__("825a");
var isObject = __webpack_require__("861d");
var newPromiseCapability = __webpack_require__("f069");

module.exports = function (C, x) {
  anObject(C);
  if (isObject(x) && x.constructor === C) return x;
  var promiseCapability = newPromiseCapability.f(C);
  var resolve = promiseCapability.resolve;
  resolve(x);
  return promiseCapability.promise;
};


/***/ }),

/***/ "ce4e":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");
var createNonEnumerableProperty = __webpack_require__("9112");

module.exports = function (key, value) {
  try {
    createNonEnumerableProperty(global, key, value);
  } catch (error) {
    global[key] = value;
  } return value;
};


/***/ }),

/***/ "ce77":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "cfc3":
/***/ (function(module, exports, __webpack_require__) {

var createTypedArrayConstructor = __webpack_require__("74e8");

// `Float32Array` constructor
// https://tc39.es/ecma262/#sec-typedarray-objects
createTypedArrayConstructor('Float32', function (init) {
  return function Float32Array(data, byteOffset, length) {
    return init(this, data, byteOffset, length);
  };
});


/***/ }),

/***/ "d012":
/***/ (function(module, exports) {

module.exports = {};


/***/ }),

/***/ "d039":
/***/ (function(module, exports) {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (error) {
    return true;
  }
};


/***/ }),

/***/ "d066":
/***/ (function(module, exports, __webpack_require__) {

var path = __webpack_require__("428f");
var global = __webpack_require__("da84");

var aFunction = function (variable) {
  return typeof variable == 'function' ? variable : undefined;
};

module.exports = function (namespace, method) {
  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])
    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];
};


/***/ }),

/***/ "d139":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var $find = __webpack_require__("b727").find;

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.find` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find
exportTypedArrayMethod('find', function find(predicate /* , thisArg */) {
  return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
});


/***/ }),

/***/ "d1e7":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;

// Nashorn ~ JDK8 bug
var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);

// `Object.prototype.propertyIsEnumerable` method implementation
// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable
exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
  var descriptor = getOwnPropertyDescriptor(this, V);
  return !!descriptor && descriptor.enumerable;
} : nativePropertyIsEnumerable;


/***/ }),

/***/ "d28b":
/***/ (function(module, exports, __webpack_require__) {

var defineWellKnownSymbol = __webpack_require__("746f");

// `Symbol.iterator` well-known symbol
// https://tc39.es/ecma262/#sec-symbol.iterator
defineWellKnownSymbol('iterator');


/***/ }),

/***/ "d2bb":
/***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__("825a");
var aPossiblePrototype = __webpack_require__("3bbe");

// `Object.setPrototypeOf` method
// https://tc39.es/ecma262/#sec-object.setprototypeof
// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
  var CORRECT_SETTER = false;
  var test = {};
  var setter;
  try {
    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
    setter.call(test, []);
    CORRECT_SETTER = test instanceof Array;
  } catch (error) { /* empty */ }
  return function setPrototypeOf(O, proto) {
    anObject(O);
    aPossiblePrototype(proto);
    if (CORRECT_SETTER) setter.call(O, proto);
    else O.__proto__ = proto;
    return O;
  };
}() : undefined);


/***/ }),

/***/ "d3b7":
/***/ (function(module, exports, __webpack_require__) {

var TO_STRING_TAG_SUPPORT = __webpack_require__("00ee");
var redefine = __webpack_require__("6eeb");
var toString = __webpack_require__("b041");

// `Object.prototype.toString` method
// https://tc39.es/ecma262/#sec-object.prototype.tostring
if (!TO_STRING_TAG_SUPPORT) {
  redefine(Object.prototype, 'toString', toString, { unsafe: true });
}


/***/ }),

/***/ "d44e":
/***/ (function(module, exports, __webpack_require__) {

var defineProperty = __webpack_require__("9bf2").f;
var has = __webpack_require__("5135");
var wellKnownSymbol = __webpack_require__("b622");

var TO_STRING_TAG = wellKnownSymbol('toStringTag');

module.exports = function (it, TAG, STATIC) {
  if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {
    defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });
  }
};


/***/ }),

/***/ "d58f":
/***/ (function(module, exports, __webpack_require__) {

var aFunction = __webpack_require__("1c0b");
var toObject = __webpack_require__("7b0b");
var IndexedObject = __webpack_require__("44ad");
var toLength = __webpack_require__("50c4");

// `Array.prototype.{ reduce, reduceRight }` methods implementation
var createMethod = function (IS_RIGHT) {
  return function (that, callbackfn, argumentsLength, memo) {
    aFunction(callbackfn);
    var O = toObject(that);
    var self = IndexedObject(O);
    var length = toLength(O.length);
    var index = IS_RIGHT ? length - 1 : 0;
    var i = IS_RIGHT ? -1 : 1;
    if (argumentsLength < 2) while (true) {
      if (index in self) {
        memo = self[index];
        index += i;
        break;
      }
      index += i;
      if (IS_RIGHT ? index < 0 : length <= index) {
        throw TypeError('Reduce of empty array with no initial value');
      }
    }
    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {
      memo = callbackfn(memo, self[index], index, O);
    }
    return memo;
  };
};

module.exports = {
  // `Array.prototype.reduce` method
  // https://tc39.es/ecma262/#sec-array.prototype.reduce
  left: createMethod(false),
  // `Array.prototype.reduceRight` method
  // https://tc39.es/ecma262/#sec-array.prototype.reduceright
  right: createMethod(true)
};


/***/ }),

/***/ "d5d6":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var $forEach = __webpack_require__("b727").forEach;

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.forEach` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach
exportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {
  $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
});


/***/ }),

/***/ "d784":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// TODO: Remove from `core-js@4` since it's moved to entry points
__webpack_require__("ac1f");
var redefine = __webpack_require__("6eeb");
var fails = __webpack_require__("d039");
var wellKnownSymbol = __webpack_require__("b622");
var regexpExec = __webpack_require__("9263");
var createNonEnumerableProperty = __webpack_require__("9112");

var SPECIES = wellKnownSymbol('species');

var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
  // #replace needs built-in support for named groups.
  // #match works fine because it just return the exec results, even if it has
  // a "grops" property.
  var re = /./;
  re.exec = function () {
    var result = [];
    result.groups = { a: '7' };
    return result;
  };
  return ''.replace(re, '$<a>') !== '7';
});

// IE <= 11 replaces $0 with the whole match, as if it was $&
// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
var REPLACE_KEEPS_$0 = (function () {
  return 'a'.replace(/./, '$0') === '$0';
})();

var REPLACE = wellKnownSymbol('replace');
// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
  if (/./[REPLACE]) {
    return /./[REPLACE]('a', '$0') === '';
  }
  return false;
})();

// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
// Weex JS has frozen built-in prototypes, so use try / catch wrapper
var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
  var re = /(?:)/;
  var originalExec = re.exec;
  re.exec = function () { return originalExec.apply(this, arguments); };
  var result = 'ab'.split(re);
  return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
});

module.exports = function (KEY, length, exec, sham) {
  var SYMBOL = wellKnownSymbol(KEY);

  var DELEGATES_TO_SYMBOL = !fails(function () {
    // String methods call symbol-named RegEp methods
    var O = {};
    O[SYMBOL] = function () { return 7; };
    return ''[KEY](O) != 7;
  });

  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {
    // Symbol-named RegExp methods call .exec
    var execCalled = false;
    var re = /a/;

    if (KEY === 'split') {
      // We can't use real regex here since it causes deoptimization
      // and serious performance degradation in V8
      // https://github.com/zloirock/core-js/issues/306
      re = {};
      // RegExp[@@split] doesn't call the regex's exec method, but first creates
      // a new one. We need to return the patched regex when creating the new one.
      re.constructor = {};
      re.constructor[SPECIES] = function () { return re; };
      re.flags = '';
      re[SYMBOL] = /./[SYMBOL];
    }

    re.exec = function () { execCalled = true; return null; };

    re[SYMBOL]('');
    return !execCalled;
  });

  if (
    !DELEGATES_TO_SYMBOL ||
    !DELEGATES_TO_EXEC ||
    (KEY === 'replace' && !(
      REPLACE_SUPPORTS_NAMED_GROUPS &&
      REPLACE_KEEPS_$0 &&
      !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
    )) ||
    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
  ) {
    var nativeRegExpMethod = /./[SYMBOL];
    var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
      if (regexp.exec === regexpExec) {
        if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
          // The native String method already delegates to @@method (this
          // polyfilled function), leasing to infinite recursion.
          // We avoid it by directly calling the native @@method method.
          return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
        }
        return { done: true, value: nativeMethod.call(str, regexp, arg2) };
      }
      return { done: false };
    }, {
      REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,
      REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
    });
    var stringMethod = methods[0];
    var regexMethod = methods[1];

    redefine(String.prototype, KEY, stringMethod);
    redefine(RegExp.prototype, SYMBOL, length == 2
      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
      // 21.2.5.11 RegExp.prototype[@@split](string, limit)
      ? function (string, arg) { return regexMethod.call(string, this, arg); }
      // 21.2.5.6 RegExp.prototype[@@match](string)
      // 21.2.5.9 RegExp.prototype[@@search](string)
      : function (string) { return regexMethod.call(string, this); }
    );
  }

  if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);
};


/***/ }),

/***/ "d81d":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var $map = __webpack_require__("b727").map;
var arrayMethodHasSpeciesSupport = __webpack_require__("1dde");
var arrayMethodUsesToLength = __webpack_require__("ae40");

var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');
// FF49- issue
var USES_TO_LENGTH = arrayMethodUsesToLength('map');

// `Array.prototype.map` method
// https://tc39.es/ecma262/#sec-array.prototype.map
// with adding support of @@species
$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
  map: function map(callbackfn /* , thisArg */) {
    return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  }
});


/***/ }),

/***/ "d996":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "da84":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {
  return it && it.Math == Math && it;
};

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
module.exports =
  // eslint-disable-next-line no-undef
  check(typeof globalThis == 'object' && globalThis) ||
  check(typeof window == 'object' && window) ||
  check(typeof self == 'object' && self) ||
  check(typeof global == 'object' && global) ||
  // eslint-disable-next-line no-new-func
  (function () { return this; })() || Function('return this')();

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("c8ba")))

/***/ }),

/***/ "db18":
/***/ (function(module, exports) {

module.exports = __webpack_require__(/*! lamejs */ "./node_modules/lamejs/src/js/index.js");

/***/ }),

/***/ "dbb4":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");
var DESCRIPTORS = __webpack_require__("83ab");
var ownKeys = __webpack_require__("56ef");
var toIndexedObject = __webpack_require__("fc6a");
var getOwnPropertyDescriptorModule = __webpack_require__("06cf");
var createProperty = __webpack_require__("8418");

// `Object.getOwnPropertyDescriptors` method
// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors
$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {
  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
    var O = toIndexedObject(object);
    var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
    var keys = ownKeys(O);
    var result = {};
    var index = 0;
    var key, descriptor;
    while (keys.length > index) {
      descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);
      if (descriptor !== undefined) createProperty(result, key, descriptor);
    }
    return result;
  }
});


/***/ }),

/***/ "ddb0":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");
var DOMIterables = __webpack_require__("fdbc");
var ArrayIteratorMethods = __webpack_require__("e260");
var createNonEnumerableProperty = __webpack_require__("9112");
var wellKnownSymbol = __webpack_require__("b622");

var ITERATOR = wellKnownSymbol('iterator');
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var ArrayValues = ArrayIteratorMethods.values;

for (var COLLECTION_NAME in DOMIterables) {
  var Collection = global[COLLECTION_NAME];
  var CollectionPrototype = Collection && Collection.prototype;
  if (CollectionPrototype) {
    // some Chrome versions have non-configurable methods on DOMTokenList
    if (CollectionPrototype[ITERATOR] !== ArrayValues) try {
      createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);
    } catch (error) {
      CollectionPrototype[ITERATOR] = ArrayValues;
    }
    if (!CollectionPrototype[TO_STRING_TAG]) {
      createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
    }
    if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {
      // some Chrome versions have non-configurable methods on DOMTokenList
      if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {
        createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);
      } catch (error) {
        CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];
      }
    }
  }
}


/***/ }),

/***/ "dddc":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomsList_vue_vue_type_style_index_0_id_0906a622_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ce77");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomsList_vue_vue_type_style_index_0_id_0906a622_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomsList_vue_vue_type_style_index_0_id_0906a622_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "df75":
/***/ (function(module, exports, __webpack_require__) {

var internalObjectKeys = __webpack_require__("ca84");
var enumBugKeys = __webpack_require__("7839");

// `Object.keys` method
// https://tc39.es/ecma262/#sec-object.keys
module.exports = Object.keys || function keys(O) {
  return internalObjectKeys(O, enumBugKeys);
};


/***/ }),

/***/ "e01a":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// `Symbol.prototype.description` getter
// https://tc39.es/ecma262/#sec-symbol.prototype.description

var $ = __webpack_require__("23e7");
var DESCRIPTORS = __webpack_require__("83ab");
var global = __webpack_require__("da84");
var has = __webpack_require__("5135");
var isObject = __webpack_require__("861d");
var defineProperty = __webpack_require__("9bf2").f;
var copyConstructorProperties = __webpack_require__("e893");

var NativeSymbol = global.Symbol;

if (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||
  // Safari 12 bug
  NativeSymbol().description !== undefined
)) {
  var EmptyStringDescriptionStore = {};
  // wrap Symbol constructor for correct work with undefined description
  var SymbolWrapper = function Symbol() {
    var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);
    var result = this instanceof SymbolWrapper
      ? new NativeSymbol(description)
      // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
      : description === undefined ? NativeSymbol() : NativeSymbol(description);
    if (description === '') EmptyStringDescriptionStore[result] = true;
    return result;
  };
  copyConstructorProperties(SymbolWrapper, NativeSymbol);
  var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;
  symbolPrototype.constructor = SymbolWrapper;

  var symbolToString = symbolPrototype.toString;
  var native = String(NativeSymbol('test')) == 'Symbol(test)';
  var regexp = /^Symbol\((.*)\)[^)]+$/;
  defineProperty(symbolPrototype, 'description', {
    configurable: true,
    get: function description() {
      var symbol = isObject(this) ? this.valueOf() : this;
      var string = symbolToString.call(symbol);
      if (has(EmptyStringDescriptionStore, symbol)) return '';
      var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');
      return desc === '' ? undefined : desc;
    }
  });

  $({ global: true, forced: true }, {
    Symbol: SymbolWrapper
  });
}


/***/ }),

/***/ "e163":
/***/ (function(module, exports, __webpack_require__) {

var has = __webpack_require__("5135");
var toObject = __webpack_require__("7b0b");
var sharedKey = __webpack_require__("f772");
var CORRECT_PROTOTYPE_GETTER = __webpack_require__("e177");

var IE_PROTO = sharedKey('IE_PROTO');
var ObjectPrototype = Object.prototype;

// `Object.getPrototypeOf` method
// https://tc39.es/ecma262/#sec-object.getprototypeof
module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
  O = toObject(O);
  if (has(O, IE_PROTO)) return O[IE_PROTO];
  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
    return O.constructor.prototype;
  } return O instanceof Object ? ObjectPrototype : null;
};


/***/ }),

/***/ "e166":
/***/ (function(module, exports, __webpack_require__) {

/*!
 * vue-infinite-loading v2.4.5
 * (c) 2016-2020 PeachScript
 * MIT License
 */
!function(t,e){ true?module.exports=e():undefined}(this,(function(){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)n.d(i,a,function(e){return t[e]}.bind(null,a));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=9)}([function(t,e,n){var i=n(6);"string"==typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);(0,n(3).default)("6223ff68",i,!0,{})},function(t,e,n){var i=n(8);"string"==typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);(0,n(3).default)("27f0e51f",i,!0,{})},function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=function(t,e){var n=t[1]||"",i=t[3];if(!i)return n;if(e&&"function"==typeof btoa){var a=(o=i,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */"),r=i.sources.map((function(t){return"/*# sourceURL="+i.sourceRoot+t+" */"}));return[n].concat(r).concat([a]).join("\n")}var o;return[n].join("\n")}(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n})).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var i={},a=0;a<this.length;a++){var r=this[a][0];"number"==typeof r&&(i[r]=!0)}for(a=0;a<t.length;a++){var o=t[a];"number"==typeof o[0]&&i[o[0]]||(n&&!o[2]?o[2]=n:n&&(o[2]="("+o[2]+") and ("+n+")"),e.push(o))}},e}},function(t,e,n){"use strict";function i(t,e){for(var n=[],i={},a=0;a<e.length;a++){var r=e[a],o=r[0],s={id:t+":"+a,css:r[1],media:r[2],sourceMap:r[3]};i[o]?i[o].parts.push(s):n.push(i[o]={id:o,parts:[s]})}return n}n.r(e),n.d(e,"default",(function(){return f}));var a="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!a)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={},o=a&&(document.head||document.getElementsByTagName("head")[0]),s=null,l=0,d=!1,c=function(){},u=null,p="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function f(t,e,n,a){d=n,u=a||{};var o=i(t,e);return b(o),function(e){for(var n=[],a=0;a<o.length;a++){var s=o[a];(l=r[s.id]).refs--,n.push(l)}e?b(o=i(t,e)):o=[];for(a=0;a<n.length;a++){var l;if(0===(l=n[a]).refs){for(var d=0;d<l.parts.length;d++)l.parts[d]();delete r[l.id]}}}}function b(t){for(var e=0;e<t.length;e++){var n=t[e],i=r[n.id];if(i){i.refs++;for(var a=0;a<i.parts.length;a++)i.parts[a](n.parts[a]);for(;a<n.parts.length;a++)i.parts.push(m(n.parts[a]));i.parts.length>n.parts.length&&(i.parts.length=n.parts.length)}else{var o=[];for(a=0;a<n.parts.length;a++)o.push(m(n.parts[a]));r[n.id]={id:n.id,refs:1,parts:o}}}}function h(){var t=document.createElement("style");return t.type="text/css",o.appendChild(t),t}function m(t){var e,n,i=document.querySelector('style[data-vue-ssr-id~="'+t.id+'"]');if(i){if(d)return c;i.parentNode.removeChild(i)}if(p){var a=l++;i=s||(s=h()),e=w.bind(null,i,a,!1),n=w.bind(null,i,a,!0)}else i=h(),e=y.bind(null,i),n=function(){i.parentNode.removeChild(i)};return e(t),function(i){if(i){if(i.css===t.css&&i.media===t.media&&i.sourceMap===t.sourceMap)return;e(t=i)}else n()}}var g,v=(g=[],function(t,e){return g[t]=e,g.filter(Boolean).join("\n")});function w(t,e,n,i){var a=n?"":i.css;if(t.styleSheet)t.styleSheet.cssText=v(e,a);else{var r=document.createTextNode(a),o=t.childNodes;o[e]&&t.removeChild(o[e]),o.length?t.insertBefore(r,o[e]):t.appendChild(r)}}function y(t,e){var n=e.css,i=e.media,a=e.sourceMap;if(i&&t.setAttribute("media",i),u.ssrId&&t.setAttribute("data-vue-ssr-id",e.id),a&&(n+="\n/*# sourceURL="+a.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */"),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}},function(t,e){function n(e){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?t.exports=n=function(t){return typeof t}:t.exports=n=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(e)}t.exports=n},function(t,e,n){"use strict";n.r(e);var i=n(0),a=n.n(i);for(var r in i)"default"!==r&&function(t){n.d(e,t,(function(){return i[t]}))}(r);e.default=a.a},function(t,e,n){(t.exports=n(2)(!1)).push([t.i,'.loading-wave-dots[data-v-46b20d22]{position:relative}.loading-wave-dots[data-v-46b20d22] .wave-item{position:absolute;top:50%;left:50%;display:inline-block;margin-top:-4px;width:8px;height:8px;border-radius:50%;-webkit-animation:loading-wave-dots-data-v-46b20d22 linear 2.8s infinite;animation:loading-wave-dots-data-v-46b20d22 linear 2.8s infinite}.loading-wave-dots[data-v-46b20d22] .wave-item:first-child{margin-left:-36px}.loading-wave-dots[data-v-46b20d22] .wave-item:nth-child(2){margin-left:-20px;-webkit-animation-delay:.14s;animation-delay:.14s}.loading-wave-dots[data-v-46b20d22] .wave-item:nth-child(3){margin-left:-4px;-webkit-animation-delay:.28s;animation-delay:.28s}.loading-wave-dots[data-v-46b20d22] .wave-item:nth-child(4){margin-left:12px;-webkit-animation-delay:.42s;animation-delay:.42s}.loading-wave-dots[data-v-46b20d22] .wave-item:last-child{margin-left:28px;-webkit-animation-delay:.56s;animation-delay:.56s}@-webkit-keyframes loading-wave-dots-data-v-46b20d22{0%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}10%{-webkit-transform:translateY(-6px);transform:translateY(-6px);background:#999}20%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}to{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}}@keyframes loading-wave-dots-data-v-46b20d22{0%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}10%{-webkit-transform:translateY(-6px);transform:translateY(-6px);background:#999}20%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}to{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}}.loading-circles[data-v-46b20d22] .circle-item{width:5px;height:5px;-webkit-animation:loading-circles-data-v-46b20d22 linear .75s infinite;animation:loading-circles-data-v-46b20d22 linear .75s infinite}.loading-circles[data-v-46b20d22] .circle-item:first-child{margin-top:-14.5px;margin-left:-2.5px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(2){margin-top:-11.26px;margin-left:6.26px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(3){margin-top:-2.5px;margin-left:9.5px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(4){margin-top:6.26px;margin-left:6.26px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(5){margin-top:9.5px;margin-left:-2.5px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(6){margin-top:6.26px;margin-left:-11.26px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(7){margin-top:-2.5px;margin-left:-14.5px}.loading-circles[data-v-46b20d22] .circle-item:last-child{margin-top:-11.26px;margin-left:-11.26px}@-webkit-keyframes loading-circles-data-v-46b20d22{0%{background:#dfdfdf}90%{background:#505050}to{background:#dfdfdf}}@keyframes loading-circles-data-v-46b20d22{0%{background:#dfdfdf}90%{background:#505050}to{background:#dfdfdf}}.loading-bubbles[data-v-46b20d22] .bubble-item{background:#666;-webkit-animation:loading-bubbles-data-v-46b20d22 linear .75s infinite;animation:loading-bubbles-data-v-46b20d22 linear .75s infinite}.loading-bubbles[data-v-46b20d22] .bubble-item:first-child{margin-top:-12.5px;margin-left:-.5px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(2){margin-top:-9.26px;margin-left:8.26px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(3){margin-top:-.5px;margin-left:11.5px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(4){margin-top:8.26px;margin-left:8.26px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(5){margin-top:11.5px;margin-left:-.5px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(6){margin-top:8.26px;margin-left:-9.26px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(7){margin-top:-.5px;margin-left:-12.5px}.loading-bubbles[data-v-46b20d22] .bubble-item:last-child{margin-top:-9.26px;margin-left:-9.26px}@-webkit-keyframes loading-bubbles-data-v-46b20d22{0%{width:1px;height:1px;box-shadow:0 0 0 3px #666}90%{width:1px;height:1px;box-shadow:0 0 0 0 #666}to{width:1px;height:1px;box-shadow:0 0 0 3px #666}}@keyframes loading-bubbles-data-v-46b20d22{0%{width:1px;height:1px;box-shadow:0 0 0 3px #666}90%{width:1px;height:1px;box-shadow:0 0 0 0 #666}to{width:1px;height:1px;box-shadow:0 0 0 3px #666}}.loading-default[data-v-46b20d22]{position:relative;border:1px solid #999;-webkit-animation:loading-rotating-data-v-46b20d22 ease 1.5s infinite;animation:loading-rotating-data-v-46b20d22 ease 1.5s infinite}.loading-default[data-v-46b20d22]:before{content:"";position:absolute;display:block;top:0;left:50%;margin-top:-3px;margin-left:-3px;width:6px;height:6px;background-color:#999;border-radius:50%}.loading-spiral[data-v-46b20d22]{border:2px solid #777;border-right-color:transparent;-webkit-animation:loading-rotating-data-v-46b20d22 linear .85s infinite;animation:loading-rotating-data-v-46b20d22 linear .85s infinite}@-webkit-keyframes loading-rotating-data-v-46b20d22{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotating-data-v-46b20d22{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-bubbles[data-v-46b20d22],.loading-circles[data-v-46b20d22]{position:relative}.loading-bubbles[data-v-46b20d22] .bubble-item,.loading-circles[data-v-46b20d22] .circle-item{position:absolute;top:50%;left:50%;display:inline-block;border-radius:50%}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(2),.loading-circles[data-v-46b20d22] .circle-item:nth-child(2){-webkit-animation-delay:93ms;animation-delay:93ms}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(3),.loading-circles[data-v-46b20d22] .circle-item:nth-child(3){-webkit-animation-delay:.186s;animation-delay:.186s}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(4),.loading-circles[data-v-46b20d22] .circle-item:nth-child(4){-webkit-animation-delay:.279s;animation-delay:.279s}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(5),.loading-circles[data-v-46b20d22] .circle-item:nth-child(5){-webkit-animation-delay:.372s;animation-delay:.372s}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(6),.loading-circles[data-v-46b20d22] .circle-item:nth-child(6){-webkit-animation-delay:.465s;animation-delay:.465s}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(7),.loading-circles[data-v-46b20d22] .circle-item:nth-child(7){-webkit-animation-delay:.558s;animation-delay:.558s}.loading-bubbles[data-v-46b20d22] .bubble-item:last-child,.loading-circles[data-v-46b20d22] .circle-item:last-child{-webkit-animation-delay:.651s;animation-delay:.651s}',""])},function(t,e,n){"use strict";n.r(e);var i=n(1),a=n.n(i);for(var r in i)"default"!==r&&function(t){n.d(e,t,(function(){return i[t]}))}(r);e.default=a.a},function(t,e,n){(t.exports=n(2)(!1)).push([t.i,".infinite-loading-container[data-v-644ea9c9]{clear:both;text-align:center}.infinite-loading-container[data-v-644ea9c9] [class^=loading-]{display:inline-block;margin:5px 0;width:28px;height:28px;font-size:28px;line-height:28px;border-radius:50%}.btn-try-infinite[data-v-644ea9c9]{margin-top:5px;padding:5px 10px;color:#999;font-size:14px;line-height:1;background:transparent;border:1px solid #ccc;border-radius:3px;outline:none;cursor:pointer}.btn-try-infinite[data-v-644ea9c9]:not(:active):hover{opacity:.8}",""])},function(t,e,n){"use strict";n.r(e);var i={throttleLimit:50,loopCheckTimeout:1e3,loopCheckMaxCalls:10},a=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){return t={passive:!0},!0}});window.addEventListener("testpassive",e,e),window.remove("testpassive",e,e)}catch(t){}return t}(),r={STATE_CHANGER:["emit `loaded` and `complete` event through component instance of `$refs` may cause error, so it will be deprecated soon, please use the `$state` argument instead (`$state` just the special `$event` variable):","\ntemplate:",'<infinite-loading @infinite="infiniteHandler"></infinite-loading>',"\nscript:\n...\ninfiniteHandler($state) {\n  ajax('https://www.example.com/api/news')\n    .then((res) => {\n      if (res.data.length) {\n        $state.loaded();\n      } else {\n        $state.complete();\n      }\n    });\n}\n...","","more details: https://github.com/PeachScript/vue-infinite-loading/issues/57#issuecomment-324370549"].join("\n"),INFINITE_EVENT:"`:on-infinite` property will be deprecated soon, please use `@infinite` event instead.",IDENTIFIER:"the `reset` event will be deprecated soon, please reset this component by change the `identifier` property."},o={INFINITE_LOOP:["executed the callback function more than ".concat(i.loopCheckMaxCalls," times for a short time, it looks like searched a wrong scroll wrapper that doest not has fixed height or maximum height, please check it. If you want to force to set a element as scroll wrapper ranther than automatic searching, you can do this:"),'\n\x3c!-- add a special attribute for the real scroll wrapper --\x3e\n<div infinite-wrapper>\n  ...\n  \x3c!-- set force-use-infinite-wrapper --\x3e\n  <infinite-loading force-use-infinite-wrapper></infinite-loading>\n</div>\nor\n<div class="infinite-wrapper">\n  ...\n  \x3c!-- set force-use-infinite-wrapper as css selector of the real scroll wrapper --\x3e\n  <infinite-loading force-use-infinite-wrapper=".infinite-wrapper"></infinite-loading>\n</div>\n    ',"more details: https://github.com/PeachScript/vue-infinite-loading/issues/55#issuecomment-316934169"].join("\n")},s={READY:0,LOADING:1,COMPLETE:2,ERROR:3},l={color:"#666",fontSize:"14px",padding:"10px 0"},d={mode:"development",props:{spinner:"default",distance:100,forceUseInfiniteWrapper:!1},system:i,slots:{noResults:"No results :(",noMore:"No more data :)",error:"Opps, something went wrong :(",errorBtnText:"Retry",spinner:""},WARNINGS:r,ERRORS:o,STATUS:s},c=n(4),u=n.n(c),p={BUBBLES:{render:function(t){return t("span",{attrs:{class:"loading-bubbles"}},Array.apply(Array,Array(8)).map((function(){return t("span",{attrs:{class:"bubble-item"}})})))}},CIRCLES:{render:function(t){return t("span",{attrs:{class:"loading-circles"}},Array.apply(Array,Array(8)).map((function(){return t("span",{attrs:{class:"circle-item"}})})))}},DEFAULT:{render:function(t){return t("i",{attrs:{class:"loading-default"}})}},SPIRAL:{render:function(t){return t("i",{attrs:{class:"loading-spiral"}})}},WAVEDOTS:{render:function(t){return t("span",{attrs:{class:"loading-wave-dots"}},Array.apply(Array,Array(5)).map((function(){return t("span",{attrs:{class:"wave-item"}})})))}}};function f(t,e,n,i,a,r,o,s){var l,d="function"==typeof t?t.options:t;if(e&&(d.render=e,d.staticRenderFns=n,d._compiled=!0),i&&(d.functional=!0),r&&(d._scopeId="data-v-"+r),o?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},d._ssrRegister=l):a&&(l=s?function(){a.call(this,this.$root.$options.shadowRoot)}:a),l)if(d.functional){d._injectStyles=l;var c=d.render;d.render=function(t,e){return l.call(e),c(t,e)}}else{var u=d.beforeCreate;d.beforeCreate=u?[].concat(u,l):[l]}return{exports:t,options:d}}var b=f({name:"Spinner",computed:{spinnerView:function(){return p[(this.$attrs.spinner||"").toUpperCase()]||this.spinnerInConfig},spinnerInConfig:function(){return d.slots.spinner&&"string"==typeof d.slots.spinner?{render:function(){return this._v(d.slots.spinner)}}:"object"===u()(d.slots.spinner)?d.slots.spinner:p[d.props.spinner.toUpperCase()]||p.DEFAULT}}},(function(){var t=this.$createElement;return(this._self._c||t)(this.spinnerView,{tag:"component"})}),[],!1,(function(t){var e=n(5);e.__inject__&&e.__inject__(t)}),"46b20d22",null).exports;function h(t){"production"!==d.mode&&console.warn("[Vue-infinite-loading warn]: ".concat(t))}function m(t){console.error("[Vue-infinite-loading error]: ".concat(t))}var g={timers:[],caches:[],throttle:function(t){var e=this;-1===this.caches.indexOf(t)&&(this.caches.push(t),this.timers.push(setTimeout((function(){t(),e.caches.splice(e.caches.indexOf(t),1),e.timers.shift()}),d.system.throttleLimit)))},reset:function(){this.timers.forEach((function(t){clearTimeout(t)})),this.timers.length=0,this.caches=[]}},v={isChecked:!1,timer:null,times:0,track:function(){var t=this;this.times+=1,clearTimeout(this.timer),this.timer=setTimeout((function(){t.isChecked=!0}),d.system.loopCheckTimeout),this.times>d.system.loopCheckMaxCalls&&(m(o.INFINITE_LOOP),this.isChecked=!0)}},w={key:"_infiniteScrollHeight",getScrollElm:function(t){return t===window?document.documentElement:t},save:function(t){var e=this.getScrollElm(t);e[this.key]=e.scrollHeight},restore:function(t){var e=this.getScrollElm(t);"number"==typeof e[this.key]&&(e.scrollTop=e.scrollHeight-e[this.key]+e.scrollTop),this.remove(e)},remove:function(t){void 0!==t[this.key]&&delete t[this.key]}};function y(t){return t.replace(/[A-Z]/g,(function(t){return"-".concat(t.toLowerCase())}))}function x(t){return t.offsetWidth+t.offsetHeight>0}var k=f({name:"InfiniteLoading",data:function(){return{scrollParent:null,scrollHandler:null,isFirstLoad:!0,status:s.READY,slots:d.slots}},components:{Spinner:b},computed:{isShowSpinner:function(){return this.status===s.LOADING},isShowError:function(){return this.status===s.ERROR},isShowNoResults:function(){return this.status===s.COMPLETE&&this.isFirstLoad},isShowNoMore:function(){return this.status===s.COMPLETE&&!this.isFirstLoad},slotStyles:function(){var t=this,e={};return Object.keys(d.slots).forEach((function(n){var i=y(n);(!t.$slots[i]&&!d.slots[n].render||t.$slots[i]&&!t.$slots[i][0].tag)&&(e[n]=l)})),e}},props:{distance:{type:Number,default:d.props.distance},spinner:String,direction:{type:String,default:"bottom"},forceUseInfiniteWrapper:{type:[Boolean,String],default:d.props.forceUseInfiniteWrapper},identifier:{default:+new Date},onInfinite:Function},watch:{identifier:function(){this.stateChanger.reset()}},mounted:function(){var t=this;this.$watch("forceUseInfiniteWrapper",(function(){t.scrollParent=t.getScrollParent()}),{immediate:!0}),this.scrollHandler=function(e){t.status===s.READY&&(e&&e.constructor===Event&&x(t.$el)?g.throttle(t.attemptLoad):t.attemptLoad())},setTimeout((function(){t.scrollHandler(),t.scrollParent.addEventListener("scroll",t.scrollHandler,a)}),1),this.$on("$InfiniteLoading:loaded",(function(e){t.isFirstLoad=!1,"top"===t.direction&&t.$nextTick((function(){w.restore(t.scrollParent)})),t.status===s.LOADING&&t.$nextTick(t.attemptLoad.bind(null,!0)),e&&e.target===t||h(r.STATE_CHANGER)})),this.$on("$InfiniteLoading:complete",(function(e){t.status=s.COMPLETE,t.$nextTick((function(){t.$forceUpdate()})),t.scrollParent.removeEventListener("scroll",t.scrollHandler,a),e&&e.target===t||h(r.STATE_CHANGER)})),this.$on("$InfiniteLoading:reset",(function(e){t.status=s.READY,t.isFirstLoad=!0,w.remove(t.scrollParent),t.scrollParent.addEventListener("scroll",t.scrollHandler,a),setTimeout((function(){g.reset(),t.scrollHandler()}),1),e&&e.target===t||h(r.IDENTIFIER)})),this.stateChanger={loaded:function(){t.$emit("$InfiniteLoading:loaded",{target:t})},complete:function(){t.$emit("$InfiniteLoading:complete",{target:t})},reset:function(){t.$emit("$InfiniteLoading:reset",{target:t})},error:function(){t.status=s.ERROR,g.reset()}},this.onInfinite&&h(r.INFINITE_EVENT)},deactivated:function(){this.status===s.LOADING&&(this.status=s.READY),this.scrollParent.removeEventListener("scroll",this.scrollHandler,a)},activated:function(){this.scrollParent.addEventListener("scroll",this.scrollHandler,a)},methods:{attemptLoad:function(t){var e=this;this.status!==s.COMPLETE&&x(this.$el)&&this.getCurrentDistance()<=this.distance?(this.status=s.LOADING,"top"===this.direction&&this.$nextTick((function(){w.save(e.scrollParent)})),"function"==typeof this.onInfinite?this.onInfinite.call(null,this.stateChanger):this.$emit("infinite",this.stateChanger),!t||this.forceUseInfiniteWrapper||v.isChecked||v.track()):this.status===s.LOADING&&(this.status=s.READY)},getCurrentDistance:function(){var t;"top"===this.direction?t="number"==typeof this.scrollParent.scrollTop?this.scrollParent.scrollTop:this.scrollParent.pageYOffset:t=this.$el.getBoundingClientRect().top-(this.scrollParent===window?window.innerHeight:this.scrollParent.getBoundingClientRect().bottom);return t},getScrollParent:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.$el;return"string"==typeof this.forceUseInfiniteWrapper&&(t=document.querySelector(this.forceUseInfiniteWrapper)),t||("BODY"===e.tagName?t=window:!this.forceUseInfiniteWrapper&&["scroll","auto"].indexOf(getComputedStyle(e).overflowY)>-1?t=e:(e.hasAttribute("infinite-wrapper")||e.hasAttribute("data-infinite-wrapper"))&&(t=e)),t||this.getScrollParent(e.parentNode)}},destroyed:function(){!this.status!==s.COMPLETE&&(g.reset(),w.remove(this.scrollParent),this.scrollParent.removeEventListener("scroll",this.scrollHandler,a))}},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"infinite-loading-container"},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.isShowSpinner,expression:"isShowSpinner"}],staticClass:"infinite-status-prompt",style:t.slotStyles.spinner},[t._t("spinner",[n("spinner",{attrs:{spinner:t.spinner}})])],2),t._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:t.isShowNoResults,expression:"isShowNoResults"}],staticClass:"infinite-status-prompt",style:t.slotStyles.noResults},[t._t("no-results",[t.slots.noResults.render?n(t.slots.noResults,{tag:"component"}):[t._v(t._s(t.slots.noResults))]])],2),t._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:t.isShowNoMore,expression:"isShowNoMore"}],staticClass:"infinite-status-prompt",style:t.slotStyles.noMore},[t._t("no-more",[t.slots.noMore.render?n(t.slots.noMore,{tag:"component"}):[t._v(t._s(t.slots.noMore))]])],2),t._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:t.isShowError,expression:"isShowError"}],staticClass:"infinite-status-prompt",style:t.slotStyles.error},[t._t("error",[t.slots.error.render?n(t.slots.error,{tag:"component",attrs:{trigger:t.attemptLoad}}):[t._v("\n        "+t._s(t.slots.error)+"\n        "),n("br"),t._v(" "),n("button",{staticClass:"btn-try-infinite",domProps:{textContent:t._s(t.slots.errorBtnText)},on:{click:t.attemptLoad}})]],{trigger:t.attemptLoad})],2)])}),[],!1,(function(t){var e=n(7);e.__inject__&&e.__inject__(t)}),"644ea9c9",null).exports;function E(t){d.mode=t.config.productionTip?"development":"production"}Object.defineProperty(k,"install",{configurable:!1,enumerable:!1,value:function(t,e){Object.assign(d.props,e&&e.props),Object.assign(d.slots,e&&e.slots),Object.assign(d.system,e&&e.system),t.component("infinite-loading",k),E(t)}}),"undefined"!=typeof window&&window.Vue&&(window.Vue.component("infinite-loading",k),E(window.Vue));e.default=k}])}));

/***/ }),

/***/ "e177":
/***/ (function(module, exports, __webpack_require__) {

var fails = __webpack_require__("d039");

module.exports = !fails(function () {
  function F() { /* empty */ }
  F.prototype.constructor = null;
  return Object.getPrototypeOf(new F()) !== F.prototype;
});


/***/ }),

/***/ "e260":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var toIndexedObject = __webpack_require__("fc6a");
var addToUnscopables = __webpack_require__("44d2");
var Iterators = __webpack_require__("3f8c");
var InternalStateModule = __webpack_require__("69f3");
var defineIterator = __webpack_require__("7dd0");

var ARRAY_ITERATOR = 'Array Iterator';
var setInternalState = InternalStateModule.set;
var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);

// `Array.prototype.entries` method
// https://tc39.es/ecma262/#sec-array.prototype.entries
// `Array.prototype.keys` method
// https://tc39.es/ecma262/#sec-array.prototype.keys
// `Array.prototype.values` method
// https://tc39.es/ecma262/#sec-array.prototype.values
// `Array.prototype[@@iterator]` method
// https://tc39.es/ecma262/#sec-array.prototype-@@iterator
// `CreateArrayIterator` internal method
// https://tc39.es/ecma262/#sec-createarrayiterator
module.exports = defineIterator(Array, 'Array', function (iterated, kind) {
  setInternalState(this, {
    type: ARRAY_ITERATOR,
    target: toIndexedObject(iterated), // target
    index: 0,                          // next index
    kind: kind                         // kind
  });
// `%ArrayIteratorPrototype%.next` method
// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next
}, function () {
  var state = getInternalState(this);
  var target = state.target;
  var kind = state.kind;
  var index = state.index++;
  if (!target || index >= target.length) {
    state.target = undefined;
    return { value: undefined, done: true };
  }
  if (kind == 'keys') return { value: index, done: false };
  if (kind == 'values') return { value: target[index], done: false };
  return { value: [index, target[index]], done: false };
}, 'values');

// argumentsList[@@iterator] is %ArrayProto_values%
// https://tc39.es/ecma262/#sec-createunmappedargumentsobject
// https://tc39.es/ecma262/#sec-createmappedargumentsobject
Iterators.Arguments = Iterators.Array;

// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');


/***/ }),

/***/ "e2cc":
/***/ (function(module, exports, __webpack_require__) {

var redefine = __webpack_require__("6eeb");

module.exports = function (target, src, options) {
  for (var key in src) redefine(target, key, src[key], options);
  return target;
};


/***/ }),

/***/ "e3b2":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "e3f7":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "e439":
/***/ (function(module, exports, __webpack_require__) {

var $ = __webpack_require__("23e7");
var fails = __webpack_require__("d039");
var toIndexedObject = __webpack_require__("fc6a");
var nativeGetOwnPropertyDescriptor = __webpack_require__("06cf").f;
var DESCRIPTORS = __webpack_require__("83ab");

var FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });
var FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;

// `Object.getOwnPropertyDescriptor` method
// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {
  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {
    return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);
  }
});


/***/ }),

/***/ "e538":
/***/ (function(module, exports, __webpack_require__) {

var wellKnownSymbol = __webpack_require__("b622");

exports.f = wellKnownSymbol;


/***/ }),

/***/ "e58c":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var toIndexedObject = __webpack_require__("fc6a");
var toInteger = __webpack_require__("a691");
var toLength = __webpack_require__("50c4");
var arrayMethodIsStrict = __webpack_require__("a640");
var arrayMethodUsesToLength = __webpack_require__("ae40");

var min = Math.min;
var nativeLastIndexOf = [].lastIndexOf;
var NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;
var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');
// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method
var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
var FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;

// `Array.prototype.lastIndexOf` method implementation
// https://tc39.es/ecma262/#sec-array.prototype.lastindexof
module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
  // convert -0 to +0
  if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;
  var O = toIndexedObject(this);
  var length = toLength(O.length);
  var index = length - 1;
  if (arguments.length > 1) index = min(index, toInteger(arguments[1]));
  if (index < 0) index = length + index;
  for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;
  return -1;
} : nativeLastIndexOf;


/***/ }),

/***/ "e667":
/***/ (function(module, exports) {

module.exports = function (exec) {
  try {
    return { error: false, value: exec() };
  } catch (error) {
    return { error: true, value: error };
  }
};


/***/ }),

/***/ "e6cf":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var IS_PURE = __webpack_require__("c430");
var global = __webpack_require__("da84");
var getBuiltIn = __webpack_require__("d066");
var NativePromise = __webpack_require__("fea9");
var redefine = __webpack_require__("6eeb");
var redefineAll = __webpack_require__("e2cc");
var setToStringTag = __webpack_require__("d44e");
var setSpecies = __webpack_require__("2626");
var isObject = __webpack_require__("861d");
var aFunction = __webpack_require__("1c0b");
var anInstance = __webpack_require__("19aa");
var inspectSource = __webpack_require__("8925");
var iterate = __webpack_require__("2266");
var checkCorrectnessOfIteration = __webpack_require__("1c7e");
var speciesConstructor = __webpack_require__("4840");
var task = __webpack_require__("2cf4").set;
var microtask = __webpack_require__("b575");
var promiseResolve = __webpack_require__("cdf9");
var hostReportErrors = __webpack_require__("44de");
var newPromiseCapabilityModule = __webpack_require__("f069");
var perform = __webpack_require__("e667");
var InternalStateModule = __webpack_require__("69f3");
var isForced = __webpack_require__("94ca");
var wellKnownSymbol = __webpack_require__("b622");
var IS_NODE = __webpack_require__("605d");
var V8_VERSION = __webpack_require__("2d00");

var SPECIES = wellKnownSymbol('species');
var PROMISE = 'Promise';
var getInternalState = InternalStateModule.get;
var setInternalState = InternalStateModule.set;
var getInternalPromiseState = InternalStateModule.getterFor(PROMISE);
var PromiseConstructor = NativePromise;
var TypeError = global.TypeError;
var document = global.document;
var process = global.process;
var $fetch = getBuiltIn('fetch');
var newPromiseCapability = newPromiseCapabilityModule.f;
var newGenericPromiseCapability = newPromiseCapability;
var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);
var NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';
var UNHANDLED_REJECTION = 'unhandledrejection';
var REJECTION_HANDLED = 'rejectionhandled';
var PENDING = 0;
var FULFILLED = 1;
var REJECTED = 2;
var HANDLED = 1;
var UNHANDLED = 2;
var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;

var FORCED = isForced(PROMISE, function () {
  var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);
  if (!GLOBAL_CORE_JS_PROMISE) {
    // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
    // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
    // We can't detect it synchronously, so just check versions
    if (V8_VERSION === 66) return true;
    // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test
    if (!IS_NODE && !NATIVE_REJECTION_EVENT) return true;
  }
  // We need Promise#finally in the pure version for preventing prototype pollution
  if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;
  // We can't use @@species feature detection in V8 since it causes
  // deoptimization and performance degradation
  // https://github.com/zloirock/core-js/issues/679
  if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;
  // Detect correctness of subclassing with @@species support
  var promise = PromiseConstructor.resolve(1);
  var FakePromise = function (exec) {
    exec(function () { /* empty */ }, function () { /* empty */ });
  };
  var constructor = promise.constructor = {};
  constructor[SPECIES] = FakePromise;
  return !(promise.then(function () { /* empty */ }) instanceof FakePromise);
});

var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {
  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });
});

// helpers
var isThenable = function (it) {
  var then;
  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};

var notify = function (state, isReject) {
  if (state.notified) return;
  state.notified = true;
  var chain = state.reactions;
  microtask(function () {
    var value = state.value;
    var ok = state.state == FULFILLED;
    var index = 0;
    // variable length - can't use forEach
    while (chain.length > index) {
      var reaction = chain[index++];
      var handler = ok ? reaction.ok : reaction.fail;
      var resolve = reaction.resolve;
      var reject = reaction.reject;
      var domain = reaction.domain;
      var result, then, exited;
      try {
        if (handler) {
          if (!ok) {
            if (state.rejection === UNHANDLED) onHandleUnhandled(state);
            state.rejection = HANDLED;
          }
          if (handler === true) result = value;
          else {
            if (domain) domain.enter();
            result = handler(value); // can throw
            if (domain) {
              domain.exit();
              exited = true;
            }
          }
          if (result === reaction.promise) {
            reject(TypeError('Promise-chain cycle'));
          } else if (then = isThenable(result)) {
            then.call(result, resolve, reject);
          } else resolve(result);
        } else reject(value);
      } catch (error) {
        if (domain && !exited) domain.exit();
        reject(error);
      }
    }
    state.reactions = [];
    state.notified = false;
    if (isReject && !state.rejection) onUnhandled(state);
  });
};

var dispatchEvent = function (name, promise, reason) {
  var event, handler;
  if (DISPATCH_EVENT) {
    event = document.createEvent('Event');
    event.promise = promise;
    event.reason = reason;
    event.initEvent(name, false, true);
    global.dispatchEvent(event);
  } else event = { promise: promise, reason: reason };
  if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);
  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);
};

var onUnhandled = function (state) {
  task.call(global, function () {
    var promise = state.facade;
    var value = state.value;
    var IS_UNHANDLED = isUnhandled(state);
    var result;
    if (IS_UNHANDLED) {
      result = perform(function () {
        if (IS_NODE) {
          process.emit('unhandledRejection', value, promise);
        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);
      });
      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;
      if (result.error) throw result.value;
    }
  });
};

var isUnhandled = function (state) {
  return state.rejection !== HANDLED && !state.parent;
};

var onHandleUnhandled = function (state) {
  task.call(global, function () {
    var promise = state.facade;
    if (IS_NODE) {
      process.emit('rejectionHandled', promise);
    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);
  });
};

var bind = function (fn, state, unwrap) {
  return function (value) {
    fn(state, value, unwrap);
  };
};

var internalReject = function (state, value, unwrap) {
  if (state.done) return;
  state.done = true;
  if (unwrap) state = unwrap;
  state.value = value;
  state.state = REJECTED;
  notify(state, true);
};

var internalResolve = function (state, value, unwrap) {
  if (state.done) return;
  state.done = true;
  if (unwrap) state = unwrap;
  try {
    if (state.facade === value) throw TypeError("Promise can't be resolved itself");
    var then = isThenable(value);
    if (then) {
      microtask(function () {
        var wrapper = { done: false };
        try {
          then.call(value,
            bind(internalResolve, wrapper, state),
            bind(internalReject, wrapper, state)
          );
        } catch (error) {
          internalReject(wrapper, error, state);
        }
      });
    } else {
      state.value = value;
      state.state = FULFILLED;
      notify(state, false);
    }
  } catch (error) {
    internalReject({ done: false }, error, state);
  }
};

// constructor polyfill
if (FORCED) {
  // 25.4.3.1 Promise(executor)
  PromiseConstructor = function Promise(executor) {
    anInstance(this, PromiseConstructor, PROMISE);
    aFunction(executor);
    Internal.call(this);
    var state = getInternalState(this);
    try {
      executor(bind(internalResolve, state), bind(internalReject, state));
    } catch (error) {
      internalReject(state, error);
    }
  };
  // eslint-disable-next-line no-unused-vars
  Internal = function Promise(executor) {
    setInternalState(this, {
      type: PROMISE,
      done: false,
      notified: false,
      parent: false,
      reactions: [],
      rejection: false,
      state: PENDING,
      value: undefined
    });
  };
  Internal.prototype = redefineAll(PromiseConstructor.prototype, {
    // `Promise.prototype.then` method
    // https://tc39.es/ecma262/#sec-promise.prototype.then
    then: function then(onFulfilled, onRejected) {
      var state = getInternalPromiseState(this);
      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
      reaction.fail = typeof onRejected == 'function' && onRejected;
      reaction.domain = IS_NODE ? process.domain : undefined;
      state.parent = true;
      state.reactions.push(reaction);
      if (state.state != PENDING) notify(state, false);
      return reaction.promise;
    },
    // `Promise.prototype.catch` method
    // https://tc39.es/ecma262/#sec-promise.prototype.catch
    'catch': function (onRejected) {
      return this.then(undefined, onRejected);
    }
  });
  OwnPromiseCapability = function () {
    var promise = new Internal();
    var state = getInternalState(promise);
    this.promise = promise;
    this.resolve = bind(internalResolve, state);
    this.reject = bind(internalReject, state);
  };
  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
    return C === PromiseConstructor || C === PromiseWrapper
      ? new OwnPromiseCapability(C)
      : newGenericPromiseCapability(C);
  };

  if (!IS_PURE && typeof NativePromise == 'function') {
    nativeThen = NativePromise.prototype.then;

    // wrap native Promise#then for native async functions
    redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {
      var that = this;
      return new PromiseConstructor(function (resolve, reject) {
        nativeThen.call(that, resolve, reject);
      }).then(onFulfilled, onRejected);
    // https://github.com/zloirock/core-js/issues/640
    }, { unsafe: true });

    // wrap fetch result
    if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {
      // eslint-disable-next-line no-unused-vars
      fetch: function fetch(input /* , init */) {
        return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));
      }
    });
  }
}

$({ global: true, wrap: true, forced: FORCED }, {
  Promise: PromiseConstructor
});

setToStringTag(PromiseConstructor, PROMISE, false, true);
setSpecies(PROMISE);

PromiseWrapper = getBuiltIn(PROMISE);

// statics
$({ target: PROMISE, stat: true, forced: FORCED }, {
  // `Promise.reject` method
  // https://tc39.es/ecma262/#sec-promise.reject
  reject: function reject(r) {
    var capability = newPromiseCapability(this);
    capability.reject.call(undefined, r);
    return capability.promise;
  }
});

$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {
  // `Promise.resolve` method
  // https://tc39.es/ecma262/#sec-promise.resolve
  resolve: function resolve(x) {
    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);
  }
});

$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
  // `Promise.all` method
  // https://tc39.es/ecma262/#sec-promise.all
  all: function all(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var resolve = capability.resolve;
    var reject = capability.reject;
    var result = perform(function () {
      var $promiseResolve = aFunction(C.resolve);
      var values = [];
      var counter = 0;
      var remaining = 1;
      iterate(iterable, function (promise) {
        var index = counter++;
        var alreadyCalled = false;
        values.push(undefined);
        remaining++;
        $promiseResolve.call(C, promise).then(function (value) {
          if (alreadyCalled) return;
          alreadyCalled = true;
          values[index] = value;
          --remaining || resolve(values);
        }, reject);
      });
      --remaining || resolve(values);
    });
    if (result.error) reject(result.value);
    return capability.promise;
  },
  // `Promise.race` method
  // https://tc39.es/ecma262/#sec-promise.race
  race: function race(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var reject = capability.reject;
    var result = perform(function () {
      var $promiseResolve = aFunction(C.resolve);
      iterate(iterable, function (promise) {
        $promiseResolve.call(C, promise).then(capability.resolve, reject);
      });
    });
    if (result.error) reject(result.value);
    return capability.promise;
  }
});


/***/ }),

/***/ "e7fc":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomContent_vue_vue_type_style_index_0_id_0060733d_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("893f");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomContent_vue_vue_type_style_index_0_id_0060733d_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomContent_vue_vue_type_style_index_0_id_0060733d_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "e893":
/***/ (function(module, exports, __webpack_require__) {

var has = __webpack_require__("5135");
var ownKeys = __webpack_require__("56ef");
var getOwnPropertyDescriptorModule = __webpack_require__("06cf");
var definePropertyModule = __webpack_require__("9bf2");

module.exports = function (target, source) {
  var keys = ownKeys(source);
  var defineProperty = definePropertyModule.f;
  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
  for (var i = 0; i < keys.length; i++) {
    var key = keys[i];
    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
  }
};


/***/ }),

/***/ "e8b5":
/***/ (function(module, exports, __webpack_require__) {

var classof = __webpack_require__("c6b6");

// `IsArray` abstract operation
// https://tc39.es/ecma262/#sec-isarray
module.exports = Array.isArray || function isArray(arg) {
  return classof(arg) == 'Array';
};


/***/ }),

/***/ "e91f":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ArrayBufferViewCore = __webpack_require__("ebb5");
var $indexOf = __webpack_require__("4d64").indexOf;

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.indexOf` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof
exportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {
  return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
});


/***/ }),

/***/ "e95a":
/***/ (function(module, exports, __webpack_require__) {

var wellKnownSymbol = __webpack_require__("b622");
var Iterators = __webpack_require__("3f8c");

var ITERATOR = wellKnownSymbol('iterator');
var ArrayPrototype = Array.prototype;

// check on default Array iterator
module.exports = function (it) {
  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
};


/***/ }),

/***/ "eb6c":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "ebb5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var NATIVE_ARRAY_BUFFER = __webpack_require__("a981");
var DESCRIPTORS = __webpack_require__("83ab");
var global = __webpack_require__("da84");
var isObject = __webpack_require__("861d");
var has = __webpack_require__("5135");
var classof = __webpack_require__("f5df");
var createNonEnumerableProperty = __webpack_require__("9112");
var redefine = __webpack_require__("6eeb");
var defineProperty = __webpack_require__("9bf2").f;
var getPrototypeOf = __webpack_require__("e163");
var setPrototypeOf = __webpack_require__("d2bb");
var wellKnownSymbol = __webpack_require__("b622");
var uid = __webpack_require__("90e3");

var Int8Array = global.Int8Array;
var Int8ArrayPrototype = Int8Array && Int8Array.prototype;
var Uint8ClampedArray = global.Uint8ClampedArray;
var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;
var TypedArray = Int8Array && getPrototypeOf(Int8Array);
var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);
var ObjectPrototype = Object.prototype;
var isPrototypeOf = ObjectPrototype.isPrototypeOf;

var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');
// Fixing native typed arrays in Opera Presto crashes the browser, see #595
var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';
var TYPED_ARRAY_TAG_REQIRED = false;
var NAME;

var TypedArrayConstructorsList = {
  Int8Array: 1,
  Uint8Array: 1,
  Uint8ClampedArray: 1,
  Int16Array: 2,
  Uint16Array: 2,
  Int32Array: 4,
  Uint32Array: 4,
  Float32Array: 4,
  Float64Array: 8
};

var BigIntArrayConstructorsList = {
  BigInt64Array: 8,
  BigUint64Array: 8
};

var isView = function isView(it) {
  if (!isObject(it)) return false;
  var klass = classof(it);
  return klass === 'DataView'
    || has(TypedArrayConstructorsList, klass)
    || has(BigIntArrayConstructorsList, klass);
};

var isTypedArray = function (it) {
  if (!isObject(it)) return false;
  var klass = classof(it);
  return has(TypedArrayConstructorsList, klass)
    || has(BigIntArrayConstructorsList, klass);
};

var aTypedArray = function (it) {
  if (isTypedArray(it)) return it;
  throw TypeError('Target is not a typed array');
};

var aTypedArrayConstructor = function (C) {
  if (setPrototypeOf) {
    if (isPrototypeOf.call(TypedArray, C)) return C;
  } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {
    var TypedArrayConstructor = global[ARRAY];
    if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {
      return C;
    }
  } throw TypeError('Target is not a typed array constructor');
};

var exportTypedArrayMethod = function (KEY, property, forced) {
  if (!DESCRIPTORS) return;
  if (forced) for (var ARRAY in TypedArrayConstructorsList) {
    var TypedArrayConstructor = global[ARRAY];
    if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {
      delete TypedArrayConstructor.prototype[KEY];
    }
  }
  if (!TypedArrayPrototype[KEY] || forced) {
    redefine(TypedArrayPrototype, KEY, forced ? property
      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);
  }
};

var exportTypedArrayStaticMethod = function (KEY, property, forced) {
  var ARRAY, TypedArrayConstructor;
  if (!DESCRIPTORS) return;
  if (setPrototypeOf) {
    if (forced) for (ARRAY in TypedArrayConstructorsList) {
      TypedArrayConstructor = global[ARRAY];
      if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {
        delete TypedArrayConstructor[KEY];
      }
    }
    if (!TypedArray[KEY] || forced) {
      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable
      try {
        return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);
      } catch (error) { /* empty */ }
    } else return;
  }
  for (ARRAY in TypedArrayConstructorsList) {
    TypedArrayConstructor = global[ARRAY];
    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {
      redefine(TypedArrayConstructor, KEY, property);
    }
  }
};

for (NAME in TypedArrayConstructorsList) {
  if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;
}

// WebKit bug - typed arrays constructors prototype is Object.prototype
if (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {
  // eslint-disable-next-line no-shadow
  TypedArray = function TypedArray() {
    throw TypeError('Incorrect invocation');
  };
  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {
    if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);
  }
}

if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {
  TypedArrayPrototype = TypedArray.prototype;
  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {
    if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);
  }
}

// WebKit bug - one more object in Uint8ClampedArray prototype chain
if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {
  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);
}

if (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {
  TYPED_ARRAY_TAG_REQIRED = true;
  defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {
    return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;
  } });
  for (NAME in TypedArrayConstructorsList) if (global[NAME]) {
    createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);
  }
}

module.exports = {
  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,
  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,
  aTypedArray: aTypedArray,
  aTypedArrayConstructor: aTypedArrayConstructor,
  exportTypedArrayMethod: exportTypedArrayMethod,
  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,
  isView: isView,
  isTypedArray: isTypedArray,
  TypedArray: TypedArray,
  TypedArrayPrototype: TypedArrayPrototype
};


/***/ }),

/***/ "ee84":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomEmojis_vue_vue_type_style_index_0_id_cb489922_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4978");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomEmojis_vue_vue_type_style_index_0_id_cb489922_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomEmojis_vue_vue_type_style_index_0_id_cb489922_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "f069":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var aFunction = __webpack_require__("1c0b");

var PromiseCapability = function (C) {
  var resolve, reject;
  this.promise = new C(function ($$resolve, $$reject) {
    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
    resolve = $$resolve;
    reject = $$reject;
  });
  this.resolve = aFunction(resolve);
  this.reject = aFunction(reject);
};

// 25.4.1.5 NewPromiseCapability(C)
module.exports.f = function (C) {
  return new PromiseCapability(C);
};


/***/ }),

/***/ "f43c":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AudioPlayer_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("c8fb");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AudioPlayer_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AudioPlayer_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "f5df":
/***/ (function(module, exports, __webpack_require__) {

var TO_STRING_TAG_SUPPORT = __webpack_require__("00ee");
var classofRaw = __webpack_require__("c6b6");
var wellKnownSymbol = __webpack_require__("b622");

var TO_STRING_TAG = wellKnownSymbol('toStringTag');
// ES3 wrong here
var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (error) { /* empty */ }
};

// getting tag from ES6+ `Object.prototype.toString`
module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
  var O, tag, result;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag
    // builtinTag case
    : CORRECT_ARGUMENTS ? classofRaw(O)
    // ES3 arguments fallback
    : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
};


/***/ }),

/***/ "f772":
/***/ (function(module, exports, __webpack_require__) {

var shared = __webpack_require__("5692");
var uid = __webpack_require__("90e3");

var keys = shared('keys');

module.exports = function (key) {
  return keys[key] || (keys[key] = uid(key));
};


/***/ }),

/***/ "f8cd":
/***/ (function(module, exports, __webpack_require__) {

var toInteger = __webpack_require__("a691");

module.exports = function (it) {
  var result = toInteger(it);
  if (result < 0) throw RangeError("The argument can't be less than 0");
  return result;
};


/***/ }),

/***/ "fb15":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
// This file is imported into lib/wc client bundles.

if (typeof window !== 'undefined') {
  var currentScript = window.document.currentScript
  if (true) {
    var getCurrentScript = __webpack_require__("8875")
    currentScript = getCurrentScript()

    // for backward compatibility, because previously we directly included the polyfill
    if (!('currentScript' in document)) {
      Object.defineProperty(document, 'currentScript', { get: getCurrentScript })
    }
  }

  var src = currentScript && currentScript.src.match(/(.+\/)[^/]+\.js(\?.*)?$/)
  if (src) {
    __webpack_require__.p = src[1] // eslint-disable-line
  }
}

// Indicate to webpack that this file can be concatenated
/* harmony default export */ var setPublicPath = (null);

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.define-property.js
var es_object_define_property = __webpack_require__("7a82");

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/ChatWindow.vue?vue&type=template&id=0429bd68&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"vac-card-window",style:([{ height: _vm.height }, _vm.cssVars])},[_c('div',{staticClass:"vac-chat-container"},[(!_vm.singleRoom)?_c('rooms-list',{attrs:{"current-user-id":_vm.currentUserId,"rooms":_vm.orderedRooms,"loading-rooms":_vm.loadingRooms,"rooms-loaded":_vm.roomsLoaded,"room":_vm.room,"room-actions":_vm.roomActions,"text-messages":_vm.t,"show-add-room":_vm.showAddRoom,"show-rooms-list":_vm.showRoomsList,"text-formatting":_vm.textFormatting,"link-options":_vm.linkOptions,"is-mobile":_vm.isMobile},on:{"fetch-room":_vm.fetchRoom,"fetch-more-rooms":_vm.fetchMoreRooms,"loading-more-rooms":function($event){_vm.loadingMoreRooms = $event},"add-room":_vm.addRoom,"room-action-handler":_vm.roomActionHandler},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)}):_vm._e(),_c('room',{attrs:{"current-user-id":_vm.currentUserId,"rooms":_vm.rooms,"room-id":_vm.room.roomId || '',"load-first-room":_vm.loadFirstRoom,"messages":_vm.messages,"room-message":_vm.roomMessage,"messages-loaded":_vm.messagesLoaded,"menu-actions":_vm.menuActions,"message-actions":_vm.messageActions,"show-send-icon":_vm.showSendIcon,"show-files":_vm.showFiles,"show-audio":_vm.showAudio,"show-emojis":_vm.showEmojis,"show-reaction-emojis":_vm.showReactionEmojis,"show-new-messages-divider":_vm.showNewMessagesDivider,"show-footer":_vm.showFooter,"text-messages":_vm.t,"single-room":_vm.singleRoom,"show-rooms-list":_vm.showRoomsList,"text-formatting":_vm.textFormatting,"link-options":_vm.linkOptions,"is-mobile":_vm.isMobile,"loading-rooms":_vm.loadingRooms,"room-info":_vm.$listeners.roomInfo,"textarea-action":_vm.$listeners.textareaActionHandler,"accepted-files":_vm.acceptedFiles},on:{"toggle-rooms-list":_vm.toggleRoomsList,"room-info":_vm.roomInfo,"fetch-messages":_vm.fetchMessages,"send-message":_vm.sendMessage,"edit-message":_vm.editMessage,"delete-message":_vm.deleteMessage,"open-file":_vm.openFile,"open-user-tag":_vm.openUserTag,"menu-action-handler":_vm.menuActionHandler,"message-action-handler":_vm.messageActionHandler,"send-message-reaction":_vm.sendMessageReaction,"typing-message":_vm.typingMessage,"textarea-action-handler":_vm.textareaActionHandler},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)})],1)])}
var staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/ChatWindow.vue?vue&type=template&id=0429bd68&

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find.js
var es_array_find = __webpack_require__("7db0");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.for-each.js
var es_array_for_each = __webpack_require__("4160");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js
var es_array_map = __webpack_require__("d81d");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.slice.js
var es_array_slice = __webpack_require__("fb6a");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.sort.js
var es_array_sort = __webpack_require__("4e82");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.number.constructor.js
var es_number_constructor = __webpack_require__("a9e3");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.entries.js
var es_object_entries = __webpack_require__("4fad");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.keys.js
var es_object_keys = __webpack_require__("b64b");

// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js
var web_dom_collections_for_each = __webpack_require__("159b");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.js
var es_symbol = __webpack_require__("a4d3");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js
var es_array_filter = __webpack_require__("4de4");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.define-properties.js
var es_object_define_properties = __webpack_require__("1d1c");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptor.js
var es_object_get_own_property_descriptor = __webpack_require__("e439");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptors.js
var es_object_get_own_property_descriptors = __webpack_require__("dbb4");

// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js

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;
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js











function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread2(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/RoomsList/RoomsList.vue?vue&type=template&id=0906a622&scoped=true&
var RoomsListvue_type_template_id_0906a622_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.showRoomsList),expression:"showRoomsList"}],staticClass:"vac-rooms-container vac-app-border-r",class:{ 'vac-rooms-container-full': _vm.isMobile }},[_vm._t("rooms-header"),_c('rooms-search',{attrs:{"rooms":_vm.rooms,"loading-rooms":_vm.loadingRooms,"text-messages":_vm.textMessages,"show-add-room":_vm.showAddRoom},on:{"search-room":_vm.searchRoom,"add-room":function($event){return _vm.$emit('add-room')}},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)}),_c('loader',{attrs:{"show":_vm.loadingRooms}}),(!_vm.loadingRooms && !_vm.rooms.length)?_c('div',{staticClass:"vac-rooms-empty"},[_vm._t("rooms-empty",[_vm._v(" "+_vm._s(_vm.textMessages.ROOMS_EMPTY)+" ")])],2):_vm._e(),(!_vm.loadingRooms)?_c('div',{staticClass:"vac-room-list"},[_vm._l((_vm.filteredRooms),function(fRoom){return _c('div',{key:fRoom.roomId,staticClass:"vac-room-item",class:{ 'vac-room-selected': _vm.selectedRoomId === fRoom.roomId },attrs:{"id":fRoom.roomId},on:{"click":function($event){return _vm.openRoom(fRoom)}}},[_c('room-content',{attrs:{"current-user-id":_vm.currentUserId,"room":fRoom,"text-formatting":_vm.textFormatting,"link-options":_vm.linkOptions,"text-messages":_vm.textMessages,"room-actions":_vm.roomActions},on:{"room-action-handler":function($event){return _vm.$emit('room-action-handler', $event)}},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)})],1)}),_c('transition',{attrs:{"name":"vac-fade-message"}},[(_vm.rooms.length && !_vm.loadingRooms)?_c('infinite-loading',{attrs:{"spinner":"spiral"},on:{"infinite":_vm.loadMoreRooms}},[_c('div',{attrs:{"slot":"spinner"},slot:"spinner"},[_c('loader',{attrs:{"show":true,"infinite":true}})],1),_c('div',{attrs:{"slot":"no-results"},slot:"no-results"}),_c('div',{attrs:{"slot":"no-more"},slot:"no-more"})]):_vm._e()],1)],2):_vm._e()],2)}
var RoomsListvue_type_template_id_0906a622_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/RoomsList/RoomsList.vue?vue&type=template&id=0906a622&scoped=true&

// EXTERNAL MODULE: ./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js
var vue_infinite_loading = __webpack_require__("e166");
var vue_infinite_loading_default = /*#__PURE__*/__webpack_require__.n(vue_infinite_loading);

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Loader.vue?vue&type=template&id=fd7c39d0&scoped=true&
var Loadervue_type_template_id_fd7c39d0_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{"name":"vac-fade-spinner","appear":""}},[(_vm.show)?_c('div',{class:{
			'vac-container-center': !_vm.infinite,
			'vac-container-top': _vm.infinite
		}},[_c('div',{attrs:{"id":"vac-circle"}})]):_vm._e()])}
var Loadervue_type_template_id_fd7c39d0_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/components/Loader.vue?vue&type=template&id=fd7c39d0&scoped=true&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Loader.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var Loadervue_type_script_lang_js_ = ({
  name: 'Loader',
  props: {
    show: {
      type: Boolean,
      "default": false
    },
    infinite: {
      type: Boolean,
      "default": false
    }
  }
});
// CONCATENATED MODULE: ./src/components/Loader.vue?vue&type=script&lang=js&
 /* harmony default export */ var components_Loadervue_type_script_lang_js_ = (Loadervue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/components/Loader.vue?vue&type=style&index=0&id=fd7c39d0&lang=scss&scoped=true&
var Loadervue_type_style_index_0_id_fd7c39d0_lang_scss_scoped_true_ = __webpack_require__("3113");

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
/* globals __VUE_SSR_CONTEXT__ */

// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.

function normalizeComponent (
  scriptExports,
  render,
  staticRenderFns,
  functionalTemplate,
  injectStyles,
  scopeId,
  moduleIdentifier, /* server only */
  shadowMode /* vue-cli only */
) {
  // Vue.extend constructor export interop
  var options = typeof scriptExports === 'function'
    ? scriptExports.options
    : scriptExports

  // render functions
  if (render) {
    options.render = render
    options.staticRenderFns = staticRenderFns
    options._compiled = true
  }

  // functional template
  if (functionalTemplate) {
    options.functional = true
  }

  // scopedId
  if (scopeId) {
    options._scopeId = 'data-v-' + scopeId
  }

  var hook
  if (moduleIdentifier) { // server build
    hook = function (context) {
      // 2.3 injection
      context =
        context || // cached call
        (this.$vnode && this.$vnode.ssrContext) || // stateful
        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
      // 2.2 with runInNewContext: true
      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
        context = __VUE_SSR_CONTEXT__
      }
      // inject component styles
      if (injectStyles) {
        injectStyles.call(this, context)
      }
      // register component module identifier for async chunk inferrence
      if (context && context._registeredComponents) {
        context._registeredComponents.add(moduleIdentifier)
      }
    }
    // used by ssr in case component is cached and beforeCreate
    // never gets called
    options._ssrRegister = hook
  } else if (injectStyles) {
    hook = shadowMode
      ? function () {
        injectStyles.call(
          this,
          (options.functional ? this.parent : this).$root.$options.shadowRoot
        )
      }
      : injectStyles
  }

  if (hook) {
    if (options.functional) {
      // for template-only hot-reload because in that case the render fn doesn't
      // go through the normalizer
      options._injectStyles = hook
      // register for functional component in vue file
      var originalRender = options.render
      options.render = function renderWithStyleInjection (h, context) {
        hook.call(context)
        return originalRender(h, context)
      }
    } else {
      // inject component registration as beforeCreate hook
      var existing = options.beforeCreate
      options.beforeCreate = existing
        ? [].concat(existing, hook)
        : [hook]
    }
  }

  return {
    exports: scriptExports,
    options: options
  }
}

// CONCATENATED MODULE: ./src/components/Loader.vue






/* normalize component */

var component = normalizeComponent(
  components_Loadervue_type_script_lang_js_,
  Loadervue_type_template_id_fd7c39d0_scoped_true_render,
  Loadervue_type_template_id_fd7c39d0_scoped_true_staticRenderFns,
  false,
  null,
  "fd7c39d0",
  null
  
)

/* harmony default export */ var Loader = (component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/RoomsList/RoomsSearch.vue?vue&type=template&id=75dd31cd&scoped=true&
var RoomsSearchvue_type_template_id_75dd31cd_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"vac-box-search"},[(!_vm.loadingRooms && _vm.rooms.length)?_c('div',{staticClass:"vac-icon-search"},[_vm._t("search-icon",[_c('svg-icon',{attrs:{"name":"search"}})])],2):_vm._e(),(!_vm.loadingRooms && _vm.rooms.length)?_c('input',{staticClass:"vac-input",attrs:{"type":"search","placeholder":_vm.textMessages.SEARCH,"autocomplete":"off"},on:{"input":function($event){return _vm.$emit('search-room', $event)}}}):_vm._e(),(_vm.showAddRoom)?_c('div',{staticClass:"vac-svg-button vac-add-icon",on:{"click":function($event){return _vm.$emit('add-room')}}},[_vm._t("add-icon",[_c('svg-icon',{attrs:{"name":"add"}})])],2):_vm._e()])}
var RoomsSearchvue_type_template_id_75dd31cd_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/RoomsList/RoomsSearch.vue?vue&type=template&id=75dd31cd&scoped=true&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SvgIcon.vue?vue&type=template&id=34aa1382&
var SvgIconvue_type_template_id_34aa1382_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{"xmlns":"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","version":"1.1","width":"24","height":"24","viewBox":("0 0 " + _vm.size + " " + _vm.size)}},[_c('path',{attrs:{"id":_vm.svgId,"d":_vm.svgItem[_vm.name].path}}),(_vm.svgItem[_vm.name].path2)?_c('path',{attrs:{"id":_vm.svgId,"d":_vm.svgItem[_vm.name].path2}}):_vm._e()])}
var SvgIconvue_type_template_id_34aa1382_staticRenderFns = []


// CONCATENATED MODULE: ./src/components/SvgIcon.vue?vue&type=template&id=34aa1382&

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js
var es_array_concat = __webpack_require__("99af");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js
var es_function_name = __webpack_require__("b0c0");

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SvgIcon.vue?vue&type=script&lang=js&


//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var SvgIconvue_type_script_lang_js_ = ({
  name: 'SvgIcon',
  props: {
    name: {
      type: String,
      "default": null
    },
    param: {
      type: String,
      "default": null
    }
  },
  data: function data() {
    return {
      svgItem: {
        search: {
          path: 'M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'
        },
        add: {
          path: 'M17,13H13V17H11V13H7V11H11V7H13V11H17M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z'
        },
        toggle: {
          path: 'M5,13L9,17L7.6,18.42L1.18,12L7.6,5.58L9,7L5,11H21V13H5M21,6V8H11V6H21M21,16V18H11V16H21Z'
        },
        menu: {
          path: 'M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z'
        },
        close: {
          path: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z'
        },
        file: {
          path: 'M14,17H7V15H14M17,13H7V11H17M17,9H7V7H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z'
        },
        paperclip: {
          path: 'M16.5,6V17.5A4,4 0 0,1 12.5,21.5A4,4 0 0,1 8.5,17.5V5A2.5,2.5 0 0,1 11,2.5A2.5,2.5 0 0,1 13.5,5V15.5A1,1 0 0,1 12.5,16.5A1,1 0 0,1 11.5,15.5V6H10V15.5A2.5,2.5 0 0,0 12.5,18A2.5,2.5 0 0,0 15,15.5V5A4,4 0 0,0 11,1A4,4 0 0,0 7,5V17.5A5.5,5.5 0 0,0 12.5,23A5.5,5.5 0 0,0 18,17.5V6H16.5Z'
        },
        'close-outline': {
          path: 'M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z'
        },
        send: {
          path: 'M2,21L23,12L2,3V10L17,12L2,14V21Z'
        },
        emoji: {
          path: 'M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z'
        },
        document: {
          path: 'M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z'
        },
        pencil: {
          path: 'M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z'
        },
        checkmark: {
          path: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z'
        },
        'double-checkmark': {
          path: 'M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z'
        },
        eye: {
          path: 'M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z'
        },
        dropdown: {
          path: 'M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z'
        },
        deleted: {
          path: 'M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,13.85 4.63,15.55 5.68,16.91L16.91,5.68C15.55,4.63 13.85,4 12,4M12,20A8,8 0 0,0 20,12C20,10.15 19.37,8.45 18.32,7.09L7.09,18.32C8.45,19.37 10.15,20 12,20Z'
        },
        microphone: {
          size: 'large',
          path: 'M432.8,216.4v39.2c0,45.2-15.3,84.3-45.2,118.4c-29.8,33.2-67.3,52.8-111.6,57.9v40.9h78.4c5.1,0,10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6c0,5.1-1.7,10.2-6,13.6c-4.3,4.3-8.5,6-13.6,6H157.6c-5.1,0-10.2-1.7-13.6-6c-4.3-4.3-6-8.5-6-13.6c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6H236v-40.9c-44.3-5.1-81.8-23.9-111.6-57.9s-45.2-73.3-45.2-118.4v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6s10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6v39.2c0,37.5,13.6,70.7,40,97.1s59.6,40,97.1,40s70.7-13.6,97.1-40c26.4-26.4,40-59.6,40-97.1v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6c5.1,0,10.2,1.7,13.6,6C430.2,206.2,432.8,211.3,432.8,216.4z M353.5,98v157.6c0,27.3-9.4,50.3-29,69c-19.6,19.6-42.6,29-69,29s-50.3-9.4-69-29c-19.6-19.6-29-42.6-29-69V98c0-27.3,9.4-50.3,29-69c19.6-19.6,42.6-29,69-29s50.3,9.4,69,29C344.2,47.7,353.5,71.6,353.5,98z'
        },
        'audio-play': {
          size: 'medium',
          path: 'M43.331,21.237L7.233,0.397c-0.917-0.529-2.044-0.529-2.96,0c-0.916,0.528-1.48,1.505-1.48,2.563v41.684   c0,1.058,0.564,2.035,1.48,2.563c0.458,0.268,0.969,0.397,1.48,0.397c0.511,0,1.022-0.133,1.48-0.397l36.098-20.84   c0.918-0.529,1.479-1.506,1.479-2.564S44.247,21.767,43.331,21.237z'
        },
        'audio-pause': {
          size: 'medium',
          path: 'M17.991,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C4.729,2.969,7.698,0,11.36,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z',
          path2: 'M42.877,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C29.616,2.969,32.585,0,36.246,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z'
        }
      }
    };
  },
  computed: {
    svgId: function svgId() {
      var param = this.param ? '-' + this.param : '';
      return "vac-icon-".concat(this.name).concat(param);
    },
    size: function size() {
      var item = this.svgItem[this.name];
      if (item.size === 'large') return 512;else if (item.size === 'medium') return 48;else return 24;
    }
  }
});
// CONCATENATED MODULE: ./src/components/SvgIcon.vue?vue&type=script&lang=js&
 /* harmony default export */ var components_SvgIconvue_type_script_lang_js_ = (SvgIconvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/components/SvgIcon.vue?vue&type=style&index=0&lang=scss&
var SvgIconvue_type_style_index_0_lang_scss_ = __webpack_require__("35f2");

// CONCATENATED MODULE: ./src/components/SvgIcon.vue






/* normalize component */

var SvgIcon_component = normalizeComponent(
  components_SvgIconvue_type_script_lang_js_,
  SvgIconvue_type_template_id_34aa1382_render,
  SvgIconvue_type_template_id_34aa1382_staticRenderFns,
  false,
  null,
  null,
  null
  
)

/* harmony default export */ var SvgIcon = (SvgIcon_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/RoomsList/RoomsSearch.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

/* harmony default export */ var RoomsSearchvue_type_script_lang_js_ = ({
  name: 'RoomsSearch',
  components: {
    SvgIcon: SvgIcon
  },
  props: {
    textMessages: {
      type: Object,
      required: true
    },
    showAddRoom: {
      type: Boolean,
      required: true
    },
    rooms: {
      type: Array,
      required: true
    },
    loadingRooms: {
      type: Boolean,
      required: true
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/RoomsList/RoomsSearch.vue?vue&type=script&lang=js&
 /* harmony default export */ var RoomsList_RoomsSearchvue_type_script_lang_js_ = (RoomsSearchvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/RoomsList/RoomsSearch.vue?vue&type=style&index=0&id=75dd31cd&lang=scss&scoped=true&
var RoomsSearchvue_type_style_index_0_id_75dd31cd_lang_scss_scoped_true_ = __webpack_require__("2582");

// CONCATENATED MODULE: ./src/ChatWindow/RoomsList/RoomsSearch.vue






/* normalize component */

var RoomsSearch_component = normalizeComponent(
  RoomsList_RoomsSearchvue_type_script_lang_js_,
  RoomsSearchvue_type_template_id_75dd31cd_scoped_true_render,
  RoomsSearchvue_type_template_id_75dd31cd_scoped_true_staticRenderFns,
  false,
  null,
  "75dd31cd",
  null
  
)

/* harmony default export */ var RoomsSearch = (RoomsSearch_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/RoomsList/RoomContent.vue?vue&type=template&id=0060733d&scoped=true&
var RoomContentvue_type_template_id_0060733d_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"vac-room-container"},[_vm._t("room-list-item",[(_vm.room.avatar)?_c('div',{staticClass:"vac-room-avatar",style:({ 'background-image': ("url('" + (_vm.room.avatar) + "')") })}):_vm._e(),_c('div',{staticClass:"vac-name-container vac-text-ellipsis"},[_c('div',{staticClass:"vac-title-container"},[(_vm.userStatus)?_c('div',{staticClass:"vac-state-circle",class:{ 'vac-state-online': _vm.userStatus === 'online' }}):_vm._e(),_c('div',{staticClass:"vac-room-name vac-text-ellipsis"},[_vm._v(" "+_vm._s(_vm.room.roomName)+" ")]),(_vm.room.lastMessage)?_c('div',{staticClass:"vac-text-date"},[_vm._v(" "+_vm._s(_vm.room.lastMessage.timestamp)+" ")]):_vm._e()]),_c('div',{staticClass:"vac-text-last",class:{
					'vac-message-new':
						_vm.room.lastMessage && _vm.room.lastMessage.new && !_vm.typingUsers
				}},[(_vm.isMessageCheckmarkVisible)?_c('span',[_vm._t("checkmark-icon",[_c('svg-icon',{staticClass:"vac-icon-check",attrs:{"name":_vm.room.lastMessage.distributed
									? 'double-checkmark'
									: 'checkmark',"param":_vm.room.lastMessage.seen ? 'seen' : ''}})],null,_vm.room.lastMessage)],2):_vm._e(),(_vm.room.lastMessage && !_vm.room.lastMessage.deleted && _vm.isAudio)?_c('div',{staticClass:"vac-text-ellipsis"},[_vm._t("microphone-icon",[_c('svg-icon',{staticClass:"vac-icon-microphone",attrs:{"name":"microphone"}})]),_vm._v(" "+_vm._s(_vm.formattedDuration)+" ")],2):(_vm.room.lastMessage)?_c('format-message',{attrs:{"content":_vm.getLastMessage,"deleted":!!_vm.room.lastMessage.deleted && !_vm.typingUsers,"users":_vm.room.users,"linkify":false,"text-formatting":_vm.textFormatting,"link-options":_vm.linkOptions,"single-line":true},scopedSlots:_vm._u([{key:"deleted-icon",fn:function(data){return [_vm._t("deleted-icon",null,null,data)]}}],null,true)}):_vm._e(),(!_vm.room.lastMessage && _vm.typingUsers)?_c('div',{staticClass:"vac-text-ellipsis"},[_vm._v(" "+_vm._s(_vm.typingUsers)+" ")]):_vm._e(),_c('div',{staticClass:"vac-room-options-container"},[(_vm.room.unreadCount)?_c('div',{staticClass:"vac-badge-counter vac-room-badge"},[_vm._v(" "+_vm._s(_vm.room.unreadCount)+" ")]):_vm._e(),_vm._t("room-list-options",[(_vm.roomActions.length)?_c('div',{staticClass:"vac-svg-button vac-list-room-options",on:{"click":function($event){$event.stopPropagation();_vm.roomMenuOpened = _vm.room.roomId}}},[_vm._t("room-list-options-icon",[_c('svg-icon',{attrs:{"name":"dropdown","param":"room"}})])],2):_vm._e(),(_vm.roomActions.length)?_c('transition',{attrs:{"name":"vac-slide-left"}},[(_vm.roomMenuOpened === _vm.room.roomId)?_c('div',{directives:[{name:"click-outside",rawName:"v-click-outside",value:(_vm.closeRoomMenu),expression:"closeRoomMenu"}],staticClass:"vac-menu-options"},[_c('div',{staticClass:"vac-menu-list"},_vm._l((_vm.roomActions),function(action){return _c('div',{key:action.name},[_c('div',{staticClass:"vac-menu-item",on:{"click":function($event){$event.stopPropagation();return _vm.roomActionHandler(action)}}},[_vm._v(" "+_vm._s(action.title)+" ")])])}),0)]):_vm._e()]):_vm._e()],null,{ room: _vm.room })],2)],1)])],null,{ room: _vm.room })],2)}
var RoomContentvue_type_template_id_0060733d_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/RoomsList/RoomContent.vue?vue&type=template&id=0060733d&scoped=true&

// EXTERNAL MODULE: ./node_modules/v-click-outside/dist/v-click-outside.umd.js
var v_click_outside_umd = __webpack_require__("c28b");
var v_click_outside_umd_default = /*#__PURE__*/__webpack_require__.n(v_click_outside_umd);

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/FormatMessage.vue?vue&type=template&id=29cb3d3f&
var FormatMessagevue_type_template_id_29cb3d3f_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ 'vac-text-ellipsis': _vm.singleLine }},[(_vm.textFormatting)?_c('div',{class:{ 'vac-text-ellipsis': _vm.singleLine }},[_vm._l((_vm.linkifiedMessage),function(message,i){return [_c(message.url ? 'a' : 'span',{key:i,tag:"component",class:{
					'vac-text-ellipsis': _vm.singleLine,
					'vac-text-bold': message.bold,
					'vac-text-italic': _vm.deleted || message.italic,
					'vac-text-strike': message.strike,
					'vac-text-underline': message.underline,
					'vac-text-inline-code': !_vm.singleLine && message.inline,
					'vac-text-multiline-code': !_vm.singleLine && message.multiline,
					'vac-text-tag': !_vm.singleLine && !_vm.reply && message.tag
				},attrs:{"href":message.href,"target":message.href ? _vm.linkOptions.target : null},on:{"click":function($event){return _vm.openTag(message)}}},[_vm._t("deleted-icon",[(_vm.deleted)?_c('svg-icon',{staticClass:"vac-icon-deleted",attrs:{"name":"deleted"}}):_vm._e()],null,{ deleted: _vm.deleted }),(message.url && message.image)?[_c('div',{staticClass:"vac-image-link-container"},[_c('div',{staticClass:"vac-image-link",style:({
								'background-image': ("url('" + (message.value) + "')"),
								height: message.height
							})})]),_c('div',{staticClass:"vac-image-link-message"},[_c('span',[_vm._v(_vm._s(message.value))])])]:[_c('span',[_vm._v(_vm._s(message.value))])]],2)]})],2):_c('div',[_vm._v(" "+_vm._s(_vm.formattedContent)+" ")])])}
var FormatMessagevue_type_template_id_29cb3d3f_staticRenderFns = []


// CONCATENATED MODULE: ./src/components/FormatMessage.vue?vue&type=template&id=29cb3d3f&

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.includes.js
var es_array_includes = __webpack_require__("caad");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.index-of.js
var es_array_index_of = __webpack_require__("c975");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.last-index-of.js
var es_array_last_index_of = __webpack_require__("baa5");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.some.js
var es_array_some = __webpack_require__("45fc");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js
var es_regexp_exec = __webpack_require__("ac1f");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.includes.js
var es_string_includes = __webpack_require__("2532");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.replace.js
var es_string_replace = __webpack_require__("5319");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.bold.js
var es_string_bold = __webpack_require__("cc71");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.strike.js
var es_string_strike = __webpack_require__("2315");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.constructor.js
var es_regexp_constructor = __webpack_require__("4d63");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.to-string.js
var es_regexp_to_string = __webpack_require__("25f0");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.match.js
var es_string_match = __webpack_require__("466d");

// CONCATENATED MODULE: ./src/utils/format-string.js













var _pseudoMarkdown;

var linkify = __webpack_require__("74fe"); // require('linkifyjs/plugins/hashtag')(linkify)


/* harmony default export */ var format_string = (function (text, doLinkify) {
  var json = compileToJSON(text);
  var html = compileToHTML(json);
  var result = [].concat.apply([], html);
  if (doLinkify) linkifyResult(result);
  return result;
});
var typeMarkdown = {
  bold: '*',
  italic: '_',
  strike: '~',
  underline: '°'
};
var pseudoMarkdown = (_pseudoMarkdown = {}, _defineProperty(_pseudoMarkdown, typeMarkdown.bold, {
  end: '\\' + [typeMarkdown.bold],
  allowed_chars: '.',
  type: 'bold'
}), _defineProperty(_pseudoMarkdown, typeMarkdown.italic, {
  end: [typeMarkdown.italic],
  allowed_chars: '.',
  type: 'italic'
}), _defineProperty(_pseudoMarkdown, typeMarkdown.strike, {
  end: [typeMarkdown.strike],
  allowed_chars: '.',
  type: 'strike'
}), _defineProperty(_pseudoMarkdown, typeMarkdown.underline, {
  end: [typeMarkdown.underline],
  allowed_chars: '.',
  type: 'underline'
}), _defineProperty(_pseudoMarkdown, '```', {
  end: '```',
  allowed_chars: '(.|\n)',
  type: 'multiline-code'
}), _defineProperty(_pseudoMarkdown, '`', {
  end: '`',
  allowed_chars: '.',
  type: 'inline-code'
}), _defineProperty(_pseudoMarkdown, '<usertag>', {
  allowed_chars: '.',
  end: '</usertag>',
  type: 'tag'
}), _pseudoMarkdown);

function compileToJSON(str) {
  var result = [];
  var minIndexOf = -1;
  var minIndexOfKey = null;
  var links = linkify.find(str);
  var minIndexFromLink = false;

  if (links.length > 0) {
    minIndexOf = str.indexOf(links[0].value);
    minIndexFromLink = true;
  }

  Object.keys(pseudoMarkdown).forEach(function (startingValue) {
    var io = str.indexOf(startingValue);

    if (io >= 0 && (minIndexOf < 0 || io < minIndexOf)) {
      minIndexOf = io;
      minIndexOfKey = startingValue;
      minIndexFromLink = false;
    }
  });

  if (minIndexFromLink && minIndexOfKey !== -1) {
    var strLeft = str.substr(0, minIndexOf);
    var strLink = str.substr(minIndexOf, links[0].value.length);
    var strRight = str.substr(minIndexOf + links[0].value.length);
    result.push(strLeft);
    result.push(strLink);
    result = result.concat(compileToJSON(strRight));
    return result;
  }

  if (minIndexOfKey) {
    var _strLeft = str.substr(0, minIndexOf);

    var _char = minIndexOfKey;

    var _strRight = str.substr(minIndexOf + _char.length);

    if (str.replace(/\s/g, '').length === _char.length * 2) {
      return [str];
    }

    var match = _strRight.match(new RegExp('^(' + (pseudoMarkdown[_char].allowed_chars || '.') + '*' + (pseudoMarkdown[_char].end ? '?' : '') + ')' + (pseudoMarkdown[_char].end ? '(' + pseudoMarkdown[_char].end + ')' : ''), 'm'));

    if (!match || !match[1]) {
      _strLeft = _strLeft + _char;
      result.push(_strLeft);
    } else {
      if (_strLeft) {
        result.push(_strLeft);
      }

      var object = {
        start: _char,
        content: compileToJSON(match[1]),
        end: match[2],
        type: pseudoMarkdown[_char].type
      };
      result.push(object);
      _strRight = _strRight.substr(match[0].length);
    }

    result = result.concat(compileToJSON(_strRight));
    return result;
  } else {
    if (str) {
      return [str];
    } else {
      return [];
    }
  }
}

function compileToHTML(json) {
  var result = [];
  json.forEach(function (item) {
    if (typeof item === 'string') {
      result.push({
        types: [],
        value: item
      });
    } else {
      if (pseudoMarkdown[item.start]) {
        result.push(parseContent(item));
      }
    }
  });
  return result;
}

function parseContent(item) {
  var result = [];
  item.content.forEach(function (it) {
    if (typeof it === 'string') {
      result.push({
        types: [item.type],
        value: it
      });
    } else {
      it.content.forEach(function (i) {
        if (typeof i === 'string') {
          result.push({
            types: [it.type].concat([item.type]),
            value: i
          });
        } else {
          result.push({
            types: [i.type].concat([it.type]).concat([item.type]),
            value: parseContent(i)
          });
        }
      });
    }
  });
  return result;
}

function linkifyResult(array) {
  var result = [];
  array.forEach(function (arr) {
    var links = linkify.find(arr.value);

    if (links.length) {
      var spaces = arr.value.replace(links[0].value, '');
      result.push({
        types: arr.types,
        value: spaces
      });
      arr.types = ['url'].concat(arr.types);
      arr.href = links[0].href;
      arr.value = links[0].value;
    }

    result.push(arr);
  });
  return result;
}
// EXTERNAL MODULE: ./src/utils/constants.js
var constants = __webpack_require__("c9d9");

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/FormatMessage.vue?vue&type=script&lang=js&













//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//



/* harmony default export */ var FormatMessagevue_type_script_lang_js_ = ({
  name: 'FormatMessage',
  components: {
    SvgIcon: SvgIcon
  },
  props: {
    content: {
      type: [String, Number],
      required: true
    },
    deleted: {
      type: Boolean,
      "default": false
    },
    users: {
      type: Array,
      "default": function _default() {
        return [];
      }
    },
    linkify: {
      type: Boolean,
      "default": true
    },
    singleLine: {
      type: Boolean,
      "default": false
    },
    reply: {
      type: Boolean,
      "default": false
    },
    textFormatting: {
      type: Boolean,
      required: true
    },
    linkOptions: {
      type: Object,
      required: true
    }
  },
  computed: {
    linkifiedMessage: function linkifiedMessage() {
      var _this = this;

      var message = format_string(this.formatTags(this.content), this.linkify && !this.linkOptions.disabled, this.linkOptions);
      message.forEach(function (m) {
        m.url = _this.checkType(m, 'url');
        m.bold = _this.checkType(m, 'bold');
        m.italic = _this.checkType(m, 'italic');
        m.strike = _this.checkType(m, 'strike');
        m.underline = _this.checkType(m, 'underline');
        m.inline = _this.checkType(m, 'inline-code');
        m.multiline = _this.checkType(m, 'multiline-code');
        m.tag = _this.checkType(m, 'tag');
        m.image = _this.checkImageType(m);
      });
      return message;
    },
    formattedContent: function formattedContent() {
      return this.formatTags(this.content);
    }
  },
  methods: {
    checkType: function checkType(message, type) {
      return message.types.indexOf(type) !== -1;
    },
    checkImageType: function checkImageType(message) {
      var index = message.value.lastIndexOf('.');
      var slashIndex = message.value.lastIndexOf('/');
      if (slashIndex > index) index = -1;
      var type = message.value.substring(index + 1, message.value.length);
      var isMedia = index > 0 && constants["b" /* IMAGE_TYPES */].some(function (t) {
        return type.toLowerCase().includes(t);
      });
      if (isMedia) this.setImageSize(message);
      return isMedia;
    },
    setImageSize: function setImageSize(message) {
      var image = new Image();
      image.src = message.value;
      image.addEventListener('load', onLoad);

      function onLoad(img) {
        var ratio = img.path[0].width / 150;
        message.height = Math.round(img.path[0].height / ratio) + 'px';
        image.removeEventListener('load', onLoad);
      }
    },
    formatTags: function formatTags(content) {
      this.users.forEach(function (user) {
        var index = content.indexOf(user._id);
        var isTag = content.substring(index - 9, index) === '<usertag>';
        if (isTag) content = content.replace(user._id, "@".concat(user.username));
      });
      return content;
    },
    openTag: function openTag(message) {
      if (!this.singleLine && this.checkType(message, 'tag')) {
        var user = this.users.find(function (u) {
          return message.value.indexOf(u.username) !== -1;
        });
        this.$emit('open-user-tag', user);
      }
    }
  }
});
// CONCATENATED MODULE: ./src/components/FormatMessage.vue?vue&type=script&lang=js&
 /* harmony default export */ var components_FormatMessagevue_type_script_lang_js_ = (FormatMessagevue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/components/FormatMessage.vue?vue&type=style&index=0&lang=css&
var FormatMessagevue_type_style_index_0_lang_css_ = __webpack_require__("1726");

// CONCATENATED MODULE: ./src/components/FormatMessage.vue






/* normalize component */

var FormatMessage_component = normalizeComponent(
  components_FormatMessagevue_type_script_lang_js_,
  FormatMessagevue_type_template_id_29cb3d3f_render,
  FormatMessagevue_type_template_id_29cb3d3f_staticRenderFns,
  false,
  null,
  null,
  null
  
)

/* harmony default export */ var FormatMessage = (FormatMessage_component.exports);
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.join.js
var es_array_join = __webpack_require__("a15b");

// CONCATENATED MODULE: ./src/utils/typing-text.js




/* harmony default export */ var typing_text = (function (room, currentUserId, textMessages) {
  if (room.typingUsers && room.typingUsers.length) {
    var typingUsers = room.users.filter(function (user) {
      if (user._id === currentUserId) return;
      if (room.typingUsers.indexOf(user._id) === -1) return;
      if (user.status && user.status.state === 'offline') return;
      return true;
    });
    if (!typingUsers.length) return;

    if (room.users.length === 2) {
      return textMessages.IS_TYPING;
    } else {
      return typingUsers.map(function (user) {
        return user.username;
      }).join(', ') + ' ' + textMessages.IS_TYPING;
    }
  }
});
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/RoomsList/RoomContent.vue?vue&type=script&lang=js&




//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//





var _require = __webpack_require__("bd43"),
    isAudioFile = _require.isAudioFile;

/* harmony default export */ var RoomContentvue_type_script_lang_js_ = ({
  name: 'RoomsContent',
  components: {
    SvgIcon: SvgIcon,
    FormatMessage: FormatMessage
  },
  directives: {
    clickOutside: v_click_outside_umd_default.a.directive
  },
  props: {
    currentUserId: {
      type: [String, Number],
      required: true
    },
    room: {
      type: Object,
      required: true
    },
    textFormatting: {
      type: Boolean,
      required: true
    },
    linkOptions: {
      type: Object,
      required: true
    },
    textMessages: {
      type: Object,
      required: true
    },
    roomActions: {
      type: Array,
      required: true
    }
  },
  data: function data() {
    return {
      roomMenuOpened: null
    };
  },
  computed: {
    getLastMessage: function getLastMessage() {
      var _this = this;

      var isTyping = this.typingUsers;
      if (isTyping) return isTyping;
      var content = this.room.lastMessage.deleted ? this.textMessages.MESSAGE_DELETED : this.room.lastMessage.content;

      if (this.room.users.length <= 2) {
        return content;
      }

      var user = this.room.users.find(function (user) {
        return user._id === _this.room.lastMessage.senderId;
      });

      if (this.room.lastMessage.username) {
        return "".concat(this.room.lastMessage.username, " - ").concat(content);
      } else if (!user || user._id === this.currentUserId) {
        return content;
      }

      return "".concat(user.username, " - ").concat(content);
    },
    userStatus: function userStatus() {
      var _this2 = this;

      if (!this.room.users || this.room.users.length !== 2) return;
      var user = this.room.users.find(function (u) {
        return u._id !== _this2.currentUserId;
      });
      if (user.status) return user.status.state;
      return null;
    },
    typingUsers: function typingUsers() {
      return typing_text(this.room, this.currentUserId, this.textMessages);
    },
    isMessageCheckmarkVisible: function isMessageCheckmarkVisible() {
      return !this.typingUsers && this.room.lastMessage && !this.room.lastMessage.deleted && this.room.lastMessage.senderId === this.currentUserId && (this.room.lastMessage.saved || this.room.lastMessage.distributed || this.room.lastMessage.seen);
    },
    formattedDuration: function formattedDuration() {
      var file = this.room.lastMessage.file;

      if (!file.duration) {
        return "".concat(file.name, ".").concat(file.extension);
      }

      var s = Math.floor(file.duration);
      return (s - (s %= 60)) / 60 + (s > 9 ? ':' : ':0') + s;
    },
    isAudio: function isAudio() {
      return isAudioFile(this.room.lastMessage.file);
    }
  },
  methods: {
    roomActionHandler: function roomActionHandler(action) {
      this.closeRoomMenu();
      this.$emit('room-action-handler', {
        action: action,
        roomId: this.room.roomId
      });
    },
    closeRoomMenu: function closeRoomMenu() {
      this.roomMenuOpened = null;
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/RoomsList/RoomContent.vue?vue&type=script&lang=js&
 /* harmony default export */ var RoomsList_RoomContentvue_type_script_lang_js_ = (RoomContentvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/RoomsList/RoomContent.vue?vue&type=style&index=0&id=0060733d&lang=scss&scoped=true&
var RoomContentvue_type_style_index_0_id_0060733d_lang_scss_scoped_true_ = __webpack_require__("e7fc");

// CONCATENATED MODULE: ./src/ChatWindow/RoomsList/RoomContent.vue






/* normalize component */

var RoomContent_component = normalizeComponent(
  RoomsList_RoomContentvue_type_script_lang_js_,
  RoomContentvue_type_template_id_0060733d_scoped_true_render,
  RoomContentvue_type_template_id_0060733d_scoped_true_staticRenderFns,
  false,
  null,
  "0060733d",
  null
  
)

/* harmony default export */ var RoomContent = (RoomContent_component.exports);
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.starts-with.js
var es_string_starts_with = __webpack_require__("2ca0");

// CONCATENATED MODULE: ./src/utils/filter-items.js






/* harmony default export */ var filter_items = (function (items, prop, val) {
  var startsWith = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
  if (!val || val === '') return items;
  return items.filter(function (v) {
    if (startsWith) return formatString(v[prop]).startsWith(formatString(val));
    return formatString(v[prop]).includes(formatString(val));
  });
});

function formatString(string) {
  return string.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, '');
}
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/RoomsList/RoomsList.vue?vue&type=script&lang=js&

//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//





/* harmony default export */ var RoomsListvue_type_script_lang_js_ = ({
  name: 'RoomsList',
  components: {
    InfiniteLoading: vue_infinite_loading_default.a,
    Loader: Loader,
    RoomsSearch: RoomsSearch,
    RoomContent: RoomContent
  },
  props: {
    currentUserId: {
      type: [String, Number],
      required: true
    },
    textMessages: {
      type: Object,
      required: true
    },
    showRoomsList: {
      type: Boolean,
      required: true
    },
    showAddRoom: {
      type: Boolean,
      required: true
    },
    textFormatting: {
      type: Boolean,
      required: true
    },
    linkOptions: {
      type: Object,
      required: true
    },
    isMobile: {
      type: Boolean,
      required: true
    },
    rooms: {
      type: Array,
      required: true
    },
    loadingRooms: {
      type: Boolean,
      required: true
    },
    roomsLoaded: {
      type: Boolean,
      required: true
    },
    room: {
      type: Object,
      required: true
    },
    roomActions: {
      type: Array,
      required: true
    }
  },
  data: function data() {
    return {
      filteredRooms: this.rooms || [],
      infiniteState: null,
      loadingMoreRooms: false,
      selectedRoomId: ''
    };
  },
  watch: {
    rooms: function rooms(newVal, oldVal) {
      this.filteredRooms = newVal;

      if (this.infiniteState && (newVal.length !== oldVal.length || this.roomsLoaded)) {
        this.infiniteState.loaded();
        this.loadingMoreRooms = false;
      }
    },
    loadingRooms: function loadingRooms(val) {
      if (val) this.infiniteState = null;
    },
    loadingMoreRooms: function loadingMoreRooms(val) {
      this.$emit('loading-more-rooms', val);
    },
    room: {
      immediate: true,
      handler: function handler(val) {
        if (val && !this.isMobile) this.selectedRoomId = val.roomId;
      }
    }
  },
  methods: {
    searchRoom: function searchRoom(ev) {
      this.filteredRooms = filter_items(this.rooms, 'roomName', ev.target.value);
    },
    openRoom: function openRoom(room) {
      if (room.roomId === this.room.roomId && !this.isMobile) return;
      if (!this.isMobile) this.selectedRoomId = room.roomId;
      this.$emit('fetch-room', {
        room: room
      });
    },
    loadMoreRooms: function loadMoreRooms(infiniteState) {
      if (this.loadingMoreRooms) return;

      if (this.roomsLoaded) {
        this.loadingMoreRooms = false;
        return infiniteState.complete();
      }

      this.infiniteState = infiniteState;
      this.$emit('fetch-more-rooms');
      this.loadingMoreRooms = true;
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/RoomsList/RoomsList.vue?vue&type=script&lang=js&
 /* harmony default export */ var RoomsList_RoomsListvue_type_script_lang_js_ = (RoomsListvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/RoomsList/RoomsList.vue?vue&type=style&index=0&id=0906a622&lang=scss&scoped=true&
var RoomsListvue_type_style_index_0_id_0906a622_lang_scss_scoped_true_ = __webpack_require__("dddc");

// CONCATENATED MODULE: ./src/ChatWindow/RoomsList/RoomsList.vue






/* normalize component */

var RoomsList_component = normalizeComponent(
  RoomsList_RoomsListvue_type_script_lang_js_,
  RoomsListvue_type_template_id_0906a622_scoped_true_render,
  RoomsListvue_type_template_id_0906a622_scoped_true_staticRenderFns,
  false,
  null,
  "0906a622",
  null
  
)

/* harmony default export */ var RoomsList = (RoomsList_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Room/Room.vue?vue&type=template&id=cb4b1406&scoped=true&
var Roomvue_type_template_id_cb4b1406_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:"show",rawName:"v-show",value:((_vm.isMobile && !_vm.showRoomsList) || !_vm.isMobile || _vm.singleRoom),expression:"(isMobile && !showRoomsList) || !isMobile || singleRoom"}],staticClass:"vac-col-messages"},[(
			(!_vm.rooms.length && !_vm.loadingRooms) || (!_vm.room.roomId && !_vm.loadFirstRoom)
		)?_vm._t("no-room-selected",[_c('div',{staticClass:"vac-container-center vac-room-empty"},[_c('div',[_vm._v(_vm._s(_vm.textMessages.ROOM_EMPTY))])])]):_c('room-header',{attrs:{"current-user-id":_vm.currentUserId,"text-messages":_vm.textMessages,"single-room":_vm.singleRoom,"show-rooms-list":_vm.showRoomsList,"is-mobile":_vm.isMobile,"room-info":_vm.roomInfo,"menu-actions":_vm.menuActions,"room":_vm.room},on:{"toggle-rooms-list":function($event){return _vm.$emit('toggle-rooms-list')},"menu-action-handler":function($event){return _vm.$emit('menu-action-handler', $event)}},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)}),_c('div',{ref:"scrollContainer",staticClass:"vac-container-scroll",on:{"scroll":_vm.onContainerScroll}},[_c('loader',{attrs:{"show":_vm.loadingMessages}}),_c('div',{staticClass:"vac-messages-container"},[_c('div',{class:{ 'vac-messages-hidden': _vm.loadingMessages }},[_c('transition',{attrs:{"name":"vac-fade-message"}},[(_vm.showNoMessages)?_c('div',{staticClass:"vac-text-started"},[_vm._t("messages-empty",[_vm._v(" "+_vm._s(_vm.textMessages.MESSAGES_EMPTY)+" ")])],2):_vm._e(),(_vm.showMessagesStarted)?_c('div',{staticClass:"vac-text-started"},[_vm._v(" "+_vm._s(_vm.textMessages.CONVERSATION_STARTED)+" "+_vm._s(_vm.messages[0].date)+" ")]):_vm._e()]),_c('transition',{attrs:{"name":"vac-fade-message"}},[(_vm.messages.length)?_c('infinite-loading',{class:{ 'vac-infinite-loading': !_vm.messagesLoaded },attrs:{"spinner":"spiral","direction":"top","distance":40},on:{"infinite":_vm.loadMoreMessages}},[_c('div',{attrs:{"slot":"spinner"},slot:"spinner"},[_c('loader',{attrs:{"show":true,"infinite":true}})],1),_c('div',{attrs:{"slot":"no-results"},slot:"no-results"}),_c('div',{attrs:{"slot":"no-more"},slot:"no-more"})]):_vm._e()],1),_c('transition-group',{key:_vm.roomId,attrs:{"name":"vac-fade-message"}},_vm._l((_vm.messages),function(m,i){return _c('div',{key:m._id},[_c('message',{attrs:{"current-user-id":_vm.currentUserId,"message":m,"index":i,"messages":_vm.messages,"edited-message":_vm.editedMessage,"message-actions":_vm.messageActions,"room-users":_vm.room.users,"text-messages":_vm.textMessages,"room-footer-ref":_vm.$refs.roomFooter,"new-messages":_vm.newMessages,"show-reaction-emojis":_vm.showReactionEmojis,"show-new-messages-divider":_vm.showNewMessagesDivider,"text-formatting":_vm.textFormatting,"link-options":_vm.linkOptions,"emojis-list":_vm.emojisList,"hide-options":_vm.hideOptions},on:{"message-added":_vm.onMessageAdded,"message-action-handler":_vm.messageActionHandler,"open-file":_vm.openFile,"open-user-tag":_vm.openUserTag,"send-message-reaction":_vm.sendMessageReaction,"hide-options":function($event){_vm.hideOptions = $event}},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(idx,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)})],1)}),0)],1)])],1),(!_vm.loadingMessages)?_c('div',[_c('transition',{attrs:{"name":"vac-bounce"}},[(_vm.scrollIcon)?_c('div',{staticClass:"vac-icon-scroll",on:{"click":_vm.scrollToBottom}},[_c('transition',{attrs:{"name":"vac-bounce"}},[(_vm.scrollMessagesCount)?_c('div',{staticClass:"vac-badge-counter vac-messages-count"},[_vm._v(" "+_vm._s(_vm.scrollMessagesCount)+" ")]):_vm._e()]),_vm._t("scroll-icon",[_c('svg-icon',{attrs:{"name":"dropdown","param":"scroll"}})])],2):_vm._e()])],1):_vm._e(),_c('div',{directives:[{name:"show",rawName:"v-show",value:(Object.keys(_vm.room).length && _vm.showFooter),expression:"Object.keys(room).length && showFooter"}],ref:"roomFooter",staticClass:"vac-room-footer"},[_c('room-message-reply',{attrs:{"room":_vm.room,"message-reply":_vm.messageReply,"text-formatting":_vm.textFormatting,"link-options":_vm.linkOptions},on:{"reset-message":_vm.resetMessage},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)}),_c('room-emojis',{attrs:{"filtered-emojis":_vm.filteredEmojis},on:{"select-emoji":function($event){return _vm.selectEmoji($event)}}}),_c('room-users-tag',{attrs:{"filtered-users-tag":_vm.filteredUsersTag},on:{"select-user-tag":function($event){return _vm.selectUserTag($event)}}}),_c('div',{staticClass:"vac-box-footer",class:{
				'vac-app-box-shadow': _vm.filteredEmojis.length || _vm.filteredUsersTag.length
			}},[(_vm.showAudio && !_vm.imageFile && !_vm.videoFile)?_c('div',{staticClass:"vac-icon-textarea-left"},[(_vm.isRecording)?[_c('div',{staticClass:"vac-svg-button vac-icon-audio-stop",on:{"click":_vm.stopRecorder}},[_vm._t("audio-stop-icon",[_c('svg-icon',{attrs:{"name":"close-outline"}})])],2),_c('div',{staticClass:"vac-dot-audio-record"}),_c('div',{staticClass:"vac-dot-audio-record-time"},[_vm._v(" "+_vm._s(_vm.recordedTime)+" ")]),_c('div',{staticClass:"vac-svg-button vac-icon-audio-confirm",on:{"click":function($event){return _vm.toggleRecorder(false)}}},[_vm._t("audio-stop-icon",[_c('svg-icon',{attrs:{"name":"checkmark"}})])],2)]:_c('div',{staticClass:"vac-svg-button",on:{"click":function($event){return _vm.toggleRecorder(true)}}},[_vm._t("microphone-icon",[_c('svg-icon',{staticClass:"vac-icon-microphone",attrs:{"name":"microphone"}})])],2)],2):_vm._e(),(_vm.imageFile)?_c('div',{staticClass:"vac-media-container"},[_c('div',{staticClass:"vac-svg-button vac-icon-media",on:{"click":_vm.resetMediaFile}},[_vm._t("image-close-icon",[_c('svg-icon',{attrs:{"name":"close","param":"image"}})])],2),_c('div',{staticClass:"vac-media-file"},[_c('img',{ref:"mediaFile",attrs:{"src":_vm.imageFile},on:{"load":_vm.onMediaLoad}})])]):(_vm.videoFile)?_c('div',{staticClass:"vac-media-container"},[_c('div',{staticClass:"vac-svg-button vac-icon-media",on:{"click":_vm.resetMediaFile}},[_vm._t("image-close-icon",[_c('svg-icon',{attrs:{"name":"close","param":"image"}})])],2),_c('div',{ref:"mediaFile",staticClass:"vac-media-file"},[_c('video',{attrs:{"width":"100%","height":"100%","controls":""}},[_c('source',{attrs:{"src":_vm.videoFile}})])])]):(_vm.file)?_c('div',{staticClass:"vac-file-container",class:{ 'vac-file-container-edit': _vm.editedMessage._id }},[_c('div',{staticClass:"vac-icon-file"},[_vm._t("file-icon",[_c('svg-icon',{attrs:{"name":"file"}})])],2),_c('div',{staticClass:"vac-file-message"},[_vm._v(" "+_vm._s(_vm.file.audio ? _vm.file.name : _vm.message)+" ")]),_c('div',{staticClass:"vac-svg-button vac-icon-remove",on:{"click":function($event){return _vm.resetMessage(null, true)}}},[_vm._t("file-close-icon",[_c('svg-icon',{attrs:{"name":"close"}})])],2)]):_vm._e(),_c('textarea',{directives:[{name:"show",rawName:"v-show",value:(!_vm.file || _vm.imageFile || _vm.videoFile),expression:"!file || imageFile || videoFile"},{name:"model",rawName:"v-model",value:(_vm.message),expression:"message"}],ref:"roomTextarea",staticClass:"vac-textarea",class:{
					'vac-textarea-outline': _vm.editedMessage._id
				},style:({
					'min-height': ((_vm.mediaDimensions ? _vm.mediaDimensions.height : 20) + "px"),
					'padding-left': ((_vm.mediaDimensions ? _vm.mediaDimensions.width - 10 : 12) + "px")
				}),attrs:{"placeholder":_vm.textMessages.TYPE_MESSAGE},domProps:{"value":(_vm.message)},on:{"input":[function($event){if($event.target.composing){ return; }_vm.message=$event.target.value},_vm.onChangeInput],"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }return _vm.escapeTextarea($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();}]}}),_c('div',{staticClass:"vac-icon-textarea"},[(_vm.editedMessage._id)?_c('div',{staticClass:"vac-svg-button",on:{"click":_vm.resetMessage}},[_vm._t("edit-close-icon",[_c('svg-icon',{attrs:{"name":"close-outline"}})])],2):_vm._e(),(_vm.showEmojis && (!_vm.file || _vm.imageFile || _vm.videoFile))?_c('emoji-picker',{attrs:{"emoji-opened":_vm.emojiOpened,"position-top":true},on:{"add-emoji":_vm.addEmoji,"open-emoji":function($event){_vm.emojiOpened = $event}},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)}):_vm._e(),(_vm.showFiles)?_c('div',{staticClass:"vac-svg-button",on:{"click":_vm.launchFilePicker}},[_vm._t("paperclip-icon",[_c('svg-icon',{attrs:{"name":"paperclip"}})])],2):_vm._e(),(_vm.textareaAction)?_c('div',{staticClass:"vac-svg-button",on:{"click":_vm.textareaActionHandler}},[_vm._t("custom-action-icon",[_c('svg-icon',{attrs:{"name":"deleted"}})])],2):_vm._e(),(_vm.showFiles)?_c('input',{ref:"file",staticStyle:{"display":"none"},attrs:{"type":"file","accept":_vm.acceptedFiles},on:{"change":function($event){return _vm.onFileChange($event.target.files)}}}):_vm._e(),(_vm.showSendIcon)?_c('div',{staticClass:"vac-svg-button",class:{ 'vac-send-disabled': _vm.isMessageEmpty },on:{"click":_vm.sendMessage}},[_vm._t("send-icon",[_c('svg-icon',{attrs:{"name":"send","param":_vm.isMessageEmpty ? 'disabled' : ''}})])],2):_vm._e()],1)])],1)],2)}
var Roomvue_type_template_id_cb4b1406_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/Room/Room.vue?vue&type=template&id=cb4b1406&scoped=true&

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js
var es_array_iterator = __webpack_require__("e260");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.date.to-iso-string.js
var es_date_to_iso_string = __webpack_require__("accc");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.date.to-string.js
var es_date_to_string = __webpack_require__("0d03");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.assign.js
var es_object_assign = __webpack_require__("cca6");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js
var es_object_to_string = __webpack_require__("d3b7");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.js
var es_promise = __webpack_require__("e6cf");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js
var es_string_iterator = __webpack_require__("3ca3");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.trim.js
var es_string_trim = __webpack_require__("498a");

// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js
var web_dom_collections_iterator = __webpack_require__("ddb0");

// EXTERNAL MODULE: ./node_modules/core-js/modules/web.timers.js
var web_timers = __webpack_require__("4795");

// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url.js
var web_url = __webpack_require__("2b3d");

// EXTERNAL MODULE: ./node_modules/regenerator-runtime/runtime.js
var runtime = __webpack_require__("96cf");

// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js



function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
  try {
    var info = gen[key](arg);
    var value = info.value;
  } catch (error) {
    reject(error);
    return;
  }

  if (info.done) {
    resolve(value);
  } else {
    Promise.resolve(value).then(_next, _throw);
  }
}

function _asyncToGenerator(fn) {
  return function () {
    var self = this,
        args = arguments;
    return new Promise(function (resolve, reject) {
      var gen = fn.apply(self, args);

      function _next(value) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
      }

      function _throw(err) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
      }

      _next(undefined);
    });
  };
}
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.is-array.js
var es_array_is_array = __webpack_require__("277d");

// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
function _arrayLikeToArray(arr, len) {
  if (len == null || len > arr.length) len = arr.length;

  for (var i = 0, arr2 = new Array(len); i < len; i++) {
    arr2[i] = arr[i];
  }

  return arr2;
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js


function _arrayWithoutHoles(arr) {
  if (Array.isArray(arr)) return _arrayLikeToArray(arr);
}
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.description.js
var es_symbol_description = __webpack_require__("e01a");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.iterator.js
var es_symbol_iterator = __webpack_require__("d28b");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.from.js
var es_array_from = __webpack_require__("a630");

// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js








function _iterableToArray(iter) {
  if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js








function _unsupportedIterableToArray(o, minLen) {
  if (!o) return;
  if (typeof o === "string") return _arrayLikeToArray(o, minLen);
  var n = Object.prototype.toString.call(o).slice(8, -1);
  if (n === "Object" && o.constructor) n = o.constructor.name;
  if (n === "Map" || n === "Set") return Array.from(o);
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
function _nonIterableSpread() {
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js




function _toConsumableArray(arr) {
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
}
// CONCATENATED MODULE: ./node_modules/vue-emoji-picker/src/emojis.js
/* harmony default export */ var emojis = ({
    'Frequently used': {
        'thumbs_up': '👍',
        '-1': '👎',
        'sob': '😭',
        'confused': '😕',
        'neutral_face': '😐',
        'blush': '😊',
        'heart_eyes': '😍',
    },
    'People': {
        'smile': '😄',
        'smiley': '😃',
        'grinning': '😀',
        'blush': '😊',
        'wink': '😉',
        'heart_eyes': '😍',
        'kissing_heart': '😘',
        'kissing_closed_eyes': '😚',
        'kissing': '😗',
        'kissing_smiling_eyes': '😙',
        'stuck_out_tongue_winking_eye': '😜',
        'stuck_out_tongue_closed_eyes': '😝',
        'stuck_out_tongue': '😛',
        'flushed': '😳',
        'grin': '😁',
        'pensive': '😔',
        'relieved': '😌',
        'unamused': '😒',
        'disappointed': '😞',
        'persevere': '😣',
        'cry': '😢',
        'joy': '😂',
        'sob': '😭',
        'sleepy': '😪',
        'disappointed_relieved': '😥',
        'cold_sweat': '😰',
        'sweat_smile': '😅',
        'sweat': '😓',
        'weary': '😩',
        'tired_face': '😫',
        'fearful': '😨',
        'scream': '😱',
        'angry': '😠',
        'rage': '😡',
        'triumph': '😤',
        'confounded': '😖',
        'laughing': '😆',
        'yum': '😋',
        'mask': '😷',
        'sunglasses': '😎',
        'sleeping': '😴',
        'dizzy_face': '😵',
        'astonished': '😲',
        'worried': '😟',
        'frowning': '😦',
        'anguished': '😧',
        'imp': '👿',
        'open_mouth': '😮',
        'grimacing': '😬',
        'neutral_face': '😐',
        'confused': '😕',
        'hushed': '😯',
        'smirk': '😏',
        'expressionless': '😑',
        'man_with_gua_pi_mao': '👲',
        'man_with_turban': '👳',
        'cop': '👮',
        'construction_worker': '👷',
        'guardsman': '💂',
        'baby': '👶',
        'boy': '👦',
        'girl': '👧',
        'man': '👨',
        'woman': '👩',
        'older_man': '👴',
        'older_woman': '👵',
        'person_with_blond_hair': '👱',
        'angel': '👼',
        'princess': '👸',
        'smiley_cat': '😺',
        'smile_cat': '😸',
        'heart_eyes_cat': '😻',
        'kissing_cat': '😽',
        'smirk_cat': '😼',
        'scream_cat': '🙀',
        'crying_cat_face': '😿',
        'joy_cat': '😹',
        'pouting_cat': '😾',
        'japanese_ogre': '👹',
        'japanese_goblin': '👺',
        'see_no_evil': '🙈',
        'hear_no_evil': '🙉',
        'speak_no_evil': '🙊',
        'skull': '💀',
        'alien': '👽',
        'hankey': '💩',
        'fire': '🔥',
        'sparkles': '✨',
        'star2': '🌟',
        'dizzy': '💫',
        'boom': '💥',
        'anger': '💢',
        'sweat_drops': '💦',
        'droplet': '💧',
        'zzz': '💤',
        'dash': '💨',
        'ear': '👂',
        'eyes': '👀',
        'nose': '👃',
        'tongue': '👅',
        'lips': '👄',
        'thumbs_up': '👍',
        '-1': '👎',
        'ok_hand': '👌',
        'facepunch': '👊',
        'fist': '✊',
        'wave': '👋',
        'hand': '✋',
        'open_hands': '👐',
        'point_up_2': '👆',
        'point_down': '👇',
        'point_right': '👉',
        'point_left': '👈',
        'raised_hands': '🙌',
        'pray': '🙏',
        'clap': '👏',
        'muscle': '💪',
        'walking': '🚶',
        'runner': '🏃',
        'dancer': '💃',
        'couple': '👫',
        'family': '👪',
        'couplekiss': '💏',
        'couple_with_heart': '💑',
        'dancers': '👯',
        'ok_woman': '🙆',
        'no_good': '🙅',
        'information_desk_person': '💁',
        'raising_hand': '🙋',
        'massage': '💆',
        'haircut': '💇',
        'nail_care': '💅',
        'bride_with_veil': '👰',
        'person_with_pouting_face': '🙎',
        'person_frowning': '🙍',
        'bow': '🙇',
        'tophat': '🎩',
        'crown': '👑',
        'womans_hat': '👒',
        'athletic_shoe': '👟',
        'mans_shoe': '👞',
        'sandal': '👡',
        'high_heel': '👠',
        'boot': '👢',
        'shirt': '👕',
        'necktie': '👔',
        'womans_clothes': '👚',
        'dress': '👗',
        'running_shirt_with_sash': '🎽',
        'jeans': '👖',
        'kimono': '👘',
        'bikini': '👙',
        'briefcase': '💼',
        'handbag': '👜',
        'pouch': '👝',
        'purse': '👛',
        'eyeglasses': '👓',
        'ribbon': '🎀',
        'closed_umbrella': '🌂',
        'lipstick': '💄',
        'yellow_heart': '💛',
        'blue_heart': '💙',
        'purple_heart': '💜',
        'green_heart': '💚',
        'broken_heart': '💔',
        'heartpulse': '💗',
        'heartbeat': '💓',
        'two_hearts': '💕',
        'sparkling_heart': '💖',
        'revolving_hearts': '💞',
        'cupid': '💘',
        'love_letter': '💌',
        'kiss': '💋',
        'ring': '💍',
        'gem': '💎',
        'bust_in_silhouette': '👤',
        'speech_balloon': '💬',
        'footprints': '👣',
    },
    'Nature': {
        'dog': '🐶',
        'wolf': '🐺',
        'cat': '🐱',
        'mouse': '🐭',
        'hamster': '🐹',
        'rabbit': '🐰',
        'frog': '🐸',
        'tiger': '🐯',
        'koala': '🐨',
        'bear': '🐻',
        'pig': '🐷',
        'pig_nose': '🐽',
        'cow': '🐮',
        'boar': '🐗',
        'monkey_face': '🐵',
        'monkey': '🐒',
        'horse': '🐴',
        'sheep': '🐑',
        'elephant': '🐘',
        'panda_face': '🐼',
        'penguin': '🐧',
        'bird': '🐦',
        'baby_chick': '🐤',
        'hatched_chick': '🐥',
        'hatching_chick': '🐣',
        'chicken': '🐔',
        'snake': '🐍',
        'turtle': '🐢',
        'bug': '🐛',
        'bee': '🐝',
        'ant': '🐜',
        'beetle': '🐞',
        'snail': '🐌',
        'octopus': '🐙',
        'shell': '🐚',
        'tropical_fish': '🐠',
        'fish': '🐟',
        'dolphin': '🐬',
        'whale': '🐳',
        'racehorse': '🐎',
        'dragon_face': '🐲',
        'blowfish': '🐡',
        'camel': '🐫',
        'poodle': '🐩',
        'feet': '🐾',
        'bouquet': '💐',
        'cherry_blossom': '🌸',
        'tulip': '🌷',
        'four_leaf_clover': '🍀',
        'rose': '🌹',
        'sunflower': '🌻',
        'hibiscus': '🌺',
        'maple_leaf': '🍁',
        'leaves': '🍃',
        'fallen_leaf': '🍂',
        'herb': '🌿',
        'ear_of_rice': '🌾',
        'mushroom': '🍄',
        'cactus': '🌵',
        'palm_tree': '🌴',
        'chestnut': '🌰',
        'seedling': '🌱',
        'blossom': '🌼',
        'new_moon': '🌑',
        'first_quarter_moon': '🌓',
        'moon': '🌔',
        'full_moon': '🌕',
        'first_quarter_moon_with_face': '🌛',
        'crescent_moon': '🌙',
        'earth_asia': '🌏',
        'volcano': '🌋',
        'milky_way': '🌌',
        'stars': '🌠',
        'partly_sunny': '⛅',
        'snowman': '⛄',
        'cyclone': '🌀',
        'foggy': '🌁',
        'rainbow': '🌈',
        'ocean': '🌊',
    },
    'Objects': {
        'bamboo': '🎍',
        'gift_heart': '💝',
        'dolls': '🎎',
        'school_satchel': '🎒',
        'mortar_board': '🎓',
        'flags': '🎏',
        'fireworks': '🎆',
        'sparkler': '🎇',
        'wind_chime': '🎐',
        'rice_scene': '🎑',
        'jack_o_lantern': '🎃',
        'ghost': '👻',
        'santa': '🎅',
        'christmas_tree': '🎄',
        'gift': '🎁',
        'tanabata_tree': '🎋',
        'tada': '🎉',
        'confetti_ball': '🎊',
        'balloon': '🎈',
        'crossed_flags': '🎌',
        'crystal_ball': '🔮',
        'movie_camera': '🎥',
        'camera': '📷',
        'video_camera': '📹',
        'vhs': '📼',
        'cd': '💿',
        'dvd': '📀',
        'minidisc': '💽',
        'floppy_disk': '💾',
        'computer': '💻',
        'iphone': '📱',
        'telephone_receiver': '📞',
        'pager': '📟',
        'fax': '📠',
        'satellite': '📡',
        'tv': '📺',
        'radio': '📻',
        'loud_sound': '🔊',
        'bell': '🔔',
        'loudspeaker': '📢',
        'mega': '📣',
        'hourglass_flowing_sand': '⏳',
        'hourglass': '⌛',
        'alarm_clock': '⏰',
        'watch': '⌚',
        'unlock': '🔓',
        'lock': '🔒',
        'lock_with_ink_pen': '🔏',
        'closed_lock_with_key': '🔐',
        'key': '🔑',
        'mag_right': '🔎',
        'bulb': '💡',
        'flashlight': '🔦',
        'electric_plug': '🔌',
        'battery': '🔋',
        'mag': '🔍',
        'bath': '🛀',
        'toilet': '🚽',
        'wrench': '🔧',
        'nut_and_bolt': '🔩',
        'hammer': '🔨',
        'door': '🚪',
        'smoking': '🚬',
        'bomb': '💣',
        'gun': '🔫',
        'hocho': '🔪',
        'pill': '💊',
        'syringe': '💉',
        'moneybag': '💰',
        'yen': '💴',
        'dollar': '💵',
        'credit_card': '💳',
        'money_with_wings': '💸',
        'calling': '📲',
        'e-mail': '📧',
        'inbox_tray': '📥',
        'outbox_tray': '📤',
        'envelope_with_arrow': '📩',
        'incoming_envelope': '📨',
        'mailbox': '📫',
        'mailbox_closed': '📪',
        'postbox': '📮',
        'package': '📦',
        'memo': '📝',
        'page_facing_up': '📄',
        'page_with_curl': '📃',
        'bookmark_tabs': '📑',
        'bar_chart': '📊',
        'chart_with_upwards_trend': '📈',
        'chart_with_downwards_trend': '📉',
        'scroll': '📜',
        'clipboard': '📋',
        'date': '📅',
        'calendar': '📆',
        'card_index': '📇',
        'file_folder': '📁',
        'open_file_folder': '📂',
        'pushpin': '📌',
        'paperclip': '📎',
        'straight_ruler': '📏',
        'triangular_ruler': '📐',
        'closed_book': '📕',
        'green_book': '📗',
        'blue_book': '📘',
        'orange_book': '📙',
        'notebook': '📓',
        'notebook_with_decorative_cover': '📔',
        'ledger': '📒',
        'books': '📚',
        'book': '📖',
        'bookmark': '🔖',
        'name_badge': '📛',
        'newspaper': '📰',
        'art': '🎨',
        'clapper': '🎬',
        'microphone': '🎤',
        'headphones': '🎧',
        'musical_score': '🎼',
        'musical_note': '🎵',
        'notes': '🎶',
        'musical_keyboard': '🎹',
        'violin': '🎻',
        'trumpet': '🎺',
        'saxophone': '🎷',
        'guitar': '🎸',
        'space_invader': '👾',
        'video_game': '🎮',
        'black_joker': '🃏',
        'flower_playing_cards': '🎴',
        'mahjong': '🀄',
        'game_die': '🎲',
        'dart': '🎯',
        'football': '🏈',
        'basketball': '🏀',
        'soccer': '⚽',
        'baseball': '⚾',
        'tennis': '🎾',
        '8ball': '🎱',
        'bowling': '🎳',
        'golf': '⛳',
        'checkered_flag': '🏁',
        'trophy': '🏆',
        'ski': '🎿',
        'snowboarder': '🏂',
        'swimmer': '🏊',
        'surfer': '🏄',
        'fishing_pole_and_fish': '🎣',
        'tea': '🍵',
        'sake': '🍶',
        'beer': '🍺',
        'beers': '🍻',
        'cocktail': '🍸',
        'tropical_drink': '🍹',
        'wine_glass': '🍷',
        'fork_and_knife': '🍴',
        'pizza': '🍕',
        'hamburger': '🍔',
        'fries': '🍟',
        'poultry_leg': '🍗',
        'meat_on_bone': '🍖',
        'spaghetti': '🍝',
        'curry': '🍛',
        'fried_shrimp': '🍤',
        'bento': '🍱',
        'sushi': '🍣',
        'fish_cake': '🍥',
        'rice_ball': '🍙',
        'rice_cracker': '🍘',
        'rice': '🍚',
        'ramen': '🍜',
        'stew': '🍲',
        'oden': '🍢',
        'dango': '🍡',
        'egg': '🍳',
        'bread': '🍞',
        'doughnut': '🍩',
        'custard': '🍮',
        'icecream': '🍦',
        'ice_cream': '🍨',
        'shaved_ice': '🍧',
        'birthday': '🎂',
        'cake': '🍰',
        'cookie': '🍪',
        'chocolate_bar': '🍫',
        'candy': '🍬',
        'lollipop': '🍭',
        'honey_pot': '🍯',
        'apple': '🍎',
        'green_apple': '🍏',
        'tangerine': '🍊',
        'cherries': '🍒',
        'grapes': '🍇',
        'watermelon': '🍉',
        'strawberry': '🍓',
        'peach': '🍑',
        'melon': '🍈',
        'banana': '🍌',
        'pineapple': '🍍',
        'sweet_potato': '🍠',
        'eggplant': '🍆',
        'tomato': '🍅',
        'corn': '🌽',
    },
    'Places': {
        'house': '🏠',
        'house_with_garden': '🏡',
        'school': '🏫',
        'office': '🏢',
        'post_office': '🏣',
        'hospital': '🏥',
        'bank': '🏦',
        'convenience_store': '🏪',
        'love_hotel': '🏩',
        'hotel': '🏨',
        'wedding': '💒',
        'church': '⛪',
        'department_store': '🏬',
        'city_sunrise': '🌇',
        'city_sunset': '🌆',
        'japanese_castle': '🏯',
        'european_castle': '🏰',
        'tent': '⛺',
        'factory': '🏭',
        'tokyo_tower': '🗼',
        'japan': '🗾',
        'mount_fuji': '🗻',
        'sunrise_over_mountains': '🌄',
        'sunrise': '🌅',
        'night_with_stars': '🌃',
        'statue_of_liberty': '🗽',
        'bridge_at_night': '🌉',
        'carousel_horse': '🎠',
        'ferris_wheel': '🎡',
        'fountain': '⛲',
        'roller_coaster': '🎢',
        'ship': '🚢',
        'boat': '⛵',
        'speedboat': '🚤',
        'rocket': '🚀',
        'seat': '💺',
        'station': '🚉',
        'bullettrain_side': '🚄',
        'bullettrain_front': '🚅',
        'metro': '🚇',
        'railway_car': '🚃',
        'bus': '🚌',
        'blue_car': '🚙',
        'car': '🚗',
        'taxi': '🚕',
        'truck': '🚚',
        'rotating_light': '🚨',
        'police_car': '🚓',
        'fire_engine': '🚒',
        'ambulance': '🚑',
        'bike': '🚲',
        'barber': '💈',
        'busstop': '🚏',
        'ticket': '🎫',
        'traffic_light': '🚥',
        'construction': '🚧',
        'beginner': '🔰',
        'fuelpump': '⛽',
        'izakaya_lantern': '🏮',
        'slot_machine': '🎰',
        'moyai': '🗿',
        'circus_tent': '🎪',
        'performing_arts': '🎭',
        'round_pushpin': '📍',
        'triangular_flag_on_post': '🚩',
    },
    'Symbols': {
        'keycap_ten': '🔟',
        '1234': '🔢',
        'symbols': '🔣',
        'capital_abcd': '🔠',
        'abcd': '🔡',
        'abc': '🔤',
        'arrow_up_small': '🔼',
        'arrow_down_small': '🔽',
        'rewind': '⏪',
        'fast_forward': '⏩',
        'arrow_double_up': '⏫',
        'arrow_double_down': '⏬',
        'ok': '🆗',
        'new': '🆕',
        'up': '🆙',
        'cool': '🆒',
        'free': '🆓',
        'ng': '🆖',
        'signal_strength': '📶',
        'cinema': '🎦',
        'koko': '🈁',
        'u6307': '🈯',
        'u7a7a': '🈳',
        'u6e80': '🈵',
        'u5408': '🈴',
        'u7981': '🈲',
        'ideograph_advantage': '🉐',
        'u5272': '🈹',
        'u55b6': '🈺',
        'u6709': '🈶',
        'u7121': '🈚',
        'restroom': '🚻',
        'mens': '🚹',
        'womens': '🚺',
        'baby_symbol': '🚼',
        'wc': '🚾',
        'no_smoking': '🚭',
        'u7533': '🈸',
        'accept': '🉑',
        'cl': '🆑',
        'sos': '🆘',
        'id': '🆔',
        'no_entry_sign': '🚫',
        'underage': '🔞',
        'no_entry': '⛔',
        'negative_squared_cross_mark': '❎',
        'white_check_mark': '✅',
        'heart_decoration': '💟',
        'vs': '🆚',
        'vibration_mode': '📳',
        'mobile_phone_off': '📴',
        'ab': '🆎',
        'diamond_shape_with_a_dot_inside': '💠',
        'ophiuchus': '⛎',
        'six_pointed_star': '🔯',
        'atm': '🏧',
        'chart': '💹',
        'heavy_dollar_sign': '💲',
        'currency_exchange': '💱',
        'x': '❌',
        'exclamation': '❗',
        'question': '❓',
        'grey_exclamation': '❕',
        'grey_question': '❔',
        'o': '⭕',
        'top': '🔝',
        'end': '🔚',
        'back': '🔙',
        'on': '🔛',
        'soon': '🔜',
        'arrows_clockwise': '🔃',
        'clock12': '🕛',
        'clock1': '🕐',
        'clock2': '🕑',
        'clock3': '🕒',
        'clock4': '🕓',
        'clock5': '🕔',
        'clock6': '🕕',
        'clock7': '🕖',
        'clock8': '🕗',
        'clock9': '🕘',
        'clock10': '🕙',
        'clock11': '🕚',
        'heavy_plus_sign': '➕',
        'heavy_minus_sign': '➖',
        'heavy_division_sign': '➗',
        'white_flower': '💮',
        '100': '💯',
        'radio_button': '🔘',
        'link': '🔗',
        'curly_loop': '➰',
        'trident': '🔱',
        'small_red_triangle': '🔺',
        'black_square_button': '🔲',
        'white_square_button': '🔳',
        'red_circle': '🔴',
        'large_blue_circle': '🔵',
        'small_red_triangle_down': '🔻',
        'white_large_square': '⬜',
        'black_large_square': '⬛',
        'large_orange_diamond': '🔶',
        'large_blue_diamond': '🔷',
        'small_orange_diamond': '🔸',
        'small_blue_diamond': '🔹',
    },
});

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/EmojiPicker.vue?vue&type=template&id=7ef95ce2&scoped=true&
var EmojiPickervue_type_template_id_7ef95ce2_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"vac-wrapper"},[_c('emoji-picker',{attrs:{"search":_vm.search},on:{"emoji":_vm.append},scopedSlots:_vm._u([{key:"emoji-invoker",fn:function(ref){
var clickEvent = ref.events.click;
return _c('div',{staticClass:"vac-svg-button",class:{ 'vac-button-reaction': _vm.emojiReaction },on:{"click":[function($event){$event.stopPropagation();return clickEvent($event)},_vm.openEmoji]}},[_vm._t("emoji-picker-icon",[_c('svg-icon',{attrs:{"name":"emoji","param":_vm.emojiReaction ? 'reaction' : ''}})])],2)}},{key:"emoji-picker",fn:function(ref){
var emojis = ref.emojis;
var insert = ref.insert;
return (_vm.emojiOpened)?_c('div',{},[_c('transition',{attrs:{"name":"vac-slide-up","appear":""}},[_c('div',{staticClass:"vac-emoji-picker",class:{ 'vac-picker-reaction': _vm.emojiReaction },style:({
						height: (_vm.emojiPickerHeight + "px"),
						top: _vm.positionTop ? _vm.emojiPickerHeight : (_vm.emojiPickerTop + "px"),
						right: _vm.emojiPickerRight,
						display: _vm.emojiPickerTop || !_vm.emojiReaction ? 'initial' : 'none'
					})},[_c('div',{staticClass:"vac-emoji-picker__search"},[_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.search),expression:"search"}],attrs:{"type":"text"},domProps:{"value":(_vm.search)},on:{"input":function($event){if($event.target.composing){ return; }_vm.search=$event.target.value}}})]),_c('div',_vm._l((emojis),function(emojiGroup,category){return _c('div',{key:category},[(category !== 'Frequently used')?_c('h5',[_vm._v(" "+_vm._s(category)+" ")]):_vm._e(),(category !== 'Frequently used')?_c('div',{staticClass:"vac-emojis"},_vm._l((emojiGroup),function(emoji,emojiName){return _c('span',{key:emojiName,attrs:{"title":emojiName},on:{"click":function($event){return insert({ emoji: emoji, emojiName: emojiName })}}},[_vm._v(" "+_vm._s(emoji)+" ")])}),0):_vm._e()])}),0)])])],1):_vm._e()}}],null,true)})],1)}
var EmojiPickervue_type_template_id_7ef95ce2_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/components/EmojiPicker.vue?vue&type=template&id=7ef95ce2&scoped=true&

// EXTERNAL MODULE: ./node_modules/vue-emoji-picker/dist-module/main.js
var main = __webpack_require__("669f");
var main_default = /*#__PURE__*/__webpack_require__.n(main);

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/EmojiPicker.vue?vue&type=script&lang=js&

//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ var EmojiPickervue_type_script_lang_js_ = ({
  components: {
    EmojiPicker: main_default.a,
    SvgIcon: SvgIcon
  },
  props: {
    emojiOpened: {
      type: Boolean,
      "default": false
    },
    emojiReaction: {
      type: Boolean,
      "default": false
    },
    roomFooterRef: {
      type: HTMLDivElement,
      "default": null
    },
    positionTop: {
      type: Boolean,
      "default": false
    },
    positionRight: {
      type: Boolean,
      "default": false
    }
  },
  data: function data() {
    return {
      search: '',
      emojiPickerHeight: 320,
      emojiPickerTop: 0,
      emojiPickerRight: ''
    };
  },
  methods: {
    append: function append(_ref) {
      var emoji = _ref.emoji,
          emojiName = _ref.emojiName;
      this.$emit('add-emoji', {
        icon: emoji,
        name: emojiName
      });
    },
    openEmoji: function openEmoji(ev) {
      this.$emit('open-emoji', true);
      this.setEmojiPickerPosition(ev.clientY, ev.view.innerWidth, ev.view.innerHeight);
    },
    setEmojiPickerPosition: function setEmojiPickerPosition(clientY, innerWidth, innerHeight) {
      var _this = this;

      setTimeout(function () {
        var mobileSize = innerWidth < 500 || innerHeight < 700;

        if (!_this.roomFooterRef) {
          if (mobileSize) _this.emojiPickerRight = '0px';
          return;
        }

        if (mobileSize) {
          _this.emojiPickerRight = innerWidth / 2 - 120 + 'px';
          _this.emojiPickerTop = 100;
          _this.emojiPickerHeight = innerHeight - 200;
        } else {
          var roomFooterTop = _this.roomFooterRef.getBoundingClientRect().top;

          var pickerTopPosition = roomFooterTop - clientY > _this.emojiPickerHeight - 50;
          if (pickerTopPosition) _this.emojiPickerTop = clientY + 10;else _this.emojiPickerTop = clientY - _this.emojiPickerHeight - 10;
          _this.emojiPickerRight = _this.positionTop ? '-50px' : _this.positionRight ? '60px' : '';
        }
      }, 0);
    }
  }
});
// CONCATENATED MODULE: ./src/components/EmojiPicker.vue?vue&type=script&lang=js&
 /* harmony default export */ var components_EmojiPickervue_type_script_lang_js_ = (EmojiPickervue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/components/EmojiPicker.vue?vue&type=style&index=0&id=7ef95ce2&lang=scss&scoped=true&
var EmojiPickervue_type_style_index_0_id_7ef95ce2_lang_scss_scoped_true_ = __webpack_require__("ccda");

// CONCATENATED MODULE: ./src/components/EmojiPicker.vue






/* normalize component */

var EmojiPicker_component = normalizeComponent(
  components_EmojiPickervue_type_script_lang_js_,
  EmojiPickervue_type_template_id_7ef95ce2_scoped_true_render,
  EmojiPickervue_type_template_id_7ef95ce2_scoped_true_staticRenderFns,
  false,
  null,
  "7ef95ce2",
  null
  
)

/* harmony default export */ var EmojiPicker = (EmojiPicker_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Room/RoomHeader.vue?vue&type=template&id=64950a2c&scoped=true&
var RoomHeadervue_type_template_id_64950a2c_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"vac-room-header vac-app-border-b"},[_vm._t("room-header",[_c('div',{staticClass:"vac-room-wrapper"},[(!_vm.singleRoom)?_c('div',{staticClass:"vac-svg-button vac-toggle-button",class:{ 'vac-rotate-icon': !_vm.showRoomsList && !_vm.isMobile },on:{"click":function($event){return _vm.$emit('toggle-rooms-list')}}},[_vm._t("toggle-icon",[_c('svg-icon',{attrs:{"name":"toggle"}})])],2):_vm._e(),_c('div',{staticClass:"vac-info-wrapper",class:{ 'vac-item-clickable': _vm.roomInfo },on:{"click":function($event){return _vm.$emit('room-info', _vm.room)}}},[_vm._t("room-header-avatar",[(_vm.room.avatar)?_c('div',{staticClass:"vac-room-avatar",style:({ 'background-image': ("url('" + (_vm.room.avatar) + "')") })}):_vm._e()],null,{ room: _vm.room }),_vm._t("room-header-info",[_c('div',{staticClass:"vac-text-ellipsis"},[_c('div',{staticClass:"vac-room-name vac-text-ellipsis"},[_vm._v(" "+_vm._s(_vm.room.roomName)+" ")]),(_vm.typingUsers)?_c('div',{staticClass:"vac-room-info vac-text-ellipsis"},[_vm._v(" "+_vm._s(_vm.typingUsers)+" ")]):_c('div',{staticClass:"vac-room-info vac-text-ellipsis"},[_vm._v(" "+_vm._s(_vm.userStatus)+" ")])])],null,{ room: _vm.room, typingUsers: _vm.typingUsers, userStatus: _vm.userStatus })],2),(_vm.room.roomId)?_vm._t("room-options",[(_vm.menuActions.length)?_c('div',{staticClass:"vac-svg-button vac-room-options",on:{"click":function($event){_vm.menuOpened = !_vm.menuOpened}}},[_vm._t("menu-icon",[_c('svg-icon',{attrs:{"name":"menu"}})])],2):_vm._e(),(_vm.menuActions.length)?_c('transition',{attrs:{"name":"vac-slide-left"}},[(_vm.menuOpened)?_c('div',{directives:[{name:"click-outside",rawName:"v-click-outside",value:(_vm.closeMenu),expression:"closeMenu"}],staticClass:"vac-menu-options"},[_c('div',{staticClass:"vac-menu-list"},_vm._l((_vm.menuActions),function(action){return _c('div',{key:action.name},[_c('div',{staticClass:"vac-menu-item",on:{"click":function($event){return _vm.menuActionHandler(action)}}},[_vm._v(" "+_vm._s(action.title)+" ")])])}),0)]):_vm._e()]):_vm._e()]):_vm._e()],2)],null,{ room: _vm.room, typingUsers: _vm.typingUsers, userStatus: _vm.userStatus })],2)}
var RoomHeadervue_type_template_id_64950a2c_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/Room/RoomHeader.vue?vue&type=template&id=64950a2c&scoped=true&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Room/RoomHeader.vue?vue&type=script&lang=js&


//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//



/* harmony default export */ var RoomHeadervue_type_script_lang_js_ = ({
  name: 'RoomHeader',
  components: {
    SvgIcon: SvgIcon
  },
  directives: {
    clickOutside: v_click_outside_umd_default.a.directive
  },
  props: {
    currentUserId: {
      type: [String, Number],
      required: true
    },
    textMessages: {
      type: Object,
      required: true
    },
    singleRoom: {
      type: Boolean,
      required: true
    },
    showRoomsList: {
      type: Boolean,
      required: true
    },
    isMobile: {
      type: Boolean,
      required: true
    },
    roomInfo: {
      type: Function,
      "default": null
    },
    menuActions: {
      type: Array,
      required: true
    },
    room: {
      type: Object,
      required: true
    }
  },
  data: function data() {
    return {
      menuOpened: false
    };
  },
  computed: {
    typingUsers: function typingUsers() {
      return typing_text(this.room, this.currentUserId, this.textMessages);
    },
    userStatus: function userStatus() {
      var _this = this;

      if (!this.room.users || this.room.users.length !== 2) return;
      var user = this.room.users.find(function (u) {
        return u._id !== _this.currentUserId;
      });
      if (!user.status) return;
      var text = '';

      if (user.status.state === 'online') {
        text = this.textMessages.IS_ONLINE;
      } else if (user.status.lastChanged) {
        text = this.textMessages.LAST_SEEN + user.status.lastChanged;
      }

      return text;
    }
  },
  methods: {
    menuActionHandler: function menuActionHandler(action) {
      this.closeMenu();
      this.$emit('menu-action-handler', action);
    },
    closeMenu: function closeMenu() {
      this.menuOpened = false;
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/Room/RoomHeader.vue?vue&type=script&lang=js&
 /* harmony default export */ var Room_RoomHeadervue_type_script_lang_js_ = (RoomHeadervue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/Room/RoomHeader.vue?vue&type=style&index=0&id=64950a2c&lang=scss&scoped=true&
var RoomHeadervue_type_style_index_0_id_64950a2c_lang_scss_scoped_true_ = __webpack_require__("798d");

// CONCATENATED MODULE: ./src/ChatWindow/Room/RoomHeader.vue






/* normalize component */

var RoomHeader_component = normalizeComponent(
  Room_RoomHeadervue_type_script_lang_js_,
  RoomHeadervue_type_template_id_64950a2c_scoped_true_render,
  RoomHeadervue_type_template_id_64950a2c_scoped_true_staticRenderFns,
  false,
  null,
  "64950a2c",
  null
  
)

/* harmony default export */ var RoomHeader = (RoomHeader_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Room/RoomMessageReply.vue?vue&type=template&id=ba6c1600&scoped=true&
var RoomMessageReplyvue_type_template_id_ba6c1600_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{"name":"vac-slide-up"}},[(_vm.messageReply)?_c('div',{staticClass:"vac-reply-container",style:({ bottom: ((_vm.$parent.$refs.roomFooter.clientHeight) + "px") })},[_c('div',{staticClass:"vac-reply-box"},[(_vm.isImageFile)?_c('img',{staticClass:"vac-image-reply",attrs:{"src":_vm.messageReply.file.url}}):_vm._e(),_c('div',{staticClass:"vac-reply-info"},[_c('div',{staticClass:"vac-reply-username"},[_vm._v(" "+_vm._s(_vm.messageReply.username)+" ")]),_c('div',{staticClass:"vac-reply-content"},[_c('format-message',{attrs:{"content":_vm.messageReply.content,"users":_vm.room.users,"text-formatting":_vm.textFormatting,"link-options":_vm.linkOptions,"reply":true},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)})],1)])]),_c('div',{staticClass:"vac-icon-reply"},[_c('div',{staticClass:"vac-svg-button",on:{"click":function($event){return _vm.$emit('reset-message')}}},[_vm._t("reply-close-icon",[_c('svg-icon',{attrs:{"name":"close-outline"}})])],2)])]):_vm._e()])}
var RoomMessageReplyvue_type_template_id_ba6c1600_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/Room/RoomMessageReply.vue?vue&type=template&id=ba6c1600&scoped=true&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Room/RoomMessageReply.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//



var RoomMessageReplyvue_type_script_lang_js_require = __webpack_require__("bd43"),
    _isImageFile = RoomMessageReplyvue_type_script_lang_js_require.isImageFile;

/* harmony default export */ var RoomMessageReplyvue_type_script_lang_js_ = ({
  name: 'RoomMessageReply',
  components: {
    SvgIcon: SvgIcon,
    FormatMessage: FormatMessage
  },
  props: {
    room: {
      type: Object,
      required: true
    },
    messageReply: {
      type: Object,
      "default": null
    },
    textFormatting: {
      type: Boolean,
      required: true
    },
    linkOptions: {
      type: Object,
      required: true
    }
  },
  computed: {
    isImageFile: function isImageFile() {
      return _isImageFile(this.messageReply.file);
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/Room/RoomMessageReply.vue?vue&type=script&lang=js&
 /* harmony default export */ var Room_RoomMessageReplyvue_type_script_lang_js_ = (RoomMessageReplyvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/Room/RoomMessageReply.vue?vue&type=style&index=0&id=ba6c1600&lang=scss&scoped=true&
var RoomMessageReplyvue_type_style_index_0_id_ba6c1600_lang_scss_scoped_true_ = __webpack_require__("a231");

// CONCATENATED MODULE: ./src/ChatWindow/Room/RoomMessageReply.vue






/* normalize component */

var RoomMessageReply_component = normalizeComponent(
  Room_RoomMessageReplyvue_type_script_lang_js_,
  RoomMessageReplyvue_type_template_id_ba6c1600_scoped_true_render,
  RoomMessageReplyvue_type_template_id_ba6c1600_scoped_true_staticRenderFns,
  false,
  null,
  "ba6c1600",
  null
  
)

/* harmony default export */ var RoomMessageReply = (RoomMessageReply_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Room/RoomUsersTag.vue?vue&type=template&id=38381158&scoped=true&
var RoomUsersTagvue_type_template_id_38381158_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{"name":"vac-slide-up"}},[(_vm.filteredUsersTag.length)?_c('div',{staticClass:"vac-tags-container vac-app-box-shadow",style:({ bottom: ((_vm.$parent.$refs.roomFooter.clientHeight) + "px") })},_vm._l((_vm.filteredUsersTag),function(user){return _c('div',{key:user._id,staticClass:"vac-tags-box",on:{"click":function($event){return _vm.$emit('select-user-tag', user)}}},[_c('div',{staticClass:"vac-tags-info"},[(user.avatar)?_c('div',{staticClass:"vac-room-avatar vac-tags-avatar",style:({ 'background-image': ("url('" + (user.avatar) + "')") })}):_vm._e(),_c('div',{staticClass:"vac-tags-username"},[_vm._v(" "+_vm._s(user.username)+" ")])])])}),0):_vm._e()])}
var RoomUsersTagvue_type_template_id_38381158_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/Room/RoomUsersTag.vue?vue&type=template&id=38381158&scoped=true&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Room/RoomUsersTag.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var RoomUsersTagvue_type_script_lang_js_ = ({
  name: 'RoomUsersTag',
  props: {
    filteredUsersTag: {
      type: Array,
      required: true
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/Room/RoomUsersTag.vue?vue&type=script&lang=js&
 /* harmony default export */ var Room_RoomUsersTagvue_type_script_lang_js_ = (RoomUsersTagvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/Room/RoomUsersTag.vue?vue&type=style&index=0&id=38381158&lang=scss&scoped=true&
var RoomUsersTagvue_type_style_index_0_id_38381158_lang_scss_scoped_true_ = __webpack_require__("68ab");

// CONCATENATED MODULE: ./src/ChatWindow/Room/RoomUsersTag.vue






/* normalize component */

var RoomUsersTag_component = normalizeComponent(
  Room_RoomUsersTagvue_type_script_lang_js_,
  RoomUsersTagvue_type_template_id_38381158_scoped_true_render,
  RoomUsersTagvue_type_template_id_38381158_scoped_true_staticRenderFns,
  false,
  null,
  "38381158",
  null
  
)

/* harmony default export */ var RoomUsersTag = (RoomUsersTag_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Room/RoomEmojis.vue?vue&type=template&id=cb489922&scoped=true&
var RoomEmojisvue_type_template_id_cb489922_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{"name":"vac-slide-up"}},[(_vm.filteredEmojis.length)?_c('div',{staticClass:"vac-emojis-container vac-app-box-shadow",style:({ bottom: ((_vm.$parent.$refs.roomFooter.clientHeight) + "px") })},_vm._l((_vm.filteredEmojis),function(emoji){return _c('div',{key:emoji,staticClass:"vac-emoji-element",on:{"click":function($event){return _vm.$emit('select-emoji', emoji)}}},[_vm._v(" "+_vm._s(emoji)+" ")])}),0):_vm._e()])}
var RoomEmojisvue_type_template_id_cb489922_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/Room/RoomEmojis.vue?vue&type=template&id=cb489922&scoped=true&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Room/RoomEmojis.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var RoomEmojisvue_type_script_lang_js_ = ({
  name: 'RoomEmojis',
  props: {
    filteredEmojis: {
      type: Array,
      required: true
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/Room/RoomEmojis.vue?vue&type=script&lang=js&
 /* harmony default export */ var Room_RoomEmojisvue_type_script_lang_js_ = (RoomEmojisvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/Room/RoomEmojis.vue?vue&type=style&index=0&id=cb489922&lang=scss&scoped=true&
var RoomEmojisvue_type_style_index_0_id_cb489922_lang_scss_scoped_true_ = __webpack_require__("ee84");

// CONCATENATED MODULE: ./src/ChatWindow/Room/RoomEmojis.vue






/* normalize component */

var RoomEmojis_component = normalizeComponent(
  Room_RoomEmojisvue_type_script_lang_js_,
  RoomEmojisvue_type_template_id_cb489922_scoped_true_render,
  RoomEmojisvue_type_template_id_cb489922_scoped_true_staticRenderFns,
  false,
  null,
  "cb489922",
  null
  
)

/* harmony default export */ var RoomEmojis = (RoomEmojis_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Message/Message.vue?vue&type=template&id=91e9e26c&scoped=true&
var Messagevue_type_template_id_91e9e26c_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showDate)?_c('div',{staticClass:"vac-card-info vac-card-date"},[_vm._v(" "+_vm._s(_vm.message.date)+" ")]):_vm._e(),(_vm.newMessage._id === _vm.message._id)?_c('div',{staticClass:"vac-line-new"},[_vm._v(" "+_vm._s(_vm.textMessages.NEW_MESSAGES)+" ")]):_vm._e(),(_vm.message.system)?_c('div',{staticClass:"vac-card-info vac-card-system"},[_vm._v(" "+_vm._s(_vm.message.content)+" ")]):_c('div',{staticClass:"vac-message-box",class:{ 'vac-offset-current': _vm.message.senderId === _vm.currentUserId },attrs:{"id":_vm.message._id}},[_vm._t("message",[_c('div',{staticClass:"vac-message-container",class:{
					'vac-message-container-offset': _vm.messageOffset
				}},[_c('div',{staticClass:"vac-message-card",class:{
						'vac-message-highlight': _vm.isMessageHover,
						'vac-message-current': _vm.message.senderId === _vm.currentUserId,
						'vac-message-deleted': _vm.message.deleted
					},on:{"mouseover":_vm.onHoverMessage,"mouseleave":_vm.onLeaveMessage}},[(_vm.roomUsers.length > 2 && _vm.message.senderId !== _vm.currentUserId)?_c('div',{staticClass:"vac-text-username",class:{
							'vac-username-reply': !_vm.message.deleted && _vm.message.replyMessage
						}},[_c('span',[_vm._v(_vm._s(_vm.message.username))])]):_vm._e(),(!_vm.message.deleted && _vm.message.replyMessage)?_c('message-reply',{attrs:{"message":_vm.message,"room-users":_vm.roomUsers,"text-formatting":_vm.textFormatting,"link-options":_vm.linkOptions},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)}):_vm._e(),(_vm.message.deleted)?_c('div',[_vm._t("deleted-icon",[_c('svg-icon',{staticClass:"vac-icon-deleted",attrs:{"name":"deleted"}})]),_c('span',[_vm._v(_vm._s(_vm.textMessages.MESSAGE_DELETED))])],2):(!_vm.message.file)?_c('format-message',{attrs:{"content":_vm.message.content,"users":_vm.roomUsers,"text-formatting":_vm.textFormatting,"link-options":_vm.linkOptions},on:{"open-user-tag":_vm.openUserTag},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)}):(_vm.isImage)?_c('message-image',{attrs:{"current-user-id":_vm.currentUserId,"message":_vm.message,"room-users":_vm.roomUsers,"text-formatting":_vm.textFormatting,"link-options":_vm.linkOptions,"image-hover":_vm.imageHover},on:{"open-file":_vm.openFile},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)}):(_vm.isVideo)?_c('div',{staticClass:"vac-video-container"},[_c('video',{attrs:{"width":"100%","height":"100%","controls":""}},[_c('source',{attrs:{"src":_vm.message.file.url}})])]):(_vm.isAudio)?_c('audio-player',{attrs:{"src":_vm.message.file.url},on:{"update-progress-time":function($event){_vm.progressTime = $event},"hover-audio-progress":function($event){_vm.hoverAudioProgress = $event}},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)}):_c('div',{staticClass:"vac-file-message"},[_c('div',{staticClass:"vac-svg-button vac-icon-file",on:{"click":function($event){$event.stopPropagation();return _vm.openFile('download')}}},[_vm._t("document-icon",[_c('svg-icon',{attrs:{"name":"document"}})])],2),_c('span',[_vm._v(_vm._s(_vm.message.content))])]),(_vm.isAudio && !_vm.message.deleted)?_c('div',{staticClass:"vac-progress-time"},[_vm._v(" "+_vm._s(_vm.progressTime)+" ")]):_vm._e(),_c('div',{staticClass:"vac-text-timestamp"},[(_vm.message.edited && !_vm.message.deleted)?_c('div',{staticClass:"vac-icon-edited"},[_vm._t("pencil-icon",[_c('svg-icon',{attrs:{"name":"pencil"}})])],2):_vm._e(),_c('span',[_vm._v(_vm._s(_vm.message.timestamp))]),(_vm.isCheckmarkVisible)?_c('span',[_vm._t("checkmark-icon",[_c('svg-icon',{staticClass:"vac-icon-check",attrs:{"name":_vm.message.distributed ? 'double-checkmark' : 'checkmark',"param":_vm.message.seen ? 'seen' : ''}})],null,{ message: _vm.message })],2):_vm._e()]),_c('message-actions',{attrs:{"current-user-id":_vm.currentUserId,"message":_vm.message,"message-actions":_vm.messageActions,"room-footer-ref":_vm.roomFooterRef,"show-reaction-emojis":_vm.showReactionEmojis,"hide-options":_vm.hideOptions,"message-hover":_vm.messageHover,"hover-message-id":_vm.hoverMessageId,"hover-audio-progress":_vm.hoverAudioProgress},on:{"hide-options":function($event){return _vm.$emit('hide-options', false)},"update-message-hover":function($event){_vm.messageHover = $event},"update-options-opened":function($event){_vm.optionsOpened = $event},"update-emoji-opened":function($event){_vm.emojiOpened = $event},"message-action-handler":_vm.messageActionHandler,"send-message-reaction":function($event){return _vm.sendMessageReaction($event)}},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)})],1),_c('message-reactions',{attrs:{"current-user-id":_vm.currentUserId,"message":_vm.message,"emojis-list":_vm.emojisList},on:{"send-message-reaction":function($event){return _vm.sendMessageReaction($event)}}})],1)],null,{ message: _vm.message })],2)])}
var Messagevue_type_template_id_91e9e26c_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/Message/Message.vue?vue&type=template&id=91e9e26c&scoped=true&

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.reduce.js
var es_array_reduce = __webpack_require__("13d5");

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Message/MessageReply.vue?vue&type=template&id=0a737ce0&scoped=true&
var MessageReplyvue_type_template_id_0a737ce0_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"vac-reply-message"},[_c('div',{staticClass:"vac-reply-username"},[_vm._v(" "+_vm._s(_vm.replyUsername)+" ")]),(_vm.isImage)?_c('div',{staticClass:"vac-image-reply-container"},[_c('div',{staticClass:"vac-message-image vac-message-image-reply",style:({
				'background-image': ("url('" + (_vm.message.replyMessage.file.url) + "')")
			})})]):_vm._e(),_c('div',{staticClass:"vac-reply-content"},[_c('format-message',{attrs:{"content":_vm.message.replyMessage.content,"users":_vm.roomUsers,"text-formatting":_vm.textFormatting,"link-options":_vm.linkOptions,"reply":true},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)})],1)])}
var MessageReplyvue_type_template_id_0a737ce0_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/Message/MessageReply.vue?vue&type=template&id=0a737ce0&scoped=true&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Message/MessageReply.vue?vue&type=script&lang=js&

//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


var MessageReplyvue_type_script_lang_js_require = __webpack_require__("bd43"),
    isImageFile = MessageReplyvue_type_script_lang_js_require.isImageFile;

/* harmony default export */ var MessageReplyvue_type_script_lang_js_ = ({
  name: 'MessageReply',
  components: {
    FormatMessage: FormatMessage
  },
  props: {
    message: {
      type: Object,
      required: true
    },
    textFormatting: {
      type: Boolean,
      required: true
    },
    linkOptions: {
      type: Object,
      required: true
    },
    roomUsers: {
      type: Array,
      required: true
    }
  },
  computed: {
    replyUsername: function replyUsername() {
      var senderId = this.message.replyMessage.senderId;
      var replyUser = this.roomUsers.find(function (user) {
        return user._id === senderId;
      });
      return replyUser ? replyUser.username : '';
    },
    isImage: function isImage() {
      return isImageFile(this.message.replyMessage.file);
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/Message/MessageReply.vue?vue&type=script&lang=js&
 /* harmony default export */ var Message_MessageReplyvue_type_script_lang_js_ = (MessageReplyvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/Message/MessageReply.vue?vue&type=style&index=0&id=0a737ce0&lang=scss&scoped=true&
var MessageReplyvue_type_style_index_0_id_0a737ce0_lang_scss_scoped_true_ = __webpack_require__("ccd9");

// CONCATENATED MODULE: ./src/ChatWindow/Message/MessageReply.vue






/* normalize component */

var MessageReply_component = normalizeComponent(
  Message_MessageReplyvue_type_script_lang_js_,
  MessageReplyvue_type_template_id_0a737ce0_scoped_true_render,
  MessageReplyvue_type_template_id_0a737ce0_scoped_true_staticRenderFns,
  false,
  null,
  "0a737ce0",
  null
  
)

/* harmony default export */ var MessageReply = (MessageReply_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Message/MessageImage.vue?vue&type=template&id=66c96f2b&scoped=true&
var MessageImagevue_type_template_id_66c96f2b_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"imageRef",staticClass:"vac-image-container"},[_c('loader',{style:({ top: ((_vm.imageResponsive.loaderTop) + "px") }),attrs:{"show":_vm.isImageLoading}}),_c('div',{staticClass:"vac-message-image",class:{
			'vac-image-loading':
				_vm.isImageLoading && _vm.message.senderId === _vm.currentUserId
		},style:({
			'background-image': ("url('" + (_vm.message.file.url) + "')"),
			'max-height': ((_vm.imageResponsive.maxHeight) + "px")
		})},[_c('transition',{attrs:{"name":"vac-fade-image"}},[(_vm.imageHover && !_vm.isImageLoading)?_c('div',{staticClass:"vac-image-buttons"},[_c('div',{staticClass:"vac-svg-button vac-button-view",on:{"click":function($event){$event.stopPropagation();return _vm.$emit('open-file', 'preview')}}},[_vm._t("eye-icon",[_c('svg-icon',{attrs:{"name":"eye"}})])],2),_c('div',{staticClass:"vac-svg-button vac-button-download",on:{"click":function($event){$event.stopPropagation();return _vm.$emit('open-file', 'download')}}},[_vm._t("document-icon",[_c('svg-icon',{attrs:{"name":"document"}})])],2)]):_vm._e()])],1),_c('format-message',{attrs:{"content":_vm.message.content,"users":_vm.roomUsers,"text-formatting":_vm.textFormatting,"link-options":_vm.linkOptions},on:{"open-user-tag":function($event){return _vm.$emit('open-user-tag')}},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(i,name){return {key:name,fn:function(data){return [_vm._t(name,null,null,data)]}}})],null,true)})],1)}
var MessageImagevue_type_template_id_66c96f2b_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/Message/MessageImage.vue?vue&type=template&id=66c96f2b&scoped=true&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Message/MessageImage.vue?vue&type=script&lang=js&


//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//




var MessageImagevue_type_script_lang_js_require = __webpack_require__("bd43"),
    MessageImagevue_type_script_lang_js_isImageFile = MessageImagevue_type_script_lang_js_require.isImageFile;

/* harmony default export */ var MessageImagevue_type_script_lang_js_ = ({
  name: 'MessageImage',
  components: {
    SvgIcon: SvgIcon,
    Loader: Loader,
    FormatMessage: FormatMessage
  },
  props: {
    currentUserId: {
      type: [String, Number],
      required: true
    },
    message: {
      type: Object,
      required: true
    },
    roomUsers: {
      type: Array,
      required: true
    },
    textFormatting: {
      type: Boolean,
      required: true
    },
    linkOptions: {
      type: Object,
      required: true
    },
    imageHover: {
      type: Boolean,
      required: true
    }
  },
  data: function data() {
    return {
      imageLoading: false,
      imageResponsive: ''
    };
  },
  computed: {
    isImageLoading: function isImageLoading() {
      return this.message.file.url.indexOf('blob:http') !== -1 || this.imageLoading;
    }
  },
  watch: {
    message: {
      immediate: true,
      handler: function handler() {
        this.checkImgLoad();
      }
    }
  },
  mounted: function mounted() {
    this.imageResponsive = {
      maxHeight: this.$refs.imageRef.clientWidth - 18,
      loaderTop: this.$refs.imageRef.clientWidth / 2
    };
  },
  methods: {
    checkImgLoad: function checkImgLoad() {
      var _this = this;

      if (!MessageImagevue_type_script_lang_js_isImageFile(this.message.file)) return;
      this.imageLoading = true;
      var image = new Image();
      image.src = this.message.file.url;
      image.addEventListener('load', function () {
        return _this.imageLoading = false;
      });
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/Message/MessageImage.vue?vue&type=script&lang=js&
 /* harmony default export */ var Message_MessageImagevue_type_script_lang_js_ = (MessageImagevue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/Message/MessageImage.vue?vue&type=style&index=0&id=66c96f2b&lang=scss&scoped=true&
var MessageImagevue_type_style_index_0_id_66c96f2b_lang_scss_scoped_true_ = __webpack_require__("1b51");

// CONCATENATED MODULE: ./src/ChatWindow/Message/MessageImage.vue






/* normalize component */

var MessageImage_component = normalizeComponent(
  Message_MessageImagevue_type_script_lang_js_,
  MessageImagevue_type_template_id_66c96f2b_scoped_true_render,
  MessageImagevue_type_template_id_66c96f2b_scoped_true_staticRenderFns,
  false,
  null,
  "66c96f2b",
  null
  
)

/* harmony default export */ var MessageImage = (MessageImage_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Message/MessageActions.vue?vue&type=template&id=2caa176e&scoped=true&
var MessageActionsvue_type_template_id_2caa176e_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:"vac-options-container",class:{ 'vac-options-image': _vm.isImage && !_vm.message.replyMessage },style:({
			display: _vm.hoverAudioProgress ? 'none' : 'initial',
			width:
				_vm.filteredMessageActions.length && _vm.showReactionEmojis ? '70px' : '45px'
		})},[_c('transition-group',{attrs:{"name":"vac-slide-left"}},[(_vm.isMessageActions || _vm.isMessageReactions)?_c('div',{key:"1",staticClass:"vac-blur-container",class:{
					'vac-options-me': _vm.message.senderId === _vm.currentUserId
				}}):_vm._e(),(_vm.isMessageActions)?_c('div',{key:"2",ref:"actionIcon",staticClass:"vac-svg-button vac-message-options",on:{"click":_vm.openOptions}},[_vm._t("dropdown-icon",[_c('svg-icon',{attrs:{"name":"dropdown","param":"message"}})])],2):_vm._e(),(_vm.isMessageReactions)?_c('emoji-picker',{directives:[{name:"click-outside",rawName:"v-click-outside",value:(_vm.closeEmoji),expression:"closeEmoji"}],key:"3",staticClass:"vac-message-reactions",style:({ right: _vm.isMessageActions ? '30px' : '5px' }),attrs:{"emoji-opened":_vm.emojiOpened,"emoji-reaction":true,"room-footer-ref":_vm.roomFooterRef,"position-right":_vm.message.senderId === _vm.currentUserId},on:{"add-emoji":_vm.sendMessageReaction,"open-emoji":_vm.openEmoji},scopedSlots:_vm._u([{key:"emoji-picker-icon",fn:function(){return [_vm._t("emoji-picker-reaction-icon")]},proxy:true}],null,true)}):_vm._e()],1)],1),(_vm.filteredMessageActions.length)?_c('transition',{attrs:{"name":_vm.message.senderId === _vm.currentUserId
				? 'vac-slide-left'
				: 'vac-slide-right'}},[(_vm.optionsOpened)?_c('div',{directives:[{name:"click-outside",rawName:"v-click-outside",value:(_vm.closeOptions),expression:"closeOptions"}],ref:"menuOptions",staticClass:"vac-menu-options",class:{
				'vac-menu-left': _vm.message.senderId !== _vm.currentUserId
			},style:({ top: (_vm.menuOptionsTop + "px") })},[_c('div',{staticClass:"vac-menu-list"},_vm._l((_vm.filteredMessageActions),function(action){return _c('div',{key:action.name},[_c('div',{staticClass:"vac-menu-item",on:{"click":function($event){return _vm.messageActionHandler(action)}}},[_vm._v(" "+_vm._s(action.title)+" ")])])}),0)]):_vm._e()]):_vm._e()],1)}
var MessageActionsvue_type_template_id_2caa176e_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/Message/MessageActions.vue?vue&type=template&id=2caa176e&scoped=true&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Message/MessageActions.vue?vue&type=script&lang=js&



//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//




var MessageActionsvue_type_script_lang_js_require = __webpack_require__("bd43"),
    MessageActionsvue_type_script_lang_js_isImageFile = MessageActionsvue_type_script_lang_js_require.isImageFile;

/* harmony default export */ var MessageActionsvue_type_script_lang_js_ = ({
  name: 'MessageActions',
  components: {
    SvgIcon: SvgIcon,
    EmojiPicker: EmojiPicker
  },
  directives: {
    clickOutside: v_click_outside_umd_default.a.directive
  },
  props: {
    currentUserId: {
      type: [String, Number],
      required: true
    },
    message: {
      type: Object,
      required: true
    },
    messageActions: {
      type: Array,
      required: true
    },
    roomFooterRef: {
      type: HTMLDivElement,
      "default": null
    },
    showReactionEmojis: {
      type: Boolean,
      required: true
    },
    hideOptions: {
      type: Boolean,
      required: true
    },
    messageHover: {
      type: Boolean,
      required: true
    },
    hoverMessageId: {
      type: [String, Number],
      "default": null
    },
    hoverAudioProgress: {
      type: Boolean,
      required: true
    }
  },
  data: function data() {
    return {
      menuOptionsTop: 0,
      optionsOpened: false,
      optionsClosing: false,
      emojiOpened: false
    };
  },
  computed: {
    isImage: function isImage() {
      return MessageActionsvue_type_script_lang_js_isImageFile(this.message.file);
    },
    isMessageActions: function isMessageActions() {
      return this.filteredMessageActions.length && this.messageHover && !this.message.deleted && !this.message.disableActions && !this.hoverAudioProgress;
    },
    isMessageReactions: function isMessageReactions() {
      return this.showReactionEmojis && this.messageHover && !this.message.deleted && !this.message.disableReactions && !this.hoverAudioProgress;
    },
    filteredMessageActions: function filteredMessageActions() {
      return this.message.senderId === this.currentUserId ? this.messageActions : this.messageActions.filter(function (message) {
        return !message.onlyMe;
      });
    }
  },
  watch: {
    emojiOpened: function emojiOpened(val) {
      this.$emit('update-emoji-opened', val);
      if (val) this.optionsOpened = false;
    },
    hideOptions: function hideOptions(val) {
      if (val) {
        this.closeEmoji();
        this.closeOptions();
      }
    },
    optionsOpened: function optionsOpened(val) {
      this.$emit('update-options-opened', val);
    }
  },
  methods: {
    openOptions: function openOptions() {
      var _this = this;

      if (this.optionsClosing) return;
      this.optionsOpened = !this.optionsOpened;
      if (!this.optionsOpened) return;
      this.$emit('hide-options', false);
      setTimeout(function () {
        if (!_this.roomFooterRef || !_this.$refs.menuOptions || !_this.$refs.actionIcon) {
          return;
        }

        var menuOptionsTop = _this.$refs.menuOptions.getBoundingClientRect().height;

        var actionIconTop = _this.$refs.actionIcon.getBoundingClientRect().top;

        var roomFooterTop = _this.roomFooterRef.getBoundingClientRect().top;

        var optionsTopPosition = roomFooterTop - actionIconTop > menuOptionsTop + 50;
        if (optionsTopPosition) _this.menuOptionsTop = 30;else _this.menuOptionsTop = -menuOptionsTop;
      }, 0);
    },
    closeOptions: function closeOptions() {
      var _this2 = this;

      this.optionsOpened = false;
      this.optionsClosing = true;
      this.updateMessageHover();
      setTimeout(function () {
        return _this2.optionsClosing = false;
      }, 100);
    },
    openEmoji: function openEmoji() {
      this.emojiOpened = !this.emojiOpened;
      this.$emit('hide-options', false);
    },
    closeEmoji: function closeEmoji() {
      this.emojiOpened = false;
      this.updateMessageHover();
    },
    updateMessageHover: function updateMessageHover() {
      if (this.hoverMessageId !== this.message._id) {
        this.$emit('update-message-hover', false);
      }
    },
    messageActionHandler: function messageActionHandler(action) {
      this.closeOptions();
      this.$emit('message-action-handler', action);
    },
    sendMessageReaction: function sendMessageReaction(emoji, reaction) {
      this.$emit('send-message-reaction', {
        emoji: emoji,
        reaction: reaction
      });
      this.closeEmoji();
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/Message/MessageActions.vue?vue&type=script&lang=js&
 /* harmony default export */ var Message_MessageActionsvue_type_script_lang_js_ = (MessageActionsvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/Message/MessageActions.vue?vue&type=style&index=0&id=2caa176e&lang=scss&scoped=true&
var MessageActionsvue_type_style_index_0_id_2caa176e_lang_scss_scoped_true_ = __webpack_require__("2911");

// CONCATENATED MODULE: ./src/ChatWindow/Message/MessageActions.vue






/* normalize component */

var MessageActions_component = normalizeComponent(
  Message_MessageActionsvue_type_script_lang_js_,
  MessageActionsvue_type_template_id_2caa176e_scoped_true_render,
  MessageActionsvue_type_template_id_2caa176e_scoped_true_staticRenderFns,
  false,
  null,
  "2caa176e",
  null
  
)

/* harmony default export */ var MessageActions = (MessageActions_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Message/MessageReactions.vue?vue&type=template&id=f0352b14&scoped=true&
var MessageReactionsvue_type_template_id_f0352b14_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.message.deleted)?_c('transition-group',{attrs:{"name":"vac-slide-left"}},_vm._l((_vm.message.reactions),function(reaction,key){return _c('button',{directives:[{name:"show",rawName:"v-show",value:(reaction.length),expression:"reaction.length"}],key:key + 0,staticClass:"vac-button-reaction",class:{
			'vac-reaction-me': reaction.indexOf(_vm.currentUserId) !== -1
		},style:({
			float: _vm.message.senderId === _vm.currentUserId ? 'right' : 'left'
		}),on:{"click":function($event){return _vm.sendMessageReaction({ name: key }, reaction)}}},[_vm._v(" "+_vm._s(_vm.getEmojiByName(key))),_c('span',[_vm._v(_vm._s(reaction.length))])])}),0):_vm._e()}
var MessageReactionsvue_type_template_id_f0352b14_scoped_true_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/Message/MessageReactions.vue?vue&type=template&id=f0352b14&scoped=true&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Message/MessageReactions.vue?vue&type=script&lang=js&

//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var MessageReactionsvue_type_script_lang_js_ = ({
  name: 'MessageReactions',
  props: {
    currentUserId: {
      type: [String, Number],
      required: true
    },
    message: {
      type: Object,
      required: true
    },
    emojisList: {
      type: Object,
      required: true
    }
  },
  methods: {
    getEmojiByName: function getEmojiByName(emojiName) {
      return this.emojisList[emojiName];
    },
    sendMessageReaction: function sendMessageReaction(emoji, reaction) {
      this.$emit('send-message-reaction', {
        emoji: emoji,
        reaction: reaction
      });
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/Message/MessageReactions.vue?vue&type=script&lang=js&
 /* harmony default export */ var Message_MessageReactionsvue_type_script_lang_js_ = (MessageReactionsvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/Message/MessageReactions.vue?vue&type=style&index=0&id=f0352b14&lang=scss&scoped=true&
var MessageReactionsvue_type_style_index_0_id_f0352b14_lang_scss_scoped_true_ = __webpack_require__("a910");

// CONCATENATED MODULE: ./src/ChatWindow/Message/MessageReactions.vue






/* normalize component */

var MessageReactions_component = normalizeComponent(
  Message_MessageReactionsvue_type_script_lang_js_,
  MessageReactionsvue_type_template_id_f0352b14_scoped_true_render,
  MessageReactionsvue_type_template_id_f0352b14_scoped_true_staticRenderFns,
  false,
  null,
  "f0352b14",
  null
  
)

/* harmony default export */ var MessageReactions = (MessageReactions_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Message/AudioPlayer.vue?vue&type=template&id=2d3d5682&
var AudioPlayervue_type_template_id_2d3d5682_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:"vac-audio-player"},[_c('div',{staticClass:"vac-svg-button",on:{"click":_vm.playback}},[(_vm.isPlaying)?_vm._t("audio-pause-icon",[_c('svg-icon',{attrs:{"name":"audio-pause"}})]):_vm._t("audio-play-icon",[_c('svg-icon',{attrs:{"name":"audio-play"}})])],2),_c('audio-control',{attrs:{"percentage":_vm.progress},on:{"change-linehead":_vm.onUpdateProgress,"hover-audio-progress":function($event){return _vm.$emit('hover-audio-progress', $event)}}}),_c('audio',{attrs:{"id":_vm.playerUniqId,"src":_vm.audioSource}})],1)])}
var AudioPlayervue_type_template_id_2d3d5682_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/Message/AudioPlayer.vue?vue&type=template&id=2d3d5682&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"45920b00-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Message/AudioControl.vue?vue&type=template&id=57945bd0&
var AudioControlvue_type_template_id_57945bd0_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"progress",staticClass:"vac-player-bar",on:{"mousedown":_vm.onMouseDown,"mouseover":function($event){return _vm.$emit('hover-audio-progress', true)},"mouseout":function($event){return _vm.$emit('hover-audio-progress', false)}}},[_c('div',{staticClass:"vac-player-progress"},[_c('div',{staticClass:"vac-line-container"},[_c('div',{staticClass:"vac-line-progress",style:({ width: (_vm.percentage + "%") })}),_c('div',{staticClass:"vac-line-dot",class:{ 'vac-line-dot__active': _vm.isMouseDown },style:({ left: (_vm.percentage + "%") })})])])])}
var AudioControlvue_type_template_id_57945bd0_staticRenderFns = []


// CONCATENATED MODULE: ./src/ChatWindow/Message/AudioControl.vue?vue&type=template&id=57945bd0&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Message/AudioControl.vue?vue&type=script&lang=js&

//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var AudioControlvue_type_script_lang_js_ = ({
  props: {
    percentage: {
      type: Number,
      "default": 0
    }
  },
  data: function data() {
    return {
      isMouseDown: false
    };
  },
  methods: {
    onMouseDown: function onMouseDown(ev) {
      this.isMouseDown = true;
      var seekPos = this.calculateLineHeadPosition(ev, this.$refs['progress']);
      this.$emit('change-linehead', seekPos);
      document.addEventListener('mousemove', this.onMouseMove);
      document.addEventListener('mouseup', this.onMouseUp);
    },
    onMouseUp: function onMouseUp(ev) {
      this.isMouseDown = false;
      document.removeEventListener('mouseup', this.onMouseUp);
      document.removeEventListener('mousemove', this.onMouseMove);
      var seekPos = this.calculateLineHeadPosition(ev, this.$refs['progress']);
      this.$emit('change-linehead', seekPos);
    },
    onMouseMove: function onMouseMove(ev) {
      var seekPos = this.calculateLineHeadPosition(ev, this.$refs['progress']);
      this.$emit('change-linehead', seekPos);
    },
    calculateLineHeadPosition: function calculateLineHeadPosition(ev, element) {
      var progressWidth = element.getBoundingClientRect().width;
      var leftPosition = element.getBoundingClientRect().left;
      var pos = (ev.clientX - leftPosition) / progressWidth;
      pos = pos < 0 ? 0 : pos;
      pos = pos > 1 ? 1 : pos;
      return pos;
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/Message/AudioControl.vue?vue&type=script&lang=js&
 /* harmony default export */ var Message_AudioControlvue_type_script_lang_js_ = (AudioControlvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/Message/AudioControl.vue?vue&type=style&index=0&lang=scss&
var AudioControlvue_type_style_index_0_lang_scss_ = __webpack_require__("589c");

// CONCATENATED MODULE: ./src/ChatWindow/Message/AudioControl.vue






/* normalize component */

var AudioControl_component = normalizeComponent(
  Message_AudioControlvue_type_script_lang_js_,
  AudioControlvue_type_template_id_57945bd0_render,
  AudioControlvue_type_template_id_57945bd0_staticRenderFns,
  false,
  null,
  null,
  null
  
)

/* harmony default export */ var AudioControl = (AudioControl_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Message/AudioPlayer.vue?vue&type=script&lang=js&



//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ var AudioPlayervue_type_script_lang_js_ = ({
  name: 'AudioPlayer',
  components: {
    SvgIcon: SvgIcon,
    AudioControl: AudioControl
  },
  props: {
    src: {
      type: String,
      "default": null
    }
  },
  data: function data() {
    return {
      isPlaying: false,
      duration: this.convertTimeMMSS(0),
      playedTime: this.convertTimeMMSS(0),
      progress: 0
    };
  },
  computed: {
    playerUniqId: function playerUniqId() {
      return "audio-player".concat(this._uid);
    },
    audioSource: function audioSource() {
      if (this.src) return this.src;
      this.resetProgress();
      return null;
    }
  },
  mounted: function mounted() {
    var _this = this;

    this.player = document.getElementById(this.playerUniqId);
    this.player.addEventListener('ended', function () {
      _this.isPlaying = false;
    });
    this.player.addEventListener('loadeddata', function () {
      _this.resetProgress();

      _this.duration = _this.convertTimeMMSS(_this.player.duration);

      _this.updateProgressTime();
    });
    this.player.addEventListener('timeupdate', this.onTimeUpdate);
  },
  methods: {
    convertTimeMMSS: function convertTimeMMSS(seconds) {
      return new Date(seconds * 1000).toISOString().substr(14, 5);
    },
    playback: function playback() {
      var _this2 = this;

      if (!this.audioSource) return;
      if (this.isPlaying) this.player.pause();else setTimeout(function () {
        return _this2.player.play();
      }, 0);
      this.isPlaying = !this.isPlaying;
    },
    resetProgress: function resetProgress() {
      if (this.isPlaying) this.player.pause();
      this.duration = this.convertTimeMMSS(0);
      this.playedTime = this.convertTimeMMSS(0);
      this.progress = 0;
      this.isPlaying = false;
      this.updateProgressTime();
    },
    onTimeUpdate: function onTimeUpdate() {
      this.playedTime = this.convertTimeMMSS(this.player.currentTime);
      this.progress = this.player.currentTime / this.player.duration * 100;
      this.updateProgressTime();
    },
    onUpdateProgress: function onUpdateProgress(pos) {
      if (pos) this.player.currentTime = pos * this.player.duration;
    },
    updateProgressTime: function updateProgressTime() {
      this.$emit('update-progress-time', this.progress > 1 ? this.playedTime : this.duration);
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/Message/AudioPlayer.vue?vue&type=script&lang=js&
 /* harmony default export */ var Message_AudioPlayervue_type_script_lang_js_ = (AudioPlayervue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/Message/AudioPlayer.vue?vue&type=style&index=0&lang=scss&
var AudioPlayervue_type_style_index_0_lang_scss_ = __webpack_require__("f43c");

// CONCATENATED MODULE: ./src/ChatWindow/Message/AudioPlayer.vue






/* normalize component */

var AudioPlayer_component = normalizeComponent(
  Message_AudioPlayervue_type_script_lang_js_,
  AudioPlayervue_type_template_id_2d3d5682_render,
  AudioPlayervue_type_template_id_2d3d5682_staticRenderFns,
  false,
  null,
  null,
  null
  
)

/* harmony default export */ var AudioPlayer = (AudioPlayer_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Message/Message.vue?vue&type=script&lang=js&




//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//








var Messagevue_type_script_lang_js_require = __webpack_require__("4c1d"),
    messagesValidation = Messagevue_type_script_lang_js_require.messagesValidation;

var _require2 = __webpack_require__("bd43"),
    Messagevue_type_script_lang_js_isImageFile = _require2.isImageFile,
    isVideoFile = _require2.isVideoFile,
    Messagevue_type_script_lang_js_isAudioFile = _require2.isAudioFile;

/* harmony default export */ var Messagevue_type_script_lang_js_ = ({
  name: 'Message',
  components: {
    SvgIcon: SvgIcon,
    FormatMessage: FormatMessage,
    AudioPlayer: AudioPlayer,
    MessageReply: MessageReply,
    MessageImage: MessageImage,
    MessageActions: MessageActions,
    MessageReactions: MessageReactions
  },
  props: {
    currentUserId: {
      type: [String, Number],
      required: true
    },
    textMessages: {
      type: Object,
      required: true
    },
    index: {
      type: Number,
      required: true
    },
    message: {
      type: Object,
      required: true
    },
    messages: {
      type: Array,
      required: true
    },
    editedMessage: {
      type: Object,
      required: true
    },
    roomUsers: {
      type: Array,
      "default": function _default() {
        return [];
      }
    },
    messageActions: {
      type: Array,
      required: true
    },
    roomFooterRef: {
      type: HTMLDivElement,
      "default": null
    },
    newMessages: {
      type: Array,
      "default": function _default() {
        return [];
      }
    },
    showReactionEmojis: {
      type: Boolean,
      required: true
    },
    showNewMessagesDivider: {
      type: Boolean,
      required: true
    },
    textFormatting: {
      type: Boolean,
      required: true
    },
    linkOptions: {
      type: Object,
      required: true
    },
    emojisList: {
      type: Object,
      required: true
    },
    hideOptions: {
      type: Boolean,
      required: true
    }
  },
  data: function data() {
    return {
      hoverMessageId: null,
      imageHover: false,
      messageHover: false,
      optionsOpened: false,
      emojiOpened: false,
      newMessage: {},
      progressTime: '- : -',
      hoverAudioProgress: false
    };
  },
  computed: {
    showDate: function showDate() {
      return this.index > 0 && this.message.date !== this.messages[this.index - 1].date;
    },
    messageOffset: function messageOffset() {
      return this.index > 0 && this.message.senderId !== this.messages[this.index - 1].senderId;
    },
    isMessageHover: function isMessageHover() {
      return this.editedMessage._id === this.message._id || this.hoverMessageId === this.message._id;
    },
    isImage: function isImage() {
      return Messagevue_type_script_lang_js_isImageFile(this.message.file);
    },
    isVideo: function isVideo() {
      return isVideoFile(this.message.file);
    },
    isAudio: function isAudio() {
      return Messagevue_type_script_lang_js_isAudioFile(this.message.file);
    },
    isCheckmarkVisible: function isCheckmarkVisible() {
      return this.message.senderId === this.currentUserId && !this.message.deleted && (this.message.saved || this.message.distributed || this.message.seen);
    }
  },
  watch: {
    newMessages: function newMessages(val) {
      if (!val.length || !this.showNewMessagesDivider) {
        return this.newMessage = {};
      }

      this.newMessage = val.reduce(function (res, obj) {
        return obj.index < res.index ? obj : res;
      });
    }
  },
  mounted: function mounted() {
    messagesValidation(this.message);
    this.$emit('message-added', {
      message: this.message,
      index: this.index
    });
  },
  methods: {
    onHoverMessage: function onHoverMessage() {
      this.imageHover = true;
      this.messageHover = true;
      if (this.canEditMessage()) this.hoverMessageId = this.message._id;
    },
    canEditMessage: function canEditMessage() {
      return !this.message.deleted;
    },
    onLeaveMessage: function onLeaveMessage() {
      this.imageHover = false;
      if (!this.optionsOpened && !this.emojiOpened) this.messageHover = false;
      this.hoverMessageId = null;
    },
    openFile: function openFile(action) {
      this.$emit('open-file', {
        message: this.message,
        action: action
      });
    },
    openUserTag: function openUserTag(user) {
      this.$emit('open-user-tag', {
        user: user
      });
    },
    messageActionHandler: function messageActionHandler(action) {
      var _this = this;

      this.messageHover = false;
      this.hoverMessageId = null;
      setTimeout(function () {
        _this.$emit('message-action-handler', {
          action: action,
          message: _this.message
        });
      }, 300);
    },
    sendMessageReaction: function sendMessageReaction(_ref) {
      var emoji = _ref.emoji,
          reaction = _ref.reaction;
      this.$emit('send-message-reaction', {
        messageId: this.message._id,
        reaction: emoji,
        remove: reaction && reaction.indexOf(this.currentUserId) !== -1
      });
      this.messageHover = false;
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/Message/Message.vue?vue&type=script&lang=js&
 /* harmony default export */ var Message_Messagevue_type_script_lang_js_ = (Messagevue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/Message/Message.vue?vue&type=style&index=0&id=91e9e26c&lang=scss&scoped=true&
var Messagevue_type_style_index_0_id_91e9e26c_lang_scss_scoped_true_ = __webpack_require__("54b6");

// CONCATENATED MODULE: ./src/ChatWindow/Message/Message.vue






/* normalize component */

var Message_component = normalizeComponent(
  Message_Messagevue_type_script_lang_js_,
  Messagevue_type_template_id_91e9e26c_scoped_true_render,
  Messagevue_type_template_id_91e9e26c_scoped_true_staticRenderFns,
  false,
  null,
  "91e9e26c",
  null
  
)

/* harmony default export */ var Message = (Message_component.exports);
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.bind.js
var es_function_bind = __webpack_require__("c0b6");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.number.to-fixed.js
var es_number_to_fixed = __webpack_require__("b680");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.parse-float.js
var es_parse_float = __webpack_require__("acd8");

// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js


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);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.slice.js
var es_array_buffer_slice = __webpack_require__("ace4");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.date.now.js
var es_date_now = __webpack_require__("6eba");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.float32-array.js
var es_typed_array_float32_array = __webpack_require__("cfc3");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.int8-array.js
var es_typed_array_int8_array = __webpack_require__("fd87");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.int16-array.js
var es_typed_array_int16_array = __webpack_require__("8b09");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.copy-within.js
var es_typed_array_copy_within = __webpack_require__("9a8c");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.every.js
var es_typed_array_every = __webpack_require__("a975");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.fill.js
var es_typed_array_fill = __webpack_require__("735e");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.filter.js
var es_typed_array_filter = __webpack_require__("c1ac");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find.js
var es_typed_array_find = __webpack_require__("d139");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find-index.js
var es_typed_array_find_index = __webpack_require__("3a7b");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.for-each.js
var es_typed_array_for_each = __webpack_require__("d5d6");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.includes.js
var es_typed_array_includes = __webpack_require__("82f8");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.index-of.js
var es_typed_array_index_of = __webpack_require__("e91f");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.iterator.js
var es_typed_array_iterator = __webpack_require__("60bd");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.join.js
var es_typed_array_join = __webpack_require__("5f96");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.last-index-of.js
var es_typed_array_last_index_of = __webpack_require__("3280");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.map.js
var es_typed_array_map = __webpack_require__("3fcc");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce.js
var es_typed_array_reduce = __webpack_require__("ca91");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce-right.js
var es_typed_array_reduce_right = __webpack_require__("25a1");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reverse.js
var es_typed_array_reverse = __webpack_require__("cd26");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.set.js
var es_typed_array_set = __webpack_require__("3c5d");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.slice.js
var es_typed_array_slice = __webpack_require__("2954");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.some.js
var es_typed_array_some = __webpack_require__("649e");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.sort.js
var es_typed_array_sort = __webpack_require__("219c");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.subarray.js
var es_typed_array_subarray = __webpack_require__("170b");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-locale-string.js
var es_typed_array_to_locale_string = __webpack_require__("b39a");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-string.js
var es_typed_array_to_string = __webpack_require__("72f7");

// CONCATENATED MODULE: ./src/utils/mp3-encoder.js




































// Credits to https://github.com/grishkovelli/vue-audio-recorder
var lamejs;

try {
  lamejs = __webpack_require__("db18");
} catch (_) {
  lamejs = {
    missing: true
  };
}

var _lamejs = lamejs,
    Mp3Encoder = _lamejs.Mp3Encoder;

var mp3_encoder_default = /*#__PURE__*/function () {
  function _default(config) {
    _classCallCheck(this, _default);

    if (lamejs.missing) {
      throw new Error('You must add lamejs in your dependencies to use the audio recorder. Please run "npm install lamejs --save"');
    }

    this.bitRate = config.bitRate;
    this.sampleRate = config.sampleRate;
    this.dataBuffer = [];
    this.encoder = new Mp3Encoder(1, this.sampleRate, this.bitRate);
  }

  _createClass(_default, [{
    key: "encode",
    value: function encode(arrayBuffer) {
      var maxSamples = 1152;

      var samples = this._convertBuffer(arrayBuffer);

      var remaining = samples.length;

      for (var i = 0; remaining >= 0; i += maxSamples) {
        var left = samples.subarray(i, i + maxSamples);
        var buffer = this.encoder.encodeBuffer(left);
        this.dataBuffer.push(new Int8Array(buffer));
        remaining -= maxSamples;
      }
    }
  }, {
    key: "finish",
    value: function finish() {
      this.dataBuffer.push(this.encoder.flush());
      var blob = new Blob(this.dataBuffer, {
        type: 'audio/mp3'
      });
      this.dataBuffer = [];
      return {
        id: Date.now(),
        blob: blob,
        url: URL.createObjectURL(blob)
      };
    }
  }, {
    key: "_floatTo16BitPCM",
    value: function _floatTo16BitPCM(input, output) {
      for (var i = 0; i < input.length; i++) {
        var s = Math.max(-1, Math.min(1, input[i]));
        output[i] = s < 0 ? s * 0x8000 : s * 0x7fff;
      }
    }
  }, {
    key: "_convertBuffer",
    value: function _convertBuffer(arrayBuffer) {
      var data = new Float32Array(arrayBuffer);
      var out = new Int16Array(arrayBuffer.length);

      this._floatTo16BitPCM(data, out);

      return out;
    }
  }]);

  return _default;
}();


// CONCATENATED MODULE: ./src/utils/recorder.js







// Credits to https://github.com/grishkovelli/vue-audio-recorder


var recorder_default = /*#__PURE__*/function () {
  function _default() {
    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    _classCallCheck(this, _default);

    this.beforeRecording = options.beforeRecording;
    this.pauseRecording = options.pauseRecording;
    this.afterRecording = options.afterRecording;
    this.micFailed = options.micFailed;
    this.encoderOptions = {
      bitRate: 128,
      sampleRate: 44100
    };
    this.bufferSize = 4096;
    this.records = [];
    this.isPause = false;
    this.isRecording = false;
    this.duration = 0;
    this.volume = 0;
    this._duration = 0;
  }

  _createClass(_default, [{
    key: "start",
    value: function start() {
      var constraints = {
        video: false,
        audio: {
          channelCount: 1,
          echoCancellation: false
        }
      };
      this.beforeRecording && this.beforeRecording('start recording');
      navigator.mediaDevices.getUserMedia(constraints).then(this._micCaptured.bind(this))["catch"](this._micError.bind(this));
      this.isPause = false;
      this.isRecording = true;

      if (!this.lameEncoder) {
        this.lameEncoder = new mp3_encoder_default(this.encoderOptions);
      }
    }
  }, {
    key: "stop",
    value: function stop() {
      this.stream.getTracks().forEach(function (track) {
        return track.stop();
      });
      this.input.disconnect();
      this.processor.disconnect();
      this.context.close();
      var record = null;
      record = this.lameEncoder.finish();
      record.duration = this.duration;
      this.records.push(record);
      this._duration = 0;
      this.duration = 0;
      this.isPause = false;
      this.isRecording = false;
      this.afterRecording && this.afterRecording(record);
    }
  }, {
    key: "pause",
    value: function pause() {
      this.stream.getTracks().forEach(function (track) {
        return track.stop();
      });
      this.input.disconnect();
      this.processor.disconnect();
      this._duration = this.duration;
      this.isPause = true;
      this.pauseRecording && this.pauseRecording('pause recording');
    }
  }, {
    key: "_micCaptured",
    value: function _micCaptured(stream) {
      var _this = this;

      this.context = new (window.AudioContext || window.webkitAudioContext)();
      this.duration = this._duration;
      this.input = this.context.createMediaStreamSource(stream);
      this.processor = this.context.createScriptProcessor(this.bufferSize, 1, 1);
      this.stream = stream;

      this.processor.onaudioprocess = function (ev) {
        var sample = ev.inputBuffer.getChannelData(0);
        var sum = 0.0;

        if (_this.lameEncoder) {
          _this.lameEncoder.encode(sample);
        }

        for (var i = 0; i < sample.length; ++i) {
          sum += sample[i] * sample[i];
        }

        _this.duration = parseFloat(_this._duration) + parseFloat(_this.context.currentTime.toFixed(2));
        _this.volume = Math.sqrt(sum / sample.length).toFixed(2);
      };

      this.input.connect(this.processor);
      this.processor.connect(this.context.destination);
    }
  }, {
    key: "_micError",
    value: function _micError(error) {
      this.micFailed && this.micFailed(error);
    }
  }]);

  return _default;
}();


// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/Room/Room.vue?vue&type=script&lang=js&





























//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//














var Roomvue_type_script_lang_js_require = __webpack_require__("1a98"),
    detectMobile = Roomvue_type_script_lang_js_require.detectMobile,
    iOSDevice = Roomvue_type_script_lang_js_require.iOSDevice;

var Roomvue_type_script_lang_js_require2 = __webpack_require__("bd43"),
    Roomvue_type_script_lang_js_isImageFile = Roomvue_type_script_lang_js_require2.isImageFile,
    Roomvue_type_script_lang_js_isVideoFile = Roomvue_type_script_lang_js_require2.isVideoFile;

/* harmony default export */ var Roomvue_type_script_lang_js_ = ({
  name: 'Room',
  components: {
    InfiniteLoading: vue_infinite_loading_default.a,
    Loader: Loader,
    SvgIcon: SvgIcon,
    EmojiPicker: EmojiPicker,
    RoomHeader: RoomHeader,
    RoomMessageReply: RoomMessageReply,
    RoomUsersTag: RoomUsersTag,
    RoomEmojis: RoomEmojis,
    Message: Message
  },
  directives: {
    clickOutside: v_click_outside_umd_default.a.directive
  },
  props: {
    currentUserId: {
      type: [String, Number],
      required: true
    },
    textMessages: {
      type: Object,
      required: true
    },
    singleRoom: {
      type: Boolean,
      required: true
    },
    showRoomsList: {
      type: Boolean,
      required: true
    },
    isMobile: {
      type: Boolean,
      required: true
    },
    rooms: {
      type: Array,
      required: true
    },
    roomId: {
      type: [String, Number],
      required: true
    },
    loadFirstRoom: {
      type: Boolean,
      required: true
    },
    messages: {
      type: Array,
      required: true
    },
    roomMessage: {
      type: String,
      "default": null
    },
    messagesLoaded: {
      type: Boolean,
      required: true
    },
    menuActions: {
      type: Array,
      required: true
    },
    messageActions: {
      type: Array,
      required: true
    },
    showSendIcon: {
      type: Boolean,
      required: true
    },
    showFiles: {
      type: Boolean,
      required: true
    },
    showAudio: {
      type: Boolean,
      required: true
    },
    showEmojis: {
      type: Boolean,
      required: true
    },
    showReactionEmojis: {
      type: Boolean,
      required: true
    },
    showNewMessagesDivider: {
      type: Boolean,
      required: true
    },
    showFooter: {
      type: Boolean,
      required: true
    },
    acceptedFiles: {
      type: String,
      required: true
    },
    textFormatting: {
      type: Boolean,
      required: true
    },
    linkOptions: {
      type: Object,
      required: true
    },
    loadingRooms: {
      type: Boolean,
      required: true
    },
    roomInfo: {
      type: Function,
      "default": null
    },
    textareaAction: {
      type: Function,
      "default": null
    }
  },
  data: function data() {
    return {
      message: '',
      editedMessage: {},
      messageReply: null,
      infiniteState: null,
      loadingMessages: false,
      loadingMoreMessages: false,
      file: null,
      imageFile: null,
      videoFile: null,
      mediaDimensions: null,
      fileDialog: false,
      emojiOpened: false,
      hideOptions: true,
      scrollIcon: false,
      scrollMessagesCount: 0,
      newMessages: [],
      keepKeyboardOpen: false,
      filteredEmojis: [],
      filteredUsersTag: [],
      selectedUsersTag: [],
      textareaCursorPosition: null,
      cursorRangePosition: null,
      recorder: this.initRecorder(),
      isRecording: false,
      format: 'mp3'
    };
  },
  computed: {
    emojisList: function emojisList() {
      var emojisTable = Object.keys(emojis).map(function (key) {
        return emojis[key];
      });
      return Object.assign.apply(Object, [{}].concat(_toConsumableArray(emojisTable)));
    },
    room: function room() {
      var _this = this;

      return this.rooms.find(function (room) {
        return room.roomId === _this.roomId;
      }) || {};
    },
    showNoMessages: function showNoMessages() {
      return this.room.roomId && !this.messages.length && !this.loadingMessages && !this.loadingRooms;
    },
    showMessagesStarted: function showMessagesStarted() {
      return this.messages.length && this.messagesLoaded;
    },
    isMessageEmpty: function isMessageEmpty() {
      return !this.file && !this.message.trim();
    },
    recordedTime: function recordedTime() {
      return new Date(this.recorder.duration * 1000).toISOString().substr(14, 5);
    }
  },
  watch: {
    loadingMessages: function loadingMessages(val) {
      if (val) {
        this.infiniteState = null;
      } else {
        if (this.infiniteState) this.infiniteState.loaded();
        this.focusTextarea(true);
      }
    },
    room: function room(newVal, oldVal) {
      if (newVal.roomId && newVal.roomId !== oldVal.roomId) {
        this.onRoomChanged();
      }
    },
    roomMessage: {
      immediate: true,
      handler: function handler(val) {
        if (val) this.message = this.roomMessage;
      }
    },
    messages: function messages(val) {
      var _this2 = this;

      val.forEach(function (message, i) {
        if (_this2.showNewMessagesDivider && !message.seen && message.senderId !== _this2.currentUserId) {
          _this2.newMessages.push({
            _id: message._id,
            index: i
          });
        }
      });

      if (this.infiniteState) {
        this.infiniteState.loaded();
      }

      setTimeout(function () {
        return _this2.loadingMoreMessages = false;
      }, 0);
    },
    messagesLoaded: function messagesLoaded(val) {
      if (val) this.loadingMessages = false;
      if (this.infiniteState) this.infiniteState.complete();
    }
  },
  mounted: function mounted() {
    var _this3 = this;

    this.newMessages = [];
    var isMobile = detectMobile();
    window.addEventListener('keyup', function (e) {
      if (e.key === 'Enter' && !e.shiftKey && !_this3.fileDialog) {
        if (isMobile) {
          _this3.message = _this3.message + '\n';
          setTimeout(function () {
            return _this3.onChangeInput();
          }, 0);
        } else {
          _this3.sendMessage();
        }
      }

      _this3.updateFooterList('@');

      _this3.updateFooterList(':');
    });
    this.$refs['roomTextarea'].addEventListener('click', function () {
      if (isMobile) _this3.keepKeyboardOpen = true;

      _this3.updateFooterList('@');

      _this3.updateFooterList(':');
    });
    this.$refs['roomTextarea'].addEventListener('blur', function () {
      _this3.resetFooterList();

      if (isMobile) setTimeout(function () {
        return _this3.keepKeyboardOpen = false;
      }, 0);
    });
  },
  beforeDestroy: function beforeDestroy() {
    this.stopRecorder();
  },
  methods: {
    onRoomChanged: function onRoomChanged() {
      var _this4 = this;

      this.loadingMessages = true;
      this.scrollIcon = false;
      this.scrollMessagesCount = 0;
      this.resetMessage(true);

      if (this.roomMessage) {
        this.message = this.roomMessage;
        setTimeout(function () {
          return _this4.onChangeInput();
        }, 0);
      }

      var unwatch = this.$watch(function () {
        return _this4.messages;
      }, function (val) {
        if (!val || !val.length) return;
        var element = _this4.$refs.scrollContainer;
        if (!element) return;
        unwatch();
        setTimeout(function () {
          element.scrollTo({
            top: element.scrollHeight
          });
          _this4.loadingMessages = false;
        });
      });
    },
    onMessageAdded: function onMessageAdded(_ref) {
      var _this5 = this;

      var message = _ref.message,
          index = _ref.index;
      this.newMessages = [];
      if (index !== this.messages.length - 1) return;
      setTimeout(function () {
        if (_this5.getBottomScroll(_this5.$refs.scrollContainer) < 60) {
          _this5.scrollToBottom();
        } else {
          if (message.senderId === _this5.currentUserId) {
            _this5.scrollToBottom();
          } else {
            _this5.scrollIcon = true;
            _this5.scrollMessagesCount++;
          }
        }
      }, 0);
    },
    onContainerScroll: function onContainerScroll(e) {
      this.hideOptions = true;
      if (!e.target) return;
      var bottomScroll = this.getBottomScroll(e.target);
      if (bottomScroll < 60) this.scrollMessagesCount = 0;
      this.scrollIcon = bottomScroll > 500 || this.scrollMessagesCount;
    },
    updateFooterList: function updateFooterList(tagChar) {
      if (!this.$refs['roomTextarea']) return;

      if (tagChar === '@' && (!this.room.users || this.room.users.length <= 2)) {
        return;
      }

      if (this.textareaCursorPosition === this.$refs['roomTextarea'].selectionStart) {
        return;
      }

      this.textareaCursorPosition = this.$refs['roomTextarea'].selectionStart;
      var position = this.textareaCursorPosition;

      while (position > 0 && this.message.charAt(position - 1) !== tagChar && this.message.charAt(position - 1) !== ' ') {
        position--;
      }

      var beforeTag = this.message.charAt(position - 2);
      var notLetterNumber = !beforeTag.match(/^[0-9a-zA-Z]+$/);

      if (this.message.charAt(position - 1) === tagChar && (!beforeTag || beforeTag === ' ' || notLetterNumber)) {
        var query = this.message.substring(position, this.textareaCursorPosition);

        if (tagChar === ':') {
          this.updateEmojis(query);
        } else if (tagChar === '@') {
          this.updateShowUsersTag(query);
        }
      } else {
        this.resetFooterList();
      }
    },
    getCharPosition: function getCharPosition(tagChar) {
      var cursorPosition = this.$refs['roomTextarea'].selectionStart;
      var position = cursorPosition;

      while (position > 0 && this.message.charAt(position - 1) !== tagChar) {
        position--;
      }

      var endPosition = position;

      while (this.message.charAt(endPosition) && this.message.charAt(endPosition).trim()) {
        endPosition++;
      }

      return {
        position: position,
        endPosition: endPosition
      };
    },
    updateEmojis: function updateEmojis(query) {
      var _this6 = this;

      if (!query) return;
      var emojisListKeys = Object.keys(this.emojisList);
      var matchingKeys = emojisListKeys.filter(function (key) {
        return key.startsWith(query);
      });
      this.filteredEmojis = matchingKeys.map(function (key) {
        return _this6.emojisList[key];
      });
    },
    selectEmoji: function selectEmoji(emoji) {
      var _this$getCharPosition = this.getCharPosition(':'),
          position = _this$getCharPosition.position,
          endPosition = _this$getCharPosition.endPosition;

      this.message = this.message.substr(0, position - 1) + emoji + this.message.substr(endPosition, this.message.length - 1);
      this.cursorRangePosition = position;
      this.focusTextarea();
    },
    updateShowUsersTag: function updateShowUsersTag(query) {
      var _this7 = this;

      this.filteredUsersTag = filter_items(this.room.users, 'username', query, true).filter(function (user) {
        return user._id !== _this7.currentUserId;
      });
    },
    selectUserTag: function selectUserTag(user) {
      var _this$getCharPosition2 = this.getCharPosition('@'),
          position = _this$getCharPosition2.position,
          endPosition = _this$getCharPosition2.endPosition;

      var space = this.message.substr(endPosition, endPosition).length ? '' : ' ';
      this.message = this.message.substr(0, position) + user.username + space + this.message.substr(endPosition, this.message.length - 1);
      this.selectedUsersTag = [].concat(_toConsumableArray(this.selectedUsersTag), [_objectSpread2({}, user)]);
      this.cursorRangePosition = position + user.username.length + space.length + 1;
      this.focusTextarea();
    },
    resetFooterList: function resetFooterList() {
      this.filteredEmojis = [];
      this.filteredUsersTag = [];
      this.textareaCursorPosition = null;
    },
    onMediaLoad: function onMediaLoad() {
      var height = this.$refs.mediaFile.clientHeight;
      if (height < 30) height = 30;
      this.mediaDimensions = {
        height: this.$refs.mediaFile.clientHeight - 10,
        width: this.$refs.mediaFile.clientWidth + 26
      };
    },
    escapeTextarea: function escapeTextarea() {
      if (this.filteredEmojis.length) this.filteredEmojis = [];else if (this.filteredUsersTag.length) this.filteredUsersTag = [];else this.resetMessage();
    },
    resetMessage: function resetMessage() {
      var _this8 = this;

      var disableMobileFocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
      var editFile = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
      this.$emit('typing-message', null);

      if (editFile) {
        this.file = null;
        this.message = '';
        this.preventKeyboardFromClosing();
        setTimeout(function () {
          return _this8.focusTextarea(disableMobileFocus);
        }, 0);
        return;
      }

      this.selectedUsersTag = [];
      this.resetFooterList();
      this.resetTextareaSize();
      this.message = '';
      this.editedMessage = {};
      this.messageReply = null;
      this.file = null;
      this.mediaDimensions = null;
      this.imageFile = null;
      this.videoFile = null;
      this.emojiOpened = false;
      this.preventKeyboardFromClosing();
      setTimeout(function () {
        return _this8.focusTextarea(disableMobileFocus);
      }, 0);
    },
    resetMediaFile: function resetMediaFile() {
      this.mediaDimensions = null;
      this.imageFile = null;
      this.videoFile = null;
      this.editedMessage.file = null;
      this.file = null;
      this.focusTextarea();
    },
    resetTextareaSize: function resetTextareaSize() {
      if (!this.$refs['roomTextarea']) return;
      this.$refs['roomTextarea'].style.height = '20px';
    },
    focusTextarea: function focusTextarea(disableMobileFocus) {
      var _this9 = this;

      if (detectMobile() && disableMobileFocus) return;
      if (!this.$refs['roomTextarea']) return;
      this.$refs['roomTextarea'].focus();

      if (this.cursorRangePosition) {
        setTimeout(function () {
          _this9.$refs['roomTextarea'].setSelectionRange(_this9.cursorRangePosition, _this9.cursorRangePosition);

          _this9.cursorRangePosition = null;
        }, 0);
      }
    },
    preventKeyboardFromClosing: function preventKeyboardFromClosing() {
      if (this.keepKeyboardOpen) this.$refs['roomTextarea'].focus();
    },
    sendMessage: function sendMessage() {
      var message = this.message.trim();
      if (!this.file && !message) return;
      this.selectedUsersTag.forEach(function (user) {
        message = message.replace("@".concat(user.username), "<usertag>".concat(user._id, "</usertag>"));
      });

      if (this.editedMessage._id) {
        if (this.editedMessage.content !== message || this.file) {
          this.$emit('edit-message', {
            messageId: this.editedMessage._id,
            newContent: message,
            file: this.file,
            replyMessage: this.messageReply,
            usersTag: this.selectedUsersTag
          });
        }
      } else {
        this.$emit('send-message', {
          content: message,
          file: this.file,
          replyMessage: this.messageReply,
          usersTag: this.selectedUsersTag
        });
      }

      this.resetMessage(true);
    },
    loadMoreMessages: function loadMoreMessages(infiniteState) {
      var _this10 = this;

      if (this.loadingMessages) {
        this.infiniteState = infiniteState;
        return;
      }

      setTimeout(function () {
        if (_this10.loadingMoreMessages) return;

        if (_this10.messagesLoaded || !_this10.room.roomId) {
          return infiniteState.complete();
        }

        _this10.infiniteState = infiniteState;

        _this10.$emit('fetch-messages');

        _this10.loadingMoreMessages = true;
      }, // prevent scroll bouncing issue on iOS devices
      iOSDevice() ? 500 : 0);
    },
    messageActionHandler: function messageActionHandler(_ref2) {
      var action = _ref2.action,
          message = _ref2.message;

      switch (action.name) {
        case 'replyMessage':
          return this.replyMessage(message);

        case 'editMessage':
          return this.editMessage(message);

        case 'deleteMessage':
          return this.$emit('delete-message', message);

        default:
          return this.$emit('message-action-handler', {
            action: action,
            message: message
          });
      }
    },
    sendMessageReaction: function sendMessageReaction(messageReaction) {
      this.$emit('send-message-reaction', messageReaction);
    },
    replyMessage: function replyMessage(message) {
      this.messageReply = message;
      this.focusTextarea();
    },
    editMessage: function editMessage(message) {
      var _this11 = this;

      this.resetMessage();
      this.editedMessage = _objectSpread2({}, message);
      this.file = message.file;

      if (Roomvue_type_script_lang_js_isImageFile(this.file)) {
        this.imageFile = message.file.url;
        setTimeout(function () {
          return _this11.onMediaLoad();
        }, 0);
      } else if (Roomvue_type_script_lang_js_isVideoFile(this.file)) {
        this.videoFile = message.file.url;
        setTimeout(function () {
          return _this11.onMediaLoad();
        }, 50);
      }

      this.message = message.content;
    },
    getBottomScroll: function getBottomScroll(element) {
      var scrollHeight = element.scrollHeight,
          clientHeight = element.clientHeight,
          scrollTop = element.scrollTop;
      return scrollHeight - clientHeight - scrollTop;
    },
    scrollToBottom: function scrollToBottom() {
      var _this12 = this;

      setTimeout(function () {
        var element = _this12.$refs.scrollContainer;
        element.classList.add('vac-scroll-smooth');
        element.scrollTo({
          top: element.scrollHeight,
          behavior: 'smooth'
        });
        setTimeout(function () {
          return element.classList.remove('vac-scroll-smooth');
        }, 0);
      }, 50);
    },
    onChangeInput: function onChangeInput() {
      this.keepKeyboardOpen = true;
      this.resizeTextarea();
      this.$emit('typing-message', this.message);
    },
    resizeTextarea: function resizeTextarea() {
      var el = this.$refs['roomTextarea'];
      if (!el) return;
      var padding = window.getComputedStyle(el, null).getPropertyValue('padding-top').replace('px', '');
      el.style.height = 0;
      el.style.height = el.scrollHeight - padding * 2 + 'px';
    },
    addEmoji: function addEmoji(emoji) {
      this.message += emoji.icon;
      this.focusTextarea(true);
    },
    launchFilePicker: function launchFilePicker() {
      this.$refs.file.value = '';
      this.$refs.file.click();
    },
    onFileChange: function onFileChange(files) {
      var _this13 = this;

      return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
        var file, fileURL, blobFile, typeIndex;
        return regeneratorRuntime.wrap(function _callee$(_context) {
          while (1) {
            switch (_context.prev = _context.next) {
              case 0:
                _this13.fileDialog = true;

                _this13.resetMediaFile();

                file = files[0];
                fileURL = URL.createObjectURL(file);
                _context.next = 6;
                return fetch(fileURL).then(function (res) {
                  return res.blob();
                });

              case 6:
                blobFile = _context.sent;
                typeIndex = file.name.lastIndexOf('.');
                _this13.file = {
                  blob: blobFile,
                  name: file.name.substring(0, typeIndex),
                  size: file.size,
                  type: file.type,
                  extension: file.name.substring(typeIndex + 1),
                  localUrl: fileURL
                };

                if (Roomvue_type_script_lang_js_isImageFile(_this13.file)) {
                  _this13.imageFile = fileURL;
                } else if (Roomvue_type_script_lang_js_isVideoFile(_this13.file)) {
                  _this13.videoFile = fileURL;
                  setTimeout(function () {
                    return _this13.onMediaLoad();
                  }, 50);
                } else {
                  _this13.message = file.name;
                }

                setTimeout(function () {
                  return _this13.fileDialog = false;
                }, 500);

              case 11:
              case "end":
                return _context.stop();
            }
          }
        }, _callee);
      }))();
    },
    initRecorder: function initRecorder() {
      this.isRecording = false;
      return new recorder_default({
        beforeRecording: null,
        afterRecording: null,
        pauseRecording: null,
        micFailed: this.micFailed
      });
    },
    micFailed: function micFailed() {
      this.isRecording = false;
      this.recorder = this.initRecorder();
    },
    toggleRecorder: function toggleRecorder(recording) {
      var _this14 = this;

      this.isRecording = recording;

      if (!this.recorder.isRecording) {
        setTimeout(function () {
          return _this14.recorder.start();
        }, 200);
      } else {
        try {
          this.recorder.stop();
          var record = this.recorder.records[0];
          this.file = {
            blob: record.blob,
            name: "audio.".concat(this.format),
            size: record.blob.size,
            duration: record.duration,
            type: record.blob.type,
            audio: true,
            localUrl: URL.createObjectURL(record.blob)
          };
          this.recorder = this.initRecorder();
          this.sendMessage();
        } catch (_unused) {
          setTimeout(function () {
            return _this14.stopRecorder();
          }, 100);
        }
      }
    },
    stopRecorder: function stopRecorder() {
      var _this15 = this;

      if (this.recorder.isRecording) {
        try {
          this.recorder.stop();
          this.recorder = this.initRecorder();
        } catch (_unused2) {
          setTimeout(function () {
            return _this15.stopRecorder();
          }, 100);
        }
      }
    },
    openFile: function openFile(_ref3) {
      var message = _ref3.message,
          action = _ref3.action;
      this.$emit('open-file', {
        message: message,
        action: action
      });
    },
    openUserTag: function openUserTag(user) {
      this.$emit('open-user-tag', user);
    },
    textareaActionHandler: function textareaActionHandler() {
      this.$emit('textarea-action-handler', this.message);
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/Room/Room.vue?vue&type=script&lang=js&
 /* harmony default export */ var Room_Roomvue_type_script_lang_js_ = (Roomvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/Room/Room.vue?vue&type=style&index=0&id=cb4b1406&lang=scss&scoped=true&
var Roomvue_type_style_index_0_id_cb4b1406_lang_scss_scoped_true_ = __webpack_require__("6738");

// CONCATENATED MODULE: ./src/ChatWindow/Room/Room.vue






/* normalize component */

var Room_component = normalizeComponent(
  Room_Roomvue_type_script_lang_js_,
  Roomvue_type_template_id_cb4b1406_scoped_true_render,
  Roomvue_type_template_id_cb4b1406_scoped_true_staticRenderFns,
  false,
  null,
  "cb4b1406",
  null
  
)

/* harmony default export */ var Room = (Room_component.exports);
// CONCATENATED MODULE: ./src/locales/index.js
/* harmony default export */ var locales = ({
  ROOMS_EMPTY: 'No rooms',
  ROOM_EMPTY: 'No room selected',
  NEW_MESSAGES: 'New Messages',
  MESSAGE_DELETED: 'This message was deleted',
  MESSAGES_EMPTY: 'No messages',
  CONVERSATION_STARTED: 'Conversation started on:',
  TYPE_MESSAGE: 'Type message',
  SEARCH: 'Search',
  IS_ONLINE: 'is online',
  LAST_SEEN: 'last seen ',
  IS_TYPING: 'is writing...'
});
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.search.js
var es_string_search = __webpack_require__("841c");

// CONCATENATED MODULE: ./src/themes/index.js


var defaultThemeStyles = {
  light: {
    general: {
      color: '#0a0a0a',
      backgroundInput: '#fff',
      colorPlaceholder: '#9ca6af',
      colorCaret: '#1976d2',
      colorSpinner: '#333',
      borderStyle: '1px solid #e1e4e8',
      backgroundScrollIcon: '#fff'
    },
    container: {
      border: 'none',
      borderRadius: '4px',
      boxShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)'
    },
    header: {
      background: '#fff',
      colorRoomName: '#0a0a0a',
      colorRoomInfo: '#9ca6af'
    },
    footer: {
      background: '#f8f9fa',
      borderStyleInput: '1px solid #e1e4e8',
      borderInputSelected: '#1976d2',
      backgroundReply: '#e5e5e6',
      backgroundTagActive: '#e5e5e6'
    },
    content: {
      background: '#f8f9fa'
    },
    sidemenu: {
      background: '#fff',
      backgroundHover: '#f6f6f6',
      backgroundActive: '#e5effa',
      colorActive: '#1976d2',
      borderColorSearch: '#e1e5e8'
    },
    dropdown: {
      background: '#fff',
      backgroundHover: '#f6f6f6'
    },
    message: {
      background: '#fff',
      backgroundMe: '#ccf2cf',
      color: '#0a0a0a',
      colorStarted: '#9ca6af',
      backgroundDeleted: '#dadfe2',
      colorDeleted: '#757e85',
      colorUsername: '#9ca6af',
      colorTimestamp: '#828c94',
      backgroundDate: '#e5effa',
      colorDate: '#505a62',
      backgroundSystem: '#e5effa',
      colorSystem: '#505a62',
      backgroundMedia: 'rgba(0, 0, 0, 0.15)',
      backgroundReply: 'rgba(0, 0, 0, 0.08)',
      colorReplyUsername: '#0a0a0a',
      colorReply: '#6e6e6e',
      colorTag: '#0d579c',
      backgroundImage: '#ddd',
      colorNewMessages: '#1976d2',
      backgroundScrollCounter: '#0696c7',
      colorScrollCounter: '#fff',
      backgroundReaction: '#eee',
      borderStyleReaction: '1px solid #eee',
      backgroundReactionHover: '#fff',
      borderStyleReactionHover: '1px solid #ddd',
      colorReactionCounter: '#0a0a0a',
      backgroundReactionMe: '#cfecf5',
      borderStyleReactionMe: '1px solid #3b98b8',
      backgroundReactionHoverMe: '#cfecf5',
      borderStyleReactionHoverMe: '1px solid #3b98b8',
      colorReactionCounterMe: '#0b59b3',
      backgroundAudioRecord: '#eb4034',
      backgroundAudioLine: 'rgba(0, 0, 0, 0.15)',
      backgroundAudioProgress: '#455247',
      backgroundAudioProgressSelector: '#455247'
    },
    markdown: {
      background: 'rgba(239, 239, 239, 0.7)',
      border: 'rgba(212, 212, 212, 0.9)',
      color: '#e01e5a',
      colorMulti: '#0a0a0a'
    },
    room: {
      colorUsername: '#0a0a0a',
      colorMessage: '#67717a',
      colorTimestamp: '#a2aeb8',
      colorStateOnline: '#4caf50',
      colorStateOffline: '#9ca6af',
      backgroundCounterBadge: '#0696c7',
      colorCounterBadge: '#fff'
    },
    emoji: {
      background: '#fff'
    },
    icons: {
      search: '#9ca6af',
      add: '#1976d2',
      toggle: '#0a0a0a',
      menu: '#0a0a0a',
      close: '#9ca6af',
      closeImage: '#fff',
      file: '#1976d2',
      paperclip: '#1976d2',
      closeOutline: '#000',
      send: '#1976d2',
      sendDisabled: '#9ca6af',
      emoji: '#1976d2',
      emojiReaction: 'rgba(0, 0, 0, 0.3)',
      document: '#1976d2',
      pencil: '#9e9e9e',
      checkmark: '#9e9e9e',
      checkmarkSeen: '#0696c7',
      eye: '#fff',
      dropdownMessage: '#fff',
      dropdownMessageBackground: 'rgba(0, 0, 0, 0.25)',
      dropdownRoom: '#9e9e9e',
      dropdownScroll: '#0a0a0a',
      microphone: '#1976d2',
      audioPlay: '#455247',
      audioPause: '#455247',
      audioCancel: '#eb4034',
      audioConfirm: '#1ba65b'
    }
  },
  dark: {
    general: {
      color: '#fff',
      backgroundInput: '#202223',
      colorPlaceholder: '#596269',
      colorCaret: '#fff',
      colorSpinner: '#fff',
      borderStyle: 'none',
      backgroundScrollIcon: '#fff'
    },
    container: {
      border: 'none',
      borderRadius: '4px',
      boxShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)'
    },
    header: {
      background: '#181a1b',
      colorRoomName: '#fff',
      colorRoomInfo: '#9ca6af'
    },
    footer: {
      background: '#131415',
      borderStyleInput: 'none',
      borderInputSelected: '#1976d2',
      backgroundReply: '#1b1c1c',
      backgroundTagActive: '#1b1c1c'
    },
    content: {
      background: '#131415'
    },
    sidemenu: {
      background: '#181a1b',
      backgroundHover: '#202224',
      backgroundActive: '#151617',
      colorActive: '#fff',
      borderColorSearch: '#181a1b'
    },
    dropdown: {
      background: '#2a2c33',
      backgroundHover: '#26282e'
    },
    message: {
      background: '#22242a',
      backgroundMe: '#1f7e80',
      color: '#fff',
      colorStarted: '#9ca6af',
      backgroundDeleted: '#1b1c21',
      colorDeleted: '#a2a5a8',
      colorUsername: '#b3bac9',
      colorTimestamp: '#ebedf2',
      backgroundDate: 'rgba(0, 0, 0, 0.3)',
      colorDate: '#bec5cc',
      backgroundSystem: 'rgba(0, 0, 0, 0.3)',
      colorSystem: '#bec5cc',
      backgroundMedia: 'rgba(0, 0, 0, 0.18)',
      backgroundReply: 'rgba(0, 0, 0, 0.18)',
      colorReplyUsername: '#fff',
      colorReply: '#d6d6d6',
      colorTag: '#f0c60a',
      backgroundImage: '#ddd',
      colorNewMessages: '#fff',
      backgroundScrollCounter: '#1976d2',
      colorScrollCounter: '#fff',
      backgroundReaction: 'none',
      borderStyleReaction: 'none',
      backgroundReactionHover: '#202223',
      borderStyleReactionHover: 'none',
      colorReactionCounter: '#fff',
      backgroundReactionMe: '#4e9ad1',
      borderStyleReactionMe: 'none',
      backgroundReactionHoverMe: '#4e9ad1',
      borderStyleReactionHoverMe: 'none',
      colorReactionCounterMe: '#fff',
      backgroundAudioRecord: '#eb4034',
      backgroundAudioLine: 'rgba(255, 255, 255, 0.15)',
      backgroundAudioProgress: '#b7d4d3',
      backgroundAudioProgressSelector: '#b7d4d3'
    },
    markdown: {
      background: 'rgba(239, 239, 239, 0.7)',
      border: 'rgba(212, 212, 212, 0.9)',
      color: '#e01e5a',
      colorMulti: '#0a0a0a'
    },
    room: {
      colorUsername: '#fff',
      colorMessage: '#6c7278',
      colorTimestamp: '#6c7278',
      colorStateOnline: '#4caf50',
      colorStateOffline: '#596269',
      backgroundCounterBadge: '#1976d2',
      colorCounterBadge: '#fff'
    },
    emoji: {
      background: '#343740'
    },
    icons: {
      search: '#596269',
      add: '#fff',
      toggle: '#fff',
      menu: '#fff',
      close: '#9ca6af',
      closeImage: '#fff',
      file: '#1976d2',
      paperclip: '#fff',
      closeOutline: '#fff',
      send: '#fff',
      sendDisabled: '#646a70',
      emoji: '#fff',
      emojiReaction: '#fff',
      document: '#1976d2',
      pencil: '#ebedf2',
      checkmark: '#ebedf2',
      checkmarkSeen: '#f0d90a',
      eye: '#fff',
      dropdownMessage: '#fff',
      dropdownMessageBackground: 'rgba(0, 0, 0, 0.25)',
      dropdownRoom: '#fff',
      dropdownScroll: '#0a0a0a',
      microphone: '#fff',
      audioPlay: '#b7d4d3',
      audioPause: '#b7d4d3',
      audioCancel: '#eb4034',
      audioConfirm: '#1ba65b'
    }
  }
};
var cssThemeVars = function cssThemeVars(_ref) {
  var general = _ref.general,
      container = _ref.container,
      header = _ref.header,
      footer = _ref.footer,
      sidemenu = _ref.sidemenu,
      content = _ref.content,
      dropdown = _ref.dropdown,
      message = _ref.message,
      markdown = _ref.markdown,
      room = _ref.room,
      emoji = _ref.emoji,
      icons = _ref.icons;
  return {
    // general
    '--chat-color': general.color,
    '--chat-bg-color-input': general.backgroundInput,
    '--chat-color-spinner': general.colorSpinner,
    '--chat-color-placeholder': general.colorPlaceholder,
    '--chat-color-caret': general.colorCaret,
    '--chat-border-style': general.borderStyle,
    '--chat-bg-scroll-icon': general.backgroundScrollIcon,
    // container
    '--chat-container-border': container.border,
    '--chat-container-border-radius': container.borderRadius,
    '--chat-container-box-shadow': container.boxShadow,
    // header
    '--chat-header-bg-color': header.background,
    '--chat-header-color-name': header.colorRoomName,
    '--chat-header-color-info': header.colorRoomInfo,
    // footer
    '--chat-footer-bg-color': footer.background,
    '--chat-border-style-input': footer.borderStyleInput,
    '--chat-border-color-input-selected': footer.borderInputSelected,
    '--chat-footer-bg-color-reply': footer.backgroundReply,
    '--chat-footer-bg-color-tag-active': footer.backgroundTagActive,
    // content
    '--chat-content-bg-color': content.background,
    // sidemenu
    '--chat-sidemenu-bg-color': sidemenu.background,
    '--chat-sidemenu-bg-color-hover': sidemenu.backgroundHover,
    '--chat-sidemenu-bg-color-active': sidemenu.backgroundActive,
    '--chat-sidemenu-color-active': sidemenu.colorActive,
    '--chat-sidemenu-border-color-search': sidemenu.borderColorSearch,
    // dropdown
    '--chat-dropdown-bg-color': dropdown.background,
    '--chat-dropdown-bg-color-hover': dropdown.backgroundHover,
    // message
    '--chat-message-bg-color': message.background,
    '--chat-message-bg-color-me': message.backgroundMe,
    '--chat-message-color-started': message.colorStarted,
    '--chat-message-bg-color-deleted': message.backgroundDeleted,
    '--chat-message-color-deleted': message.colorDeleted,
    '--chat-message-color-username': message.colorUsername,
    '--chat-message-color-timestamp': message.colorTimestamp,
    '--chat-message-bg-color-date': message.backgroundDate,
    '--chat-message-color-date': message.colorDate,
    '--chat-message-bg-color-system': message.backgroundSystem,
    '--chat-message-color-system': message.colorSystem,
    '--chat-message-color': message.color,
    '--chat-message-bg-color-media': message.backgroundMedia,
    '--chat-message-bg-color-reply': message.backgroundReply,
    '--chat-message-color-reply-username': message.colorReplyUsername,
    '--chat-message-color-reply-content': message.colorReply,
    '--chat-message-color-tag': message.colorTag,
    '--chat-message-bg-color-image': message.backgroundImage,
    '--chat-message-color-new-messages': message.colorNewMessages,
    '--chat-message-bg-color-scroll-counter': message.backgroundScrollCounter,
    '--chat-message-color-scroll-counter': message.colorScrollCounter,
    '--chat-message-bg-color-reaction': message.backgroundReaction,
    '--chat-message-border-style-reaction': message.borderStyleReaction,
    '--chat-message-bg-color-reaction-hover': message.backgroundReactionHover,
    '--chat-message-border-style-reaction-hover': message.borderStyleReactionHover,
    '--chat-message-color-reaction-counter': message.colorReactionCounter,
    '--chat-message-bg-color-reaction-me': message.backgroundReactionMe,
    '--chat-message-border-style-reaction-me': message.borderStyleReactionMe,
    '--chat-message-bg-color-reaction-hover-me': message.backgroundReactionHoverMe,
    '--chat-message-border-style-reaction-hover-me': message.borderStyleReactionHoverMe,
    '--chat-message-color-reaction-counter-me': message.colorReactionCounterMe,
    '--chat-message-bg-color-audio-record': message.backgroundAudioRecord,
    '--chat-message-bg-color-audio-line': message.backgroundAudioLine,
    '--chat-message-bg-color-audio-progress': message.backgroundAudioProgress,
    '--chat-message-bg-color-audio-progress-selector': message.backgroundAudioProgressSelector,
    // markdown
    '--chat-markdown-bg': markdown.background,
    '--chat-markdown-border': markdown.border,
    '--chat-markdown-color': markdown.color,
    '--chat-markdown-color-multi': markdown.colorMulti,
    // room
    '--chat-room-color-username': room.colorUsername,
    '--chat-room-color-message': room.colorMessage,
    '--chat-room-color-timestamp': room.colorTimestamp,
    '--chat-room-color-online': room.colorStateOnline,
    '--chat-room-color-offline': room.colorStateOffline,
    '--chat-room-bg-color-badge': room.backgroundCounterBadge,
    '--chat-room-color-badge': room.colorCounterBadge,
    // emoji
    '--chat-emoji-bg-color': emoji.background,
    // icons
    '--chat-icon-color-search': icons.search,
    '--chat-icon-color-add': icons.add,
    '--chat-icon-color-toggle': icons.toggle,
    '--chat-icon-color-menu': icons.menu,
    '--chat-icon-color-close': icons.close,
    '--chat-icon-color-close-image': icons.closeImage,
    '--chat-icon-color-file': icons.file,
    '--chat-icon-color-paperclip': icons.paperclip,
    '--chat-icon-color-close-outline': icons.closeOutline,
    '--chat-icon-color-send': icons.send,
    '--chat-icon-color-send-disabled': icons.sendDisabled,
    '--chat-icon-color-emoji': icons.emoji,
    '--chat-icon-color-emoji-reaction': icons.emojiReaction,
    '--chat-icon-color-document': icons.document,
    '--chat-icon-color-pencil': icons.pencil,
    '--chat-icon-color-checkmark': icons.checkmark,
    '--chat-icon-color-checkmark-seen': icons.checkmarkSeen,
    '--chat-icon-color-eye': icons.eye,
    '--chat-icon-color-dropdown-message': icons.dropdownMessage,
    '--chat-icon-bg-dropdown-message': icons.dropdownMessageBackground,
    '--chat-icon-color-dropdown-room': icons.dropdownRoom,
    '--chat-icon-color-dropdown-scroll': icons.dropdownScroll,
    '--chat-icon-color-microphone': icons.microphone,
    '--chat-icon-color-audio-play': icons.audioPlay,
    '--chat-icon-color-audio-pause': icons.audioPause,
    '--chat-icon-color-audio-cancel': icons.audioCancel,
    '--chat-icon-color-audio-confirm': icons.audioConfirm
  };
};
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/ChatWindow/ChatWindow.vue?vue&type=script&lang=js&










//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//





var ChatWindowvue_type_script_lang_js_require = __webpack_require__("4c1d"),
    roomsValidation = ChatWindowvue_type_script_lang_js_require.roomsValidation,
    partcipantsValidation = ChatWindowvue_type_script_lang_js_require.partcipantsValidation;

/* harmony default export */ var ChatWindowvue_type_script_lang_js_ = ({
  name: 'ChatContainer',
  components: {
    RoomsList: RoomsList,
    Room: Room
  },
  props: {
    height: {
      type: String,
      "default": '600px'
    },
    theme: {
      type: String,
      "default": 'light'
    },
    styles: {
      type: Object,
      "default": function _default() {
        return {};
      }
    },
    responsiveBreakpoint: {
      type: Number,
      "default": 900
    },
    singleRoom: {
      type: Boolean,
      "default": false
    },
    textMessages: {
      type: Object,
      "default": null
    },
    currentUserId: {
      type: [String, Number],
      "default": ''
    },
    rooms: {
      type: Array,
      "default": function _default() {
        return [];
      }
    },
    loadingRooms: {
      type: Boolean,
      "default": false
    },
    roomsLoaded: {
      type: Boolean,
      "default": false
    },
    roomId: {
      type: [String, Number],
      "default": null
    },
    loadFirstRoom: {
      type: Boolean,
      "default": true
    },
    messages: {
      type: Array,
      "default": function _default() {
        return [];
      }
    },
    messagesLoaded: {
      type: Boolean,
      "default": false
    },
    roomActions: {
      type: Array,
      "default": function _default() {
        return [];
      }
    },
    menuActions: {
      type: Array,
      "default": function _default() {
        return [];
      }
    },
    messageActions: {
      type: Array,
      "default": function _default() {
        return [{
          name: 'replyMessage',
          title: 'Reply'
        }, {
          name: 'editMessage',
          title: 'Edit Message',
          onlyMe: true
        }, {
          name: 'deleteMessage',
          title: 'Delete Message',
          onlyMe: true
        }];
      }
    },
    showAddRoom: {
      type: Boolean,
      "default": true
    },
    showSendIcon: {
      type: Boolean,
      "default": true
    },
    showFiles: {
      type: Boolean,
      "default": true
    },
    showAudio: {
      type: Boolean,
      "default": true
    },
    showEmojis: {
      type: Boolean,
      "default": true
    },
    showReactionEmojis: {
      type: Boolean,
      "default": true
    },
    showNewMessagesDivider: {
      type: Boolean,
      "default": true
    },
    showFooter: {
      type: Boolean,
      "default": true
    },
    textFormatting: {
      type: Boolean,
      "default": true
    },
    linkOptions: {
      type: Object,
      "default": function _default() {
        return {
          disabled: false,
          target: '_blank'
        };
      }
    },
    newMessage: {
      type: Object,
      "default": null
    },
    roomMessage: {
      type: String,
      "default": ''
    },
    acceptedFiles: {
      type: String,
      "default": '*'
    }
  },
  data: function data() {
    return {
      room: {},
      loadingMoreRooms: false,
      showRoomsList: true,
      isMobile: false
    };
  },
  computed: {
    t: function t() {
      return _objectSpread2(_objectSpread2({}, locales), this.textMessages);
    },
    cssVars: function cssVars() {
      var _this = this;

      var defaultStyles = defaultThemeStyles[this.theme];
      var customStyles = {};
      Object.keys(defaultStyles).map(function (key) {
        customStyles[key] = _objectSpread2(_objectSpread2({}, defaultStyles[key]), _this.styles[key] || {});
      });
      return cssThemeVars(customStyles);
    },
    orderedRooms: function orderedRooms() {
      return this.rooms.slice().sort(function (a, b) {
        var aVal = a.index || 0;
        var bVal = b.index || 0;
        return aVal > bVal ? -1 : bVal > aVal ? 1 : 0;
      });
    }
  },
  watch: {
    rooms: {
      immediate: true,
      handler: function handler(newVal, oldVal) {
        var _this2 = this;

        if (!newVal[0] || !newVal.find(function (room) {
          return room.roomId === _this2.room.roomId;
        })) {
          this.showRoomsList = true;
        }

        if (!this.loadingMoreRooms && this.loadFirstRoom && newVal[0] && (!oldVal || newVal.length !== oldVal.length)) {
          if (this.roomId) {
            var room = newVal.find(function (r) {
              return r.roomId === _this2.roomId;
            });
            this.fetchRoom({
              room: room
            });
          } else if (!this.isMobile || this.singleRoom) {
            this.fetchRoom({
              room: this.orderedRooms[0]
            });
          } else {
            this.showRoomsList = true;
          }
        }
      }
    },
    loadingRooms: function loadingRooms(val) {
      if (val) this.room = {};
    },
    roomId: {
      immediate: true,
      handler: function handler(newVal, oldVal) {
        if (newVal && !this.loadingRooms && this.rooms.length) {
          var room = this.rooms.find(function (r) {
            return r.roomId === newVal;
          });
          this.fetchRoom({
            room: room
          });
        } else if (oldVal && !newVal) {
          this.room = {};
        }
      }
    },
    room: function room(val) {
      if (!val || Object.entries(val).length === 0) return;
      roomsValidation(val);
      val.users.forEach(function (user) {
        partcipantsValidation(user);
      });
    },
    newMessage: function newMessage(val) {
      this.$set(this.messages, val.index, val.message);
    }
  },
  created: function created() {
    var _this3 = this;

    this.updateResponsive();
    window.addEventListener('resize', function (ev) {
      if (ev.isTrusted) _this3.updateResponsive();
    });
  },
  methods: {
    updateResponsive: function updateResponsive() {
      this.isMobile = window.innerWidth < this.responsiveBreakpoint;
    },
    toggleRoomsList: function toggleRoomsList() {
      this.showRoomsList = !this.showRoomsList;
      if (this.isMobile) this.room = {};
      this.$emit('toggle-rooms-list', {
        opened: this.showRoomsList
      });
    },
    fetchRoom: function fetchRoom(_ref) {
      var room = _ref.room;
      this.room = room;
      this.fetchMessages({
        reset: true
      });
      if (this.isMobile) this.showRoomsList = false;
    },
    fetchMoreRooms: function fetchMoreRooms() {
      this.$emit('fetch-more-rooms');
    },
    roomInfo: function roomInfo() {
      this.$emit('room-info', this.room);
    },
    addRoom: function addRoom() {
      this.$emit('add-room');
    },
    fetchMessages: function fetchMessages(options) {
      this.$emit('fetch-messages', {
        room: this.room,
        options: options
      });
    },
    sendMessage: function sendMessage(message) {
      this.$emit('send-message', _objectSpread2(_objectSpread2({}, message), {}, {
        roomId: this.room.roomId
      }));
    },
    editMessage: function editMessage(message) {
      this.$emit('edit-message', _objectSpread2(_objectSpread2({}, message), {}, {
        roomId: this.room.roomId
      }));
    },
    deleteMessage: function deleteMessage(message) {
      this.$emit('delete-message', {
        message: message,
        roomId: this.room.roomId
      });
    },
    openFile: function openFile(_ref2) {
      var message = _ref2.message,
          action = _ref2.action;
      this.$emit('open-file', {
        message: message,
        action: action
      });
    },
    openUserTag: function openUserTag(_ref3) {
      var user = _ref3.user;
      this.$emit('open-user-tag', {
        user: user
      });
    },
    menuActionHandler: function menuActionHandler(ev) {
      this.$emit('menu-action-handler', {
        action: ev,
        roomId: this.room.roomId
      });
    },
    roomActionHandler: function roomActionHandler(_ref4) {
      var action = _ref4.action,
          roomId = _ref4.roomId;
      this.$emit('room-action-handler', {
        action: action,
        roomId: roomId
      });
    },
    messageActionHandler: function messageActionHandler(ev) {
      this.$emit('message-action-handler', _objectSpread2(_objectSpread2({}, ev), {}, {
        roomId: this.room.roomId
      }));
    },
    sendMessageReaction: function sendMessageReaction(messageReaction) {
      this.$emit('send-message-reaction', _objectSpread2(_objectSpread2({}, messageReaction), {}, {
        roomId: this.room.roomId
      }));
    },
    typingMessage: function typingMessage(message) {
      this.$emit('typing-message', {
        message: message,
        roomId: this.room.roomId
      });
    },
    textareaActionHandler: function textareaActionHandler(message) {
      this.$emit('textarea-action-handler', {
        message: message,
        roomId: this.room.roomId
      });
    }
  }
});
// CONCATENATED MODULE: ./src/ChatWindow/ChatWindow.vue?vue&type=script&lang=js&
 /* harmony default export */ var ChatWindow_ChatWindowvue_type_script_lang_js_ = (ChatWindowvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/ChatWindow/ChatWindow.vue?vue&type=style&index=0&lang=scss&
var ChatWindowvue_type_style_index_0_lang_scss_ = __webpack_require__("1606");

// CONCATENATED MODULE: ./src/ChatWindow/ChatWindow.vue






/* normalize component */

var ChatWindow_component = normalizeComponent(
  ChatWindow_ChatWindowvue_type_script_lang_js_,
  render,
  staticRenderFns,
  false,
  null,
  null,
  null
  
)

/* harmony default export */ var ChatWindow = (ChatWindow_component.exports);
// CONCATENATED MODULE: ./src/ChatWindow/index.js


Object.defineProperty(ChatWindow, 'install', {
  configurable: false,
  enumerable: false,
  value: function value(Vue) {
    Vue.component('ChatWindow', ChatWindow);
  }
});
/* harmony default export */ var src_ChatWindow = (ChatWindow);
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js


/* harmony default export */ var entry_lib = __webpack_exports__["default"] = (src_ChatWindow);



/***/ }),

/***/ "fb6a":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $ = __webpack_require__("23e7");
var isObject = __webpack_require__("861d");
var isArray = __webpack_require__("e8b5");
var toAbsoluteIndex = __webpack_require__("23cb");
var toLength = __webpack_require__("50c4");
var toIndexedObject = __webpack_require__("fc6a");
var createProperty = __webpack_require__("8418");
var wellKnownSymbol = __webpack_require__("b622");
var arrayMethodHasSpeciesSupport = __webpack_require__("1dde");
var arrayMethodUsesToLength = __webpack_require__("ae40");

var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
var USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });

var SPECIES = wellKnownSymbol('species');
var nativeSlice = [].slice;
var max = Math.max;

// `Array.prototype.slice` method
// https://tc39.es/ecma262/#sec-array.prototype.slice
// fallback for not array-like ES3 strings and DOM objects
$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
  slice: function slice(start, end) {
    var O = toIndexedObject(this);
    var length = toLength(O.length);
    var k = toAbsoluteIndex(start, length);
    var fin = toAbsoluteIndex(end === undefined ? length : end, length);
    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
    var Constructor, result, n;
    if (isArray(O)) {
      Constructor = O.constructor;
      // cross-realm fallback
      if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {
        Constructor = undefined;
      } else if (isObject(Constructor)) {
        Constructor = Constructor[SPECIES];
        if (Constructor === null) Constructor = undefined;
      }
      if (Constructor === Array || Constructor === undefined) {
        return nativeSlice.call(O, k, fin);
      }
    }
    result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));
    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);
    result.length = n;
    return result;
  }
});


/***/ }),

/***/ "fc6a":
/***/ (function(module, exports, __webpack_require__) {

// toObject with fallback for non-array-like ES3 strings
var IndexedObject = __webpack_require__("44ad");
var requireObjectCoercible = __webpack_require__("1d80");

module.exports = function (it) {
  return IndexedObject(requireObjectCoercible(it));
};


/***/ }),

/***/ "fd87":
/***/ (function(module, exports, __webpack_require__) {

var createTypedArrayConstructor = __webpack_require__("74e8");

// `Int8Array` constructor
// https://tc39.es/ecma262/#sec-typedarray-objects
createTypedArrayConstructor('Int8', function (init) {
  return function Int8Array(data, byteOffset, length) {
    return init(this, data, byteOffset, length);
  };
});


/***/ }),

/***/ "fdbc":
/***/ (function(module, exports) {

// iterable DOM collections
// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
module.exports = {
  CSSRuleList: 0,
  CSSStyleDeclaration: 0,
  CSSValueList: 0,
  ClientRectList: 0,
  DOMRectList: 0,
  DOMStringList: 0,
  DOMTokenList: 1,
  DataTransferItemList: 0,
  FileList: 0,
  HTMLAllCollection: 0,
  HTMLCollection: 0,
  HTMLFormElement: 0,
  HTMLSelectElement: 0,
  MediaList: 0,
  MimeTypeArray: 0,
  NamedNodeMap: 0,
  NodeList: 1,
  PaintRequestList: 0,
  Plugin: 0,
  PluginArray: 0,
  SVGLengthList: 0,
  SVGNumberList: 0,
  SVGPathSegList: 0,
  SVGPointList: 0,
  SVGStringList: 0,
  SVGTransformList: 0,
  SourceBufferList: 0,
  StyleSheetList: 0,
  TextTrackCueList: 0,
  TextTrackList: 0,
  TouchList: 0
};


/***/ }),

/***/ "fdbf":
/***/ (function(module, exports, __webpack_require__) {

var NATIVE_SYMBOL = __webpack_require__("4930");

module.exports = NATIVE_SYMBOL
  // eslint-disable-next-line no-undef
  && !Symbol.sham
  // eslint-disable-next-line no-undef
  && typeof Symbol.iterator == 'symbol';


/***/ }),

/***/ "fea9":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("da84");

module.exports = global.Promise;


/***/ })

/******/ });
//# sourceMappingURL=vue-advanced-chat.common.js.map

/***/ }),

/***/ "./node_modules/vue-advanced-chat/dist/vue-advanced-chat.css":
/*!*******************************************************************!*\
  !*** ./node_modules/vue-advanced-chat/dist/vue-advanced-chat.css ***!
  \*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {


var content = __webpack_require__(/*! !../../css-loader??ref--6-1!../../postcss-loader/src??ref--6-2!./vue-advanced-chat.css */ "./node_modules/css-loader/index.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-advanced-chat/dist/vue-advanced-chat.css");

if(typeof content === 'string') content = [[module.i, content, '']];

var transform;
var insertInto;



var options = {"hmr":true}

options.transform = transform
options.insertInto = undefined;

var update = __webpack_require__(/*! ../../style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);

if(content.locals) module.exports = content.locals;

if(false) {}

/***/ }),

/***/ "./node_modules/vue-beautiful-chat/dist/vue-beautiful-chat.umd.min.js":
/*!****************************************************************************!*\
  !*** ./node_modules/vue-beautiful-chat/dist/vue-beautiful-chat.umd.min.js ***!
  \****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

(function(e,f){ true?module.exports=f(__webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.common.js")):undefined})("undefined"!==typeof self?self:this,(function(e){return function(e){var f={};function t(n){if(f[n])return f[n].exports;var r=f[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,t),r.l=!0,r.exports}return t.m=e,t.c=f,t.d=function(e,f,n){t.o(e,f)||Object.defineProperty(e,f,{enumerable:!0,get:n})},t.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,f){if(1&f&&(e=t(e)),8&f)return e;if(4&f&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&f&&"string"!=typeof e)for(var r in e)t.d(n,r,function(f){return e[f]}.bind(null,r));return n},t.n=function(e){var f=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(f,"a",f),f},t.o=function(e,f){return Object.prototype.hasOwnProperty.call(e,f)},t.p="",t(t.s="fb15")}({"00ee":function(e,f,t){var n=t("b622"),r=n("toStringTag"),o={};o[r]="z",e.exports="[object z]"===String(o)},"0366":function(e,f,t){var n=t("1c0b");e.exports=function(e,f,t){if(n(e),void 0===f)return e;switch(t){case 0:return function(){return e.call(f)};case 1:return function(t){return e.call(f,t)};case 2:return function(t,n){return e.call(f,t,n)};case 3:return function(t,n,r){return e.call(f,t,n,r)}}return function(){return e.apply(f,arguments)}}},"0411":function(e,f,t){var n=t("27df");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("cb91e03c",n,!0,{sourceMap:!1,shadowMode:!1})},"0538":function(e,f,t){"use strict";var n=t("1c0b"),r=t("861d"),o=[].slice,i={},a=function(e,f,t){if(!(f in i)){for(var n=[],r=0;r<f;r++)n[r]="a["+r+"]";i[f]=Function("C,a","return new C("+n.join(",")+")")}return i[f](e,t)};e.exports=Function.bind||function(e){var f=n(this),t=o.call(arguments,1),i=function(){var n=t.concat(o.call(arguments));return this instanceof i?a(f,n.length,n):f.apply(e,n)};return r(f.prototype)&&(i.prototype=f.prototype),i}},"06cf":function(e,f,t){var n=t("83ab"),r=t("d1e7"),o=t("5c6c"),i=t("fc6a"),a=t("c04e"),s=t("5135"),c=t("0cfb"),d=Object.getOwnPropertyDescriptor;f.f=n?d:function(e,f){if(e=i(e),f=a(f,!0),c)try{return d(e,f)}catch(t){}if(s(e,f))return o(!r.f.call(e,f),e[f])}},"0cfb":function(e,f,t){var n=t("83ab"),r=t("d039"),o=t("cc12");e.exports=!n&&!r((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},"11e8":function(e,f,t){"use strict";var n=t("7a05"),r=t.n(n);r.a},"154c":function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,'.sc-launcher[data-v-37d9143a]{background-position:50%;background-repeat:no-repeat;position:fixed;right:25px;bottom:25px;box-shadow:none;cursor:pointer}.sc-launcher[data-v-37d9143a],.sc-launcher[data-v-37d9143a]:before{width:60px;height:60px;border-radius:50%;transition:box-shadow .2s ease-in-out}.sc-launcher[data-v-37d9143a]:before{content:"";position:relative;display:block}.sc-launcher .sc-closed-icon[data-v-37d9143a],.sc-launcher .sc-open-icon[data-v-37d9143a]{position:fixed;right:25px;bottom:25px}.sc-launcher .sc-closed-icon[data-v-37d9143a],.sc-launcher .sc-open-icon[data-v-37d9143a]{width:60px;height:60px;transition:opacity .1s ease-in-out,transform .1s ease-in-out}.sc-launcher .sc-open-icon[data-v-37d9143a]{padding:20px;box-sizing:border-box;opacity:1}.sc-launcher.opened .sc-closed-icon[data-v-37d9143a],.sc-launcher.opened .sc-open-icon[data-v-37d9143a]{transform:rotate(-90deg);opacity:1}.sc-launcher.opened[data-v-37d9143a]:before{box-shadow:0 0 400px 250px rgba(148,149,150,.2)}.sc-launcher[data-v-37d9143a]:hover{box-shadow:0 0 27px 1.5px rgba(0,0,0,.2)}.sc-new-messsages-count[data-v-37d9143a]{position:absolute;top:-3px;left:41px;display:flex;justify-content:center;flex-direction:column;border-radius:50%;width:22px;height:22px;background:#ff4646;color:#fff;text-align:center;margin:auto;font-size:12px;font-weight:500}',""]),e.exports=f},"18c3":function(e,f,t){"use strict";var n=t("f951"),r=t.n(n);r.a},"19aa":function(e,f){e.exports=function(e,f,t){if(!(e instanceof f))throw TypeError("Incorrect "+(t?t+" ":"")+"invocation");return e}},"1be4":function(e,f,t){var n=t("d066");e.exports=n("document","documentElement")},"1c0b":function(e,f){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},"1c7e":function(e,f,t){var n=t("b622"),r=n("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(s){}e.exports=function(e,f){if(!f&&!o)return!1;var t=!1;try{var n={};n[r]=function(){return{next:function(){return{done:t=!0}}}},e(n)}catch(s){}return t}},"1cdc":function(e,f,t){var n=t("342f");e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(n)},"1d80":function(e,f){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},"1fe6":function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,'.sc-emoji-picker[data-v-7e6b96ab]{position:absolute;bottom:50px;right:0;width:330px;max-height:215px;box-shadow:0 7px 40px 2px rgba(148,149,150,.3);background:#fff;border-radius:10px;outline:none}.sc-emoji-picker[data-v-7e6b96ab]:after{content:"";width:14px;height:14px;background:#fff;position:absolute;bottom:-6px;right:55px;transform:rotate(45deg);border-radius:2px}.sc-emoji-picker--content[data-v-7e6b96ab]{padding:10px;overflow:auto;width:100%;max-height:195px;margin-top:7px;box-sizing:border-box}.sc-emoji-picker--category[data-v-7e6b96ab]{display:flex;flex-direction:row;flex-wrap:wrap}.sc-emoji-picker--category-title[data-v-7e6b96ab]{min-width:100%;color:#b8c3ca;font-weight:200;font-size:13px;margin:5px;letter-spacing:1px}.sc-emoji-picker--emoji[data-v-7e6b96ab]{margin:5px;width:30px;line-height:30px;text-align:center;cursor:pointer;vertical-align:middle;font-size:28px;transition:transform 60ms ease-out}.sc-emoji-picker--emoji[data-v-7e6b96ab]:hover{transform:scale(1.4)}',""]),e.exports=f},"20b8":function(e,f,t){"use strict";var n=t("b724"),r=t.n(n);r.a},"21eb":function(e,f,t){"use strict";f.escape=e=>e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),f.unescape=e=>e.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#39;/g,"'").replace(/&quot;/g,'"').replace(/&amp;/g,"&"),f.escapeTag=function(e){let t=e[0];for(let n=1;n<arguments.length;n++)t=t+f.escape(arguments[n])+e[n];return t},f.unescapeTag=function(e){let t=e[0];for(let n=1;n<arguments.length;n++)t=t+f.unescape(arguments[n])+e[n];return t}},2266:function(e,f,t){var n=t("825a"),r=t("e95a"),o=t("50c4"),i=t("0366"),a=t("35a1"),s=t("9bdd"),c=function(e,f){this.stopped=e,this.result=f},d=e.exports=function(e,f,t,d,l){var u,p,h,g,m,b,v,_=i(f,t,d?2:1);if(l)u=e;else{if(p=a(e),"function"!=typeof p)throw TypeError("Target is not iterable");if(r(p)){for(h=0,g=o(e.length);g>h;h++)if(m=d?_(n(v=e[h])[0],v[1]):_(e[h]),m&&m instanceof c)return m;return new c(!1)}u=p.call(e)}b=u.next;while(!(v=b.call(u)).done)if(m=s(u,_,v.value,d),"object"==typeof m&&m&&m instanceof c)return m;return new c(!1)};d.stop=function(e){return new c(!0,e)}},"23cb":function(e,f,t){var n=t("a691"),r=Math.max,o=Math.min;e.exports=function(e,f){var t=n(e);return t<0?r(t+f,0):o(t,f)}},"23e7":function(e,f,t){var n=t("da84"),r=t("06cf").f,o=t("9112"),i=t("6eeb"),a=t("ce4e"),s=t("e893"),c=t("94ca");e.exports=function(e,f){var t,d,l,u,p,h,g=e.target,m=e.global,b=e.stat;if(d=m?n:b?n[g]||a(g,{}):(n[g]||{}).prototype,d)for(l in f){if(p=f[l],e.noTargetGet?(h=r(d,l),u=h&&h.value):u=d[l],t=c(m?l:g+(b?".":"#")+l,e.forced),!t&&void 0!==u){if(typeof p===typeof u)continue;s(p,u)}(e.sham||u&&u.sham)&&o(p,"sham",!0),i(d,l,p,e)}}},"241c":function(e,f,t){var n=t("ca84"),r=t("7839"),o=r.concat("length","prototype");f.f=Object.getOwnPropertyNames||function(e){return n(e,o)}},"24fb":function(e,f,t){"use strict";function n(e,f){var t=e[1]||"",n=e[3];if(!n)return t;if(f&&"function"===typeof btoa){var o=r(n),i=n.sources.map((function(e){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(e," */")}));return[t].concat(i).concat([o]).join("\n")}return[t].join("\n")}function r(e){var f=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),t="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(f);return"/*# ".concat(t," */")}e.exports=function(e){var f=[];return f.toString=function(){return this.map((function(f){var t=n(f,e);return f[2]?"@media ".concat(f[2]," {").concat(t,"}"):t})).join("")},f.i=function(e,t,n){"string"===typeof e&&(e=[[null,e,""]]);var r={};if(n)for(var o=0;o<this.length;o++){var i=this[o][0];null!=i&&(r[i]=!0)}for(var a=0;a<e.length;a++){var s=[].concat(e[a]);n&&r[s[0]]||(t&&(s[2]?s[2]="".concat(t," and ").concat(s[2]):s[2]=t),f.push(s))}},f}},"252c":function(e,f,t){"use strict";(function(e){function n(){var e=window.navigator.userAgent,f=e.indexOf("MSIE ");if(f>0)return parseInt(e.substring(f+5,e.indexOf(".",f)),10);var t=e.indexOf("Trident/");if(t>0){var n=e.indexOf("rv:");return parseInt(e.substring(n+3,e.indexOf(".",n)),10)}var r=e.indexOf("Edge/");return r>0?parseInt(e.substring(r+5,e.indexOf(".",r)),10):-1}t.d(f,"a",(function(){return i}));var r=void 0;function o(){o.init||(o.init=!0,r=-1!==n())}var i={render:function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})},staticRenderFns:[],_scopeId:"data-v-b329ee4c",name:"resize-observer",methods:{compareAndNotify:function(){this._w===this.$el.offsetWidth&&this._h===this.$el.offsetHeight||(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.$emit("notify"))},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!r&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),delete this._resizeObject.onload)}},mounted:function(){var e=this;o(),this.$nextTick((function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight}));var f=document.createElement("object");this._resizeObject=f,f.setAttribute("aria-hidden","true"),f.setAttribute("tabindex",-1),f.onload=this.addResizeHandlers,f.type="text/html",r&&this.$el.appendChild(f),f.data="about:blank",r||this.$el.appendChild(f)},beforeDestroy:function(){this.removeResizeHandlers()}};function a(e){e.component("resize-observer",i),e.component("ResizeObserver",i)}var s={version:"0.4.5",install:a},c=null;"undefined"!==typeof window?c=window.Vue:"undefined"!==typeof e&&(c=e.Vue),c&&c.use(s)}).call(this,t("c8ba"))},2626:function(e,f,t){"use strict";var n=t("d066"),r=t("9bf2"),o=t("b622"),i=t("83ab"),a=o("species");e.exports=function(e){var f=n(e),t=r.f;i&&f&&!f[a]&&t(f,a,{configurable:!0,get:function(){return this}})}},"27df":function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,".sc-chat-window[data-v-08d4c038]{width:370px;height:calc(100% - 120px);max-height:590px;position:fixed;right:25px;bottom:100px;box-sizing:border-box;box-shadow:0 7px 40px 2px rgba(148,149,150,.1);background:#fff;display:flex;flex-direction:column;justify-content:space-between;border-radius:10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-animation:fadeIn-data-v-08d4c038;animation:fadeIn-data-v-08d4c038;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.sc-chat-window.closed[data-v-08d4c038]{opacity:0;display:none;bottom:90px}@-webkit-keyframes fadeIn-data-v-08d4c038{0%{display:none;opacity:0}to{display:flex;opacity:1}}@keyframes fadeIn-data-v-08d4c038{0%{display:none;opacity:0}to{display:flex;opacity:1}}.sc-message--me[data-v-08d4c038]{text-align:right}.sc-message--them[data-v-08d4c038]{text-align:left}@media (max-width:450px){.sc-chat-window[data-v-08d4c038]{width:100%;height:100%;max-height:100%;right:0;bottom:0;border-radius:0;transition:.1s ease-in-out}.sc-chat-window.closed[data-v-08d4c038]{bottom:0}}",""]),e.exports=f},"2a4d":function(e,f,t){"use strict";var n=t("cfad"),r=t.n(n);r.a},"2cf4":function(e,f,t){var n,r,o,i=t("da84"),a=t("d039"),s=t("c6b6"),c=t("0366"),d=t("1be4"),l=t("cc12"),u=t("1cdc"),p=i.location,h=i.setImmediate,g=i.clearImmediate,m=i.process,b=i.MessageChannel,v=i.Dispatch,_=0,w={},y="onreadystatechange",x=function(e){if(w.hasOwnProperty(e)){var f=w[e];delete w[e],f()}},k=function(e){return function(){x(e)}},M=function(e){x(e.data)},C=function(e){i.postMessage(e+"",p.protocol+"//"+p.host)};h&&g||(h=function(e){var f=[],t=1;while(arguments.length>t)f.push(arguments[t++]);return w[++_]=function(){("function"==typeof e?e:Function(e)).apply(void 0,f)},n(_),_},g=function(e){delete w[e]},"process"==s(m)?n=function(e){m.nextTick(k(e))}:v&&v.now?n=function(e){v.now(k(e))}:b&&!u?(r=new b,o=r.port2,r.port1.onmessage=M,n=c(o.postMessage,o,1)):!i.addEventListener||"function"!=typeof postMessage||i.importScripts||a(C)||"file:"===p.protocol?n=y in l("script")?function(e){d.appendChild(l("script"))[y]=function(){d.removeChild(this),x(e)}}:function(e){setTimeout(k(e),0)}:(n=C,i.addEventListener("message",M,!1))),e.exports={set:h,clear:g}},"2d00":function(e,f,t){var n,r,o=t("da84"),i=t("342f"),a=o.process,s=a&&a.versions,c=s&&s.v8;c?(n=c.split("."),r=n[0]+n[1]):i&&(n=i.match(/Edge\/(\d+)/),(!n||n[1]>=74)&&(n=i.match(/Chrome\/(\d+)/),n&&(r=n[1]))),e.exports=r&&+r},"2e45":function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,".sc-message-list[data-v-36bb2cf7]{height:80%;overflow-y:auto;background-size:100%;padding:40px 0}",""]),e.exports=f},3355:function(e,f,t){var n=t("154c");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("139b5152",n,!0,{sourceMap:!1,shadowMode:!1})},"342f":function(e,f,t){var n=t("d066");e.exports=n("navigator","userAgent")||""},"35a1":function(e,f,t){var n=t("f5df"),r=t("3f8c"),o=t("b622"),i=o("iterator");e.exports=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||r[n(e)]}},3715:function(e,f){const t={bold:{delimiter:"*",tag:"strong"},italic:{delimiter:"/",tag:"em"},underline:{delimiter:"_",tag:"u"},strike:{delimiter:"~",tag:"del"},code:{delimiter:"`",tag:"code"},sup:{delimiter:"^",tag:"sup"},sub:{delimiter:"¡",tag:"sub"}},n=e=>`<${e}>`,r=e=>`</${e}>`,o=(e,f)=>`${n(f)}${e}${r(f)}`,i=(e,f)=>{let t=0,n="";while(t<e.length&&e[t]!==f)n+=e[t],t++;return t===e.length?"":n};e.exports=(e,f=t)=>{f=Object.assign({},t,f);let n="",r=0;const a=()=>{n+=e[r],r++},s=(e,f)=>{n+=f+e,r+=e.length},c=f=>{if(r++," "===e[r])n+=f.delimiter,a();else{const t=e.substr(r),a=i(t,f.delimiter);0===a.length?s(t,f.delimiter):(n+=o(a,f.tag),r+=a.length+1)}};while(r<e.length){const t=e[r];t===f.bold.delimiter?c(f.bold):t===f.italic.delimiter?c(f.italic):t===f.underline.delimiter?c(f.underline):t===f.strike.delimiter?c(f.strike):t===f.code.delimiter?c(f.code):t===f.sup.delimiter?c(f.sup):t===f.sub.delimiter?c(f.sub):a()}return n}},3797:function(e,f,t){var n=t("92ab");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("ddb473fe",n,!0,{sourceMap:!1,shadowMode:!1})},"37e8":function(e,f,t){var n=t("83ab"),r=t("9bf2"),o=t("825a"),i=t("df75");e.exports=n?Object.defineProperties:function(e,f){o(e);var t,n=i(f),a=n.length,s=0;while(a>s)r.f(e,t=n[s++],f[t]);return e}},"387a":function(e,f,t){"use strict";var n=t("6408"),r=t.n(n);r.a},"39c2":function(e,f,t){"use strict";var n=t("df43"),r=t.n(n);r.a},"3bbe":function(e,f,t){var n=t("861d");e.exports=function(e){if(!n(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},"3df2":function(e,f){e.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxyZWN0IGlkPSJiYWNrZ3JvdW5kcmVjdCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgeD0iMCIgeT0iMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIi8+PGRlZnM+PHN0eWxlPi5he2ZpbGw6bm9uZTt9LmJ7ZmlsbDojNGU4Y2ZmO30uY3tjbGlwLXBhdGg6dXJsKCNhKTt9LmR7ZmlsbDojZmZmO30uZXtmaWxsOiNlZmY0Zjk7fTwvc3R5bGU+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBjbGFzcz0iYSIgZD0iTSAwIDAgSCAxNy41NTUgdiAxNy41NTUgSCAwIFoiIGlkPSJzdmdfMSIgdHJhbnNmb3JtPSIiLz48L2NsaXBQYXRoPjwvZGVmcz48ZyBjbGFzcz0iY3VycmVudExheWVyIiBzdHlsZT0iIj48dGl0bGU+TGF5ZXIgMTwvdGl0bGU+PGcgaWQ9InN2Z18yIiBjbGFzcz0ic2VsZWN0ZWQiIHRyYW5zZm9ybT0iIj48ZyBpZD0ic3ZnXzMiIHRyYW5zZm9ybT0iIj48ZyBjbGFzcz0iYyIgaWQ9InN2Z180IiB0cmFuc2Zvcm09IiI+PGcgaWQ9InN2Z181IiB0cmFuc2Zvcm09IiI+PHBhdGggY2xhc3M9ImQiIGQ9Ik0gMTcuNTU2IDguNzc4NDIgYSA4Ljc3OCA4Ljc3OCAwIDAgMCAtOC43NzggLTguNzc4IGEgOC43NzggOC43NzggMCAwIDAgLTguNzc4IDguNzc4IGEgOC43NDUgOC43NDUgMCAwIDAgMi4yNiA1Ljg3OSB2IDEuNDQyIGMgMCAwLjggMC40OTIgMS40NTcgMS4xIDEuNDU3IGggNS44MyBhIDAuODQzIDAuODQzIDAgMCAwIDAuMTgzIC0wLjAyIGEgOC43NzggOC43NzggMCAwIDAgOC4xODQgLTguNzU3IiBpZD0ic3ZnXzYiIHRyYW5zZm9ybT0iIi8+PC9nPjxnIGlkPSJzdmdfNyIgdHJhbnNmb3JtPSIiPjxwYXRoIGNsYXNzPSJlIiBkPSJNIDMuMTYxNDggOC45MjEgYSA5LjI5MiA5LjI5MiAwIDAgMSA2LjM4IC04Ljg4OCBjIC0wLjI1MiAtMC4wMjIgLTAuNTA2IC0wLjAzMyAtMC43NjMgLTAuMDMzIGEgOC43NzQgOC43NzQgMCAwIDAgLTguNzc4IDguNzc4IEEgOS41MDggOS41MDggMCAwIDAgMi4yMjQ0NyAxNC43MDAzIGMgMC4wMDUgMCAwIDAuMDA5IDAgMC4wMSBjIC0wLjMxMSAwLjM1MiAtMS45MjQgMi44NDkgMC4wMjEgMi44NDkgaCAyLjI1IGMgLTEuMjMgLTAuMDIyIDEuMjYzIC0yLjEwNyAwLjI2OSAtMy40OTQgYSA4LjIyNSA4LjIyNSAwIDAgMSAtMS42IC01LjE0MSIgaWQ9InN2Z184IiB0cmFuc2Zvcm09IiIvPjwvZz48L2c+PC9nPjwvZz48L2c+PC9zdmc+"},"3eb5":function(e,f,t){"use strict";var n=t("e644"),r=t.n(n);r.a},"3f8c":function(e,f){e.exports={}},"428f":function(e,f,t){var n=t("da84");e.exports=n},4319:function(e,f,t){"use strict";var n=t("3797"),r=t.n(n);r.a},"443c":function(e,f,t){var n=t("c54e");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("b134f8f8",n,!0,{sourceMap:!1,shadowMode:!1})},"44ad":function(e,f,t){var n=t("d039"),r=t("c6b6"),o="".split;e.exports=n((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==r(e)?o.call(e,""):Object(e)}:Object},"44d2":function(e,f,t){var n=t("b622"),r=t("7c73"),o=t("9bf2"),i=n("unscopables"),a=Array.prototype;void 0==a[i]&&o.f(a,i,{configurable:!0,value:r(null)}),e.exports=function(e){a[i][e]=!0}},"44de":function(e,f,t){var n=t("da84");e.exports=function(e,f){var t=n.console;t&&t.error&&(1===arguments.length?t.error(e):t.error(e,f))}},"46c7":function(e,f){e.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTguMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNTYgNTYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDU2IDU2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnIGlkPSJzdmdfMSI+CiAgIDxwYXRoIGlkPSJzdmdfMiIgZmlsbD0iI0U5RTlFMCIgZD0ibTM2Ljk4NSwwbC0yOS4wMjIsMGMtMC44MDgsMCAtMS40NjMsMC42NTUgLTEuNDYzLDEuOTI2bDAsNTMuMDc0YzAsMC4zNDUgMC42NTUsMSAxLjQ2MywxbDQwLjA3NCwwYzAuODA4LDAgMS40NjMsLTAuNjU1IDEuNDYzLC0xbDAsLTQyLjAyMmMwLC0wLjY5NiAtMC4wOTMsLTAuOTIgLTAuMjU3LC0xLjA4NWwtMTEuNjM2LC0xMS42MzZjLTAuMTY1LC0wLjE2NCAtMC4zODksLTAuMjU3IC0wLjYyMiwtMC4yNTd6Ii8+CiAgIDxwb2x5Z29uIGlkPSJzdmdfMyIgZmlsbD0iI0Q5RDdDQSIgcG9pbnRzPSIzNy41LDAuMTUxIDM3LjUsMTIgNDkuMzQ5LDEyICAiLz4KICAgPHBhdGggaWQ9InN2Z180IiBmaWxsPSIjOTVBNUE1IiBkPSJtNDguMDM3LDU2bC00MC4wNzQsMGMtMC44MDgsMCAtMS40NjMsLTAuNjU1IC0xLjQ2MywtMS40NjNsMCwtMTUuNTM3bDQzLDBsMCwxNS41MzdjMCwwLjgwOCAtMC42NTUsMS40NjMgLTEuNDYzLDEuNDYzeiIvPgogICA8cGF0aCBpZD0ic3ZnXzkiIGZpbGw9IiNDOEJEQjgiIGQ9Im0xOC41LDEzbC02LDBjLTAuNTUzLDAgLTEsLTAuNDQ4IC0xLC0xczAuNDQ3LC0xIDEsLTFsNiwwYzAuNTUzLDAgMSwwLjQ0OCAxLDFzLTAuNDQ3LDEgLTEsMXoiLz4KICAgPHBhdGggaWQ9InN2Z18xMCIgZmlsbD0iI0M4QkRCOCIgZD0ibTIxLjUsMThsLTksMGMtMC41NTMsMCAtMSwtMC40NDggLTEsLTFzMC40NDcsLTEgMSwtMWw5LDBjMC41NTMsMCAxLDAuNDQ4IDEsMXMtMC40NDcsMSAtMSwxeiIvPgogICA8cGF0aCBpZD0ic3ZnXzExIiBmaWxsPSIjQzhCREI4IiBkPSJtMjUuNSwxOGMtMC4yNiwwIC0wLjUyMSwtMC4xMSAtMC43MSwtMC4yOWMtMC4xODEsLTAuMTkgLTAuMjksLTAuNDQgLTAuMjksLTAuNzFzMC4xMDksLTAuNTIgMC4zLC0wLjcxYzAuMzYsLTAuMzcgMS4wNCwtMC4zNyAxLjQxLDBjMC4xOCwwLjE5IDAuMjksMC40NSAwLjI5LDAuNzFjMCwwLjI2IC0wLjExLDAuNTIgLTAuMjksMC43MWMtMC4xOSwwLjE4IC0wLjQ1LDAuMjkgLTAuNzEsMC4yOXoiLz4KICAgPHBhdGggaWQ9InN2Z18xMiIgZmlsbD0iI0M4QkRCOCIgZD0ibTM3LjUsMThsLTgsMGMtMC41NTMsMCAtMSwtMC40NDggLTEsLTFzMC40NDcsLTEgMSwtMWw4LDBjMC41NTMsMCAxLDAuNDQ4IDEsMXMtMC40NDcsMSAtMSwxeiIvPgogICA8cGF0aCBpZD0ic3ZnXzEzIiBmaWxsPSIjQzhCREI4IiBkPSJtMTIuNSwzM2MtMC4yNiwwIC0wLjUyMSwtMC4xMSAtMC43MSwtMC4yOWMtMC4xODEsLTAuMTkgLTAuMjksLTAuNDUgLTAuMjksLTAuNzFjMCwtMC4yNiAwLjEwOSwtMC41MiAwLjI5LC0wLjcxYzAuMzcsLTAuMzcgMS4wNSwtMC4zNyAxLjQyLDAuMDFjMC4xOCwwLjE4IDAuMjksMC40NCAwLjI5LDAuN2MwLDAuMjYgLTAuMTEsMC41MiAtMC4yOSwwLjcxYy0wLjE5LDAuMTggLTAuNDUsMC4yOSAtMC43MSwwLjI5eiIvPgogICA8cGF0aCBpZD0ic3ZnXzE0IiBmaWxsPSIjQzhCREI4IiBkPSJtMjQuNSwzM2wtOCwwYy0wLjU1MywwIC0xLC0wLjQ0OCAtMSwtMXMwLjQ0NywtMSAxLC0xbDgsMGMwLjU1MywwIDEsMC40NDggMSwxcy0wLjQ0NywxIC0xLDF6Ii8+CiAgIDxwYXRoIGlkPSJzdmdfMTUiIGZpbGw9IiNDOEJEQjgiIGQ9Im00My41LDE4bC0yLDBjLTAuNTUzLDAgLTEsLTAuNDQ4IC0xLC0xczAuNDQ3LC0xIDEsLTFsMiwwYzAuNTUzLDAgMSwwLjQ0OCAxLDFzLTAuNDQ3LDEgLTEsMXoiLz4KICAgPHBhdGggaWQ9InN2Z18xNiIgZmlsbD0iI0M4QkRCOCIgZD0ibTM0LjUsMjNsLTIyLDBjLTAuNTUzLDAgLTEsLTAuNDQ4IC0xLC0xczAuNDQ3LC0xIDEsLTFsMjIsMGMwLjU1MywwIDEsMC40NDggMSwxcy0wLjQ0NywxIC0xLDF6Ii8+CiAgIDxwYXRoIGlkPSJzdmdfMTciIGZpbGw9IiNDOEJEQjgiIGQ9Im00My41LDIzbC02LDBjLTAuNTUzLDAgLTEsLTAuNDQ4IC0xLC0xczAuNDQ3LC0xIDEsLTFsNiwwYzAuNTUzLDAgMSwwLjQ0OCAxLDFzLTAuNDQ3LDEgLTEsMXoiLz4KICAgPHBhdGggaWQ9InN2Z18xOCIgZmlsbD0iI0M4QkRCOCIgZD0ibTE2LjUsMjhsLTQsMGMtMC41NTMsMCAtMSwtMC40NDggLTEsLTFzMC40NDcsLTEgMSwtMWw0LDBjMC41NTMsMCAxLDAuNDQ4IDEsMXMtMC40NDcsMSAtMSwxeiIvPgogICA8cGF0aCBpZD0ic3ZnXzE5IiBmaWxsPSIjQzhCREI4IiBkPSJtMzAuNSwyOGwtMTAsMGMtMC41NTMsMCAtMSwtMC40NDggLTEsLTFzMC40NDcsLTEgMSwtMWwxMCwwYzAuNTUzLDAgMSwwLjQ0OCAxLDFzLTAuNDQ3LDEgLTEsMXoiLz4KICAgPHBhdGggaWQ9InN2Z18yMCIgZmlsbD0iI0M4QkRCOCIgZD0ibTQzLjUsMjhsLTksMGMtMC41NTMsMCAtMSwtMC40NDggLTEsLTFzMC40NDcsLTEgMSwtMWw5LDBjMC41NTMsMCAxLDAuNDQ4IDEsMXMtMC40NDcsMSAtMSwxeiIvPgogIDwvZz4KICA8ZyBpZD0ic3ZnXzIxIi8+CiAgPGcgaWQ9InN2Z18yMiIvPgogIDxnIGlkPSJzdmdfMjMiLz4KICA8ZyBpZD0ic3ZnXzI0Ii8+CiAgPGcgaWQ9InN2Z18yNSIvPgogIDxnIGlkPSJzdmdfMjYiLz4KICA8ZyBpZD0ic3ZnXzI3Ii8+CiAgPGcgaWQ9InN2Z18yOCIvPgogIDxnIGlkPSJzdmdfMjkiLz4KICA8ZyBpZD0ic3ZnXzMwIi8+CiAgPGcgaWQ9InN2Z18zMSIvPgogIDxnIGlkPSJzdmdfMzIiLz4KICA8ZyBpZD0ic3ZnXzMzIi8+CiAgPGcgaWQ9InN2Z18zNCIvPgogIDxnIGlkPSJzdmdfMzUiLz4KPC9zdmc+"},4840:function(e,f,t){var n=t("825a"),r=t("1c0b"),o=t("b622"),i=o("species");e.exports=function(e,f){var t,o=n(e).constructor;return void 0===o||void 0==(t=n(o)[i])?f:r(t)}},4930:function(e,f,t){var n=t("d039");e.exports=!!Object.getOwnPropertySymbols&&!n((function(){return!String(Symbol())}))},"499e":function(e,f,t){"use strict";function n(e,f){for(var t=[],n={},r=0;r<f.length;r++){var o=f[r],i=o[0],a=o[1],s=o[2],c=o[3],d={id:e+":"+r,css:a,media:s,sourceMap:c};n[i]?n[i].parts.push(d):t.push(n[i]={id:i,parts:[d]})}return t}t.r(f),t.d(f,"default",(function(){return h}));var r="undefined"!==typeof document;if("undefined"!==typeof DEBUG&&DEBUG&&!r)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 o={},i=r&&(document.head||document.getElementsByTagName("head")[0]),a=null,s=0,c=!1,d=function(){},l=null,u="data-vue-ssr-id",p="undefined"!==typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function h(e,f,t,r){c=t,l=r||{};var i=n(e,f);return g(i),function(f){for(var t=[],r=0;r<i.length;r++){var a=i[r],s=o[a.id];s.refs--,t.push(s)}f?(i=n(e,f),g(i)):i=[];for(r=0;r<t.length;r++){s=t[r];if(0===s.refs){for(var c=0;c<s.parts.length;c++)s.parts[c]();delete o[s.id]}}}}function g(e){for(var f=0;f<e.length;f++){var t=e[f],n=o[t.id];if(n){n.refs++;for(var r=0;r<n.parts.length;r++)n.parts[r](t.parts[r]);for(;r<t.parts.length;r++)n.parts.push(b(t.parts[r]));n.parts.length>t.parts.length&&(n.parts.length=t.parts.length)}else{var i=[];for(r=0;r<t.parts.length;r++)i.push(b(t.parts[r]));o[t.id]={id:t.id,refs:1,parts:i}}}}function m(){var e=document.createElement("style");return e.type="text/css",i.appendChild(e),e}function b(e){var f,t,n=document.querySelector("style["+u+'~="'+e.id+'"]');if(n){if(c)return d;n.parentNode.removeChild(n)}if(p){var r=s++;n=a||(a=m()),f=_.bind(null,n,r,!1),t=_.bind(null,n,r,!0)}else n=m(),f=w.bind(null,n),t=function(){n.parentNode.removeChild(n)};return f(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap)return;f(e=n)}else t()}}var v=function(){var e=[];return function(f,t){return e[f]=t,e.filter(Boolean).join("\n")}}();function _(e,f,t,n){var r=t?"":n.css;if(e.styleSheet)e.styleSheet.cssText=v(f,r);else{var o=document.createTextNode(r),i=e.childNodes;i[f]&&e.removeChild(i[f]),i.length?e.insertBefore(o,i[f]):e.appendChild(o)}}function w(e,f){var t=f.css,n=f.media,r=f.sourceMap;if(n&&e.setAttribute("media",n),l.ssrId&&e.setAttribute(u,f.id),r&&(t+="\n/*# sourceURL="+r.sources[0]+" */",t+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */"),e.styleSheet)e.styleSheet.cssText=t;else{while(e.firstChild)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}},"4b27":function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,".user-list[data-v-30547438]{height:100%;overflow:auto;padding-left:5px;padding-top:8px}.img-msg[data-v-30547438]{border-radius:50%;width:50px;margin-right:5px}.user-element[data-v-30547438]{font-size:20px;vertical-align:middle}",""]),e.exports=f},"4ccc":function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,".sc-header[data-v-61edfd75]{min-height:75px;border-top-left-radius:9px;border-top-right-radius:9px;padding:10px;box-shadow:0 1px 4px rgba(0,0,0,.2);position:relative;box-sizing:border-box;display:flex}.sc-header--img[data-v-61edfd75]{border-radius:50%;align-self:center;padding:10px}.sc-header--title[data-v-61edfd75]{align-self:center;padding:10px;flex:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:20px}.sc-header--title.enabled[data-v-61edfd75]{cursor:pointer;border-radius:5px}.sc-header--title.enabled[data-v-61edfd75]:hover{box-shadow:0 2px 5px rgba(.2,.2,.5,.1)}.sc-header--close-button[data-v-61edfd75]{width:40px;align-self:center;height:40px;margin-right:10px;box-sizing:border-box;cursor:pointer;border-radius:5px;margin-left:auto}.sc-header--close-button[data-v-61edfd75]:hover{box-shadow:0 2px 5px rgba(.2,.2,.5,.1)}.sc-header--close-button img[data-v-61edfd75]{width:100%;height:100%;padding:13px;box-sizing:border-box}@media (max-width:450px){.sc-header[data-v-61edfd75]{border-radius:0}}",""]),e.exports=f},"4d64":function(e,f,t){var n=t("fc6a"),r=t("50c4"),o=t("23cb"),i=function(e){return function(f,t,i){var a,s=n(f),c=r(s.length),d=o(i,c);if(e&&t!=t){while(c>d)if(a=s[d++],a!=a)return!0}else for(;c>d;d++)if((e||d in s)&&s[d]===t)return e||d||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},"50c4":function(e,f,t){var n=t("a691"),r=Math.min;e.exports=function(e){return e>0?r(n(e),9007199254740991):0}},5135:function(e,f){var t={}.hasOwnProperty;e.exports=function(e,f){return t.call(e,f)}},"54a3":function(e,f,t){"use strict";var n=t("9e21"),r=t.n(n);r.a},5692:function(e,f,t){var n=t("c430"),r=t("c6cd");(e.exports=function(e,f){return r[e]||(r[e]=void 0!==f?f:{})})("versions",[]).push({version:"3.6.5",mode:n?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(e,f,t){var n=t("d066"),r=t("241c"),o=t("7418"),i=t("825a");e.exports=n("Reflect","ownKeys")||function(e){var f=r.f(i(e)),t=o.f;return t?f.concat(t(e)):f}},5899:function(e,f){e.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},"58a8":function(e,f,t){var n=t("1d80"),r=t("5899"),o="["+r+"]",i=RegExp("^"+o+o+"*"),a=RegExp(o+o+"*$"),s=function(e){return function(f){var t=String(n(f));return 1&e&&(t=t.replace(i,"")),2&e&&(t=t.replace(a,"")),t}};e.exports={start:s(1),end:s(2),trim:s(3)}},"5c6c":function(e,f){e.exports=function(e,f){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:f}}},"60da":function(e,f,t){"use strict";var n=t("83ab"),r=t("d039"),o=t("df75"),i=t("7418"),a=t("d1e7"),s=t("7b0b"),c=t("44ad"),d=Object.assign,l=Object.defineProperty;e.exports=!d||r((function(){if(n&&1!==d({b:1},d(l({},"a",{enumerable:!0,get:function(){l(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},f={},t=Symbol(),r="abcdefghijklmnopqrst";return e[t]=7,r.split("").forEach((function(e){f[e]=e})),7!=d({},e)[t]||o(d({},f)).join("")!=r}))?function(e,f){var t=s(e),r=arguments.length,d=1,l=i.f,u=a.f;while(r>d){var p,h=c(arguments[d++]),g=l?o(h).concat(l(h)):o(h),m=g.length,b=0;while(m>b)p=g[b++],n&&!u.call(h,p)||(t[p]=h[p])}return t}:d},6408:function(e,f,t){var n=t("4b27");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("bc63b5e0",n,!0,{sourceMap:!1,shadowMode:!1})},"65f0":function(e,f,t){var n=t("861d"),r=t("e8b5"),o=t("b622"),i=o("species");e.exports=function(e,f){var t;return r(e)&&(t=e.constructor,"function"!=typeof t||t!==Array&&!r(t.prototype)?n(t)&&(t=t[i],null===t&&(t=void 0)):t=void 0),new(void 0===t?Array:t)(0===f?0:f)}},"69f3":function(e,f,t){var n,r,o,i=t("7f9a"),a=t("da84"),s=t("861d"),c=t("9112"),d=t("5135"),l=t("f772"),u=t("d012"),p=a.WeakMap,h=function(e){return o(e)?r(e):n(e,{})},g=function(e){return function(f){var t;if(!s(f)||(t=r(f)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return t}};if(i){var m=new p,b=m.get,v=m.has,_=m.set;n=function(e,f){return _.call(m,e,f),f},r=function(e){return b.call(m,e)||{}},o=function(e){return v.call(m,e)}}else{var w=l("state");u[w]=!0,n=function(e,f){return c(e,w,f),f},r=function(e){return d(e,w)?e[w]:{}},o=function(e){return d(e,w)}}e.exports={set:n,get:r,has:o,enforce:h,getterFor:g}},"6eeb":function(e,f,t){var n=t("da84"),r=t("9112"),o=t("5135"),i=t("ce4e"),a=t("8925"),s=t("69f3"),c=s.get,d=s.enforce,l=String(String).split("String");(e.exports=function(e,f,t,a){var s=!!a&&!!a.unsafe,c=!!a&&!!a.enumerable,u=!!a&&!!a.noTargetGet;"function"==typeof t&&("string"!=typeof f||o(t,"name")||r(t,"name",f),d(t).source=l.join("string"==typeof f?f:"")),e!==n?(s?!u&&e[f]&&(c=!0):delete e[f],c?e[f]=t:r(e,f,t)):c?e[f]=t:i(f,t)})(Function.prototype,"toString",(function(){return"function"==typeof this&&c(this).source||a(this)}))},7156:function(e,f,t){var n=t("861d"),r=t("d2bb");e.exports=function(e,f,t){var o,i;return r&&"function"==typeof(o=f.constructor)&&o!==t&&n(i=o.prototype)&&i!==t.prototype&&r(e,i),e}},"71cc":function(e,f,t){var n,r,o;
/*!
 * Autolinker.js
 * 1.8.3
 *
 * Copyright(c) 2018 Gregory Jacobs <greg@greg-jacobs.com>
 * MIT License
 *
 * https://github.com/gregjacobs/Autolinker.js
 */(function(t,i){r=[],n=i,o="function"===typeof n?n.apply(f,r):n,void 0===o||(e.exports=o)})(0,(function(){var e=function(f){f=f||{},this.version=e.version,this.urls=this.normalizeUrlsCfg(f.urls),this.email="boolean"!==typeof f.email||f.email,this.phone="boolean"!==typeof f.phone||f.phone,this.hashtag=f.hashtag||!1,this.mention=f.mention||!1,this.newWindow="boolean"!==typeof f.newWindow||f.newWindow,this.stripPrefix=this.normalizeStripPrefixCfg(f.stripPrefix),this.stripTrailingSlash="boolean"!==typeof f.stripTrailingSlash||f.stripTrailingSlash,this.decodePercentEncoding="boolean"!==typeof f.decodePercentEncoding||f.decodePercentEncoding;var t=this.mention;if(!1!==t&&"twitter"!==t&&"instagram"!==t&&"soundcloud"!==t)throw new Error("invalid `mention` cfg - see docs");var n=this.hashtag;if(!1!==n&&"twitter"!==n&&"facebook"!==n&&"instagram"!==n)throw new Error("invalid `hashtag` cfg - see docs");this.truncate=this.normalizeTruncateCfg(f.truncate),this.className=f.className||"",this.replaceFn=f.replaceFn||null,this.context=f.context||this,this.htmlParser=null,this.matchers=null,this.tagBuilder=null};return e.link=function(f,t){var n=new e(t);return n.link(f)},e.parse=function(f,t){var n=new e(t);return n.parse(f)},e.version="1.8.3",e.prototype={constructor:e,normalizeUrlsCfg:function(e){return null==e&&(e=!0),"boolean"===typeof e?{schemeMatches:e,wwwMatches:e,tldMatches:e}:{schemeMatches:"boolean"!==typeof e.schemeMatches||e.schemeMatches,wwwMatches:"boolean"!==typeof e.wwwMatches||e.wwwMatches,tldMatches:"boolean"!==typeof e.tldMatches||e.tldMatches}},normalizeStripPrefixCfg:function(e){return null==e&&(e=!0),"boolean"===typeof e?{scheme:e,www:e}:{scheme:"boolean"!==typeof e.scheme||e.scheme,www:"boolean"!==typeof e.www||e.www}},normalizeTruncateCfg:function(f){return"number"===typeof f?{length:f,location:"end"}:e.Util.defaults(f||{},{length:Number.POSITIVE_INFINITY,location:"end"})},parse:function(e){for(var f=this.getHtmlParser(),t=f.parse(e),n=0,r=[],o=0,i=t.length;o<i;o++){var a=t[o],s=a.getType();if("element"===s&&-1!==["a","style","script"].indexOf(a.getTagName()))a.isClosing()?n=Math.max(n-1,0):n++;else if("text"===s&&0===n){var c=this.parseText(a.getText(),a.getOffset());r.push.apply(r,c)}}return r=this.compactMatches(r),r=this.removeUnwantedMatches(r),r},compactMatches:function(e){e.sort((function(e,f){return e.getOffset()-f.getOffset()}));for(var f=0;f<e.length-1;f++){var t=e[f],n=t.getOffset(),r=t.getMatchedText().length,o=n+r;if(f+1<e.length){if(e[f+1].getOffset()===n){var i=e[f+1].getMatchedText().length>r?f:f+1;e.splice(i,1);continue}e[f+1].getOffset()<o&&e.splice(f+1,1)}}return e},removeUnwantedMatches:function(f){var t=e.Util.remove;return this.hashtag||t(f,(function(e){return"hashtag"===e.getType()})),this.email||t(f,(function(e){return"email"===e.getType()})),this.phone||t(f,(function(e){return"phone"===e.getType()})),this.mention||t(f,(function(e){return"mention"===e.getType()})),this.urls.schemeMatches||t(f,(function(e){return"url"===e.getType()&&"scheme"===e.getUrlMatchType()})),this.urls.wwwMatches||t(f,(function(e){return"url"===e.getType()&&"www"===e.getUrlMatchType()})),this.urls.tldMatches||t(f,(function(e){return"url"===e.getType()&&"tld"===e.getUrlMatchType()})),f},parseText:function(e,f){f=f||0;for(var t=this.getMatchers(),n=[],r=0,o=t.length;r<o;r++){for(var i=t[r].parseMatches(e),a=0,s=i.length;a<s;a++)i[a].setOffset(f+i[a].getOffset());n.push.apply(n,i)}return n},link:function(e){if(!e)return"";for(var f=this.parse(e),t=[],n=0,r=0,o=f.length;r<o;r++){var i=f[r];t.push(e.substring(n,i.getOffset())),t.push(this.createMatchReturnVal(i)),n=i.getOffset()+i.getMatchedText().length}return t.push(e.substring(n)),t.join("")},createMatchReturnVal:function(f){var t;if(this.replaceFn&&(t=this.replaceFn.call(this.context,f)),"string"===typeof t)return t;if(!1===t)return f.getMatchedText();if(t instanceof e.HtmlTag)return t.toAnchorString();var n=f.buildTag();return n.toAnchorString()},getHtmlParser:function(){var f=this.htmlParser;return f||(f=this.htmlParser=new e.htmlParser.HtmlParser),f},getMatchers:function(){if(this.matchers)return this.matchers;var f=e.matcher,t=this.getTagBuilder(),n=[new f.Hashtag({tagBuilder:t,serviceName:this.hashtag}),new f.Email({tagBuilder:t}),new f.Phone({tagBuilder:t}),new f.Mention({tagBuilder:t,serviceName:this.mention}),new f.Url({tagBuilder:t,stripPrefix:this.stripPrefix,stripTrailingSlash:this.stripTrailingSlash,decodePercentEncoding:this.decodePercentEncoding})];return this.matchers=n},getTagBuilder:function(){var f=this.tagBuilder;return f||(f=this.tagBuilder=new e.AnchorTagBuilder({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),f}},e.match={},e.matcher={},e.htmlParser={},e.truncate={},e.Util={abstractMethod:function(){throw"abstract"},trimRegex:/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,assign:function(e,f){for(var t in f)f.hasOwnProperty(t)&&(e[t]=f[t]);return e},defaults:function(e,f){for(var t in f)f.hasOwnProperty(t)&&void 0===e[t]&&(e[t]=f[t]);return e},extend:function(f,t){var n,r=f.prototype,o=function(){};o.prototype=r,n=t.hasOwnProperty("constructor")?t.constructor:function(){r.constructor.apply(this,arguments)};var i=n.prototype=new o;return i.constructor=n,i.superclass=r,delete t.constructor,e.Util.assign(i,t),n},ellipsis:function(e,f,t){var n;return e.length>f&&(null==t?(t="&hellip;",n=3):n=t.length,e=e.substring(0,f-n)+t),e},indexOf:function(e,f){if(Array.prototype.indexOf)return e.indexOf(f);for(var t=0,n=e.length;t<n;t++)if(e[t]===f)return t;return-1},remove:function(e,f){for(var t=e.length-1;t>=0;t--)!0===f(e[t])&&e.splice(t,1)},splitAndCapture:function(e,f){if(!f.global)throw new Error("`splitRegex` must have the 'g' flag set");var t,n=[],r=0;while(t=f.exec(e))n.push(e.substring(r,t.index)),n.push(t[0]),r=t.index+t[0].length;return n.push(e.substring(r)),n},trim:function(e){return e.replace(this.trimRegex,"")}},e.HtmlTag=e.Util.extend(Object,{whitespaceRegex:/\s+/,constructor:function(f){e.Util.assign(this,f),this.innerHtml=this.innerHtml||this.innerHTML},setTagName:function(e){return this.tagName=e,this},getTagName:function(){return this.tagName||""},setAttr:function(e,f){var t=this.getAttrs();return t[e]=f,this},getAttr:function(e){return this.getAttrs()[e]},setAttrs:function(f){var t=this.getAttrs();return e.Util.assign(t,f),this},getAttrs:function(){return this.attrs||(this.attrs={})},setClass:function(e){return this.setAttr("class",e)},addClass:function(f){var t,n=this.getClass(),r=this.whitespaceRegex,o=e.Util.indexOf,i=n?n.split(r):[],a=f.split(r);while(t=a.shift())-1===o(i,t)&&i.push(t);return this.getAttrs()["class"]=i.join(" "),this},removeClass:function(f){var t,n=this.getClass(),r=this.whitespaceRegex,o=e.Util.indexOf,i=n?n.split(r):[],a=f.split(r);while(i.length&&(t=a.shift())){var s=o(i,t);-1!==s&&i.splice(s,1)}return this.getAttrs()["class"]=i.join(" "),this},getClass:function(){return this.getAttrs()["class"]||""},hasClass:function(e){return-1!==(" "+this.getClass()+" ").indexOf(" "+e+" ")},setInnerHtml:function(e){return this.innerHtml=e,this},getInnerHtml:function(){return this.innerHtml||""},toAnchorString:function(){var e=this.getTagName(),f=this.buildAttrsStr();return f=f?" "+f:"",["<",e,f,">",this.getInnerHtml(),"</",e,">"].join("")},buildAttrsStr:function(){if(!this.attrs)return"";var e=this.getAttrs(),f=[];for(var t in e)e.hasOwnProperty(t)&&f.push(t+'="'+e[t]+'"');return f.join(" ")}}),e.RegexLib=function(){var e="A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々〆〱-〵〻〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛥꜗ-ꜟꜢ-ꞈꞋ-ꞭꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",f="0-9٠-٩۰-۹߀-߉०-९০-৯੦-੯૦-૯୦-୯௦-௯౦-౯೦-೯൦-൯෦-෯๐-๙໐-໙༠-༩၀-၉႐-႙០-៩᠐-᠙᥆-᥏᧐-᧙᪀-᪉᪐-᪙᭐-᭙᮰-᮹᱀-᱉᱐-᱙꘠-꘩꣐-꣙꤀-꤉꧐-꧙꧰-꧹꩐-꩙꯰-꯹0-9",t=e+f,n="(?:["+f+"]{1,3}\\.){3}["+f+"]{1,3}",r="["+t+"](?:["+t+"\\-]{0,61}["+t+"])?",o=function(e){return"(?=("+r+"))\\"+e},i=function(e){return"(?:"+o(e)+"(?:\\."+o(e+1)+"){0,126}|"+n+")"};return{alphaNumericCharsStr:t,alphaCharsStr:e,getDomainNameStr:i}}(),e.AnchorTagBuilder=e.Util.extend(Object,{constructor:function(e){e=e||{},this.newWindow=e.newWindow,this.truncate=e.truncate,this.className=e.className},build:function(f){return new e.HtmlTag({tagName:"a",attrs:this.createAttrs(f),innerHtml:this.processAnchorText(f.getAnchorText())})},createAttrs:function(e){var f={href:e.getAnchorHref()},t=this.createCssClass(e);return t&&(f["class"]=t),this.newWindow&&(f["target"]="_blank",f["rel"]="noopener noreferrer"),this.truncate&&this.truncate.length&&this.truncate.length<e.getAnchorText().length&&(f["title"]=e.getAnchorHref()),f},createCssClass:function(e){var f=this.className;if(f){for(var t=[f],n=e.getCssClassSuffixes(),r=0,o=n.length;r<o;r++)t.push(f+"-"+n[r]);return t.join(" ")}return""},processAnchorText:function(e){return e=this.doTruncate(e),e},doTruncate:function(f){var t=this.truncate;if(!t||!t.length)return f;var n=t.length,r=t.location;return"smart"===r?e.truncate.TruncateSmart(f,n):"middle"===r?e.truncate.TruncateMiddle(f,n):e.truncate.TruncateEnd(f,n)}}),e.htmlParser.HtmlParser=e.Util.extend(Object,{htmlRegex:function(){var e=/!--([\s\S]+?)--/,f=/[0-9a-zA-Z][0-9a-zA-Z:]*/,t=/[^\s"'>\/=\x00-\x1F\x7F]+/,n=/(?:"[^"]*?"|'[^']*?'|[^'"=<>`\s]+)/,r="(?:\\s*?=\\s*?"+n.source+")?",o=function(e){return"(?=("+t.source+"))\\"+e+r};return new RegExp(["(?:","<(!DOCTYPE)","(?:","\\s+","(?:",o(2),"|",n.source+")",")*",">",")","|","(?:","<(/)?","(?:",e.source,"|","(?:","("+f.source+")","\\s*/?",")","|","(?:","("+f.source+")","\\s+","(?:","(?:\\s+|\\b)",o(7),")*","\\s*/?",")",")",">",")"].join(""),"gi")}(),htmlCharacterEntitiesRegex:/(&nbsp;|&#160;|&lt;|&#60;|&gt;|&#62;|&quot;|&#34;|&#39;)/gi,parse:function(e){var f,t,n=this.htmlRegex,r=0,o=[];while(null!==(f=n.exec(e))){var i=f[0],a=f[4],s=f[1]||f[5]||f[6],c=!!f[3],d=f.index,l=e.substring(r,d);l&&(t=this.parseTextAndEntityNodes(r,l),o.push.apply(o,t)),a?o.push(this.createCommentNode(d,i,a)):o.push(this.createElementNode(d,i,s,c)),r=d+i.length}if(r<e.length){var u=e.substring(r);u&&(t=this.parseTextAndEntityNodes(r,u),t.forEach((function(e){o.push(e)})))}return o},parseTextAndEntityNodes:function(f,t){for(var n=[],r=e.Util.splitAndCapture(t,this.htmlCharacterEntitiesRegex),o=0,i=r.length;o<i;o+=2){var a=r[o],s=r[o+1];a&&(n.push(this.createTextNode(f,a)),f+=a.length),s&&(n.push(this.createEntityNode(f,s)),f+=s.length)}return n},createCommentNode:function(f,t,n){return new e.htmlParser.CommentNode({offset:f,text:t,comment:e.Util.trim(n)})},createElementNode:function(f,t,n,r){return new e.htmlParser.ElementNode({offset:f,text:t,tagName:n.toLowerCase(),closing:r})},createEntityNode:function(f,t){return new e.htmlParser.EntityNode({offset:f,text:t})},createTextNode:function(f,t){return new e.htmlParser.TextNode({offset:f,text:t})}}),e.htmlParser.HtmlNode=e.Util.extend(Object,{offset:void 0,text:void 0,constructor:function(f){if(e.Util.assign(this,f),null==this.offset)throw new Error("`offset` cfg required");if(null==this.text)throw new Error("`text` cfg required")},getType:e.Util.abstractMethod,getOffset:function(){return this.offset},getText:function(){return this.text}}),e.htmlParser.CommentNode=e.Util.extend(e.htmlParser.HtmlNode,{comment:"",getType:function(){return"comment"},getComment:function(){return this.comment}}),e.htmlParser.ElementNode=e.Util.extend(e.htmlParser.HtmlNode,{tagName:"",closing:!1,getType:function(){return"element"},getTagName:function(){return this.tagName},isClosing:function(){return this.closing}}),e.htmlParser.EntityNode=e.Util.extend(e.htmlParser.HtmlNode,{getType:function(){return"entity"}}),e.htmlParser.TextNode=e.Util.extend(e.htmlParser.HtmlNode,{getType:function(){return"text"}}),e.match.Match=e.Util.extend(Object,{constructor:function(e){if(null==e.tagBuilder)throw new Error("`tagBuilder` cfg required");if(null==e.matchedText)throw new Error("`matchedText` cfg required");if(null==e.offset)throw new Error("`offset` cfg required");this.tagBuilder=e.tagBuilder,this.matchedText=e.matchedText,this.offset=e.offset},getType:e.Util.abstractMethod,getMatchedText:function(){return this.matchedText},setOffset:function(e){this.offset=e},getOffset:function(){return this.offset},getAnchorHref:e.Util.abstractMethod,getAnchorText:e.Util.abstractMethod,getCssClassSuffixes:function(){return[this.getType()]},buildTag:function(){return this.tagBuilder.build(this)}}),e.match.Email=e.Util.extend(e.match.Match,{constructor:function(f){if(e.match.Match.prototype.constructor.call(this,f),!f.email)throw new Error("`email` cfg required");this.email=f.email},getType:function(){return"email"},getEmail:function(){return this.email},getAnchorHref:function(){return"mailto:"+this.email},getAnchorText:function(){return this.email}}),e.match.Hashtag=e.Util.extend(e.match.Match,{constructor:function(f){if(e.match.Match.prototype.constructor.call(this,f),!f.hashtag)throw new Error("`hashtag` cfg required");this.serviceName=f.serviceName,this.hashtag=f.hashtag},getType:function(){return"hashtag"},getServiceName:function(){return this.serviceName},getHashtag:function(){return this.hashtag},getAnchorHref:function(){var e=this.serviceName,f=this.hashtag;switch(e){case"twitter":return"https://twitter.com/hashtag/"+f;case"facebook":return"https://www.facebook.com/hashtag/"+f;case"instagram":return"https://instagram.com/explore/tags/"+f;default:throw new Error("Unknown service name to point hashtag to: ",e)}},getAnchorText:function(){return"#"+this.hashtag}}),e.match.Phone=e.Util.extend(e.match.Match,{constructor:function(f){if(e.match.Match.prototype.constructor.call(this,f),!f.number)throw new Error("`number` cfg required");if(null==f.plusSign)throw new Error("`plusSign` cfg required");this.number=f.number,this.plusSign=f.plusSign},getType:function(){return"phone"},getNumber:function(){return this.number},getAnchorHref:function(){return"tel:"+(this.plusSign?"+":"")+this.number},getAnchorText:function(){return this.matchedText}}),e.match.Mention=e.Util.extend(e.match.Match,{constructor:function(f){if(e.match.Match.prototype.constructor.call(this,f),!f.serviceName)throw new Error("`serviceName` cfg required");if(!f.mention)throw new Error("`mention` cfg required");this.mention=f.mention,this.serviceName=f.serviceName},getType:function(){return"mention"},getMention:function(){return this.mention},getServiceName:function(){return this.serviceName},getAnchorHref:function(){switch(this.serviceName){case"twitter":return"https://twitter.com/"+this.mention;case"instagram":return"https://instagram.com/"+this.mention;case"soundcloud":return"https://soundcloud.com/"+this.mention;default:throw new Error("Unknown service name to point mention to: ",this.serviceName)}},getAnchorText:function(){return"@"+this.mention},getCssClassSuffixes:function(){var f=e.match.Match.prototype.getCssClassSuffixes.call(this),t=this.getServiceName();return t&&f.push(t),f}}),e.match.Url=e.Util.extend(e.match.Match,{constructor:function(f){if(e.match.Match.prototype.constructor.call(this,f),"scheme"!==f.urlMatchType&&"www"!==f.urlMatchType&&"tld"!==f.urlMatchType)throw new Error('`urlMatchType` cfg must be one of: "scheme", "www", or "tld"');if(!f.url)throw new Error("`url` cfg required");if(null==f.protocolUrlMatch)throw new Error("`protocolUrlMatch` cfg required");if(null==f.protocolRelativeMatch)throw new Error("`protocolRelativeMatch` cfg required");if(null==f.stripPrefix)throw new Error("`stripPrefix` cfg required");if(null==f.stripTrailingSlash)throw new Error("`stripTrailingSlash` cfg required");if(null==f.decodePercentEncoding)throw new Error("`decodePercentEncoding` cfg required");this.urlMatchType=f.urlMatchType,this.url=f.url,this.protocolUrlMatch=f.protocolUrlMatch,this.protocolRelativeMatch=f.protocolRelativeMatch,this.stripPrefix=f.stripPrefix,this.stripTrailingSlash=f.stripTrailingSlash,this.decodePercentEncoding=f.decodePercentEncoding},schemePrefixRegex:/^(https?:\/\/)?/i,wwwPrefixRegex:/^(https?:\/\/)?(www\.)?/i,protocolRelativeRegex:/^\/\//,protocolPrepended:!1,getType:function(){return"url"},getUrlMatchType:function(){return this.urlMatchType},getUrl:function(){var e=this.url;return this.protocolRelativeMatch||this.protocolUrlMatch||this.protocolPrepended||(e=this.url="http://"+e,this.protocolPrepended=!0),e},getAnchorHref:function(){var e=this.getUrl();return e.replace(/&amp;/g,"&")},getAnchorText:function(){var e=this.getMatchedText();return this.protocolRelativeMatch&&(e=this.stripProtocolRelativePrefix(e)),this.stripPrefix.scheme&&(e=this.stripSchemePrefix(e)),this.stripPrefix.www&&(e=this.stripWwwPrefix(e)),this.stripTrailingSlash&&(e=this.removeTrailingSlash(e)),this.decodePercentEncoding&&(e=this.removePercentEncoding(e)),e},stripSchemePrefix:function(e){return e.replace(this.schemePrefixRegex,"")},stripWwwPrefix:function(e){return e.replace(this.wwwPrefixRegex,"$1")},stripProtocolRelativePrefix:function(e){return e.replace(this.protocolRelativeRegex,"")},removeTrailingSlash:function(e){return"/"===e.charAt(e.length-1)&&(e=e.slice(0,-1)),e},removePercentEncoding:function(e){try{return decodeURIComponent(e.replace(/%22/gi,"&quot;").replace(/%26/gi,"&amp;").replace(/%27/gi,"&#39;").replace(/%3C/gi,"&lt;").replace(/%3E/gi,"&gt;"))}catch(f){return e}}}),e.tldRegex=/(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|vermögensberatung|xn--3oq18vl8pn36a|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|vermögensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbc0a9azcg|xn--nqv7fs00ema|afamilycompany|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|international|lifeinsurance|orientexpress|spreadbetting|travelchannel|wolterskluwer|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|pamperedchef|scholarships|versicherung|xn--3e0b707e|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|rightathome|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--3bst00m|xn--3ds443g|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--pbt977c|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|சிங்கப்பூர்|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nationwide|newholland|nextdirect|onyourside|properties|protection|prudential|realestate|republican|restaurant|schaeffler|swiftcover|tatamotors|technology|telefonica|university|vistaprint|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|fujixerox|furniture|goldpoint|goodhands|hisamitsu|homedepot|homegoods|homesense|honeywell|institute|insurance|kuokgroup|ladbrokes|lancaster|landrover|lifestyle|marketing|marshalls|mcdonalds|melbourne|microsoft|montblanc|panasonic|passagens|pramerica|richardli|scjohnson|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--nqv7f|xn--p1acf|xn--tckwe|xn--vhquv|yodobashi|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|budapest|builders|business|capetown|catering|catholic|chrysler|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|esurance|everbank|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|mortgage|movistar|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|symantec|telecity|training|uconnect|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|السعودية|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|cartier|channel|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|iselect|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lancome|lanxess|lasalle|latrobe|leclerc|liaison|limited|lincoln|markets|metlife|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|panerai|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|shriram|singles|spiegel|staples|starhub|statoil|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|католик|الجزائر|العليان|پاکستان|كاثوليك|موبايلي|இந்தியா|abarth|abbott|abbvie|active|africa|agency|airbus|airtel|alipay|alsace|alstom|anquan|aramco|author|bayern|beauty|berlin|bharti|blanco|bostik|boston|broker|camera|career|caseih|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|mobily|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|piaget|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|warman|webcam|xihuan|xperia|yachts|yandex|zappos|москва|онлайн|ابوظبي|ارامكو|الاردن|المغرب|امارات|فلسطين|مليسيا|இலங்கை|ファッション|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|boots|bosch|build|canon|cards|chase|cheap|chloe|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|dodge|drive|dubai|earth|edeka|email|epost|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glade|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|intel|irish|iveco|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|lixil|loans|locus|lotte|lotto|lupin|macys|mango|media|miami|money|mopar|movie|nadex|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vista|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|zippo|ایران|بازار|بھارت|سودان|سورية|همراه|संगठन|বাংলা|భారత్|嘉里大酒店|aarp|able|adac|aero|aigo|akdn|ally|amex|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|doha|duck|duns|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|mtpc|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|raid|read|reit|rent|rest|rich|rmit|room|rsvp|ruhr|safe|sale|sapo|sarl|save|saxo|scor|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|дети|сайт|بيتك|تونس|شبكة|عراق|عمان|موقع|भारत|ভারত|ਭਾਰਤ|ભારત|ලංකා|グーグル|クラウド|ポイント|大众汽车|组织机构|電訊盈科|香格里拉|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bnl|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceb|ceo|cfa|cfd|com|crs|csc|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|htc|ibm|ice|icu|ifm|ing|ink|int|ist|itv|iwc|jcb|jcp|jio|jlc|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|lol|lpl|ltd|man|mba|mcd|med|men|meo|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|off|one|ong|onl|ooo|org|ott|ovh|pay|pet|pid|pin|pnc|pro|pru|pub|pwc|qvc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|srl|srt|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|бел|ком|қаз|мкд|мон|орг|рус|срб|укр|հայ|קום|قطر|كوم|مصر|कॉम|नेट|คอม|ไทย|ストア|セール|みんな|中文网|天主教|我爱你|新加坡|淡马锡|诺基亚|飞利浦|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|ελ|бг|ею|рф|გე|닷넷|닷컴|삼성|한국|コム|世界|中信|中国|中國|企业|佛山|信息|健康|八卦|公司|公益|台湾|台灣|商城|商店|商标|嘉里|在线|大拿|娱乐|家電|工行|广东|微博|慈善|手机|手表|政务|政府|新闻|时尚|書籍|机构|游戏|澳門|点看|珠宝|移动|网址|网店|网站|网络|联通|谷歌|购物|通販|集团|食品|餐厅|香港)/,e.matcher.Matcher=e.Util.extend(Object,{constructor:function(e){if(!e.tagBuilder)throw new Error("`tagBuilder` cfg required");this.tagBuilder=e.tagBuilder},parseMatches:e.Util.abstractMethod}),e.matcher.Email=e.Util.extend(e.matcher.Matcher,{matcherRegex:function(){var f=e.RegexLib.alphaNumericCharsStr,t="!#$%&'*+\\-\\/=?^_`{|}~",n='\\s"(),:;<>@\\[\\]',r=f+t,o=r+n,i=new RegExp("(?:["+r+"](?:["+r+']|\\.(?!\\.|@))*|\\"['+o+'.]+\\")@'),a=e.RegexLib.getDomainNameStr,s=e.tldRegex;return new RegExp([i.source,a(1),"\\.",s.source].join(""),"gi")}(),parseMatches:function(f){var t,n=this.matcherRegex,r=this.tagBuilder,o=[];while(null!==(t=n.exec(f))){var i=t[0];o.push(new e.match.Email({tagBuilder:r,matchedText:i,offset:t.index,email:i}))}return o}}),e.matcher.Hashtag=e.Util.extend(e.matcher.Matcher,{matcherRegex:new RegExp("#[_"+e.RegexLib.alphaNumericCharsStr+"]{1,139}","g"),nonWordCharRegex:new RegExp("[^"+e.RegexLib.alphaNumericCharsStr+"]"),constructor:function(f){e.matcher.Matcher.prototype.constructor.call(this,f),this.serviceName=f.serviceName},parseMatches:function(f){var t,n=this.matcherRegex,r=this.nonWordCharRegex,o=this.serviceName,i=this.tagBuilder,a=[];while(null!==(t=n.exec(f))){var s=t.index,c=f.charAt(s-1);if(0===s||r.test(c)){var d=t[0],l=t[0].slice(1);a.push(new e.match.Hashtag({tagBuilder:i,matchedText:d,offset:s,serviceName:o,hashtag:l}))}}return a}}),e.matcher.Phone=e.Util.extend(e.matcher.Matcher,{matcherRegex:/(?:(?:(?:(\+)?\d{1,3}[-\040.]?)?\(?\d{3}\)?[-\040.]?\d{3}[-\040.]?\d{4})|(?:(\+)(?:9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-\040.]?(?:\d[-\040.]?){6,12}\d+))([,;]+[0-9]+#?)*/g,parseMatches:function(f){var t,n=this.matcherRegex,r=this.tagBuilder,o=[];while(null!==(t=n.exec(f))){var i=t[0],a=i.replace(/[^0-9,;#]/g,""),s=!(!t[1]&&!t[2]),c=0==t.index?"":f.substr(t.index-1,1),d=f.substr(t.index+i.length,1),l=!c.match(/\d/)&&!d.match(/\d/);this.testMatch(t[3])&&this.testMatch(i)&&l&&o.push(new e.match.Phone({tagBuilder:r,matchedText:i,offset:t.index,number:a,plusSign:s}))}return o},testMatch:function(e){return/\D/.test(e)}}),e.matcher.Mention=e.Util.extend(e.matcher.Matcher,{matcherRegexes:{twitter:new RegExp("@[_"+e.RegexLib.alphaNumericCharsStr+"]{1,20}","g"),instagram:new RegExp("@[_."+e.RegexLib.alphaNumericCharsStr+"]{1,50}","g"),soundcloud:new RegExp("@[_."+e.RegexLib.alphaNumericCharsStr+"-]{1,50}","g")},nonWordCharRegex:new RegExp("[^"+e.RegexLib.alphaNumericCharsStr+"]"),constructor:function(f){e.matcher.Matcher.prototype.constructor.call(this,f),this.serviceName=f.serviceName},parseMatches:function(f){var t,n=this.matcherRegexes[this.serviceName],r=this.nonWordCharRegex,o=this.serviceName,i=this.tagBuilder,a=[];if(!n)return a;while(null!==(t=n.exec(f))){var s=t.index,c=f.charAt(s-1);if(0===s||r.test(c)){var d=t[0].replace(/\.+$/g,""),l=d.slice(1);a.push(new e.match.Mention({tagBuilder:i,matchedText:d,offset:s,serviceName:o,mention:l}))}}return a}}),e.matcher.Url=e.Util.extend(e.matcher.Matcher,{matcherRegex:function(){var f=/(?:[A-Za-z][-.+A-Za-z0-9]{0,63}:(?![A-Za-z][-.+A-Za-z0-9]{0,63}:\/\/)(?!\d+\/?)(?:\/\/)?)/,t=/(?:www\.)/,n=e.RegexLib.getDomainNameStr,r=e.tldRegex,o=e.RegexLib.alphaNumericCharsStr,i=new RegExp("[/?#](?:["+o+"\\-+&@#/%=~_()|'$*\\[\\]?!:,.;✓]*["+o+"\\-+&@#/%=~_()|'$*\\[\\]✓])?");return new RegExp(["(?:","(",f.source,n(2),")","|","(","(//)?",t.source,n(6),")","|","(","(//)?",n(10)+"\\.",r.source,"(?![-"+o+"])",")",")","(?::[0-9]+)?","(?:"+i.source+")?"].join(""),"gi")}(),wordCharRegExp:new RegExp("["+e.RegexLib.alphaNumericCharsStr+"]"),openParensRe:/\(/g,closeParensRe:/\)/g,constructor:function(f){if(e.matcher.Matcher.prototype.constructor.call(this,f),null==f.stripPrefix)throw new Error("`stripPrefix` cfg required");if(null==f.stripTrailingSlash)throw new Error("`stripTrailingSlash` cfg required");this.stripPrefix=f.stripPrefix,this.stripTrailingSlash=f.stripTrailingSlash,this.decodePercentEncoding=f.decodePercentEncoding},parseMatches:function(f){var t,n=this.matcherRegex,r=this.stripPrefix,o=this.stripTrailingSlash,i=this.decodePercentEncoding,a=this.tagBuilder,s=[];while(null!==(t=n.exec(f))){var c=t[0],d=t[1],l=t[4],u=t[5],p=t[9],h=t.index,g=u||p,m=f.charAt(h-1);if(e.matcher.UrlMatchValidator.isValid(c,d)&&(!(h>0&&"@"===m)&&!(h>0&&g&&this.wordCharRegExp.test(m)))){if(/\?$/.test(c)&&(c=c.substr(0,c.length-1)),this.matchHasUnbalancedClosingParen(c))c=c.substr(0,c.length-1);else{var b=this.matchHasInvalidCharAfterTld(c,d);b>-1&&(c=c.substr(0,b))}var v=d?"scheme":l?"www":"tld",_=!!d;s.push(new e.match.Url({tagBuilder:a,matchedText:c,offset:h,urlMatchType:v,url:c,protocolUrlMatch:_,protocolRelativeMatch:!!g,stripPrefix:r,stripTrailingSlash:o,decodePercentEncoding:i}))}}return s},matchHasUnbalancedClosingParen:function(e){var f=e.charAt(e.length-1);if(")"===f){var t=e.match(this.openParensRe),n=e.match(this.closeParensRe),r=t&&t.length||0,o=n&&n.length||0;if(r<o)return!0}return!1},matchHasInvalidCharAfterTld:function(f,t){if(!f)return-1;var n=0;t&&(n=f.indexOf(":"),f=f.slice(n));var r=e.RegexLib.alphaNumericCharsStr,o=new RegExp("^((.?//)?[-."+r+"]*[-"+r+"]\\.[-"+r+"]+)"),i=o.exec(f);return null===i?-1:(n+=i[1].length,f=f.slice(i[1].length),/^[^-.A-Za-z0-9:\/?#]/.test(f)?n:-1)}}),e.matcher.UrlMatchValidator={hasFullProtocolRegex:/^[A-Za-z][-.+A-Za-z0-9]*:\/\//,uriSchemeRegex:/^[A-Za-z][-.+A-Za-z0-9]*:/,hasWordCharAfterProtocolRegex:new RegExp(":[^\\s]*?["+e.RegexLib.alphaCharsStr+"]"),ipRegex:/[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?(:[0-9]*)?\/?$/,isValid:function(e,f){return!(f&&!this.isValidUriScheme(f)||this.urlMatchDoesNotHaveProtocolOrDot(e,f)||this.urlMatchDoesNotHaveAtLeastOneWordChar(e,f)&&!this.isValidIpAddress(e)||this.containsMultipleDots(e))},isValidIpAddress:function(e){var f=new RegExp(this.hasFullProtocolRegex.source+this.ipRegex.source),t=e.match(f);return null!==t},containsMultipleDots:function(e){var f=e;return this.hasFullProtocolRegex.test(e)&&(f=e.split("://")[1]),f.split("/")[0].indexOf("..")>-1},isValidUriScheme:function(e){var f=e.match(this.uriSchemeRegex)[0].toLowerCase();return"javascript:"!==f&&"vbscript:"!==f},urlMatchDoesNotHaveProtocolOrDot:function(e,f){return!!e&&(!f||!this.hasFullProtocolRegex.test(f))&&-1===e.indexOf(".")},urlMatchDoesNotHaveAtLeastOneWordChar:function(e,f){return!(!e||!f)&&!this.hasWordCharAfterProtocolRegex.test(e)}},e.truncate.TruncateEnd=function(f,t,n){return e.Util.ellipsis(f,t,n)},e.truncate.TruncateMiddle=function(e,f,t){if(e.length<=f)return e;var n,r;null==t?(t="&hellip;",n=8,r=3):(n=t.length,r=t.length);var o=f-r,i="";return o>0&&(i=e.substr(-1*Math.floor(o/2))),(e.substr(0,Math.ceil(o/2))+t+i).substr(0,o+n)},e.truncate.TruncateSmart=function(e,f,t){var n,r;null==t?(t="&hellip;",r=3,n=8):(r=t.length,n=t.length);var o=function(e){var f={},t=e,n=t.match(/^([a-z]+):\/\//i);return n&&(f.scheme=n[1],t=t.substr(n[0].length)),n=t.match(/^(.*?)(?=(\?|#|\/|$))/i),n&&(f.host=n[1],t=t.substr(n[0].length)),n=t.match(/^\/(.*?)(?=(\?|#|$))/i),n&&(f.path=n[1],t=t.substr(n[0].length)),n=t.match(/^\?(.*?)(?=(#|$))/i),n&&(f.query=n[1],t=t.substr(n[0].length)),n=t.match(/^#(.*?)$/i),n&&(f.fragment=n[1]),f},i=function(e){var f="";return e.scheme&&e.host&&(f+=e.scheme+"://"),e.host&&(f+=e.host),e.path&&(f+="/"+e.path),e.query&&(f+="?"+e.query),e.fragment&&(f+="#"+e.fragment),f},a=function(e,f){var n=f/2,r=Math.ceil(n),o=-1*Math.floor(n),i="";return o<0&&(i=e.substr(o)),e.substr(0,r)+t+i};if(e.length<=f)return e;var s=f-r,c=o(e);if(c.query){var d=c.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);d&&(c.query=c.query.substr(0,d[1].length),e=i(c))}if(e.length<=f)return e;if(c.host&&(c.host=c.host.replace(/^www\./,""),e=i(c)),e.length<=f)return e;var l="";if(c.host&&(l+=c.host),l.length>=s)return c.host.length==f?(c.host.substr(0,f-r)+t).substr(0,s+n):a(l,s).substr(0,s+n);var u="";if(c.path&&(u+="/"+c.path),c.query&&(u+="?"+c.query),u){if((l+u).length>=s){if((l+u).length==f)return(l+u).substr(0,f);var p=s-l.length;return(l+a(u,p)).substr(0,s+n)}l+=u}if(c.fragment){var h="#"+c.fragment;if((l+h).length>=s){if((l+h).length==f)return(l+h).substr(0,f);var g=s-l.length;return(l+a(h,g)).substr(0,s+n)}l+=h}if(c.scheme&&c.host){var m=c.scheme+"://";if((l+m).length<s)return(m+l).substr(0,f)}if(l.length<=f)return l;var b="";return s>0&&(b=l.substr(-1*Math.floor(s/2))),(l.substr(0,Math.ceil(s/2))+t+b).substr(0,s+n)},e}))},7418:function(e,f){f.f=Object.getOwnPropertySymbols},7839:function(e,f){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7a05":function(e,f,t){var n=t("c897");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("0757481a",n,!0,{sourceMap:!1,shadowMode:!1})},"7b0b":function(e,f,t){var n=t("1d80");e.exports=function(e){return Object(n(e))}},"7c73":function(e,f,t){var n,r=t("825a"),o=t("37e8"),i=t("7839"),a=t("d012"),s=t("1be4"),c=t("cc12"),d=t("f772"),l=">",u="<",p="prototype",h="script",g=d("IE_PROTO"),m=function(){},b=function(e){return u+h+l+e+u+"/"+h+l},v=function(e){e.write(b("")),e.close();var f=e.parentWindow.Object;return e=null,f},_=function(){var e,f=c("iframe"),t="java"+h+":";return f.style.display="none",s.appendChild(f),f.src=String(t),e=f.contentWindow.document,e.open(),e.write(b("document.F=Object")),e.close(),e.F},w=function(){try{n=document.domain&&new ActiveXObject("htmlfile")}catch(f){}w=n?v(n):_();var e=i.length;while(e--)delete w[p][i[e]];return w()};a[g]=!0,e.exports=Object.create||function(e,f){var t;return null!==e?(m[p]=r(e),t=new m,m[p]=null,t[g]=e):t=w(),void 0===f?t:o(t,f)}},"7db0":function(e,f,t){"use strict";var n=t("23e7"),r=t("b727").find,o=t("44d2"),i=t("ae40"),a="find",s=!0,c=i(a);a in[]&&Array(1)[a]((function(){s=!1})),n({target:"Array",proto:!0,forced:s||!c},{find:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),o(a)},"7f9a":function(e,f,t){var n=t("da84"),r=t("8925"),o=n.WeakMap;e.exports="function"===typeof o&&/native code/.test(r(o))},"800c":function(e,f,t){"use strict";var n=t("84be"),r=t.n(n);r.a},"825a":function(e,f,t){var n=t("861d");e.exports=function(e){if(!n(e))throw TypeError(String(e)+" is not an object");return e}},"829a":function(e,f,t){"use strict";var n=t("9b1f"),r=t.n(n);r.a},"83ab":function(e,f,t){var n=t("d039");e.exports=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},"84be":function(e,f,t){var n=t("4ccc");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("064df440",n,!0,{sourceMap:!1,shadowMode:!1})},8571:function(e,f,t){"use strict";var n=t("443c"),r=t.n(n);r.a},"857a":function(e,f,t){var n=t("1d80"),r=/"/g;e.exports=function(e,f,t,o){var i=String(n(e)),a="<"+f;return""!==t&&(a+=" "+t+'="'+String(o).replace(r,"&quot;")+'"'),a+">"+i+"</"+f+">"}},"861d":function(e,f){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},8664:function(e,f,t){var n=t("d2ef");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("7aafa3d0",n,!0,{sourceMap:!1,shadowMode:!1})},"87b1":function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,".sc-typing-indicator[data-v-5454cb3c]{text-align:center;padding:17px 20px;border-radius:6px}.sc-typing-indicator span[data-v-5454cb3c]{display:inline-block;background-color:#b6b5ba;width:10px;height:10px;border-radius:100%;margin-right:3px;-webkit-animation:bob-data-v-5454cb3c 2s infinite;animation:bob-data-v-5454cb3c 2s infinite}.sc-typing-indicator span[data-v-5454cb3c]:first-child{-webkit-animation-delay:-1s;animation-delay:-1s}.sc-typing-indicator span[data-v-5454cb3c]:nth-child(2){-webkit-animation-delay:-.85s;animation-delay:-.85s}.sc-typing-indicator span[data-v-5454cb3c]:nth-child(3){-webkit-animation-delay:-.7s;animation-delay:-.7s}@-webkit-keyframes bob-data-v-5454cb3c{10%{transform:translateY(-10px);background-color:#9e9da2}50%{transform:translateY(0);background-color:#b6b5ba}}@keyframes bob-data-v-5454cb3c{10%{transform:translateY(-10px);background-color:#9e9da2}50%{transform:translateY(0);background-color:#b6b5ba}}",""]),e.exports=f},8925:function(e,f,t){var n=t("c6cd"),r=Function.toString;"function"!=typeof n.inspectSource&&(n.inspectSource=function(e){return r.call(e)}),e.exports=n.inspectSource},"8bbf":function(f,t){f.exports=e},"90db":function(e,f,t){"use strict";var n=t("0411"),r=t.n(n);r.a},"90e3":function(e,f){var t=0,n=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++t+n).toString(36)}},9112:function(e,f,t){var n=t("83ab"),r=t("9bf2"),o=t("5c6c");e.exports=n?function(e,f,t){return r.f(e,f,o(1,t))}:function(e,f,t){return e[f]=t,e}},"92ab":function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,"a.chatLink[data-v-d95182e8]{color:inherit!important}",""]),e.exports=f},"94ca":function(e,f,t){var n=t("d039"),r=/#|\.prototype\./,o=function(e,f){var t=a[i(e)];return t==c||t!=s&&("function"==typeof f?n(f):!!f)},i=o.normalize=function(e){return String(e).replace(r,".").toLowerCase()},a=o.data={},s=o.NATIVE="N",c=o.POLYFILL="P";e.exports=o},9911:function(e,f,t){"use strict";var n=t("23e7"),r=t("857a"),o=t("af03");n({target:"String",proto:!0,forced:o("link")},{link:function(e){return r(this,"a","href",e)}})},"99f8":function(e,f,t){var n=t("f2b6");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("afae10de",n,!0,{sourceMap:!1,shadowMode:!1})},"9b1f":function(e,f,t){var n=t("d770");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("e229ba1a",n,!0,{sourceMap:!1,shadowMode:!1})},"9bdd":function(e,f,t){var n=t("825a");e.exports=function(e,f,t,r){try{return r?f(n(t)[0],t[1]):f(t)}catch(i){var o=e["return"];throw void 0!==o&&n(o.call(e)),i}}},"9bf2":function(e,f,t){var n=t("83ab"),r=t("0cfb"),o=t("825a"),i=t("c04e"),a=Object.defineProperty;f.f=n?a:function(e,f,t){if(o(e),f=i(f,!0),o(t),r)try{return a(e,f,t)}catch(n){}if("get"in t||"set"in t)throw TypeError("Accessors not supported");return"value"in t&&(e[f]=t.value),e}},"9bfa":function(e,f,t){"use strict";var n=t("3355"),r=t.n(n);r.a},"9c1d":function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,".sc-user-input--button-icon-wrapper[data-v-c241d988]{background:none;border:none;padding:0;margin:0;outline:none;cursor:pointer}",""]),e.exports=f},"9e21":function(e,f,t){var n=t("caea");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("0a9b969d",n,!0,{sourceMap:!1,shadowMode:!1})},"9e3a":function(e,f,t){var n=t("87b1");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("fbf1e184",n,!0,{sourceMap:!1,shadowMode:!1})},a5d7:function(e,f){e.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSItNDc0OS40OCAtNTAyMCAzNS4wMzYgMzUuMDM2Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO30uYntmaWxsOiM0ZThjZmY7fS5je2NsaXAtcGF0aDp1cmwoI2EpO30uZHtmaWxsOiNmZmY7fS5le2ZpbGw6I2VmZjRmOTt9PC9zdHlsZT48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGNsYXNzPSJhIiBkPSJNMC0zOTkuNDc5SDE3LjU1NXYxNy41NTVIMFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMzk5LjQ3OSkiLz48L2NsaXBQYXRoPjwvZGVmcz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNDg4NiAtNTA3NSkiPjxjaXJjbGUgY2xhc3M9ImIiIGN4PSIxNy41MTgiIGN5PSIxNy41MTgiIHI9IjE3LjUxOCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTM2LjUyIDU1KSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE0NS4xMyA2NCkiPjxnIGNsYXNzPSJjIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDApIj48cGF0aCBjbGFzcz0iZCIgZD0iTS0zODEuOTI0LTE5MC45NjJhOC43NzgsOC43NzgsMCwwLDAtOC43NzgtOC43NzgsOC43NzgsOC43NzgsMCwwLDAtOC43NzgsOC43NzgsOC43NDUsOC43NDUsMCwwLDAsMi4yNiw1Ljg3OXYxLjQ0MmMwLC44LjQ5MiwxLjQ1NywxLjEsMS40NTdoNS44M2EuODQzLjg0MywwLDAsMCwuMTgzLS4wMiw4Ljc3OCw4Ljc3OCwwLDAsMCw4LjE4NC04Ljc1NyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzk5LjQ3OSAxOTkuNzQpIi8+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMCkiPjxwYXRoIGNsYXNzPSJlIiBkPSJNLTY4Ljc2My0xOTQuMDc5YTkuMjkyLDkuMjkyLDAsMCwxLDYuMzgtOC44ODhjLS4yNTItLjAyMi0uNTA2LS4wMzMtLjc2My0uMDMzYTguNzc0LDguNzc0LDAsMCwwLTguNzc4LDguNzc4QTkuNTA4LDkuNTA4LDAsMCwwLTY5LjctMTg4LjNjLjAwNSwwLDAsLjAwOSwwLC4wMS0uMzExLjM1Mi0xLjkyNCwyLjg0OS4wMjEsMi44NDloMi4yNWMtMS4yMy0uMDIyLDEuMjYzLTIuMTA3LjI2OS0zLjQ5NGE4LjIyNSw4LjIyNSwwLDAsMS0xLjYtNS4xNDEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcxLjkyNCAyMDMpIi8+PC9nPjwvZz48L2c+PC9nPjwvc3ZnPg=="},a691:function(e,f){var t=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:t)(e)}},a9e3:function(e,f,t){"use strict";var n=t("83ab"),r=t("da84"),o=t("94ca"),i=t("6eeb"),a=t("5135"),s=t("c6b6"),c=t("7156"),d=t("c04e"),l=t("d039"),u=t("7c73"),p=t("241c").f,h=t("06cf").f,g=t("9bf2").f,m=t("58a8").trim,b="Number",v=r[b],_=v.prototype,w=s(u(_))==b,y=function(e){var f,t,n,r,o,i,a,s,c=d(e,!1);if("string"==typeof c&&c.length>2)if(c=m(c),f=c.charCodeAt(0),43===f||45===f){if(t=c.charCodeAt(2),88===t||120===t)return NaN}else if(48===f){switch(c.charCodeAt(1)){case 66:case 98:n=2,r=49;break;case 79:case 111:n=8,r=55;break;default:return+c}for(o=c.slice(2),i=o.length,a=0;a<i;a++)if(s=o.charCodeAt(a),s<48||s>r)return NaN;return parseInt(o,n)}return+c};if(o(b,!v(" 0o1")||!v("0b1")||v("+0x1"))){for(var x,k=function(e){var f=arguments.length<1?0:e,t=this;return t instanceof k&&(w?l((function(){_.valueOf.call(t)})):s(t)!=b)?c(new v(y(f)),t,k):y(f)},M=n?p(v):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),C=0;M.length>C;C++)a(v,x=M[C])&&!a(k,x)&&g(k,x,h(v,x));k.prototype=_,_.constructor=k,i(r,b,k)}},ae40:function(e,f,t){var n=t("83ab"),r=t("d039"),o=t("5135"),i=Object.defineProperty,a={},s=function(e){throw e};e.exports=function(e,f){if(o(a,e))return a[e];f||(f={});var t=[][e],c=!!o(f,"ACCESSORS")&&f.ACCESSORS,d=o(f,0)?f[0]:s,l=o(f,1)?f[1]:void 0;return a[e]=!!t&&!r((function(){if(c&&!n)return!0;var e={length:-1};c?i(e,1,{enumerable:!0,get:s}):e[1]=1,t.call(e,d,l)}))}},af03:function(e,f,t){var n=t("d039");e.exports=function(e){return n((function(){var f=""[e]('"');return f!==f.toLowerCase()||f.split('"').length>3}))}},b041:function(e,f,t){"use strict";var n=t("00ee"),r=t("f5df");e.exports=n?{}.toString:function(){return"[object "+r(this)+"]"}},b0c0:function(e,f,t){var n=t("83ab"),r=t("9bf2").f,o=Function.prototype,i=o.toString,a=/^\s*function ([^ (]*)/,s="name";n&&!(s in o)&&r(o,s,{configurable:!0,get:function(){try{return i.call(this).match(a)[1]}catch(e){return""}}})},b575:function(e,f,t){var n,r,o,i,a,s,c,d,l=t("da84"),u=t("06cf").f,p=t("c6b6"),h=t("2cf4").set,g=t("1cdc"),m=l.MutationObserver||l.WebKitMutationObserver,b=l.process,v=l.Promise,_="process"==p(b),w=u(l,"queueMicrotask"),y=w&&w.value;y||(n=function(){var e,f;_&&(e=b.domain)&&e.exit();while(r){f=r.fn,r=r.next;try{f()}catch(t){throw r?i():o=void 0,t}}o=void 0,e&&e.enter()},_?i=function(){b.nextTick(n)}:m&&!g?(a=!0,s=document.createTextNode(""),new m(n).observe(s,{characterData:!0}),i=function(){s.data=a=!a}):v&&v.resolve?(c=v.resolve(void 0),d=c.then,i=function(){d.call(c,n)}):i=function(){h.call(l,n)}),e.exports=y||function(e){var f={fn:e,next:void 0};o&&(o.next=f),r||(r=f,i()),o=f}},b622:function(e,f,t){var n=t("da84"),r=t("5692"),o=t("5135"),i=t("90e3"),a=t("4930"),s=t("fdbf"),c=r("wks"),d=n.Symbol,l=s?d:d&&d.withoutSetter||i;e.exports=function(e){return o(c,e)||(a&&o(d,e)?c[e]=d[e]:c[e]=l("Symbol."+e)),c[e]}},b724:function(e,f,t){var n=t("1fe6");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("63191d3c",n,!0,{sourceMap:!1,shadowMode:!1})},b727:function(e,f,t){var n=t("0366"),r=t("44ad"),o=t("7b0b"),i=t("50c4"),a=t("65f0"),s=[].push,c=function(e){var f=1==e,t=2==e,c=3==e,d=4==e,l=6==e,u=5==e||l;return function(p,h,g,m){for(var b,v,_=o(p),w=r(_),y=n(h,g,3),x=i(w.length),k=0,M=m||a,C=f?M(p,x):t?M(p,0):void 0;x>k;k++)if((u||k in w)&&(b=w[k],v=y(b,k,_),e))if(f)C[k]=v;else if(v)switch(e){case 3:return!0;case 5:return b;case 6:return k;case 2:s.call(C,b)}else if(d)return!1;return l?-1:c||d?d:C}};e.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6)}},bd73:function(e,f){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAfCAMAAACxiD++AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAtUExURUxpcf///////////////////////////////////////////////////////3EAnbYAAAAOdFJOUwADZ66SoQjEhnS7/gsNGQL7+wAAAKtJREFUKM+F01sOhCAQRNESFV/I/pc70Og0YJfyJbmHhBAbGGYHstw8IPV4EOGOmERYIhGpxyUAJxHSz/xlC+1FxE64qB1yj1ZID7oXsel+63ovnj2JXUXue+hvrcLugL+EdG+9XBG8X+Kl34J3YM1g/egvIvdx5EK691RIz78YEXdnQrst6m6JqemXmNo+D/WJNAyVePZWWL0WdlfB+l+UAQQReaAc65DB/wGsZgzLN0IQWAAAAABJRU5ErkJggg=="},bf37:function(e,f){e.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDcuOTcxIDQ3Ljk3MSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDcuOTcxIDQ3Ljk3MTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGQ9Ik0yOC4yMjgsMjMuOTg2TDQ3LjA5Miw1LjEyMmMxLjE3Mi0xLjE3MSwxLjE3Mi0zLjA3MSwwLTQuMjQyYy0xLjE3Mi0xLjE3Mi0zLjA3LTEuMTcyLTQuMjQyLDBMMjMuOTg2LDE5Ljc0NEw1LjEyMSwwLjg4CgkJYy0xLjE3Mi0xLjE3Mi0zLjA3LTEuMTcyLTQuMjQyLDBjLTEuMTcyLDEuMTcxLTEuMTcyLDMuMDcxLDAsNC4yNDJsMTguODY1LDE4Ljg2NEwwLjg3OSw0Mi44NWMtMS4xNzIsMS4xNzEtMS4xNzIsMy4wNzEsMCw0LjI0MgoJCUMxLjQ2NSw0Ny42NzcsMi4yMzMsNDcuOTcsMyw0Ny45N3MxLjUzNS0wLjI5MywyLjEyMS0wLjg3OWwxOC44NjUtMTguODY0TDQyLjg1LDQ3LjA5MWMwLjU4NiwwLjU4NiwxLjM1NCwwLjg3OSwyLjEyMSwwLjg3OQoJCXMxLjUzNS0wLjI5MywyLjEyMS0wLjg3OWMxLjE3Mi0xLjE3MSwxLjE3Mi0zLjA3MSwwLTQuMjQyTDI4LjIyOCwyMy45ODZ6Ii8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+"},c04e:function(e,f,t){var n=t("861d");e.exports=function(e,f){if(!n(e))return e;var t,r;if(f&&"function"==typeof(t=e.toString)&&!n(r=t.call(e)))return r;if("function"==typeof(t=e.valueOf)&&!n(r=t.call(e)))return r;if(!f&&"function"==typeof(t=e.toString)&&!n(r=t.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},c0b6:function(e,f,t){var n=t("23e7"),r=t("0538");n({target:"Function",proto:!0},{bind:r})},c2f4:function(e,f){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAKVQTFRFAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uP3jVQAAADd0Uk5TAE9lCAXd9XA4y/9zDQJG7HYB8Hc3yHoPQ8fuezMSoYPrEcEugj0tqb6G+Lw5ifHcKk3SIAx/MjRpS8YAAADsSURBVHic7dDJDoIwEIDhQURwQNGiIBVkUQH3BfX9H00MEvHW9qj9L3RIvkxTAJlMJvu1lI7aHtWOwm67Wk9vz3pP67Jro4+m1QyWiX2D3cJgqNmjt7ZGtjYccGAYK8R26qNjE2XMY6smU3Q9AM/F6YSTVrtnPp173pz6M969Lx1Q6rqUBgK2KvAR/UCIAoQLxEUoiCMSxyQSokmE6XKZYpQI2BVJ1wDrlKz4dXXn7PXN+G8e5lhk9TErMOd6tXCz3e2bYb/bbnj04Xg6f6bz6Xhgtxe8lu25vOKFGd/uj+8fj/uNfbVMJpP9QU/STxAzeUFqVwAAAABJRU5ErkJggg=="},c430:function(e,f){e.exports=!1},c54e:function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,".sc-message{width:300px;margin:auto;padding-bottom:10px;display:flex}.sc-message .sc-message--edited{opacity:.7;word-wrap:normal;font-size:xx-small;text-align:center}.sc-message--content{width:100%;display:flex}.sc-message--content.sent{justify-content:flex-end}.sc-message--content.system{justify-content:center}.sc-message--content.sent .sc-message--avatar{display:none}.sc-message--avatar{background-repeat:no-repeat;background-size:100%;background-position:50%;min-width:30px;min-height:30px;border-radius:50%;align-self:center;margin-right:15px}.sc-message--meta{font-size:xx-small;margin-bottom:0;color:#fff;text-align:center}@media (max-width:450px){.sc-message{width:80%}}.sc-message--text{padding:5px 20px;border-radius:6px;font-weight:300;font-size:14px;line-height:1.4;position:relative;-webkit-font-smoothing:subpixel-antialiased}.sc-message--text .sc-message--text-body .sc-message--text-content{white-space:pre-wrap}.sc-message--text:hover .sc-message--toolbox{left:-20px;opacity:1}.sc-message--text .sc-message--toolbox{transition:left .2s ease-out 0s;white-space:normal;opacity:0;position:absolute;left:0;width:25px;top:0}.sc-message--text .sc-message--toolbox button{background:none;border:none;padding:0;margin:0;outline:none;width:100%;text-align:center;cursor:pointer}.sc-message--text .sc-message--toolbox button:focus{outline:none}.sc-message--content.sent .sc-message--text{color:#fff;background-color:#4e8cff;max-width:calc(100% - 120px);word-wrap:break-word}.sc-message--text code{font-family:Courier New,Courier,monospace!important}.sc-message--content.received .sc-message--text{color:#263238;background-color:#f4f7f9;margin-right:40px}.tooltip{display:block!important;z-index:10000}.tooltip .tooltip-inner{background:#000;color:#fff;border-radius:16px;padding:5px 10px 4px}.tooltip .tooltip-arrow{width:0;height:0;border-style:solid;position:absolute;margin:5px;border-color:#000;z-index:1}.tooltip[x-placement^=top]{margin-bottom:5px}.tooltip[x-placement^=top] .tooltip-arrow{border-width:5px 5px 0 5px;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;bottom:-5px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.tooltip[x-placement^=bottom]{margin-top:5px}.tooltip[x-placement^=bottom] .tooltip-arrow{border-width:0 5px 5px 5px;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important;top:-5px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.tooltip[x-placement^=right]{margin-left:5px}.tooltip[x-placement^=right] .tooltip-arrow{border-width:5px 5px 5px 0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important;left:-5px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip[x-placement^=left]{margin-right:5px}.tooltip[x-placement^=left] .tooltip-arrow{border-width:5px 0 5px 5px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;right:-5px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip[aria-hidden=true]{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s}.tooltip[aria-hidden=false]{visibility:visible;opacity:1;transition:opacity .15s}.tooltip.info .tooltip-inner{background:rgba(0,68,153,.9);color:#fff;padding:24px;border-radius:5px;box-shadow:0 5px 30px rgba(0,0,0,.1)}.tooltip.info .tooltip-arrow{border-color:rgba(0,68,153,.9)}.tooltip.popover .popover-inner{background:#f9f9f9;color:#000;padding:24px;border-radius:5px;box-shadow:0 5px 30px rgba(0,0,0,.1)}.tooltip.popover .popover-arrow{border-color:#f9f9f9}",""]),e.exports=f},c6b6:function(e,f){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},c6cd:function(e,f,t){var n=t("da84"),r=t("ce4e"),o="__core-js_shared__",i=n[o]||r(o,{});e.exports=i},c897:function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,".sc-suggestions-row{text-align:center;background:inherit}.sc-suggestions-element{margin:3px;padding:5px 10px 5px 10px;border:1px solid;border-radius:15px;font-size:14px;background:inherit;cursor:pointer}",""]),e.exports=f},c8ba:function(e,f){var t;t=function(){return this}();try{t=t||new Function("return this")()}catch(n){"object"===typeof window&&(t=window)}e.exports=t},ca84:function(e,f,t){var n=t("5135"),r=t("fc6a"),o=t("4d64").indexOf,i=t("d012");e.exports=function(e,f){var t,a=r(e),s=0,c=[];for(t in a)!n(i,t)&&n(a,t)&&c.push(t);while(f.length>s)n(a,t=f[s++])&&(~o(c,t)||c.push(t));return c}},caea:function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,".sc-message--system[data-v-3beba850]{padding:8px 20px;border-radius:6px;font-weight:300;font-size:12px;line-height:1.2;white-space:pre-wrap;-webkit-font-smoothing:subpixel-antialiased;font-style:italic;opacity:.55}.sc-message--meta[data-v-3beba850]{font-size:xx-small;margin-bottom:0;margin-top:5px;opacity:.5;text-align:center}",""]),e.exports=f},cc12:function(e,f,t){var n=t("da84"),r=t("861d"),o=n.document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},cca6:function(e,f,t){var n=t("23e7"),r=t("60da");n({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},cdf9:function(e,f,t){var n=t("825a"),r=t("861d"),o=t("f069");e.exports=function(e,f){if(n(e),r(f)&&f.constructor===e)return f;var t=o.f(e),i=t.resolve;return i(f),t.promise}},ce4e:function(e,f,t){var n=t("da84"),r=t("9112");e.exports=function(e,f){try{r(n,e,f)}catch(t){n[e]=f}return f}},cfad:function(e,f,t){var n=t("2e45");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("5177a56e",n,!0,{sourceMap:!1,shadowMode:!1})},d012:function(e,f){e.exports={}},d039:function(e,f){e.exports=function(e){try{return!!e()}catch(f){return!0}}},d066:function(e,f,t){var n=t("428f"),r=t("da84"),o=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,f){return arguments.length<2?o(n[e])||o(r[e]):n[e]&&n[e][f]||r[e]&&r[e][f]}},d1e7:function(e,f,t){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);f.f=o?function(e){var f=r(this,e);return!!f&&f.enumerable}:n},d2bb:function(e,f,t){var n=t("825a"),r=t("3bbe");e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,f=!1,t={};try{e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,e.call(t,[]),f=t instanceof Array}catch(o){}return function(t,o){return n(t),r(o),f?e.call(t,o):t.__proto__=o,t}}():void 0)},d2ef:function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,"svg[data-v-31f7d743]{display:inline-block;vertical-align:baseline;margin-bottom:-2px}",""]),e.exports=f},d3b7:function(e,f,t){var n=t("00ee"),r=t("6eeb"),o=t("b041");n||r(Object.prototype,"toString",o,{unsafe:!0})},d44e:function(e,f,t){var n=t("9bf2").f,r=t("5135"),o=t("b622"),i=o("toStringTag");e.exports=function(e,f,t){e&&!r(e=t?e:e.prototype,i)&&n(e,i,{configurable:!0,value:f})}},d607:function(e,f,t){"use strict";var n=t("de9c"),r=t.n(n);r.a},d770:function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,".sc-user-input{min-height:55px;margin:0;position:relative;bottom:0;display:flex;background-color:#f4f7f9;border-bottom-left-radius:10px;border-bottom-right-radius:10px;transition:background-color .2s ease,box-shadow .2s ease}.sc-user-input--text{width:300px;resize:none;border:none;outline:none;border-bottom-left-radius:10px;box-sizing:border-box;padding:18px;font-size:15px;font-weight:400;line-height:1.33;white-space:pre-wrap;word-wrap:break-word;color:#565867;-webkit-font-smoothing:antialiased;max-height:200px;overflow:scroll;bottom:0;overflow-x:hidden;overflow-y:auto}.sc-user-input--text:empty:before{content:attr(placeholder);display:block;-webkit-filter:contrast(15%);filter:contrast(15%);outline:none;cursor:text}.sc-user-input--buttons{width:100px;position:absolute;right:30px;height:100%;display:flex;justify-content:flex-end}.sc-user-input--button:first-of-type{width:40px}.sc-user-input--button{width:30px;height:55px;margin-left:2px;margin-right:2px;display:flex;flex-direction:column;justify-content:center}.sc-user-input.active{box-shadow:none;background-color:#fff;box-shadow:0 -5px 20px 0 rgba(150,165,190,.2)}.sc-user-input--button label{position:relative;height:24px;padding-left:3px;cursor:pointer}.sc-user-input--button label:hover path{fill:#565867}.sc-user-input--button input{position:absolute;left:0;top:0;width:100%;z-index:99999;height:100%;opacity:0;cursor:pointer;overflow:hidden}.file-container{background-color:#f4f7f9;border-top-left-radius:10px;padding:5px 20px;color:#565867}.delete-file-message{font-style:normal;float:right;cursor:pointer;color:#c8cad0}.delete-file-message:hover{color:#5d5e6d}.icon-file-message{margin-right:5px}",""]),e.exports=f},d987:function(e,f,t){"use strict";var n=t("99f8"),r=t.n(n);r.a},da84:function(e,f,t){(function(f){var t=function(e){return e&&e.Math==Math&&e};e.exports=t("object"==typeof globalThis&&globalThis)||t("object"==typeof window&&window)||t("object"==typeof self&&self)||t("object"==typeof f&&f)||Function("return this")()}).call(this,t("c8ba"))},de9c:function(e,f,t){var n=t("e0a1");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("f8aa755c",n,!0,{sourceMap:!1,shadowMode:!1})},df43:function(e,f,t){var n=t("f66f");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("13979642",n,!0,{sourceMap:!1,shadowMode:!1})},df75:function(e,f,t){var n=t("ca84"),r=t("7839");e.exports=Object.keys||function(e){return n(e,r)}},df8e:function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,".sc-message--file[data-v-a240819e]{border-radius:6px;font-weight:300;font-size:14px;line-height:1.4;-webkit-font-smoothing:subpixel-antialiased}.sc-message--content.sent .sc-message--file[data-v-a240819e]{word-wrap:break-word}.sc-message--file-icon[data-v-a240819e]{text-align:center;margin-left:auto;margin-right:auto;margin-top:15px;margin-bottom:0}.sc-image[data-v-a240819e]{max-width:100%;min-width:100%}.sc-message--file-text[data-v-a240819e]{padding:17px 20px;border-radius:6px;font-weight:300;font-size:14px;line-height:1.4;white-space:pre-wrap;-webkit-font-smoothing:subpixel-antialiased}.sc-message--file-name[data-v-a240819e]{color:#fff;padding-left:15px;padding-right:15px;padding-top:0;font-size:x-small;text-align:center}.sc-message--file-name a[data-v-a240819e]{text-decoration:none;color:#ece7e7}.sc-message--file-name a[data-v-a240819e]:hover{color:#fff}.sc-message--content.sent .sc-message--file-text[data-v-a240819e]{color:#fff;background-color:#4e8cff;word-wrap:break-word}.sc-message--content.received .sc-message--file[data-v-a240819e]{color:#263238;background-color:#f4f7f9;margin-right:40px}.sc-message--content.received .sc-message--file-name[data-v-a240819e]{color:#000}.sc-message--content.received .sc-message--file a[data-v-a240819e]{color:rgba(43,40,40,.7)}.sc-message--content.received .sc-message--file a[data-v-a240819e]:hover{color:#0c0c0c}",""]),e.exports=f},e0a1:function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,"#file-input[data-v-aa3e05f4]{cursor:pointer}.sc-user-input--file-icon-wrapper[data-v-aa3e05f4]{background:none;border:none;padding:0;margin:0;outline:none;cursor:pointer}.sc-user-input--file-icon[data-v-aa3e05f4]{height:20px;width:20px;align-self:center;outline:none}.sc-user-input--file-icon:hover path[data-v-aa3e05f4]{-webkit-filter:contrast(15%);filter:contrast(15%)}",""]),e.exports=f},e2cc:function(e,f,t){var n=t("6eeb");e.exports=function(e,f,t){for(var r in f)n(e,r,f[r],t);return e}},e37d:function(e,f,t){"use strict";(function(e){var n=t("f0bd"),r=t("252c");function o(e){return o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,f){if(!(e instanceof f))throw new TypeError("Cannot call a class as a function")}function a(e,f){for(var t=0;t<f.length;t++){var n=f[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function s(e,f,t){return f&&a(e.prototype,f),t&&a(e,t),e}function c(e,f,t){return f in e?Object.defineProperty(e,f,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[f]=t,e}function d(e,f){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);f&&(n=n.filter((function(f){return Object.getOwnPropertyDescriptor(e,f).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var f=1;f<arguments.length;f++){var t=null!=arguments[f]?arguments[f]:{};f%2?d(Object(t),!0).forEach((function(f){c(e,f,t[f])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):d(Object(t)).forEach((function(f){Object.defineProperty(e,f,Object.getOwnPropertyDescriptor(t,f))}))}return e}var u=function(){};function p(e){return"string"===typeof e&&(e=e.split(" ")),e}function h(e,f){var t,n=p(f);t=e.className instanceof u?p(e.className.baseVal):p(e.className),n.forEach((function(e){-1===t.indexOf(e)&&t.push(e)})),e instanceof SVGElement?e.setAttribute("class",t.join(" ")):e.className=t.join(" ")}function g(e,f){var t,n=p(f);t=e.className instanceof u?p(e.className.baseVal):p(e.className),n.forEach((function(e){var f=t.indexOf(e);-1!==f&&t.splice(f,1)})),e instanceof SVGElement?e.setAttribute("class",t.join(" ")):e.className=t.join(" ")}"undefined"!==typeof window&&(u=window.SVGAnimatedString);var m=!1;if("undefined"!==typeof window){m=!1;try{var b=Object.defineProperty({},"passive",{get:function(){m=!0}});window.addEventListener("test",null,b)}catch(na){}}function v(){this.__data__=[],this.size=0}var _=v;function w(e,f){return e===f||e!==e&&f!==f}var y=w;function x(e,f){var t=e.length;while(t--)if(y(e[t][0],f))return t;return-1}var k=x,M=Array.prototype,C=M.splice;function j(e){var f=this.__data__,t=k(f,e);if(t<0)return!1;var n=f.length-1;return t==n?f.pop():C.call(f,t,1),--this.size,!0}var T=j;function I(e){var f=this.__data__,t=k(f,e);return t<0?void 0:f[t][1]}var L=I;function A(e){return k(this.__data__,e)>-1}var N=A;function S(e,f){var t=this.__data__,n=k(t,e);return n<0?(++this.size,t.push([e,f])):t[n][1]=f,this}var E=S;function O(e){var f=-1,t=null==e?0:e.length;this.clear();while(++f<t){var n=e[f];this.set(n[0],n[1])}}O.prototype.clear=_,O.prototype["delete"]=T,O.prototype.get=L,O.prototype.has=N,O.prototype.set=E;var z=O;function D(){this.__data__=new z,this.size=0}var P=D;function B(e){var f=this.__data__,t=f["delete"](e);return this.size=f.size,t}var U=B;function R(e){return this.__data__.get(e)}var $=R;function F(e){return this.__data__.has(e)}var q=F,Z="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof e?e:"undefined"!==typeof self?self:{};function H(e,f){return f={exports:{}},e(f,f.exports),f.exports}var W="object"==typeof Z&&Z&&Z.Object===Object&&Z,G=W,Q="object"==typeof self&&self&&self.Object===Object&&self,Y=G||Q||Function("return this")(),V=Y,X=V.Symbol,J=X,K=Object.prototype,ee=K.hasOwnProperty,fe=K.toString,te=J?J.toStringTag:void 0;function ne(e){var f=ee.call(e,te),t=e[te];try{e[te]=void 0;var n=!0}catch(na){}var r=fe.call(e);return n&&(f?e[te]=t:delete e[te]),r}var re=ne,oe=Object.prototype,ie=oe.toString;function ae(e){return ie.call(e)}var se=ae,ce="[object Null]",de="[object Undefined]",le=J?J.toStringTag:void 0;function ue(e){return null==e?void 0===e?de:ce:le&&le in Object(e)?re(e):se(e)}var pe=ue;function he(e){var f=typeof e;return null!=e&&("object"==f||"function"==f)}var ge=he,me="[object AsyncFunction]",be="[object Function]",ve="[object GeneratorFunction]",_e="[object Proxy]";function we(e){if(!ge(e))return!1;var f=pe(e);return f==be||f==ve||f==me||f==_e}var ye=we,xe=V["__core-js_shared__"],ke=xe,Me=function(){var e=/[^.]+$/.exec(ke&&ke.keys&&ke.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ce(e){return!!Me&&Me in e}var je=Ce,Te=Function.prototype,Ie=Te.toString;function Le(e){if(null!=e){try{return Ie.call(e)}catch(na){}try{return e+""}catch(na){}}return""}var Ae=Le,Ne=/[\\^$.*+?()[\]{}|]/g,Se=/^\[object .+?Constructor\]$/,Ee=Function.prototype,Oe=Object.prototype,ze=Ee.toString,De=Oe.hasOwnProperty,Pe=RegExp("^"+ze.call(De).replace(Ne,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Be(e){if(!ge(e)||je(e))return!1;var f=ye(e)?Pe:Se;return f.test(Ae(e))}var Ue=Be;function Re(e,f){return null==e?void 0:e[f]}var $e=Re;function Fe(e,f){var t=$e(e,f);return Ue(t)?t:void 0}var qe=Fe,Ze=qe(V,"Map"),He=Ze,We=qe(Object,"create"),Ge=We;function Qe(){this.__data__=Ge?Ge(null):{},this.size=0}var Ye=Qe;function Ve(e){var f=this.has(e)&&delete this.__data__[e];return this.size-=f?1:0,f}var Xe=Ve,Je="__lodash_hash_undefined__",Ke=Object.prototype,ef=Ke.hasOwnProperty;function ff(e){var f=this.__data__;if(Ge){var t=f[e];return t===Je?void 0:t}return ef.call(f,e)?f[e]:void 0}var tf=ff,nf=Object.prototype,rf=nf.hasOwnProperty;function of(e){var f=this.__data__;return Ge?void 0!==f[e]:rf.call(f,e)}var af=of,sf="__lodash_hash_undefined__";function cf(e,f){var t=this.__data__;return this.size+=this.has(e)?0:1,t[e]=Ge&&void 0===f?sf:f,this}var df=cf;function lf(e){var f=-1,t=null==e?0:e.length;this.clear();while(++f<t){var n=e[f];this.set(n[0],n[1])}}lf.prototype.clear=Ye,lf.prototype["delete"]=Xe,lf.prototype.get=tf,lf.prototype.has=af,lf.prototype.set=df;var uf=lf;function pf(){this.size=0,this.__data__={hash:new uf,map:new(He||z),string:new uf}}var hf=pf;function gf(e){var f=typeof e;return"string"==f||"number"==f||"symbol"==f||"boolean"==f?"__proto__"!==e:null===e}var mf=gf;function bf(e,f){var t=e.__data__;return mf(f)?t["string"==typeof f?"string":"hash"]:t.map}var vf=bf;function _f(e){var f=vf(this,e)["delete"](e);return this.size-=f?1:0,f}var wf=_f;function yf(e){return vf(this,e).get(e)}var xf=yf;function kf(e){return vf(this,e).has(e)}var Mf=kf;function Cf(e,f){var t=vf(this,e),n=t.size;return t.set(e,f),this.size+=t.size==n?0:1,this}var jf=Cf;function Tf(e){var f=-1,t=null==e?0:e.length;this.clear();while(++f<t){var n=e[f];this.set(n[0],n[1])}}Tf.prototype.clear=hf,Tf.prototype["delete"]=wf,Tf.prototype.get=xf,Tf.prototype.has=Mf,Tf.prototype.set=jf;var If=Tf,Lf=200;function Af(e,f){var t=this.__data__;if(t instanceof z){var n=t.__data__;if(!He||n.length<Lf-1)return n.push([e,f]),this.size=++t.size,this;t=this.__data__=new If(n)}return t.set(e,f),this.size=t.size,this}var Nf=Af;function Sf(e){var f=this.__data__=new z(e);this.size=f.size}Sf.prototype.clear=P,Sf.prototype["delete"]=U,Sf.prototype.get=$,Sf.prototype.has=q,Sf.prototype.set=Nf;var Ef=Sf,Of="__lodash_hash_undefined__";function zf(e){return this.__data__.set(e,Of),this}var Df=zf;function Pf(e){return this.__data__.has(e)}var Bf=Pf;function Uf(e){var f=-1,t=null==e?0:e.length;this.__data__=new If;while(++f<t)this.add(e[f])}Uf.prototype.add=Uf.prototype.push=Df,Uf.prototype.has=Bf;var Rf=Uf;function $f(e,f){var t=-1,n=null==e?0:e.length;while(++t<n)if(f(e[t],t,e))return!0;return!1}var Ff=$f;function qf(e,f){return e.has(f)}var Zf=qf,Hf=1,Wf=2;function Gf(e,f,t,n,r,o){var i=t&Hf,a=e.length,s=f.length;if(a!=s&&!(i&&s>a))return!1;var c=o.get(e);if(c&&o.get(f))return c==f;var d=-1,l=!0,u=t&Wf?new Rf:void 0;o.set(e,f),o.set(f,e);while(++d<a){var p=e[d],h=f[d];if(n)var g=i?n(h,p,d,f,e,o):n(p,h,d,e,f,o);if(void 0!==g){if(g)continue;l=!1;break}if(u){if(!Ff(f,(function(e,f){if(!Zf(u,f)&&(p===e||r(p,e,t,n,o)))return u.push(f)}))){l=!1;break}}else if(p!==h&&!r(p,h,t,n,o)){l=!1;break}}return o["delete"](e),o["delete"](f),l}var Qf=Gf,Yf=V.Uint8Array,Vf=Yf;function Xf(e){var f=-1,t=Array(e.size);return e.forEach((function(e,n){t[++f]=[n,e]})),t}var Jf=Xf;function Kf(e){var f=-1,t=Array(e.size);return e.forEach((function(e){t[++f]=e})),t}var et=Kf,ft=1,tt=2,nt="[object Boolean]",rt="[object Date]",ot="[object Error]",it="[object Map]",at="[object Number]",st="[object RegExp]",ct="[object Set]",dt="[object String]",lt="[object Symbol]",ut="[object ArrayBuffer]",pt="[object DataView]",ht=J?J.prototype:void 0,gt=ht?ht.valueOf:void 0;function mt(e,f,t,n,r,o,i){switch(t){case pt:if(e.byteLength!=f.byteLength||e.byteOffset!=f.byteOffset)return!1;e=e.buffer,f=f.buffer;case ut:return!(e.byteLength!=f.byteLength||!o(new Vf(e),new Vf(f)));case nt:case rt:case at:return y(+e,+f);case ot:return e.name==f.name&&e.message==f.message;case st:case dt:return e==f+"";case it:var a=Jf;case ct:var s=n&ft;if(a||(a=et),e.size!=f.size&&!s)return!1;var c=i.get(e);if(c)return c==f;n|=tt,i.set(e,f);var d=Qf(a(e),a(f),n,r,o,i);return i["delete"](e),d;case lt:if(gt)return gt.call(e)==gt.call(f)}return!1}var bt=mt;function vt(e,f){var t=-1,n=f.length,r=e.length;while(++t<n)e[r+t]=f[t];return e}var _t=vt,wt=Array.isArray,yt=wt;function xt(e,f,t){var n=f(e);return yt(e)?n:_t(n,t(e))}var kt=xt;function Mt(e,f){var t=-1,n=null==e?0:e.length,r=0,o=[];while(++t<n){var i=e[t];f(i,t,e)&&(o[r++]=i)}return o}var Ct=Mt;function jt(){return[]}var Tt=jt,It=Object.prototype,Lt=It.propertyIsEnumerable,At=Object.getOwnPropertySymbols,Nt=At?function(e){return null==e?[]:(e=Object(e),Ct(At(e),(function(f){return Lt.call(e,f)})))}:Tt,St=Nt;function Et(e,f){var t=-1,n=Array(e);while(++t<e)n[t]=f(t);return n}var Ot=Et;function zt(e){return null!=e&&"object"==typeof e}var Dt=zt,Pt="[object Arguments]";function Bt(e){return Dt(e)&&pe(e)==Pt}var Ut=Bt,Rt=Object.prototype,$t=Rt.hasOwnProperty,Ft=Rt.propertyIsEnumerable,qt=Ut(function(){return arguments}())?Ut:function(e){return Dt(e)&&$t.call(e,"callee")&&!Ft.call(e,"callee")},Zt=qt;function Ht(){return!1}var Wt=Ht,Gt=H((function(e,f){var t=f&&!f.nodeType&&f,n=t&&e&&!e.nodeType&&e,r=n&&n.exports===t,o=r?V.Buffer:void 0,i=o?o.isBuffer:void 0,a=i||Wt;e.exports=a})),Qt=9007199254740991,Yt=/^(?:0|[1-9]\d*)$/;function Vt(e,f){var t=typeof e;return f=null==f?Qt:f,!!f&&("number"==t||"symbol"!=t&&Yt.test(e))&&e>-1&&e%1==0&&e<f}var Xt=Vt,Jt=9007199254740991;function Kt(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=Jt}var en=Kt,fn="[object Arguments]",tn="[object Array]",nn="[object Boolean]",rn="[object Date]",on="[object Error]",an="[object Function]",sn="[object Map]",cn="[object Number]",dn="[object Object]",ln="[object RegExp]",un="[object Set]",pn="[object String]",hn="[object WeakMap]",gn="[object ArrayBuffer]",mn="[object DataView]",bn="[object Float32Array]",vn="[object Float64Array]",_n="[object Int8Array]",wn="[object Int16Array]",yn="[object Int32Array]",xn="[object Uint8Array]",kn="[object Uint8ClampedArray]",Mn="[object Uint16Array]",Cn="[object Uint32Array]",jn={};function Tn(e){return Dt(e)&&en(e.length)&&!!jn[pe(e)]}jn[bn]=jn[vn]=jn[_n]=jn[wn]=jn[yn]=jn[xn]=jn[kn]=jn[Mn]=jn[Cn]=!0,jn[fn]=jn[tn]=jn[gn]=jn[nn]=jn[mn]=jn[rn]=jn[on]=jn[an]=jn[sn]=jn[cn]=jn[dn]=jn[ln]=jn[un]=jn[pn]=jn[hn]=!1;var In=Tn;function Ln(e){return function(f){return e(f)}}var An=Ln,Nn=H((function(e,f){var t=f&&!f.nodeType&&f,n=t&&e&&!e.nodeType&&e,r=n&&n.exports===t,o=r&&G.process,i=function(){try{var e=n&&n.require&&n.require("util").types;return e||o&&o.binding&&o.binding("util")}catch(na){}}();e.exports=i})),Sn=Nn&&Nn.isTypedArray,En=Sn?An(Sn):In,On=En,zn=Object.prototype,Dn=zn.hasOwnProperty;function Pn(e,f){var t=yt(e),n=!t&&Zt(e),r=!t&&!n&&Gt(e),o=!t&&!n&&!r&&On(e),i=t||n||r||o,a=i?Ot(e.length,String):[],s=a.length;for(var c in e)!f&&!Dn.call(e,c)||i&&("length"==c||r&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||Xt(c,s))||a.push(c);return a}var Bn=Pn,Un=Object.prototype;function Rn(e){var f=e&&e.constructor,t="function"==typeof f&&f.prototype||Un;return e===t}var $n=Rn;function Fn(e,f){return function(t){return e(f(t))}}var qn=Fn,Zn=qn(Object.keys,Object),Hn=Zn,Wn=Object.prototype,Gn=Wn.hasOwnProperty;function Qn(e){if(!$n(e))return Hn(e);var f=[];for(var t in Object(e))Gn.call(e,t)&&"constructor"!=t&&f.push(t);return f}var Yn=Qn;function Vn(e){return null!=e&&en(e.length)&&!ye(e)}var Xn=Vn;function Jn(e){return Xn(e)?Bn(e):Yn(e)}var Kn=Jn;function er(e){return kt(e,Kn,St)}var fr=er,tr=1,nr=Object.prototype,rr=nr.hasOwnProperty;function or(e,f,t,n,r,o){var i=t&tr,a=fr(e),s=a.length,c=fr(f),d=c.length;if(s!=d&&!i)return!1;var l=s;while(l--){var u=a[l];if(!(i?u in f:rr.call(f,u)))return!1}var p=o.get(e);if(p&&o.get(f))return p==f;var h=!0;o.set(e,f),o.set(f,e);var g=i;while(++l<s){u=a[l];var m=e[u],b=f[u];if(n)var v=i?n(b,m,u,f,e,o):n(m,b,u,e,f,o);if(!(void 0===v?m===b||r(m,b,t,n,o):v)){h=!1;break}g||(g="constructor"==u)}if(h&&!g){var _=e.constructor,w=f.constructor;_==w||!("constructor"in e)||!("constructor"in f)||"function"==typeof _&&_ instanceof _&&"function"==typeof w&&w instanceof w||(h=!1)}return o["delete"](e),o["delete"](f),h}var ir=or,ar=qe(V,"DataView"),sr=ar,cr=qe(V,"Promise"),dr=cr,lr=qe(V,"Set"),ur=lr,pr=qe(V,"WeakMap"),hr=pr,gr="[object Map]",mr="[object Object]",br="[object Promise]",vr="[object Set]",_r="[object WeakMap]",wr="[object DataView]",yr=Ae(sr),xr=Ae(He),kr=Ae(dr),Mr=Ae(ur),Cr=Ae(hr),jr=pe;(sr&&jr(new sr(new ArrayBuffer(1)))!=wr||He&&jr(new He)!=gr||dr&&jr(dr.resolve())!=br||ur&&jr(new ur)!=vr||hr&&jr(new hr)!=_r)&&(jr=function(e){var f=pe(e),t=f==mr?e.constructor:void 0,n=t?Ae(t):"";if(n)switch(n){case yr:return wr;case xr:return gr;case kr:return br;case Mr:return vr;case Cr:return _r}return f});var Tr=jr,Ir=1,Lr="[object Arguments]",Ar="[object Array]",Nr="[object Object]",Sr=Object.prototype,Er=Sr.hasOwnProperty;function Or(e,f,t,n,r,o){var i=yt(e),a=yt(f),s=i?Ar:Tr(e),c=a?Ar:Tr(f);s=s==Lr?Nr:s,c=c==Lr?Nr:c;var d=s==Nr,l=c==Nr,u=s==c;if(u&&Gt(e)){if(!Gt(f))return!1;i=!0,d=!1}if(u&&!d)return o||(o=new Ef),i||On(e)?Qf(e,f,t,n,r,o):bt(e,f,s,t,n,r,o);if(!(t&Ir)){var p=d&&Er.call(e,"__wrapped__"),h=l&&Er.call(f,"__wrapped__");if(p||h){var g=p?e.value():e,m=h?f.value():f;return o||(o=new Ef),r(g,m,t,n,o)}}return!!u&&(o||(o=new Ef),ir(e,f,t,n,r,o))}var zr=Or;function Dr(e,f,t,n,r){return e===f||(null==e||null==f||!Dt(e)&&!Dt(f)?e!==e&&f!==f:zr(e,f,t,n,Dr,r))}var Pr=Dr;function Br(e,f){return Pr(e,f)}var Ur=Br,Rr={container:!1,delay:0,html:!1,placement:"top",title:"",template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",offset:0},$r=[],Fr=function(){function e(f,t){var n=this;i(this,e),c(this,"_events",[]),c(this,"_setTooltipNodeEvent",(function(e,f,t,r){var o=e.relatedreference||e.toElement||e.relatedTarget,i=function t(o){var i=o.relatedreference||o.toElement||o.relatedTarget;n._tooltipNode.removeEventListener(e.type,t),f.contains(i)||n._scheduleHide(f,r.delay,r,o)};return!!n._tooltipNode.contains(o)&&(n._tooltipNode.addEventListener(e.type,i),!0)})),t=l({},Rr,{},t),f.jquery&&(f=f[0]),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.reference=f,this.options=t,this._isOpen=!1,this._init()}return s(e,[{key:"show",value:function(){this._show(this.reference,this.options)}},{key:"hide",value:function(){this._hide()}},{key:"dispose",value:function(){this._dispose()}},{key:"toggle",value:function(){return this._isOpen?this.hide():this.show()}},{key:"setClasses",value:function(e){this._classes=e}},{key:"setContent",value:function(e){this.options.title=e,this._tooltipNode&&this._setContent(e,this.options)}},{key:"setOptions",value:function(e){var f=!1,t=e&&e.classes||Jr.options.defaultClass;Ur(this._classes,t)||(this.setClasses(t),f=!0),e=Wr(e);var n=!1,r=!1;for(var o in this.options.offset===e.offset&&this.options.placement===e.placement||(n=!0),(this.options.template!==e.template||this.options.trigger!==e.trigger||this.options.container!==e.container||f)&&(r=!0),e)this.options[o]=e[o];if(this._tooltipNode)if(r){var i=this._isOpen;this.dispose(),this._init(),i&&this.show()}else n&&this.popperInstance.update()}},{key:"_init",value:function(){var e="string"===typeof this.options.trigger?this.options.trigger.split(" "):[];this._isDisposed=!1,this._enableDocumentTouch=-1===e.indexOf("manual"),e=e.filter((function(e){return-1!==["click","hover","focus"].indexOf(e)})),this._setEventListeners(this.reference,e,this.options),this.$_originalTitle=this.reference.getAttribute("title"),this.reference.removeAttribute("title"),this.reference.setAttribute("data-original-title",this.$_originalTitle)}},{key:"_create",value:function(e,f){var t=window.document.createElement("div");t.innerHTML=f.trim();var n=t.childNodes[0];return n.id="tooltip_".concat(Math.random().toString(36).substr(2,10)),n.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(n.addEventListener("mouseenter",this.hide),n.addEventListener("click",this.hide)),n}},{key:"_setContent",value:function(e,f){var t=this;this.asyncContent=!1,this._applyContent(e,f).then((function(){t.popperInstance.update()}))}},{key:"_applyContent",value:function(e,f){var t=this;return new Promise((function(n,r){var o=f.html,i=t._tooltipNode;if(i){var a=i.querySelector(t.options.innerSelector);if(1===e.nodeType){if(o){while(a.firstChild)a.removeChild(a.firstChild);a.appendChild(e)}}else{if("function"===typeof e){var s=e();return void(s&&"function"===typeof s.then?(t.asyncContent=!0,f.loadingClass&&h(i,f.loadingClass),f.loadingContent&&t._applyContent(f.loadingContent,f),s.then((function(e){return f.loadingClass&&g(i,f.loadingClass),t._applyContent(e,f)})).then(n).catch(r)):t._applyContent(s,f).then(n).catch(r))}o?a.innerHTML=e:a.innerText=e}n()}}))}},{key:"_show",value:function(e,f){if(f&&"string"===typeof f.container){var t=document.querySelector(f.container);if(!t)return}clearTimeout(this._disposeTimer),f=Object.assign({},f),delete f.offset;var n=!0;this._tooltipNode&&(h(this._tooltipNode,this._classes),n=!1);var r=this._ensureShown(e,f);return n&&this._tooltipNode&&h(this._tooltipNode,this._classes),h(e,["v-tooltip-open"]),r}},{key:"_ensureShown",value:function(e,f){var t=this;if(this._isOpen)return this;if(this._isOpen=!0,$r.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(f.title,f),this;var r=e.getAttribute("title")||f.title;if(!r)return this;var o=this._create(e,f.template);this._tooltipNode=o,e.setAttribute("aria-describedby",o.id);var i=this._findContainer(f.container,e);this._append(o,i);var a=l({},f.popperOptions,{placement:f.placement});return a.modifiers=l({},a.modifiers,{arrow:{element:this.options.arrowSelector}}),f.boundariesElement&&(a.modifiers.preventOverflow={boundariesElement:f.boundariesElement}),this.popperInstance=new n["a"](e,o,a),this._setContent(r,f),requestAnimationFrame((function(){!t._isDisposed&&t.popperInstance?(t.popperInstance.update(),requestAnimationFrame((function(){t._isDisposed?t.dispose():t._isOpen&&o.setAttribute("aria-hidden","false")}))):t.dispose()})),this}},{key:"_noLongerOpen",value:function(){var e=$r.indexOf(this);-1!==e&&$r.splice(e,1)}},{key:"_hide",value:function(){var e=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var f=Jr.options.disposeTimeout;return null!==f&&(this._disposeTimer=setTimeout((function(){e._tooltipNode&&(e._tooltipNode.removeEventListener("mouseenter",e.hide),e._tooltipNode.removeEventListener("click",e.hide),e._removeTooltipNode())}),f)),g(this.reference,["v-tooltip-open"]),this}},{key:"_removeTooltipNode",value:function(){if(this._tooltipNode){var e=this._tooltipNode.parentNode;e&&(e.removeChild(this._tooltipNode),this.reference.removeAttribute("aria-describedby")),this._tooltipNode=null}}},{key:"_dispose",value:function(){var e=this;return this._isDisposed=!0,this.reference.removeAttribute("data-original-title"),this.$_originalTitle&&this.reference.setAttribute("title",this.$_originalTitle),this._events.forEach((function(f){var t=f.func,n=f.event;e.reference.removeEventListener(n,t)})),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||this._removeTooltipNode()):this._noLongerOpen(),this}},{key:"_findContainer",value:function(e,f){return"string"===typeof e?e=window.document.querySelector(e):!1===e&&(e=f.parentNode),e}},{key:"_append",value:function(e,f){f.appendChild(e)}},{key:"_setEventListeners",value:function(e,f,t){var n=this,r=[],o=[];f.forEach((function(e){switch(e){case"hover":r.push("mouseenter"),o.push("mouseleave"),n.options.hideOnTargetClick&&o.push("click");break;case"focus":r.push("focus"),o.push("blur"),n.options.hideOnTargetClick&&o.push("click");break;case"click":r.push("click"),o.push("click");break}})),r.forEach((function(f){var r=function(f){!0!==n._isOpen&&(f.usedByTooltip=!0,n._scheduleShow(e,t.delay,t,f))};n._events.push({event:f,func:r}),e.addEventListener(f,r)})),o.forEach((function(f){var r=function(f){!0!==f.usedByTooltip&&n._scheduleHide(e,t.delay,t,f)};n._events.push({event:f,func:r}),e.addEventListener(f,r)}))}},{key:"_onDocumentTouch",value:function(e){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,e)}},{key:"_scheduleShow",value:function(e,f,t){var n=this,r=f&&f.show||f||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout((function(){return n._show(e,t)}),r)}},{key:"_scheduleHide",value:function(e,f,t,n){var r=this,o=f&&f.hide||f||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout((function(){if(!1!==r._isOpen&&r._tooltipNode.ownerDocument.body.contains(r._tooltipNode)){if("mouseleave"===n.type){var o=r._setTooltipNodeEvent(n,e,f,t);if(o)return}r._hide(e,t)}}),o)}}]),e}();"undefined"!==typeof document&&document.addEventListener("touchstart",(function(e){for(var f=0;f<$r.length;f++)$r[f]._onDocumentTouch(e)}),!m||{passive:!0,capture:!0});var qr={enabled:!0},Zr=["top","top-start","top-end","right","right-start","right-end","bottom","bottom-start","bottom-end","left","left-start","left-end"],Hr={defaultPlacement:"top",defaultClass:"vue-tooltip-theme",defaultTargetClass:"has-tooltip",defaultHtml:!0,defaultTemplate:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultOpenClass:"open",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function Wr(e){var f={placement:"undefined"!==typeof e.placement?e.placement:Jr.options.defaultPlacement,delay:"undefined"!==typeof e.delay?e.delay:Jr.options.defaultDelay,html:"undefined"!==typeof e.html?e.html:Jr.options.defaultHtml,template:"undefined"!==typeof e.template?e.template:Jr.options.defaultTemplate,arrowSelector:"undefined"!==typeof e.arrowSelector?e.arrowSelector:Jr.options.defaultArrowSelector,innerSelector:"undefined"!==typeof e.innerSelector?e.innerSelector:Jr.options.defaultInnerSelector,trigger:"undefined"!==typeof e.trigger?e.trigger:Jr.options.defaultTrigger,offset:"undefined"!==typeof e.offset?e.offset:Jr.options.defaultOffset,container:"undefined"!==typeof e.container?e.container:Jr.options.defaultContainer,boundariesElement:"undefined"!==typeof e.boundariesElement?e.boundariesElement:Jr.options.defaultBoundariesElement,autoHide:"undefined"!==typeof e.autoHide?e.autoHide:Jr.options.autoHide,hideOnTargetClick:"undefined"!==typeof e.hideOnTargetClick?e.hideOnTargetClick:Jr.options.defaultHideOnTargetClick,loadingClass:"undefined"!==typeof e.loadingClass?e.loadingClass:Jr.options.defaultLoadingClass,loadingContent:"undefined"!==typeof e.loadingContent?e.loadingContent:Jr.options.defaultLoadingContent,popperOptions:l({},"undefined"!==typeof e.popperOptions?e.popperOptions:Jr.options.defaultPopperOptions)};if(f.offset){var t=o(f.offset),n=f.offset;("number"===t||"string"===t&&-1===n.indexOf(","))&&(n="0, ".concat(n)),f.popperOptions.modifiers||(f.popperOptions.modifiers={}),f.popperOptions.modifiers.offset={offset:n}}return f.trigger&&-1!==f.trigger.indexOf("click")&&(f.hideOnTargetClick=!1),f}function Gr(e,f){for(var t=e.placement,n=0;n<Zr.length;n++){var r=Zr[n];f[r]&&(t=r)}return t}function Qr(e){var f=o(e);return"string"===f?e:!(!e||"object"!==f)&&e.content}function Yr(e,f){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=Qr(f),r="undefined"!==typeof f.classes?f.classes:Jr.options.defaultClass,o=l({title:n},Wr(l({},f,{placement:Gr(f,t)}))),i=e._tooltip=new Fr(e,o);i.setClasses(r),i._vueEl=e;var a="undefined"!==typeof f.targetClasses?f.targetClasses:Jr.options.defaultTargetClass;return e._tooltipTargetClasses=a,h(e,a),i}function Vr(e){e._tooltip&&(e._tooltip.dispose(),delete e._tooltip,delete e._tooltipOldShow),e._tooltipTargetClasses&&(g(e,e._tooltipTargetClasses),delete e._tooltipTargetClasses)}function Xr(e,f){var t,n=f.value,r=(f.oldValue,f.modifiers),o=Qr(n);o&&qr.enabled?(e._tooltip?(t=e._tooltip,t.setContent(o),t.setOptions(l({},n,{placement:Gr(n,r)}))):t=Yr(e,n,r),"undefined"!==typeof n.show&&n.show!==e._tooltipOldShow&&(e._tooltipOldShow=n.show,n.show?t.show():t.hide())):Vr(e)}var Jr={options:Hr,bind:Xr,update:Xr,unbind:function(e){Vr(e)}};function Kr(e){e.addEventListener("click",fo),e.addEventListener("touchstart",to,!!m&&{passive:!0})}function eo(e){e.removeEventListener("click",fo),e.removeEventListener("touchstart",to),e.removeEventListener("touchend",no),e.removeEventListener("touchcancel",ro)}function fo(e){var f=e.currentTarget;e.closePopover=!f.$_vclosepopover_touch,e.closeAllPopover=f.$_closePopoverModifiers&&!!f.$_closePopoverModifiers.all}function to(e){if(1===e.changedTouches.length){var f=e.currentTarget;f.$_vclosepopover_touch=!0;var t=e.changedTouches[0];f.$_vclosepopover_touchPoint=t,f.addEventListener("touchend",no),f.addEventListener("touchcancel",ro)}}function no(e){var f=e.currentTarget;if(f.$_vclosepopover_touch=!1,1===e.changedTouches.length){var t=e.changedTouches[0],n=f.$_vclosepopover_touchPoint;e.closePopover=Math.abs(t.screenY-n.screenY)<20&&Math.abs(t.screenX-n.screenX)<20,e.closeAllPopover=f.$_closePopoverModifiers&&!!f.$_closePopoverModifiers.all}}function ro(e){var f=e.currentTarget;f.$_vclosepopover_touch=!1}var oo={bind:function(e,f){var t=f.value,n=f.modifiers;e.$_closePopoverModifiers=n,("undefined"===typeof t||t)&&Kr(e)},update:function(e,f){var t=f.value,n=f.oldValue,r=f.modifiers;e.$_closePopoverModifiers=r,t!==n&&("undefined"===typeof t||t?Kr(e):eo(e))},unbind:function(e){eo(e)}};function io(e){var f=Jr.options.popover[e];return"undefined"===typeof f?Jr.options[e]:f}var ao=!1;"undefined"!==typeof window&&"undefined"!==typeof navigator&&(ao=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);var so=[],co=function(){};"undefined"!==typeof window&&(co=window.Element);var lo={name:"VPopover",components:{ResizeObserver:r["a"]},props:{open:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},placement:{type:String,default:function(){return io("defaultPlacement")}},delay:{type:[String,Number,Object],default:function(){return io("defaultDelay")}},offset:{type:[String,Number],default:function(){return io("defaultOffset")}},trigger:{type:String,default:function(){return io("defaultTrigger")}},container:{type:[String,Object,co,Boolean],default:function(){return io("defaultContainer")}},boundariesElement:{type:[String,co],default:function(){return io("defaultBoundariesElement")}},popperOptions:{type:Object,default:function(){return io("defaultPopperOptions")}},popoverClass:{type:[String,Array],default:function(){return io("defaultClass")}},popoverBaseClass:{type:[String,Array],default:function(){return Jr.options.popover.defaultBaseClass}},popoverInnerClass:{type:[String,Array],default:function(){return Jr.options.popover.defaultInnerClass}},popoverWrapperClass:{type:[String,Array],default:function(){return Jr.options.popover.defaultWrapperClass}},popoverArrowClass:{type:[String,Array],default:function(){return Jr.options.popover.defaultArrowClass}},autoHide:{type:Boolean,default:function(){return Jr.options.popover.defaultAutoHide}},handleResize:{type:Boolean,default:function(){return Jr.options.popover.defaultHandleResize}},openGroup:{type:String,default:null},openClass:{type:[String,Array],default:function(){return Jr.options.popover.defaultOpenClass}}},data:function(){return{isOpen:!1,id:Math.random().toString(36).substr(2,10)}},computed:{cssClass:function(){return c({},this.openClass,this.isOpen)},popoverId:function(){return"popover_".concat(this.id)}},watch:{open:function(e){e?this.show():this.hide()},disabled:function(e,f){e!==f&&(e?this.hide():this.open&&this.show())},container:function(e){if(this.isOpen&&this.popperInstance){var f=this.$refs.popover,t=this.$refs.trigger,n=this.$_findContainer(this.container,t);if(!n)return void console.warn("No container for popover",this);n.appendChild(f),this.popperInstance.scheduleUpdate()}},trigger:function(e){this.$_removeEventListeners(),this.$_addEventListeners()},placement:function(e){var f=this;this.$_updatePopper((function(){f.popperInstance.options.placement=e}))},offset:"$_restartPopper",boundariesElement:"$_restartPopper",popperOptions:{handler:"$_restartPopper",deep:!0}},created:function(){this.$_isDisposed=!1,this.$_mounted=!1,this.$_events=[],this.$_preventOpen=!1},mounted:function(){var e=this.$refs.popover;e.parentNode&&e.parentNode.removeChild(e),this.$_init(),this.open&&this.show()},deactivated:function(){this.hide()},beforeDestroy:function(){this.dispose()},methods:{show:function(){var e=this,f=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=f.event,n=(f.skipDelay,f.force),r=void 0!==n&&n;!r&&this.disabled||(this.$_scheduleShow(t),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame((function(){e.$_beingShowed=!1}))},hide:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.event;e.skipDelay;this.$_scheduleHide(f),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var e=this.$refs.popover;e.parentNode&&e.parentNode.removeChild(e)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){-1===this.trigger.indexOf("manual")&&this.$_addEventListeners()},$_show:function(){var e=this,f=this.$refs.trigger,t=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var r=this.$_findContainer(this.container,f);if(!r)return void console.warn("No container for popover",this);r.appendChild(t),this.$_mounted=!0}if(!this.popperInstance){var o=l({},this.popperOptions,{placement:this.placement});if(o.modifiers=l({},o.modifiers,{arrow:l({},o.modifiers&&o.modifiers.arrow,{element:this.$refs.arrow})}),this.offset){var i=this.$_getOffset();o.modifiers.offset=l({},o.modifiers&&o.modifiers.offset,{offset:i})}this.boundariesElement&&(o.modifiers.preventOverflow=l({},o.modifiers&&o.modifiers.preventOverflow,{boundariesElement:this.boundariesElement})),this.popperInstance=new n["a"](f,t,o),requestAnimationFrame((function(){if(e.hidden)return e.hidden=!1,void e.$_hide();!e.$_isDisposed&&e.popperInstance?(e.popperInstance.scheduleUpdate(),requestAnimationFrame((function(){if(e.hidden)return e.hidden=!1,void e.$_hide();e.$_isDisposed?e.dispose():e.isOpen=!0}))):e.dispose()}))}var a=this.openGroup;if(a)for(var s,c=0;c<so.length;c++)s=so[c],s.openGroup!==a&&(s.hide(),s.$emit("close-group"));so.push(this),this.$emit("apply-show")}},$_hide:function(){var e=this;if(this.isOpen){var f=so.indexOf(this);-1!==f&&so.splice(f,1),this.isOpen=!1,this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this.$_disposeTimer);var t=Jr.options.popover.disposeTimeout||Jr.options.disposeTimeout;null!==t&&(this.$_disposeTimer=setTimeout((function(){var f=e.$refs.popover;f&&(f.parentNode&&f.parentNode.removeChild(f),e.$_mounted=!1)}),t)),this.$emit("apply-hide")}},$_findContainer:function(e,f){return"string"===typeof e?e=window.document.querySelector(e):!1===e&&(e=f.parentNode),e},$_getOffset:function(){var e=o(this.offset),f=this.offset;return("number"===e||"string"===e&&-1===f.indexOf(","))&&(f="0, ".concat(f)),f},$_addEventListeners:function(){var e=this,f=this.$refs.trigger,t=[],n=[],r="string"===typeof this.trigger?this.trigger.split(" ").filter((function(e){return-1!==["click","hover","focus"].indexOf(e)})):[];r.forEach((function(e){switch(e){case"hover":t.push("mouseenter"),n.push("mouseleave");break;case"focus":t.push("focus"),n.push("blur");break;case"click":t.push("click"),n.push("click");break}})),t.forEach((function(t){var n=function(f){e.isOpen||(f.usedByTooltip=!0,!e.$_preventOpen&&e.show({event:f}),e.hidden=!1)};e.$_events.push({event:t,func:n}),f.addEventListener(t,n)})),n.forEach((function(t){var n=function(f){f.usedByTooltip||(e.hide({event:f}),e.hidden=!0)};e.$_events.push({event:t,func:n}),f.addEventListener(t,n)}))},$_scheduleShow:function(){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),e)this.$_show();else{var f=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),f)}},$_scheduleHide:function(){var e=this,f=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),t)this.$_hide();else{var n=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout((function(){if(e.isOpen){if(f&&"mouseleave"===f.type){var t=e.$_setTooltipNodeEvent(f);if(t)return}e.$_hide()}}),n)}},$_setTooltipNodeEvent:function(e){var f=this,t=this.$refs.trigger,n=this.$refs.popover,r=e.relatedreference||e.toElement||e.relatedTarget,o=function r(o){var i=o.relatedreference||o.toElement||o.relatedTarget;n.removeEventListener(e.type,r),t.contains(i)||f.hide({event:o})};return!!n.contains(r)&&(n.addEventListener(e.type,o),!0)},$_removeEventListeners:function(){var e=this.$refs.trigger;this.$_events.forEach((function(f){var t=f.func,n=f.event;e.removeEventListener(n,t)})),this.$_events=[]},$_updatePopper:function(e){this.popperInstance&&(e(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var e=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),e&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(e){var f=this,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.$_beingShowed||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),t&&(this.$_preventOpen=!0,setTimeout((function(){f.$_preventOpen=!1}),300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};function uo(e){ho(e)}function po(e){ho(e,!0)}function ho(e){for(var f=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=function(t){var n=so[t];if(n.$refs.popover){var r=n.$refs.popover.contains(e.target);requestAnimationFrame((function(){(e.closeAllPopover||e.closePopover&&r||n.autoHide&&!r)&&n.$_handleGlobalClose(e,f)}))}},n=0;n<so.length;n++)t(n)}function go(e,f,t,n,r,o,i,a,s,c){"boolean"!==typeof i&&(s=a,a=i,i=!1);const d="function"===typeof t?t.options:t;let l;if(e&&e.render&&(d.render=e.render,d.staticRenderFns=e.staticRenderFns,d._compiled=!0,r&&(d.functional=!0)),n&&(d._scopeId=n),o?(l=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),f&&f.call(this,s(e)),e&&e._registeredComponents&&e._registeredComponents.add(o)},d._ssrRegister=l):f&&(l=i?function(e){f.call(this,c(e,this.$root.$options.shadowRoot))}:function(e){f.call(this,a(e))}),l)if(d.functional){const e=d.render;d.render=function(f,t){return l.call(t),e(f,t)}}else{const e=d.beforeCreate;d.beforeCreate=e?[].concat(e,l):[l]}return t}"undefined"!==typeof document&&"undefined"!==typeof window&&(ao?document.addEventListener("touchend",po,!m||{passive:!0,capture:!0}):window.addEventListener("click",uo,!0));var mo=lo,bo=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{staticClass:"v-popover",class:e.cssClass},[t("div",{ref:"trigger",staticClass:"trigger",staticStyle:{display:"inline-block"},attrs:{"aria-describedby":e.popoverId,tabindex:-1!==e.trigger.indexOf("focus")?0:void 0}},[e._t("default")],2),e._v(" "),t("div",{ref:"popover",class:[e.popoverBaseClass,e.popoverClass,e.cssClass],style:{visibility:e.isOpen?"visible":"hidden"},attrs:{id:e.popoverId,"aria-hidden":e.isOpen?"false":"true",tabindex:e.autoHide?0:void 0},on:{keyup:function(f){if(!f.type.indexOf("key")&&e._k(f.keyCode,"esc",27,f.key,["Esc","Escape"]))return null;e.autoHide&&e.hide()}}},[t("div",{class:e.popoverWrapperClass},[t("div",{ref:"inner",class:e.popoverInnerClass,staticStyle:{position:"relative"}},[t("div",[e._t("popover")],2),e._v(" "),e.handleResize?t("ResizeObserver",{on:{notify:e.$_handleResize}}):e._e()],1),e._v(" "),t("div",{ref:"arrow",class:e.popoverArrowClass})])])])},vo=[];bo._withStripped=!0;var _o=void 0,wo=void 0,yo=void 0,xo=!1,ko=go({render:bo,staticRenderFns:vo},_o,mo,wo,xo,yo,!1,void 0,void 0,void 0),Mo=function(){try{var e=qe(Object,"defineProperty");return e({},"",{}),e}catch(na){}}(),Co=Mo;function jo(e,f,t){"__proto__"==f&&Co?Co(e,f,{configurable:!0,enumerable:!0,value:t,writable:!0}):e[f]=t}var To=jo;function Io(e,f,t){(void 0!==t&&!y(e[f],t)||void 0===t&&!(f in e))&&To(e,f,t)}var Lo=Io;function Ao(e){return function(f,t,n){var r=-1,o=Object(f),i=n(f),a=i.length;while(a--){var s=i[e?a:++r];if(!1===t(o[s],s,o))break}return f}}var No=Ao,So=No(),Eo=So,Oo=H((function(e,f){var t=f&&!f.nodeType&&f,n=t&&e&&!e.nodeType&&e,r=n&&n.exports===t,o=r?V.Buffer:void 0,i=o?o.allocUnsafe:void 0;function a(e,f){if(f)return e.slice();var t=e.length,n=i?i(t):new e.constructor(t);return e.copy(n),n}e.exports=a}));function zo(e){var f=new e.constructor(e.byteLength);return new Vf(f).set(new Vf(e)),f}var Do=zo;function Po(e,f){var t=f?Do(e.buffer):e.buffer;return new e.constructor(t,e.byteOffset,e.length)}var Bo=Po;function Uo(e,f){var t=-1,n=e.length;f||(f=Array(n));while(++t<n)f[t]=e[t];return f}var Ro=Uo,$o=Object.create,Fo=function(){function e(){}return function(f){if(!ge(f))return{};if($o)return $o(f);e.prototype=f;var t=new e;return e.prototype=void 0,t}}(),qo=Fo,Zo=qn(Object.getPrototypeOf,Object),Ho=Zo;function Wo(e){return"function"!=typeof e.constructor||$n(e)?{}:qo(Ho(e))}var Go=Wo;function Qo(e){return Dt(e)&&Xn(e)}var Yo=Qo,Vo="[object Object]",Xo=Function.prototype,Jo=Object.prototype,Ko=Xo.toString,ei=Jo.hasOwnProperty,fi=Ko.call(Object);function ti(e){if(!Dt(e)||pe(e)!=Vo)return!1;var f=Ho(e);if(null===f)return!0;var t=ei.call(f,"constructor")&&f.constructor;return"function"==typeof t&&t instanceof t&&Ko.call(t)==fi}var ni=ti;function ri(e,f){if(("constructor"!==f||"function"!==typeof e[f])&&"__proto__"!=f)return e[f]}var oi=ri,ii=Object.prototype,ai=ii.hasOwnProperty;function si(e,f,t){var n=e[f];ai.call(e,f)&&y(n,t)&&(void 0!==t||f in e)||To(e,f,t)}var ci=si;function di(e,f,t,n){var r=!t;t||(t={});var o=-1,i=f.length;while(++o<i){var a=f[o],s=n?n(t[a],e[a],a,t,e):void 0;void 0===s&&(s=e[a]),r?To(t,a,s):ci(t,a,s)}return t}var li=di;function ui(e){var f=[];if(null!=e)for(var t in Object(e))f.push(t);return f}var pi=ui,hi=Object.prototype,gi=hi.hasOwnProperty;function mi(e){if(!ge(e))return pi(e);var f=$n(e),t=[];for(var n in e)("constructor"!=n||!f&&gi.call(e,n))&&t.push(n);return t}var bi=mi;function vi(e){return Xn(e)?Bn(e,!0):bi(e)}var _i=vi;function wi(e){return li(e,_i(e))}var yi=wi;function xi(e,f,t,n,r,o,i){var a=oi(e,t),s=oi(f,t),c=i.get(s);if(c)Lo(e,t,c);else{var d=o?o(a,s,t+"",e,f,i):void 0,l=void 0===d;if(l){var u=yt(s),p=!u&&Gt(s),h=!u&&!p&&On(s);d=s,u||p||h?yt(a)?d=a:Yo(a)?d=Ro(a):p?(l=!1,d=Oo(s,!0)):h?(l=!1,d=Bo(s,!0)):d=[]:ni(s)||Zt(s)?(d=a,Zt(a)?d=yi(a):ge(a)&&!ye(a)||(d=Go(s))):l=!1}l&&(i.set(s,d),r(d,s,n,o,i),i["delete"](s)),Lo(e,t,d)}}var ki=xi;function Mi(e,f,t,n,r){e!==f&&Eo(f,(function(o,i){if(r||(r=new Ef),ge(o))ki(e,f,i,t,Mi,n,r);else{var a=n?n(oi(e,i),o,i+"",e,f,r):void 0;void 0===a&&(a=o),Lo(e,i,a)}}),_i)}var Ci=Mi;function ji(e){return e}var Ti=ji;function Ii(e,f,t){switch(t.length){case 0:return e.call(f);case 1:return e.call(f,t[0]);case 2:return e.call(f,t[0],t[1]);case 3:return e.call(f,t[0],t[1],t[2])}return e.apply(f,t)}var Li=Ii,Ai=Math.max;function Ni(e,f,t){return f=Ai(void 0===f?e.length-1:f,0),function(){var n=arguments,r=-1,o=Ai(n.length-f,0),i=Array(o);while(++r<o)i[r]=n[f+r];r=-1;var a=Array(f+1);while(++r<f)a[r]=n[r];return a[f]=t(i),Li(e,this,a)}}var Si=Ni;function Ei(e){return function(){return e}}var Oi=Ei,zi=Co?function(e,f){return Co(e,"toString",{configurable:!0,enumerable:!1,value:Oi(f),writable:!0})}:Ti,Di=zi,Pi=800,Bi=16,Ui=Date.now;function Ri(e){var f=0,t=0;return function(){var n=Ui(),r=Bi-(n-t);if(t=n,r>0){if(++f>=Pi)return arguments[0]}else f=0;return e.apply(void 0,arguments)}}var $i=Ri,Fi=$i(Di),qi=Fi;function Zi(e,f){return qi(Si(e,f,Ti),e+"")}var Hi=Zi;function Wi(e,f,t){if(!ge(t))return!1;var n=typeof f;return!!("number"==n?Xn(t)&&Xt(f,t.length):"string"==n&&f in t)&&y(t[f],e)}var Gi=Wi;function Qi(e){return Hi((function(f,t){var n=-1,r=t.length,o=r>1?t[r-1]:void 0,i=r>2?t[2]:void 0;o=e.length>3&&"function"==typeof o?(r--,o):void 0,i&&Gi(t[0],t[1],i)&&(o=r<3?void 0:o,r=1),f=Object(f);while(++n<r){var a=t[n];a&&e(f,a,n,o)}return f}))}var Yi=Qi,Vi=Yi((function(e,f,t){Ci(e,f,t)})),Xi=Vi;function Ji(e,f){void 0===f&&(f={});var t=f.insertAt;if(e&&"undefined"!==typeof document){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===t&&n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}var Ki=".resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}";function ea(e){var f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!ea.installed){ea.installed=!0;var t={};Xi(t,Hr,f),fa.options=t,Jr.options=t,e.directive("tooltip",Jr),e.directive("close-popover",oo),e.component("v-popover",ko)}}Ji(Ki);var fa={install:ea,get enabled(){return qr.enabled},set enabled(e){qr.enabled=e}},ta=null;"undefined"!==typeof window?ta=window.Vue:"undefined"!==typeof e&&(ta=e.Vue),ta&&ta.use(fa),f["a"]=fa}).call(this,t("c8ba"))},e644:function(e,f,t){var n=t("9c1d");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("58aff0b6",n,!0,{sourceMap:!1,shadowMode:!1})},e667:function(e,f){e.exports=function(e){try{return{error:!1,value:e()}}catch(f){return{error:!0,value:f}}}},e6cf:function(e,f,t){"use strict";var n,r,o,i,a=t("23e7"),s=t("c430"),c=t("da84"),d=t("d066"),l=t("fea9"),u=t("6eeb"),p=t("e2cc"),h=t("d44e"),g=t("2626"),m=t("861d"),b=t("1c0b"),v=t("19aa"),_=t("c6b6"),w=t("8925"),y=t("2266"),x=t("1c7e"),k=t("4840"),M=t("2cf4").set,C=t("b575"),j=t("cdf9"),T=t("44de"),I=t("f069"),L=t("e667"),A=t("69f3"),N=t("94ca"),S=t("b622"),E=t("2d00"),O=S("species"),z="Promise",D=A.get,P=A.set,B=A.getterFor(z),U=l,R=c.TypeError,$=c.document,F=c.process,q=d("fetch"),Z=I.f,H=Z,W="process"==_(F),G=!!($&&$.createEvent&&c.dispatchEvent),Q="unhandledrejection",Y="rejectionhandled",V=0,X=1,J=2,K=1,ee=2,fe=N(z,(function(){var e=w(U)!==String(U);if(!e){if(66===E)return!0;if(!W&&"function"!=typeof PromiseRejectionEvent)return!0}if(s&&!U.prototype["finally"])return!0;if(E>=51&&/native code/.test(U))return!1;var f=U.resolve(1),t=function(e){e((function(){}),(function(){}))},n=f.constructor={};return n[O]=t,!(f.then((function(){}))instanceof t)})),te=fe||!x((function(e){U.all(e)["catch"]((function(){}))})),ne=function(e){var f;return!(!m(e)||"function"!=typeof(f=e.then))&&f},re=function(e,f,t){if(!f.notified){f.notified=!0;var n=f.reactions;C((function(){var r=f.value,o=f.state==X,i=0;while(n.length>i){var a,s,c,d=n[i++],l=o?d.ok:d.fail,u=d.resolve,p=d.reject,h=d.domain;try{l?(o||(f.rejection===ee&&se(e,f),f.rejection=K),!0===l?a=r:(h&&h.enter(),a=l(r),h&&(h.exit(),c=!0)),a===d.promise?p(R("Promise-chain cycle")):(s=ne(a))?s.call(a,u,p):u(a)):p(r)}catch(g){h&&!c&&h.exit(),p(g)}}f.reactions=[],f.notified=!1,t&&!f.rejection&&ie(e,f)}))}},oe=function(e,f,t){var n,r;G?(n=$.createEvent("Event"),n.promise=f,n.reason=t,n.initEvent(e,!1,!0),c.dispatchEvent(n)):n={promise:f,reason:t},(r=c["on"+e])?r(n):e===Q&&T("Unhandled promise rejection",t)},ie=function(e,f){M.call(c,(function(){var t,n=f.value,r=ae(f);if(r&&(t=L((function(){W?F.emit("unhandledRejection",n,e):oe(Q,e,n)})),f.rejection=W||ae(f)?ee:K,t.error))throw t.value}))},ae=function(e){return e.rejection!==K&&!e.parent},se=function(e,f){M.call(c,(function(){W?F.emit("rejectionHandled",e):oe(Y,e,f.value)}))},ce=function(e,f,t,n){return function(r){e(f,t,r,n)}},de=function(e,f,t,n){f.done||(f.done=!0,n&&(f=n),f.value=t,f.state=J,re(e,f,!0))},le=function(e,f,t,n){if(!f.done){f.done=!0,n&&(f=n);try{if(e===t)throw R("Promise can't be resolved itself");var r=ne(t);r?C((function(){var n={done:!1};try{r.call(t,ce(le,e,n,f),ce(de,e,n,f))}catch(o){de(e,n,o,f)}})):(f.value=t,f.state=X,re(e,f,!1))}catch(o){de(e,{done:!1},o,f)}}};fe&&(U=function(e){v(this,U,z),b(e),n.call(this);var f=D(this);try{e(ce(le,this,f),ce(de,this,f))}catch(t){de(this,f,t)}},n=function(e){P(this,{type:z,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:V,value:void 0})},n.prototype=p(U.prototype,{then:function(e,f){var t=B(this),n=Z(k(this,U));return n.ok="function"!=typeof e||e,n.fail="function"==typeof f&&f,n.domain=W?F.domain:void 0,t.parent=!0,t.reactions.push(n),t.state!=V&&re(this,t,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),r=function(){var e=new n,f=D(e);this.promise=e,this.resolve=ce(le,e,f),this.reject=ce(de,e,f)},I.f=Z=function(e){return e===U||e===o?new r(e):H(e)},s||"function"!=typeof l||(i=l.prototype.then,u(l.prototype,"then",(function(e,f){var t=this;return new U((function(e,f){i.call(t,e,f)})).then(e,f)}),{unsafe:!0}),"function"==typeof q&&a({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return j(U,q.apply(c,arguments))}}))),a({global:!0,wrap:!0,forced:fe},{Promise:U}),h(U,z,!1,!0),g(z),o=d(z),a({target:z,stat:!0,forced:fe},{reject:function(e){var f=Z(this);return f.reject.call(void 0,e),f.promise}}),a({target:z,stat:!0,forced:s||fe},{resolve:function(e){return j(s&&this===o?U:this,e)}}),a({target:z,stat:!0,forced:te},{all:function(e){var f=this,t=Z(f),n=t.resolve,r=t.reject,o=L((function(){var t=b(f.resolve),o=[],i=0,a=1;y(e,(function(e){var s=i++,c=!1;o.push(void 0),a++,t.call(f,e).then((function(e){c||(c=!0,o[s]=e,--a||n(o))}),r)})),--a||n(o)}));return o.error&&r(o.value),t.promise},race:function(e){var f=this,t=Z(f),n=t.reject,r=L((function(){var r=b(f.resolve);y(e,(function(e){r.call(f,e).then(t.resolve,n)}))}));return r.error&&n(r.value),t.promise}})},e893:function(e,f,t){var n=t("5135"),r=t("56ef"),o=t("06cf"),i=t("9bf2");e.exports=function(e,f){for(var t=r(f),a=i.f,s=o.f,c=0;c<t.length;c++){var d=t[c];n(e,d)||a(e,d,s(f,d))}}},e8b5:function(e,f,t){var n=t("c6b6");e.exports=Array.isArray||function(e){return"Array"==n(e)}},e95a:function(e,f,t){var n=t("b622"),r=t("3f8c"),o=n("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},eca5:function(e,f,t){"use strict";var n=t("9e3a"),r=t.n(n);r.a},edbf:function(e,f,t){"use strict";(function(t){(function(){var t=this,n=t.EmojiConvertor,r=function(){var e=this;return e.img_set="apple",e.img_sets={apple:{path:"/emoji-data/img-apple-64/",sheet:"/emoji-data/sheet_apple_64.png",sheet_size:64,mask:1},google:{path:"/emoji-data/img-google-64/",sheet:"/emoji-data/sheet_google_64.png",sheet_size:64,mask:2},twitter:{path:"/emoji-data/img-twitter-64/",sheet:"/emoji-data/sheet_twitter_64.png",sheet_size:64,mask:4},facebook:{path:"/emoji-data/img-facebook-64/",sheet:"/emoji-data/sheet_facebook_64.png",sheet_size:64,mask:8},messenger:{path:"/emoji-data/img-messenger-64/",sheet:"/emoji-data/sheet_messenger_64.png",sheet_size:64,mask:16}},e.use_css_imgs=!1,e.colons_mode=!1,e.text_mode=!1,e.include_title=!1,e.include_text=!1,e.allow_native=!0,e.wrap_native=!1,e.use_sheet=!1,e.avoid_ms_emoji=!0,e.allow_caps=!1,e.img_suffix="",e.inits={},e.map={},e.init_env(),e};r.prototype.noConflict=function(){return t.EmojiConvertor=n,r},r.prototype.replace_emoticons=function(e){var f=this,t=f.replace_emoticons_with_colons(e);return f.replace_colons(t)},r.prototype.replace_emoticons_with_colons=function(e){var f=this;f.init_emoticons();var t=0,n=[],r=e.replace(f.rx_emoticons,(function(r,o,i,a){var s=t;t=a+r.length;var c=-1!==i.indexOf("("),d=-1!==i.indexOf(")");if((c||d)&&-1==n.indexOf(i)&&n.push(i),d&&!c){var l=e.substring(s,a);if(-1!==l.indexOf("(")&&-1===l.indexOf(")"))return r}if("\n8)"===r){var u=e.substring(0,a);if(/\n?(6\)|7\))/.test(u))return r}var p=f.data[f.map.emoticons[i]][3][0];return p?o+":"+p+":":r}));if(n.length){var o=n.map(f.escape_rx),i=new RegExp("(\\(.+)("+o.join("|")+")(.+\\))","g");r=r.replace(i,(function(e,t,n,r){var o=f.data[f.map.emoticons[n]][3][0];return o?t+":"+o+":"+r:e}))}return r},r.prototype.replace_colons=function(e){var f=this;return f.init_colons(),e.replace(f.rx_colons,(function(e){var t=e.substr(1,e.length-2);if(f.allow_caps&&(t=t.toLowerCase()),t.indexOf("::skin-tone-")>-1){var n=t.substr(-1,1),r="skin-tone-"+n,o=f.map.colons[r];t=t.substr(0,t.length-13);var i=f.map.colons[t];return i?f.replacement(i,t,":",{idx:o,actual:r,wrapper:":"}):":"+t+":"+f.replacement(o,r,":")}i=f.map.colons[t];return i?f.replacement(i,t,":"):e}))},r.prototype.replace_unified=function(e){var f=this;return f.init_unified(),e.replace(f.rx_unified,(function(e,t,n){var r=f.map.unified[t];if(r){var o=null;return"🏻"==n&&(o="1f3fb"),"🏼"==n&&(o="1f3fc"),"🏽"==n&&(o="1f3fd"),"🏾"==n&&(o="1f3fe"),"🏿"==n&&(o="1f3ff"),o?f.replacement(r,null,null,{idx:o,actual:n,wrapper:""}):f.replacement(r)}return r=f.map.unified_vars[t],r?f.replacement(r[0],null,null,{idx:r[1],actual:"",wrapper:""}):e}))},r.prototype.addAliases=function(e){var f=this;for(var t in f.init_colons(),e)f.map.colons[t]=e[t]},r.prototype.removeAliases=function(e){for(var f=this,t=0;t<e.length;t++){var n=e[t];delete f.map.colons[n];e:for(var r in f.data)for(var o=0;o<f.data[r][3].length;o++)if(n==f.data[r][3][o]){f.map.colons[n]=r;break e}}},r.prototype.replacement=function(e,f,t,n,r){var o=this,i="",a=null;if("object"===typeof n&&(i=o.replacement(n.idx,n.actual,n.wrapper,void 0,!0),a=n.idx),t=t||"",o.colons_mode)return":"+o.data[e][3][0]+":"+i;var s=f?t+f+t:o.data[e][8]||t+o.data[e][3][0]+t;if(o.text_mode)return s+i;var c=o.find_image(e,a);if(o.init_env(),"softbank"==o.replace_mode&&o.allow_native&&o.data[e][1])return o.format_native(o.data[e][1]+i,!r);if("google"==o.replace_mode&&o.allow_native&&o.data[e][2])return o.format_native(o.data[e][2]+i,!r);if(c.is_var&&(i=""),"unified"==o.replace_mode&&o.allow_native)return o.format_native(c.unified+i,!r);var d=o.include_title?' title="'+(f||o.data[e][3][0])+'"':"",l=o.include_text?t+(f||o.data[e][3][0])+t:"";if(o.data[e][7]&&(c.path=o.data[e][7],c.px=null,c.py=null,c.is_var=!1),c.is_var&&o.include_text&&n&&n.actual&&n.wrapper&&(l+=n.wrapper+n.actual+n.wrapper),o.supports_css){if(o.use_sheet&&null!=c.px&&null!=c.py){var u=o.sheet_size*(c.sheet_size+2),p=(c.px*(c.sheet_size+2)+1)/(u-c.sheet_size)*100,h=(c.py*(c.sheet_size+2)+1)/(u-c.sheet_size)*100,g=u/c.sheet_size*100,m="background: url("+c.sheet+");background-position:"+p+"% "+h+"%;background-size:"+g+"% "+g+"%";return'<span class="emoji-outer emoji-sizer"><span class="emoji-inner" style="'+m+'"'+d+' data-codepoints="'+c.full_idx+'">'+l+"</span></span>"+i}return o.use_css_imgs?'<span class="emoji emoji-'+e+'"'+d+' data-codepoints="'+c.full_idx+'">'+l+"</span>"+i:'<span class="emoji emoji-sizer" style="background-image:url('+c.path+')"'+d+' data-codepoints="'+c.full_idx+'">'+l+"</span>"+i}return'<img src="'+c.path+'" class="emoji" data-codepoints="'+c.full_idx+'" '+d+"/>"+i},r.prototype.format_native=function(e,f){var t=this;return t.wrap_native&&f?'<span class="emoji-native">'+e+"</span>":e},r.prototype.find_image=function(e,f){var t=this,n={path:"",sheet:"",sheet_size:0,px:t.data[e][4],py:t.data[e][5],full_idx:e,is_var:!1,unified:t.data[e][0][0]},r=t.data[e][6];if(f&&t.variations_data[e]&&t.variations_data[e][f]){var o=t.variations_data[e][f];n.px=o[1],n.py=o[2],n.full_idx=o[0],n.is_var=!0,n.unified=o[4],r=o[3]}for(var i=[t.img_set,"apple","google","twitter","facebook","messenger"],a=0;a<i.length;a++){if(r&t.img_sets[i[a]].mask)return n.path=t.img_sets[i[a]].path+n.full_idx+".png"+t.img_suffix,n.sheet=t.img_sets[t.img_set].sheet,n.sheet_size=t.img_sets[t.img_set].sheet_size,n;if(t.obsoletes_data[n.full_idx]){var s=t.obsoletes_data[n.full_idx];if(s[3]&t.img_sets[i[a]].mask)return n.path=t.img_sets[i[a]].path+s[0]+".png"+t.img_suffix,n.sheet=t.img_sets[i[a]].sheet,n.sheet_size=t.img_sets[i[a]].sheet_size,n.px=s[1],n.py=s[2],n}}return n},r.prototype.init_emoticons=function(){var e=this;if(!e.inits.emoticons){e.init_colons(),e.inits.emoticons=1;var f=[];for(var t in e.map.emoticons={},e.emoticons_data){var n=t.replace(/\&/g,"&amp;").replace(/\</g,"&lt;").replace(/\>/g,"&gt;");e.map.colons[e.emoticons_data[t]]&&(e.map.emoticons[n]=e.map.colons[e.emoticons_data[t]],f.push(e.escape_rx(n)))}e.rx_emoticons=new RegExp("(^|\\s)("+f.join("|")+")(?=$|[\\s|\\?\\.,!])","g")}},r.prototype.init_colons=function(){var e=this;if(!e.inits.colons)for(var f in e.inits.colons=1,e.rx_colons=new RegExp(":[a-zA-Z0-9-_+]+:(:skin-tone-[2-6]:)?","g"),e.map.colons={},e.data)for(var t=0;t<e.data[f][3].length;t++)e.map.colons[e.data[f][3][t]]=f},r.prototype.init_unified=function(){var e=this;if(!e.inits.unified){e.inits.unified=1;var f=[];for(var t in e.map.unified={},e.map.unified_vars={},e.data)for(var n=0;n<e.data[t][0].length;n++)f.push(e.data[t][0][n].replace("*","\\*")),e.map.unified[e.data[t][0][n]]=t;for(var t in e.variations_data)if(e.variations_data[t]["1f3fb"][0]!=t+"-1f3fb")for(var r in e.variations_data[t])for(n=0;n<e.variations_data[t][r][4].length;n++)f.push(e.variations_data[t][r][4][n].replace("*","\\*")),e.map.unified_vars[e.variations_data[t][r][4][n]]=[t,r];f=f.sort((function(e,f){return f.length-e.length})),e.rx_unified=new RegExp("("+f.join("|")+")(\ud83c[\udffb-\udfff])?","g")}},r.prototype.init_env=function(){var e=this;if(!e.inits.env){if(e.inits.env=1,e.replace_mode="img",e.supports_css=!1,"undefined"!==typeof navigator){var f=navigator.userAgent;if("undefined"!==typeof window&&window.getComputedStyle)try{var t=window.getComputedStyle(document.body);(t["background-size"]||t["backgroundSize"])&&(e.supports_css=!0)}catch(n){f.match(/Firefox/i)&&(e.supports_css=!0)}if(navigator.product.match(/ReactNative/i))return void(e.replace_mode="unified");if(f.match(/(iPhone|iPod|iPad|iPhone\s+Simulator)/i)){if(f.match(/OS\s+[12345]/i))return void(e.replace_mode="softbank");if(f.match(/OS\s+[6789]/i))return void(e.replace_mode="unified")}if(f.match(/Mac OS X 10[._ ](?:[789]|1\d)/i))return void(e.replace_mode="unified");if(!e.avoid_ms_emoji&&(f.match(/Windows NT 6.[1-9]/i)||f.match(/Windows NT 10.[0-9]/i))&&!f.match(/Chrome/i)&&!f.match(/MSIE 8/i))return void(e.replace_mode="unified")}0,e.supports_css&&(e.replace_mode="css")}},r.prototype.escape_rx=function(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},r.prototype.sheet_size=52,r.prototype.data={"0023-fe0f-20e3":[["#️⃣","#⃣"],"","󾠬",["hash"],0,0,7,0],"002a-fe0f-20e3":[["*️⃣","*⃣"],"","",["keycap_star"],0,1,7,0],"0030-fe0f-20e3":[["0️⃣","0⃣"],"","󾠷",["zero"],0,2,7,0],"0031-fe0f-20e3":[["1️⃣","1⃣"],"","󾠮",["one"],0,3,7,0],"0032-fe0f-20e3":[["2️⃣","2⃣"],"","󾠯",["two"],0,4,7,0],"0033-fe0f-20e3":[["3️⃣","3⃣"],"","󾠰",["three"],0,5,7,0],"0034-fe0f-20e3":[["4️⃣","4⃣"],"","󾠱",["four"],0,6,7,0],"0035-fe0f-20e3":[["5️⃣","5⃣"],"","󾠲",["five"],0,7,7,0],"0036-fe0f-20e3":[["6️⃣","6⃣"],"","󾠳",["six"],0,8,7,0],"0037-fe0f-20e3":[["7️⃣","7⃣"],"","󾠴",["seven"],0,9,7,0],"0038-fe0f-20e3":[["8️⃣","8⃣"],"","󾠵",["eight"],0,10,7,0],"0039-fe0f-20e3":[["9️⃣","9⃣"],"","󾠶",["nine"],0,11,7,0],"00a9-fe0f":[["©️","©"],"","󾬩",["copyright"],0,12,3,0],"00ae-fe0f":[["®️","®"],"","󾬭",["registered"],0,13,3,0],"1f004":[["🀄"],"","󾠋",["mahjong"],0,14,31,0],"1f0cf":[["🃏"],"","󾠒",["black_joker"],0,15,31,0],"1f170-fe0f":[["🅰️","🅰"],"","󾔋",["a"],0,16,31,0],"1f171-fe0f":[["🅱️","🅱"],"","󾔌",["b"],0,17,31,0],"1f17e-fe0f":[["🅾️","🅾"],"","󾔎",["o2"],0,18,31,0],"1f17f-fe0f":[["🅿️","🅿"],"","󾟶",["parking"],0,19,31,0],"1f18e":[["🆎"],"","󾔍",["ab"],0,20,31,0],"1f191":[["🆑"],"","󾮄",["cl"],0,21,31,0],"1f192":[["🆒"],"","󾬸",["cool"],0,22,31,0],"1f193":[["🆓"],"","󾬡",["free"],0,23,31,0],"1f194":[["🆔"],"","󾮁",["id"],0,24,31,0],"1f195":[["🆕"],"","󾬶",["new"],0,25,31,0],"1f196":[["🆖"],"","󾬨",["ng"],0,26,31,0],"1f197":[["🆗"],"","󾬧",["ok"],0,27,31,0],"1f198":[["🆘"],"","󾭏",["sos"],0,28,31,0],"1f199":[["🆙"],"","󾬷",["up"],0,29,31,0],"1f19a":[["🆚"],"","󾬲",["vs"],0,30,31,0],"1f1e6-1f1e8":[["🇦🇨"],"","",["flag-ac"],0,31,31,0],"1f1e6-1f1e9":[["🇦🇩"],"","",["flag-ad"],0,32,31,0],"1f1e6-1f1ea":[["🇦🇪"],"","",["flag-ae"],0,33,31,0],"1f1e6-1f1eb":[["🇦🇫"],"","",["flag-af"],0,34,31,0],"1f1e6-1f1ec":[["🇦🇬"],"","",["flag-ag"],0,35,31,0],"1f1e6-1f1ee":[["🇦🇮"],"","",["flag-ai"],0,36,31,0],"1f1e6-1f1f1":[["🇦🇱"],"","",["flag-al"],0,37,31,0],"1f1e6-1f1f2":[["🇦🇲"],"","",["flag-am"],0,38,31,0],"1f1e6-1f1f4":[["🇦🇴"],"","",["flag-ao"],0,39,31,0],"1f1e6-1f1f6":[["🇦🇶"],"","",["flag-aq"],0,40,31,0],"1f1e6-1f1f7":[["🇦🇷"],"","",["flag-ar"],0,41,31,0],"1f1e6-1f1f8":[["🇦🇸"],"","",["flag-as"],0,42,31,0],"1f1e6-1f1f9":[["🇦🇹"],"","",["flag-at"],0,43,31,0],"1f1e6-1f1fa":[["🇦🇺"],"","",["flag-au"],0,44,31,0],"1f1e6-1f1fc":[["🇦🇼"],"","",["flag-aw"],0,45,31,0],"1f1e6-1f1fd":[["🇦🇽"],"","",["flag-ax"],0,46,31,0],"1f1e6-1f1ff":[["🇦🇿"],"","",["flag-az"],0,47,31,0],"1f1e7-1f1e6":[["🇧🇦"],"","",["flag-ba"],0,48,15,0],"1f1e7-1f1e7":[["🇧🇧"],"","",["flag-bb"],0,49,31,0],"1f1e7-1f1e9":[["🇧🇩"],"","",["flag-bd"],0,50,31,0],"1f1e7-1f1ea":[["🇧🇪"],"","",["flag-be"],0,51,31,0],"1f1e7-1f1eb":[["🇧🇫"],"","",["flag-bf"],1,0,31,0],"1f1e7-1f1ec":[["🇧🇬"],"","",["flag-bg"],1,1,31,0],"1f1e7-1f1ed":[["🇧🇭"],"","",["flag-bh"],1,2,31,0],"1f1e7-1f1ee":[["🇧🇮"],"","",["flag-bi"],1,3,31,0],"1f1e7-1f1ef":[["🇧🇯"],"","",["flag-bj"],1,4,31,0],"1f1e7-1f1f1":[["🇧🇱"],"","",["flag-bl"],1,5,29,0],"1f1e7-1f1f2":[["🇧🇲"],"","",["flag-bm"],1,6,31,0],"1f1e7-1f1f3":[["🇧🇳"],"","",["flag-bn"],1,7,15,0],"1f1e7-1f1f4":[["🇧🇴"],"","",["flag-bo"],1,8,31,0],"1f1e7-1f1f6":[["🇧🇶"],"","",["flag-bq"],1,9,29,0],"1f1e7-1f1f7":[["🇧🇷"],"","",["flag-br"],1,10,31,0],"1f1e7-1f1f8":[["🇧🇸"],"","",["flag-bs"],1,11,31,0],"1f1e7-1f1f9":[["🇧🇹"],"","",["flag-bt"],1,12,31,0],"1f1e7-1f1fb":[["🇧🇻"],"","",["flag-bv"],1,13,31,0],"1f1e7-1f1fc":[["🇧🇼"],"","",["flag-bw"],1,14,31,0],"1f1e7-1f1fe":[["🇧🇾"],"","",["flag-by"],1,15,31,0],"1f1e7-1f1ff":[["🇧🇿"],"","",["flag-bz"],1,16,31,0],"1f1e8-1f1e6":[["🇨🇦"],"","",["flag-ca"],1,17,31,0],"1f1e8-1f1e8":[["🇨🇨"],"","",["flag-cc"],1,18,31,0],"1f1e8-1f1e9":[["🇨🇩"],"","",["flag-cd"],1,19,31,0],"1f1e8-1f1eb":[["🇨🇫"],"","",["flag-cf"],1,20,31,0],"1f1e8-1f1ec":[["🇨🇬"],"","",["flag-cg"],1,21,31,0],"1f1e8-1f1ed":[["🇨🇭"],"","",["flag-ch"],1,22,31,0],"1f1e8-1f1ee":[["🇨🇮"],"","",["flag-ci"],1,23,31,0],"1f1e8-1f1f0":[["🇨🇰"],"","",["flag-ck"],1,24,31,0],"1f1e8-1f1f1":[["🇨🇱"],"","",["flag-cl"],1,25,31,0],"1f1e8-1f1f2":[["🇨🇲"],"","",["flag-cm"],1,26,31,0],"1f1e8-1f1f3":[["🇨🇳"],"","󾓭",["cn","flag-cn"],1,27,31,0],"1f1e8-1f1f4":[["🇨🇴"],"","",["flag-co"],1,28,31,0],"1f1e8-1f1f5":[["🇨🇵"],"","",["flag-cp"],1,29,15,0],"1f1e8-1f1f7":[["🇨🇷"],"","",["flag-cr"],1,30,31,0],"1f1e8-1f1fa":[["🇨🇺"],"","",["flag-cu"],1,31,31,0],"1f1e8-1f1fb":[["🇨🇻"],"","",["flag-cv"],1,32,31,0],"1f1e8-1f1fc":[["🇨🇼"],"","",["flag-cw"],1,33,31,0],"1f1e8-1f1fd":[["🇨🇽"],"","",["flag-cx"],1,34,31,0],"1f1e8-1f1fe":[["🇨🇾"],"","",["flag-cy"],1,35,31,0],"1f1e8-1f1ff":[["🇨🇿"],"","",["flag-cz"],1,36,31,0],"1f1e9-1f1ea":[["🇩🇪"],"","󾓨",["de","flag-de"],1,37,31,0],"1f1e9-1f1ec":[["🇩🇬"],"","",["flag-dg"],1,38,29,0],"1f1e9-1f1ef":[["🇩🇯"],"","",["flag-dj"],1,39,31,0],"1f1e9-1f1f0":[["🇩🇰"],"","",["flag-dk"],1,40,31,0],"1f1e9-1f1f2":[["🇩🇲"],"","",["flag-dm"],1,41,31,0],"1f1e9-1f1f4":[["🇩🇴"],"","",["flag-do"],1,42,31,0],"1f1e9-1f1ff":[["🇩🇿"],"","",["flag-dz"],1,43,31,0],"1f1ea-1f1e6":[["🇪🇦"],"","",["flag-ea"],1,44,29,0],"1f1ea-1f1e8":[["🇪🇨"],"","",["flag-ec"],1,45,31,0],"1f1ea-1f1ea":[["🇪🇪"],"","",["flag-ee"],1,46,31,0],"1f1ea-1f1ec":[["🇪🇬"],"","",["flag-eg"],1,47,31,0],"1f1ea-1f1ed":[["🇪🇭"],"","",["flag-eh"],1,48,29,0],"1f1ea-1f1f7":[["🇪🇷"],"","",["flag-er"],1,49,31,0],"1f1ea-1f1f8":[["🇪🇸"],"","󾓫",["es","flag-es"],1,50,31,0],"1f1ea-1f1f9":[["🇪🇹"],"","",["flag-et"],1,51,31,0],"1f1ea-1f1fa":[["🇪🇺"],"","",["flag-eu"],2,0,31,0],"1f1eb-1f1ee":[["🇫🇮"],"","",["flag-fi"],2,1,31,0],"1f1eb-1f1ef":[["🇫🇯"],"","",["flag-fj"],2,2,31,0],"1f1eb-1f1f0":[["🇫🇰"],"","",["flag-fk"],2,3,29,0],"1f1eb-1f1f2":[["🇫🇲"],"","",["flag-fm"],2,4,31,0],"1f1eb-1f1f4":[["🇫🇴"],"","",["flag-fo"],2,5,31,0],"1f1eb-1f1f7":[["🇫🇷"],"","󾓧",["fr","flag-fr"],2,6,31,0],"1f1ec-1f1e6":[["🇬🇦"],"","",["flag-ga"],2,7,31,0],"1f1ec-1f1e7":[["🇬🇧"],"","󾓪",["gb","uk","flag-gb"],2,8,31,0],"1f1ec-1f1e9":[["🇬🇩"],"","",["flag-gd"],2,9,31,0],"1f1ec-1f1ea":[["🇬🇪"],"","",["flag-ge"],2,10,31,0],"1f1ec-1f1eb":[["🇬🇫"],"","",["flag-gf"],2,11,29,0],"1f1ec-1f1ec":[["🇬🇬"],"","",["flag-gg"],2,12,31,0],"1f1ec-1f1ed":[["🇬🇭"],"","",["flag-gh"],2,13,31,0],"1f1ec-1f1ee":[["🇬🇮"],"","",["flag-gi"],2,14,31,0],"1f1ec-1f1f1":[["🇬🇱"],"","",["flag-gl"],2,15,31,0],"1f1ec-1f1f2":[["🇬🇲"],"","",["flag-gm"],2,16,31,0],"1f1ec-1f1f3":[["🇬🇳"],"","",["flag-gn"],2,17,31,0],"1f1ec-1f1f5":[["🇬🇵"],"","",["flag-gp"],2,18,29,0],"1f1ec-1f1f6":[["🇬🇶"],"","",["flag-gq"],2,19,31,0],"1f1ec-1f1f7":[["🇬🇷"],"","",["flag-gr"],2,20,31,0],"1f1ec-1f1f8":[["🇬🇸"],"","",["flag-gs"],2,21,29,0],"1f1ec-1f1f9":[["🇬🇹"],"","",["flag-gt"],2,22,31,0],"1f1ec-1f1fa":[["🇬🇺"],"","",["flag-gu"],2,23,31,0],"1f1ec-1f1fc":[["🇬🇼"],"","",["flag-gw"],2,24,31,0],"1f1ec-1f1fe":[["🇬🇾"],"","",["flag-gy"],2,25,31,0],"1f1ed-1f1f0":[["🇭🇰"],"","",["flag-hk"],2,26,31,0],"1f1ed-1f1f2":[["🇭🇲"],"","",["flag-hm"],2,27,31,0],"1f1ed-1f1f3":[["🇭🇳"],"","",["flag-hn"],2,28,31,0],"1f1ed-1f1f7":[["🇭🇷"],"","",["flag-hr"],2,29,31,0],"1f1ed-1f1f9":[["🇭🇹"],"","",["flag-ht"],2,30,31,0],"1f1ed-1f1fa":[["🇭🇺"],"","",["flag-hu"],2,31,31,0],"1f1ee-1f1e8":[["🇮🇨"],"","",["flag-ic"],2,32,31,0],"1f1ee-1f1e9":[["🇮🇩"],"","",["flag-id"],2,33,31,0],"1f1ee-1f1ea":[["🇮🇪"],"","",["flag-ie"],2,34,31,0],"1f1ee-1f1f1":[["🇮🇱"],"","",["flag-il"],2,35,31,0],"1f1ee-1f1f2":[["🇮🇲"],"","",["flag-im"],2,36,31,0],"1f1ee-1f1f3":[["🇮🇳"],"","",["flag-in"],2,37,31,0],"1f1ee-1f1f4":[["🇮🇴"],"","",["flag-io"],2,38,31,0],"1f1ee-1f1f6":[["🇮🇶"],"","",["flag-iq"],2,39,31,0],"1f1ee-1f1f7":[["🇮🇷"],"","",["flag-ir"],2,40,31,0],"1f1ee-1f1f8":[["🇮🇸"],"","",["flag-is"],2,41,31,0],"1f1ee-1f1f9":[["🇮🇹"],"","󾓩",["it","flag-it"],2,42,31,0],"1f1ef-1f1ea":[["🇯🇪"],"","",["flag-je"],2,43,31,0],"1f1ef-1f1f2":[["🇯🇲"],"","",["flag-jm"],2,44,31,0],"1f1ef-1f1f4":[["🇯🇴"],"","",["flag-jo"],2,45,31,0],"1f1ef-1f1f5":[["🇯🇵"],"","󾓥",["jp","flag-jp"],2,46,31,0],"1f1f0-1f1ea":[["🇰🇪"],"","",["flag-ke"],2,47,31,0],"1f1f0-1f1ec":[["🇰🇬"],"","",["flag-kg"],2,48,31,0],"1f1f0-1f1ed":[["🇰🇭"],"","",["flag-kh"],2,49,31,0],"1f1f0-1f1ee":[["🇰🇮"],"","",["flag-ki"],2,50,31,0],"1f1f0-1f1f2":[["🇰🇲"],"","",["flag-km"],2,51,31,0],"1f1f0-1f1f3":[["🇰🇳"],"","",["flag-kn"],3,0,31,0],"1f1f0-1f1f5":[["🇰🇵"],"","",["flag-kp"],3,1,31,0],"1f1f0-1f1f7":[["🇰🇷"],"","󾓮",["kr","flag-kr"],3,2,31,0],"1f1f0-1f1fc":[["🇰🇼"],"","",["flag-kw"],3,3,31,0],"1f1f0-1f1fe":[["🇰🇾"],"","",["flag-ky"],3,4,31,0],"1f1f0-1f1ff":[["🇰🇿"],"","",["flag-kz"],3,5,31,0],"1f1f1-1f1e6":[["🇱🇦"],"","",["flag-la"],3,6,31,0],"1f1f1-1f1e7":[["🇱🇧"],"","",["flag-lb"],3,7,31,0],"1f1f1-1f1e8":[["🇱🇨"],"","",["flag-lc"],3,8,31,0],"1f1f1-1f1ee":[["🇱🇮"],"","",["flag-li"],3,9,31,0],"1f1f1-1f1f0":[["🇱🇰"],"","",["flag-lk"],3,10,31,0],"1f1f1-1f1f7":[["🇱🇷"],"","",["flag-lr"],3,11,31,0],"1f1f1-1f1f8":[["🇱🇸"],"","",["flag-ls"],3,12,31,0],"1f1f1-1f1f9":[["🇱🇹"],"","",["flag-lt"],3,13,31,0],"1f1f1-1f1fa":[["🇱🇺"],"","",["flag-lu"],3,14,31,0],"1f1f1-1f1fb":[["🇱🇻"],"","",["flag-lv"],3,15,31,0],"1f1f1-1f1fe":[["🇱🇾"],"","",["flag-ly"],3,16,31,0],"1f1f2-1f1e6":[["🇲🇦"],"","",["flag-ma"],3,17,31,0],"1f1f2-1f1e8":[["🇲🇨"],"","",["flag-mc"],3,18,31,0],"1f1f2-1f1e9":[["🇲🇩"],"","",["flag-md"],3,19,31,0],"1f1f2-1f1ea":[["🇲🇪"],"","",["flag-me"],3,20,31,0],"1f1f2-1f1eb":[["🇲🇫"],"","",["flag-mf"],3,21,29,0],"1f1f2-1f1ec":[["🇲🇬"],"","",["flag-mg"],3,22,31,0],"1f1f2-1f1ed":[["🇲🇭"],"","",["flag-mh"],3,23,31,0],"1f1f2-1f1f0":[["🇲🇰"],"","",["flag-mk"],3,24,31,0],"1f1f2-1f1f1":[["🇲🇱"],"","",["flag-ml"],3,25,31,0],"1f1f2-1f1f2":[["🇲🇲"],"","",["flag-mm"],3,26,31,0],"1f1f2-1f1f3":[["🇲🇳"],"","",["flag-mn"],3,27,31,0],"1f1f2-1f1f4":[["🇲🇴"],"","",["flag-mo"],3,28,31,0],"1f1f2-1f1f5":[["🇲🇵"],"","",["flag-mp"],3,29,31,0],"1f1f2-1f1f6":[["🇲🇶"],"","",["flag-mq"],3,30,29,0],"1f1f2-1f1f7":[["🇲🇷"],"","",["flag-mr"],3,31,31,0],"1f1f2-1f1f8":[["🇲🇸"],"","",["flag-ms"],3,32,31,0],"1f1f2-1f1f9":[["🇲🇹"],"","",["flag-mt"],3,33,31,0],"1f1f2-1f1fa":[["🇲🇺"],"","",["flag-mu"],3,34,31,0],"1f1f2-1f1fb":[["🇲🇻"],"","",["flag-mv"],3,35,31,0],"1f1f2-1f1fc":[["🇲🇼"],"","",["flag-mw"],3,36,31,0],"1f1f2-1f1fd":[["🇲🇽"],"","",["flag-mx"],3,37,31,0],"1f1f2-1f1fe":[["🇲🇾"],"","",["flag-my"],3,38,31,0],"1f1f2-1f1ff":[["🇲🇿"],"","",["flag-mz"],3,39,31,0],"1f1f3-1f1e6":[["🇳🇦"],"","",["flag-na"],3,40,31,0],"1f1f3-1f1e8":[["🇳🇨"],"","",["flag-nc"],3,41,29,0],"1f1f3-1f1ea":[["🇳🇪"],"","",["flag-ne"],3,42,31,0],"1f1f3-1f1eb":[["🇳🇫"],"","",["flag-nf"],3,43,31,0],"1f1f3-1f1ec":[["🇳🇬"],"","",["flag-ng"],3,44,31,0],"1f1f3-1f1ee":[["🇳🇮"],"","",["flag-ni"],3,45,31,0],"1f1f3-1f1f1":[["🇳🇱"],"","",["flag-nl"],3,46,31,0],"1f1f3-1f1f4":[["🇳🇴"],"","",["flag-no"],3,47,31,0],"1f1f3-1f1f5":[["🇳🇵"],"","",["flag-np"],3,48,31,0],"1f1f3-1f1f7":[["🇳🇷"],"","",["flag-nr"],3,49,31,0],"1f1f3-1f1fa":[["🇳🇺"],"","",["flag-nu"],3,50,31,0],"1f1f3-1f1ff":[["🇳🇿"],"","",["flag-nz"],3,51,31,0],"1f1f4-1f1f2":[["🇴🇲"],"","",["flag-om"],4,0,31,0],"1f1f5-1f1e6":[["🇵🇦"],"","",["flag-pa"],4,1,31,0],"1f1f5-1f1ea":[["🇵🇪"],"","",["flag-pe"],4,2,31,0],"1f1f5-1f1eb":[["🇵🇫"],"","",["flag-pf"],4,3,31,0],"1f1f5-1f1ec":[["🇵🇬"],"","",["flag-pg"],4,4,31,0],"1f1f5-1f1ed":[["🇵🇭"],"","",["flag-ph"],4,5,31,0],"1f1f5-1f1f0":[["🇵🇰"],"","",["flag-pk"],4,6,31,0],"1f1f5-1f1f1":[["🇵🇱"],"","",["flag-pl"],4,7,31,0],"1f1f5-1f1f2":[["🇵🇲"],"","",["flag-pm"],4,8,29,0],"1f1f5-1f1f3":[["🇵🇳"],"","",["flag-pn"],4,9,31,0],"1f1f5-1f1f7":[["🇵🇷"],"","",["flag-pr"],4,10,31,0],"1f1f5-1f1f8":[["🇵🇸"],"","",["flag-ps"],4,11,31,0],"1f1f5-1f1f9":[["🇵🇹"],"","",["flag-pt"],4,12,31,0],"1f1f5-1f1fc":[["🇵🇼"],"","",["flag-pw"],4,13,31,0],"1f1f5-1f1fe":[["🇵🇾"],"","",["flag-py"],4,14,31,0],"1f1f6-1f1e6":[["🇶🇦"],"","",["flag-qa"],4,15,31,0],"1f1f7-1f1ea":[["🇷🇪"],"","",["flag-re"],4,16,29,0],"1f1f7-1f1f4":[["🇷🇴"],"","",["flag-ro"],4,17,31,0],"1f1f7-1f1f8":[["🇷🇸"],"","",["flag-rs"],4,18,31,0],"1f1f7-1f1fa":[["🇷🇺"],"","󾓬",["ru","flag-ru"],4,19,31,0],"1f1f7-1f1fc":[["🇷🇼"],"","",["flag-rw"],4,20,31,0],"1f1f8-1f1e6":[["🇸🇦"],"","",["flag-sa"],4,21,31,0],"1f1f8-1f1e7":[["🇸🇧"],"","",["flag-sb"],4,22,31,0],"1f1f8-1f1e8":[["🇸🇨"],"","",["flag-sc"],4,23,31,0],"1f1f8-1f1e9":[["🇸🇩"],"","",["flag-sd"],4,24,31,0],"1f1f8-1f1ea":[["🇸🇪"],"","",["flag-se"],4,25,31,0],"1f1f8-1f1ec":[["🇸🇬"],"","",["flag-sg"],4,26,31,0],"1f1f8-1f1ed":[["🇸🇭"],"","",["flag-sh"],4,27,31,0],"1f1f8-1f1ee":[["🇸🇮"],"","",["flag-si"],4,28,31,0],"1f1f8-1f1ef":[["🇸🇯"],"","",["flag-sj"],4,29,31,0],"1f1f8-1f1f0":[["🇸🇰"],"","",["flag-sk"],4,30,31,0],"1f1f8-1f1f1":[["🇸🇱"],"","",["flag-sl"],4,31,31,0],"1f1f8-1f1f2":[["🇸🇲"],"","",["flag-sm"],4,32,31,0],"1f1f8-1f1f3":[["🇸🇳"],"","",["flag-sn"],4,33,31,0],"1f1f8-1f1f4":[["🇸🇴"],"","",["flag-so"],4,34,31,0],"1f1f8-1f1f7":[["🇸🇷"],"","",["flag-sr"],4,35,31,0],"1f1f8-1f1f8":[["🇸🇸"],"","",["flag-ss"],4,36,31,0],"1f1f8-1f1f9":[["🇸🇹"],"","",["flag-st"],4,37,31,0],"1f1f8-1f1fb":[["🇸🇻"],"","",["flag-sv"],4,38,31,0],"1f1f8-1f1fd":[["🇸🇽"],"","",["flag-sx"],4,39,31,0],"1f1f8-1f1fe":[["🇸🇾"],"","",["flag-sy"],4,40,31,0],"1f1f8-1f1ff":[["🇸🇿"],"","",["flag-sz"],4,41,31,0],"1f1f9-1f1e6":[["🇹🇦"],"","",["flag-ta"],4,42,31,0],"1f1f9-1f1e8":[["🇹🇨"],"","",["flag-tc"],4,43,31,0],"1f1f9-1f1e9":[["🇹🇩"],"","",["flag-td"],4,44,31,0],"1f1f9-1f1eb":[["🇹🇫"],"","",["flag-tf"],4,45,29,0],"1f1f9-1f1ec":[["🇹🇬"],"","",["flag-tg"],4,46,31,0],"1f1f9-1f1ed":[["🇹🇭"],"","",["flag-th"],4,47,31,0],"1f1f9-1f1ef":[["🇹🇯"],"","",["flag-tj"],4,48,31,0],"1f1f9-1f1f0":[["🇹🇰"],"","",["flag-tk"],4,49,31,0],"1f1f9-1f1f1":[["🇹🇱"],"","",["flag-tl"],4,50,31,0],"1f1f9-1f1f2":[["🇹🇲"],"","",["flag-tm"],4,51,31,0],"1f1f9-1f1f3":[["🇹🇳"],"","",["flag-tn"],5,0,31,0],"1f1f9-1f1f4":[["🇹🇴"],"","",["flag-to"],5,1,31,0],"1f1f9-1f1f7":[["🇹🇷"],"","",["flag-tr"],5,2,31,0],"1f1f9-1f1f9":[["🇹🇹"],"","",["flag-tt"],5,3,31,0],"1f1f9-1f1fb":[["🇹🇻"],"","",["flag-tv"],5,4,31,0],"1f1f9-1f1fc":[["🇹🇼"],"","",["flag-tw"],5,5,31,0],"1f1f9-1f1ff":[["🇹🇿"],"","",["flag-tz"],5,6,31,0],"1f1fa-1f1e6":[["🇺🇦"],"","",["flag-ua"],5,7,31,0],"1f1fa-1f1ec":[["🇺🇬"],"","",["flag-ug"],5,8,31,0],"1f1fa-1f1f2":[["🇺🇲"],"","",["flag-um"],5,9,31,0],"1f1fa-1f1f3":[["🇺🇳"],"","",["flag-un"],5,10,14,0],"1f1fa-1f1f8":[["🇺🇸"],"","󾓦",["us","flag-us"],5,11,31,0],"1f1fa-1f1fe":[["🇺🇾"],"","",["flag-uy"],5,12,31,0],"1f1fa-1f1ff":[["🇺🇿"],"","",["flag-uz"],5,13,31,0],"1f1fb-1f1e6":[["🇻🇦"],"","",["flag-va"],5,14,31,0],"1f1fb-1f1e8":[["🇻🇨"],"","",["flag-vc"],5,15,31,0],"1f1fb-1f1ea":[["🇻🇪"],"","",["flag-ve"],5,16,31,0],"1f1fb-1f1ec":[["🇻🇬"],"","",["flag-vg"],5,17,31,0],"1f1fb-1f1ee":[["🇻🇮"],"","",["flag-vi"],5,18,31,0],"1f1fb-1f1f3":[["🇻🇳"],"","",["flag-vn"],5,19,31,0],"1f1fb-1f1fa":[["🇻🇺"],"","",["flag-vu"],5,20,31,0],"1f1fc-1f1eb":[["🇼🇫"],"","",["flag-wf"],5,21,29,0],"1f1fc-1f1f8":[["🇼🇸"],"","",["flag-ws"],5,22,31,0],"1f1fd-1f1f0":[["🇽🇰"],"","",["flag-xk"],5,23,29,0],"1f1fe-1f1ea":[["🇾🇪"],"","",["flag-ye"],5,24,31,0],"1f1fe-1f1f9":[["🇾🇹"],"","",["flag-yt"],5,25,29,0],"1f1ff-1f1e6":[["🇿🇦"],"","",["flag-za"],5,26,31,0],"1f1ff-1f1f2":[["🇿🇲"],"","",["flag-zm"],5,27,31,0],"1f1ff-1f1fc":[["🇿🇼"],"","",["flag-zw"],5,28,31,0],"1f201":[["🈁"],"","󾬤",["koko"],5,29,31,0],"1f202-fe0f":[["🈂️","🈂"],"","󾬿",["sa"],5,30,31,0],"1f21a":[["🈚"],"","󾬺",["u7121"],5,31,31,0],"1f22f":[["🈯"],"","󾭀",["u6307"],5,32,31,0],"1f232":[["🈲"],"","󾬮",["u7981"],5,33,31,0],"1f233":[["🈳"],"","󾬯",["u7a7a"],5,34,31,0],"1f234":[["🈴"],"","󾬰",["u5408"],5,35,31,0],"1f235":[["🈵"],"","󾬱",["u6e80"],5,36,31,0],"1f236":[["🈶"],"","󾬹",["u6709"],5,37,31,0],"1f237-fe0f":[["🈷️","🈷"],"","󾬻",["u6708"],5,38,31,0],"1f238":[["🈸"],"","󾬼",["u7533"],5,39,31,0],"1f239":[["🈹"],"","󾬾",["u5272"],5,40,31,0],"1f23a":[["🈺"],"","󾭁",["u55b6"],5,41,31,0],"1f250":[["🉐"],"","󾬽",["ideograph_advantage"],5,42,31,0],"1f251":[["🉑"],"","󾭐",["accept"],5,43,31,0],"1f300":[["🌀"],"","󾀅",["cyclone"],5,44,31,0],"1f301":[["🌁"],"","󾀆",["foggy"],5,45,31,0],"1f302":[["🌂"],"","󾀇",["closed_umbrella"],5,46,31,0],"1f303":[["🌃"],"","󾀈",["night_with_stars"],5,47,31,0],"1f304":[["🌄"],"","󾀉",["sunrise_over_mountains"],5,48,31,0],"1f305":[["🌅"],"","󾀊",["sunrise"],5,49,31,0],"1f306":[["🌆"],"","󾀋",["city_sunset"],5,50,31,0],"1f307":[["🌇"],"","󾀌",["city_sunrise"],5,51,31,0],"1f308":[["🌈"],"","󾀍",["rainbow"],6,0,31,0],"1f309":[["🌉"],"","󾀐",["bridge_at_night"],6,1,31,0],"1f30a":[["🌊"],"","󾀸",["ocean"],6,2,31,0],"1f30b":[["🌋"],"","󾀺",["volcano"],6,3,31,0],"1f30c":[["🌌"],"","󾀻",["milky_way"],6,4,31,0],"1f30d":[["🌍"],"","",["earth_africa"],6,5,31,0],"1f30e":[["🌎"],"","",["earth_americas"],6,6,31,0],"1f30f":[["🌏"],"","󾀹",["earth_asia"],6,7,31,0],"1f310":[["🌐"],"","",["globe_with_meridians"],6,8,31,0],"1f311":[["🌑"],"","󾀑",["new_moon"],6,9,31,0],"1f312":[["🌒"],"","",["waxing_crescent_moon"],6,10,31,0],"1f313":[["🌓"],"","󾀓",["first_quarter_moon"],6,11,31,0],"1f314":[["🌔"],"","󾀒",["moon","waxing_gibbous_moon"],6,12,31,0],"1f315":[["🌕"],"","󾀕",["full_moon"],6,13,31,0],"1f316":[["🌖"],"","",["waning_gibbous_moon"],6,14,31,0],"1f317":[["🌗"],"","",["last_quarter_moon"],6,15,31,0],"1f318":[["🌘"],"","",["waning_crescent_moon"],6,16,31,0],"1f319":[["🌙"],"","󾀔",["crescent_moon"],6,17,31,0],"1f31a":[["🌚"],"","",["new_moon_with_face"],6,18,31,0],"1f31b":[["🌛"],"","󾀖",["first_quarter_moon_with_face"],6,19,31,0],"1f31c":[["🌜"],"","",["last_quarter_moon_with_face"],6,20,31,0],"1f31d":[["🌝"],"","",["full_moon_with_face"],6,21,31,0],"1f31e":[["🌞"],"","",["sun_with_face"],6,22,31,0],"1f31f":[["🌟"],"","󾭩",["star2"],6,23,31,0],"1f320":[["🌠"],"","󾭪",["stars"],6,24,31,0],"1f321-fe0f":[["🌡️","🌡"],"","",["thermometer"],6,25,15,0],"1f324-fe0f":[["🌤️","🌤"],"","",["mostly_sunny","sun_small_cloud"],6,26,15,0],"1f325-fe0f":[["🌥️","🌥"],"","",["barely_sunny","sun_behind_cloud"],6,27,15,0],"1f326-fe0f":[["🌦️","🌦"],"","",["partly_sunny_rain","sun_behind_rain_cloud"],6,28,15,0],"1f327-fe0f":[["🌧️","🌧"],"","",["rain_cloud"],6,29,15,0],"1f328-fe0f":[["🌨️","🌨"],"","",["snow_cloud"],6,30,15,0],"1f329-fe0f":[["🌩️","🌩"],"","",["lightning","lightning_cloud"],6,31,15,0],"1f32a-fe0f":[["🌪️","🌪"],"","",["tornado","tornado_cloud"],6,32,15,0],"1f32b-fe0f":[["🌫️","🌫"],"","",["fog"],6,33,15,0],"1f32c-fe0f":[["🌬️","🌬"],"","",["wind_blowing_face"],6,34,15,0],"1f32d":[["🌭"],"","",["hotdog"],6,35,15,0],"1f32e":[["🌮"],"","",["taco"],6,36,15,0],"1f32f":[["🌯"],"","",["burrito"],6,37,15,0],"1f330":[["🌰"],"","󾁌",["chestnut"],6,38,31,0],"1f331":[["🌱"],"","󾀾",["seedling"],6,39,31,0],"1f332":[["🌲"],"","",["evergreen_tree"],6,40,31,0],"1f333":[["🌳"],"","",["deciduous_tree"],6,41,31,0],"1f334":[["🌴"],"","󾁇",["palm_tree"],6,42,31,0],"1f335":[["🌵"],"","󾁈",["cactus"],6,43,31,0],"1f336-fe0f":[["🌶️","🌶"],"","",["hot_pepper"],6,44,15,0],"1f337":[["🌷"],"","󾀽",["tulip"],6,45,31,0],"1f338":[["🌸"],"","󾁀",["cherry_blossom"],6,46,31,0],"1f339":[["🌹"],"","󾁁",["rose"],6,47,31,0],"1f33a":[["🌺"],"","󾁅",["hibiscus"],6,48,31,0],"1f33b":[["🌻"],"","󾁆",["sunflower"],6,49,31,0],"1f33c":[["🌼"],"","󾁍",["blossom"],6,50,31,0],"1f33d":[["🌽"],"","󾁊",["corn"],6,51,31,0],"1f33e":[["🌾"],"","󾁉",["ear_of_rice"],7,0,31,0],"1f33f":[["🌿"],"","󾁎",["herb"],7,1,31,0],"1f340":[["🍀"],"","󾀼",["four_leaf_clover"],7,2,31,0],"1f341":[["🍁"],"","󾀿",["maple_leaf"],7,3,31,0],"1f342":[["🍂"],"","󾁂",["fallen_leaf"],7,4,31,0],"1f343":[["🍃"],"","󾁃",["leaves"],7,5,31,0],"1f344":[["🍄"],"","󾁋",["mushroom"],7,6,31,0],"1f345":[["🍅"],"","󾁕",["tomato"],7,7,31,0],"1f346":[["🍆"],"","󾁖",["eggplant"],7,8,31,0],"1f347":[["🍇"],"","󾁙",["grapes"],7,9,31,0],"1f348":[["🍈"],"","󾁗",["melon"],7,10,31,0],"1f349":[["🍉"],"","󾁔",["watermelon"],7,11,31,0],"1f34a":[["🍊"],"","󾁒",["tangerine"],7,12,31,0],"1f34b":[["🍋"],"","",["lemon"],7,13,31,0],"1f34c":[["🍌"],"","󾁐",["banana"],7,14,31,0],"1f34d":[["🍍"],"","󾁘",["pineapple"],7,15,31,0],"1f34e":[["🍎"],"","󾁑",["apple"],7,16,31,0],"1f34f":[["🍏"],"","󾁛",["green_apple"],7,17,31,0],"1f350":[["🍐"],"","",["pear"],7,18,31,0],"1f351":[["🍑"],"","󾁚",["peach"],7,19,31,0],"1f352":[["🍒"],"","󾁏",["cherries"],7,20,31,0],"1f353":[["🍓"],"","󾁓",["strawberry"],7,21,31,0],"1f354":[["🍔"],"","󾥠",["hamburger"],7,22,31,0],"1f355":[["🍕"],"","󾥵",["pizza"],7,23,31,0],"1f356":[["🍖"],"","󾥲",["meat_on_bone"],7,24,31,0],"1f357":[["🍗"],"","󾥶",["poultry_leg"],7,25,31,0],"1f358":[["🍘"],"","󾥩",["rice_cracker"],7,26,31,0],"1f359":[["🍙"],"","󾥡",["rice_ball"],7,27,31,0],"1f35a":[["🍚"],"","󾥪",["rice"],7,28,31,0],"1f35b":[["🍛"],"","󾥬",["curry"],7,29,31,0],"1f35c":[["🍜"],"","󾥣",["ramen"],7,30,31,0],"1f35d":[["🍝"],"","󾥫",["spaghetti"],7,31,31,0],"1f35e":[["🍞"],"","󾥤",["bread"],7,32,31,0],"1f35f":[["🍟"],"","󾥧",["fries"],7,33,31,0],"1f360":[["🍠"],"","󾥴",["sweet_potato"],7,34,31,0],"1f361":[["🍡"],"","󾥨",["dango"],7,35,31,0],"1f362":[["🍢"],"","󾥭",["oden"],7,36,31,0],"1f363":[["🍣"],"","󾥮",["sushi"],7,37,31,0],"1f364":[["🍤"],"","󾥿",["fried_shrimp"],7,38,31,0],"1f365":[["🍥"],"","󾥳",["fish_cake"],7,39,31,0],"1f366":[["🍦"],"","󾥦",["icecream"],7,40,31,0],"1f367":[["🍧"],"","󾥱",["shaved_ice"],7,41,31,0],"1f368":[["🍨"],"","󾥷",["ice_cream"],7,42,31,0],"1f369":[["🍩"],"","󾥸",["doughnut"],7,43,31,0],"1f36a":[["🍪"],"","󾥹",["cookie"],7,44,31,0],"1f36b":[["🍫"],"","󾥺",["chocolate_bar"],7,45,31,0],"1f36c":[["🍬"],"","󾥻",["candy"],7,46,31,0],"1f36d":[["🍭"],"","󾥼",["lollipop"],7,47,31,0],"1f36e":[["🍮"],"","󾥽",["custard"],7,48,31,0],"1f36f":[["🍯"],"","󾥾",["honey_pot"],7,49,31,0],"1f370":[["🍰"],"","󾥢",["cake"],7,50,31,0],"1f371":[["🍱"],"","󾥯",["bento"],7,51,31,0],"1f372":[["🍲"],"","󾥰",["stew"],8,0,31,0],"1f373":[["🍳"],"","󾥥",["fried_egg","cooking"],8,1,31,0],"1f374":[["🍴"],"","󾦀",["fork_and_knife"],8,2,31,0],"1f375":[["🍵"],"","󾦄",["tea"],8,3,31,0],"1f376":[["🍶"],"","󾦅",["sake"],8,4,31,0],"1f377":[["🍷"],"","󾦆",["wine_glass"],8,5,31,0],"1f378":[["🍸"],"","󾦂",["cocktail"],8,6,31,0],"1f379":[["🍹"],"","󾦈",["tropical_drink"],8,7,31,0],"1f37a":[["🍺"],"","󾦃",["beer"],8,8,31,0],"1f37b":[["🍻"],"","󾦇",["beers"],8,9,31,0],"1f37c":[["🍼"],"","",["baby_bottle"],8,10,31,0],"1f37d-fe0f":[["🍽️","🍽"],"","",["knife_fork_plate"],8,11,15,0],"1f37e":[["🍾"],"","",["champagne"],8,12,15,0],"1f37f":[["🍿"],"","",["popcorn"],8,13,15,0],"1f380":[["🎀"],"","󾔏",["ribbon"],8,14,31,0],"1f381":[["🎁"],"","󾔐",["gift"],8,15,31,0],"1f382":[["🎂"],"","󾔑",["birthday"],8,16,31,0],"1f383":[["🎃"],"","󾔟",["jack_o_lantern"],8,17,31,0],"1f384":[["🎄"],"","󾔒",["christmas_tree"],8,18,31,0],"1f385":[["🎅"],"","󾔓",["santa"],8,19,31,0],"1f386":[["🎆"],"","󾔕",["fireworks"],8,25,31,0],"1f387":[["🎇"],"","󾔝",["sparkler"],8,26,31,0],"1f388":[["🎈"],"","󾔖",["balloon"],8,27,31,0],"1f389":[["🎉"],"","󾔗",["tada"],8,28,31,0],"1f38a":[["🎊"],"","󾔠",["confetti_ball"],8,29,31,0],"1f38b":[["🎋"],"","󾔡",["tanabata_tree"],8,30,31,0],"1f38c":[["🎌"],"","󾔔",["crossed_flags"],8,31,31,0],"1f38d":[["🎍"],"","󾔘",["bamboo"],8,32,31,0],"1f38e":[["🎎"],"","󾔙",["dolls"],8,33,31,0],"1f38f":[["🎏"],"","󾔜",["flags"],8,34,31,0],"1f390":[["🎐"],"","󾔞",["wind_chime"],8,35,31,0],"1f391":[["🎑"],"","󾀗",["rice_scene"],8,36,31,0],"1f392":[["🎒"],"","󾔛",["school_satchel"],8,37,31,0],"1f393":[["🎓"],"","󾔚",["mortar_board"],8,38,31,0],"1f396-fe0f":[["🎖️","🎖"],"","",["medal"],8,39,15,0],"1f397-fe0f":[["🎗️","🎗"],"","",["reminder_ribbon"],8,40,15,0],"1f399-fe0f":[["🎙️","🎙"],"","",["studio_microphone"],8,41,15,0],"1f39a-fe0f":[["🎚️","🎚"],"","",["level_slider"],8,42,15,0],"1f39b-fe0f":[["🎛️","🎛"],"","",["control_knobs"],8,43,15,0],"1f39e-fe0f":[["🎞️","🎞"],"","",["film_frames"],8,44,15,0],"1f39f-fe0f":[["🎟️","🎟"],"","",["admission_tickets"],8,45,15,0],"1f3a0":[["🎠"],"","󾟼",["carousel_horse"],8,46,31,0],"1f3a1":[["🎡"],"","󾟽",["ferris_wheel"],8,47,31,0],"1f3a2":[["🎢"],"","󾟾",["roller_coaster"],8,48,31,0],"1f3a3":[["🎣"],"","󾟿",["fishing_pole_and_fish"],8,49,31,0],"1f3a4":[["🎤"],"","󾠀",["microphone"],8,50,31,0],"1f3a5":[["🎥"],"","󾠁",["movie_camera"],8,51,31,0],"1f3a6":[["🎦"],"","󾠂",["cinema"],9,0,31,0],"1f3a7":[["🎧"],"","󾠃",["headphones"],9,1,31,0],"1f3a8":[["🎨"],"","󾠄",["art"],9,2,31,0],"1f3a9":[["🎩"],"","󾠅",["tophat"],9,3,31,0],"1f3aa":[["🎪"],"","󾠆",["circus_tent"],9,4,31,0],"1f3ab":[["🎫"],"","󾠇",["ticket"],9,5,31,0],"1f3ac":[["🎬"],"","󾠈",["clapper"],9,6,31,0],"1f3ad":[["🎭"],"","󾠉",["performing_arts"],9,7,31,0],"1f3ae":[["🎮"],"","󾠊",["video_game"],9,8,31,0],"1f3af":[["🎯"],"","󾠌",["dart"],9,9,31,0],"1f3b0":[["🎰"],"","󾠍",["slot_machine"],9,10,31,0],"1f3b1":[["🎱"],"","󾠎",["8ball"],9,11,31,0],"1f3b2":[["🎲"],"","󾠏",["game_die"],9,12,31,0],"1f3b3":[["🎳"],"","󾠐",["bowling"],9,13,31,0],"1f3b4":[["🎴"],"","󾠑",["flower_playing_cards"],9,14,31,0],"1f3b5":[["🎵"],"","󾠓",["musical_note"],9,15,31,0],"1f3b6":[["🎶"],"","󾠔",["notes"],9,16,31,0],"1f3b7":[["🎷"],"","󾠕",["saxophone"],9,17,31,0],"1f3b8":[["🎸"],"","󾠖",["guitar"],9,18,31,0],"1f3b9":[["🎹"],"","󾠗",["musical_keyboard"],9,19,31,0],"1f3ba":[["🎺"],"","󾠘",["trumpet"],9,20,31,0],"1f3bb":[["🎻"],"","󾠙",["violin"],9,21,31,0],"1f3bc":[["🎼"],"","󾠚",["musical_score"],9,22,31,0],"1f3bd":[["🎽"],"","󾟐",["running_shirt_with_sash"],9,23,31,0],"1f3be":[["🎾"],"","󾟓",["tennis"],9,24,31,0],"1f3bf":[["🎿"],"","󾟕",["ski"],9,25,31,0],"1f3c0":[["🏀"],"","󾟖",["basketball"],9,26,31,0],"1f3c1":[["🏁"],"","󾟗",["checkered_flag"],9,27,31,0],"1f3c2":[["🏂"],"","󾟘",["snowboarder"],9,28,31,0],"1f3c3-200d-2640-fe0f":[["🏃‍♀️","🏃‍♀"],"","",["woman-running"],9,34,15,0],"1f3c3-200d-2642-fe0f":[["🏃‍♂️","🏃‍♂","🏃"],"","",["man-running","runner","running"],9,40,15,0],"1f3c4-200d-2640-fe0f":[["🏄‍♀️","🏄‍♀"],"","",["woman-surfing"],10,0,15,0],"1f3c4-200d-2642-fe0f":[["🏄‍♂️","🏄‍♂","🏄"],"","",["man-surfing","surfer"],10,6,15,0],"1f3c5":[["🏅"],"","",["sports_medal"],10,18,15,0],"1f3c6":[["🏆"],"","󾟛",["trophy"],10,19,31,0],"1f3c7":[["🏇"],"","",["horse_racing"],10,20,31,0],"1f3c8":[["🏈"],"","󾟝",["football"],10,26,31,0],"1f3c9":[["🏉"],"","",["rugby_football"],10,27,31,0],"1f3ca-200d-2640-fe0f":[["🏊‍♀️","🏊‍♀"],"","",["woman-swimming"],10,28,15,0],"1f3ca-200d-2642-fe0f":[["🏊‍♂️","🏊‍♂","🏊"],"","",["man-swimming","swimmer"],10,34,15,0],"1f3cb-fe0f-200d-2640-fe0f":[["🏋️‍♀️"],"","",["woman-lifting-weights"],10,46,7,0],"1f3cb-fe0f-200d-2642-fe0f":[["🏋️‍♂️","🏋️","🏋"],"","",["man-lifting-weights","weight_lifter"],11,0,7,0],"1f3cc-fe0f-200d-2640-fe0f":[["🏌️‍♀️"],"","",["woman-golfing"],11,12,7,0],"1f3cc-fe0f-200d-2642-fe0f":[["🏌️‍♂️","🏌️","🏌"],"","",["man-golfing","golfer"],11,18,7,0],"1f3cd-fe0f":[["🏍️","🏍"],"","",["racing_motorcycle"],11,30,15,0],"1f3ce-fe0f":[["🏎️","🏎"],"","",["racing_car"],11,31,15,0],"1f3cf":[["🏏"],"","",["cricket_bat_and_ball"],11,32,15,0],"1f3d0":[["🏐"],"","",["volleyball"],11,33,15,0],"1f3d1":[["🏑"],"","",["field_hockey_stick_and_ball"],11,34,15,0],"1f3d2":[["🏒"],"","",["ice_hockey_stick_and_puck"],11,35,15,0],"1f3d3":[["🏓"],"","",["table_tennis_paddle_and_ball"],11,36,15,0],"1f3d4-fe0f":[["🏔️","🏔"],"","",["snow_capped_mountain"],11,37,15,0],"1f3d5-fe0f":[["🏕️","🏕"],"","",["camping"],11,38,15,0],"1f3d6-fe0f":[["🏖️","🏖"],"","",["beach_with_umbrella"],11,39,15,0],"1f3d7-fe0f":[["🏗️","🏗"],"","",["building_construction"],11,40,15,0],"1f3d8-fe0f":[["🏘️","🏘"],"","",["house_buildings"],11,41,15,0],"1f3d9-fe0f":[["🏙️","🏙"],"","",["cityscape"],11,42,15,0],"1f3da-fe0f":[["🏚️","🏚"],"","",["derelict_house_building"],11,43,15,0],"1f3db-fe0f":[["🏛️","🏛"],"","",["classical_building"],11,44,15,0],"1f3dc-fe0f":[["🏜️","🏜"],"","",["desert"],11,45,15,0],"1f3dd-fe0f":[["🏝️","🏝"],"","",["desert_island"],11,46,15,0],"1f3de-fe0f":[["🏞️","🏞"],"","",["national_park"],11,47,15,0],"1f3df-fe0f":[["🏟️","🏟"],"","",["stadium"],11,48,15,0],"1f3e0":[["🏠"],"","󾒰",["house"],11,49,31,0],"1f3e1":[["🏡"],"","󾒱",["house_with_garden"],11,50,31,0],"1f3e2":[["🏢"],"","󾒲",["office"],11,51,31,0],"1f3e3":[["🏣"],"","󾒳",["post_office"],12,0,31,0],"1f3e4":[["🏤"],"","",["european_post_office"],12,1,31,0],"1f3e5":[["🏥"],"","󾒴",["hospital"],12,2,31,0],"1f3e6":[["🏦"],"","󾒵",["bank"],12,3,31,0],"1f3e7":[["🏧"],"","󾒶",["atm"],12,4,31,0],"1f3e8":[["🏨"],"","󾒷",["hotel"],12,5,31,0],"1f3e9":[["🏩"],"","󾒸",["love_hotel"],12,6,31,0],"1f3ea":[["🏪"],"","󾒹",["convenience_store"],12,7,31,0],"1f3eb":[["🏫"],"","󾒺",["school"],12,8,31,0],"1f3ec":[["🏬"],"","󾒽",["department_store"],12,9,31,0],"1f3ed":[["🏭"],"","󾓀",["factory"],12,10,31,0],"1f3ee":[["🏮"],"","󾓂",["izakaya_lantern","lantern"],12,11,31,0],"1f3ef":[["🏯"],"","󾒾",["japanese_castle"],12,12,31,0],"1f3f0":[["🏰"],"","󾒿",["european_castle"],12,13,31,0],"1f3f3-fe0f-200d-1f308":[["🏳️‍🌈","🏳‍🌈"],"","",["rainbow-flag"],12,14,31,0],"1f3f3-fe0f":[["🏳️","🏳"],"","",["waving_white_flag"],12,15,15,0],"1f3f4-e0067-e0062-e0065-e006e-e0067-e007f":[["🏴󠁧󠁢󠁥󠁮󠁧󠁿"],"","",["flag-england"],12,16,15,0],"1f3f4-e0067-e0062-e0073-e0063-e0074-e007f":[["🏴󠁧󠁢󠁳󠁣󠁴󠁿"],"","",["flag-scotland"],12,17,15,0],"1f3f4-e0067-e0062-e0077-e006c-e0073-e007f":[["🏴󠁧󠁢󠁷󠁬󠁳󠁿"],"","",["flag-wales"],12,18,15,0],"1f3f4":[["🏴"],"","",["waving_black_flag"],12,19,15,0],"1f3f5-fe0f":[["🏵️","🏵"],"","",["rosette"],12,20,15,0],"1f3f7-fe0f":[["🏷️","🏷"],"","",["label"],12,21,15,0],"1f3f8":[["🏸"],"","",["badminton_racquet_and_shuttlecock"],12,22,15,0],"1f3f9":[["🏹"],"","",["bow_and_arrow"],12,23,15,0],"1f3fa":[["🏺"],"","",["amphora"],12,24,15,0],"1f3fb":[["🏻"],"","",["skin-tone-2"],12,25,15,0],"1f3fc":[["🏼"],"","",["skin-tone-3"],12,26,15,0],"1f3fd":[["🏽"],"","",["skin-tone-4"],12,27,15,0],"1f3fe":[["🏾"],"","",["skin-tone-5"],12,28,15,0],"1f3ff":[["🏿"],"","",["skin-tone-6"],12,29,15,0],"1f400":[["🐀"],"","",["rat"],12,30,31,0],"1f401":[["🐁"],"","",["mouse2"],12,31,31,0],"1f402":[["🐂"],"","",["ox"],12,32,31,0],"1f403":[["🐃"],"","",["water_buffalo"],12,33,31,0],"1f404":[["🐄"],"","",["cow2"],12,34,31,0],"1f405":[["🐅"],"","",["tiger2"],12,35,31,0],"1f406":[["🐆"],"","",["leopard"],12,36,31,0],"1f407":[["🐇"],"","",["rabbit2"],12,37,31,0],"1f408":[["🐈"],"","",["cat2"],12,38,31,0],"1f409":[["🐉"],"","",["dragon"],12,39,31,0],"1f40a":[["🐊"],"","",["crocodile"],12,40,31,0],"1f40b":[["🐋"],"","",["whale2"],12,41,31,0],"1f40c":[["🐌"],"","󾆹",["snail"],12,42,31,0],"1f40d":[["🐍"],"","󾇓",["snake"],12,43,31,0],"1f40e":[["🐎"],"","󾟜",["racehorse"],12,44,31,0],"1f40f":[["🐏"],"","",["ram"],12,45,31,0],"1f410":[["🐐"],"","",["goat"],12,46,31,0],"1f411":[["🐑"],"","󾇏",["sheep"],12,47,31,0],"1f412":[["🐒"],"","󾇎",["monkey"],12,48,31,0],"1f413":[["🐓"],"","",["rooster"],12,49,31,0],"1f414":[["🐔"],"","󾇔",["chicken"],12,50,31,0],"1f415":[["🐕"],"","",["dog2"],12,51,31,0],"1f416":[["🐖"],"","",["pig2"],13,0,31,0],"1f417":[["🐗"],"","󾇕",["boar"],13,1,31,0],"1f418":[["🐘"],"","󾇌",["elephant"],13,2,31,0],"1f419":[["🐙"],"","󾇅",["octopus"],13,3,31,0],"1f41a":[["🐚"],"","󾇆",["shell"],13,4,31,0],"1f41b":[["🐛"],"","󾇋",["bug"],13,5,31,0],"1f41c":[["🐜"],"","󾇚",["ant"],13,6,31,0],"1f41d":[["🐝"],"","󾇡",["bee","honeybee"],13,7,31,0],"1f41e":[["🐞"],"","󾇢",["beetle"],13,8,31,0],"1f41f":[["🐟"],"","󾆽",["fish"],13,9,31,0],"1f420":[["🐠"],"","󾇉",["tropical_fish"],13,10,31,0],"1f421":[["🐡"],"","󾇙",["blowfish"],13,11,31,0],"1f422":[["🐢"],"","󾇜",["turtle"],13,12,31,0],"1f423":[["🐣"],"","󾇝",["hatching_chick"],13,13,31,0],"1f424":[["🐤"],"","󾆺",["baby_chick"],13,14,31,0],"1f425":[["🐥"],"","󾆻",["hatched_chick"],13,15,31,0],"1f426":[["🐦"],"","󾇈",["bird"],13,16,31,0],"1f427":[["🐧"],"","󾆼",["penguin"],13,17,31,0],"1f428":[["🐨"],"","󾇍",["koala"],13,18,31,0],"1f429":[["🐩"],"","󾇘",["poodle"],13,19,31,0],"1f42a":[["🐪"],"","",["dromedary_camel"],13,20,31,0],"1f42b":[["🐫"],"","󾇖",["camel"],13,21,31,0],"1f42c":[["🐬"],"","󾇇",["dolphin","flipper"],13,22,31,0],"1f42d":[["🐭"],"","󾇂",["mouse"],13,23,31,0],"1f42e":[["🐮"],"","󾇑",["cow"],13,24,31,0],"1f42f":[["🐯"],"","󾇀",["tiger"],13,25,31,0],"1f430":[["🐰"],"","󾇒",["rabbit"],13,26,31,0],"1f431":[["🐱"],"","󾆸",["cat"],13,27,31,0],"1f432":[["🐲"],"","󾇞",["dragon_face"],13,28,31,0],"1f433":[["🐳"],"","󾇃",["whale"],13,29,31,0],"1f434":[["🐴"],"","󾆾",["horse"],13,30,31,0],"1f435":[["🐵"],"","󾇄",["monkey_face"],13,31,31,0],"1f436":[["🐶"],"","󾆷",["dog"],13,32,31,0],"1f437":[["🐷"],"","󾆿",["pig"],13,33,31,0],"1f438":[["🐸"],"","󾇗",["frog"],13,34,31,0],"1f439":[["🐹"],"","󾇊",["hamster"],13,35,31,0],"1f43a":[["🐺"],"","󾇐",["wolf"],13,36,31,0],"1f43b":[["🐻"],"","󾇁",["bear"],13,37,31,0],"1f43c":[["🐼"],"","󾇟",["panda_face"],13,38,31,0],"1f43d":[["🐽"],"","󾇠",["pig_nose"],13,39,31,0],"1f43e":[["🐾"],"","󾇛",["feet","paw_prints"],13,40,31,0],"1f43f-fe0f":[["🐿️","🐿"],"","",["chipmunk"],13,41,15,0],"1f440":[["👀"],"","󾆐",["eyes"],13,42,31,0],"1f441-fe0f-200d-1f5e8-fe0f":[["👁️‍🗨️"],"","",["eye-in-speech-bubble"],13,43,3,0],"1f441-fe0f":[["👁️","👁"],"","",["eye"],13,44,15,0],"1f442":[["👂"],"","󾆑",["ear"],13,45,31,0],"1f443":[["👃"],"","󾆒",["nose"],13,51,31,0],"1f444":[["👄"],"","󾆓",["lips"],14,5,31,0],"1f445":[["👅"],"","󾆔",["tongue"],14,6,31,0],"1f446":[["👆"],"","󾮙",["point_up_2"],14,7,31,0],"1f447":[["👇"],"","󾮚",["point_down"],14,13,31,0],"1f448":[["👈"],"","󾮛",["point_left"],14,19,31,0],"1f449":[["👉"],"","󾮜",["point_right"],14,25,31,0],"1f44a":[["👊"],"","󾮖",["facepunch","punch"],14,31,31,0],"1f44b":[["👋"],"","󾮝",["wave"],14,37,31,0],"1f44c":[["👌"],"","󾮟",["ok_hand"],14,43,31,0],"1f44d":[["👍"],"","󾮗",["+1","thumbsup"],14,49,31,0],"1f44e":[["👎"],"","󾮠",["-1","thumbsdown"],15,3,31,0],"1f44f":[["👏"],"","󾮞",["clap"],15,9,31,0],"1f450":[["👐"],"","󾮡",["open_hands"],15,15,31,0],"1f451":[["👑"],"","󾓑",["crown"],15,21,31,0],"1f452":[["👒"],"","󾓔",["womans_hat"],15,22,31,0],"1f453":[["👓"],"","󾓎",["eyeglasses"],15,23,31,0],"1f454":[["👔"],"","󾓓",["necktie"],15,24,31,0],"1f455":[["👕"],"","󾓏",["shirt","tshirt"],15,25,31,0],"1f456":[["👖"],"","󾓐",["jeans"],15,26,31,0],"1f457":[["👗"],"","󾓕",["dress"],15,27,31,0],"1f458":[["👘"],"","󾓙",["kimono"],15,28,31,0],"1f459":[["👙"],"","󾓚",["bikini"],15,29,31,0],"1f45a":[["👚"],"","󾓛",["womans_clothes"],15,30,31,0],"1f45b":[["👛"],"","󾓜",["purse"],15,31,31,0],"1f45c":[["👜"],"","󾓰",["handbag"],15,32,31,0],"1f45d":[["👝"],"","󾓱",["pouch"],15,33,31,0],"1f45e":[["👞"],"","󾓌",["mans_shoe","shoe"],15,34,31,0],"1f45f":[["👟"],"","󾓍",["athletic_shoe"],15,35,31,0],"1f460":[["👠"],"","󾓖",["high_heel"],15,36,31,0],"1f461":[["👡"],"","󾓗",["sandal"],15,37,31,0],"1f462":[["👢"],"","󾓘",["boot"],15,38,31,0],"1f463":[["👣"],"","󾕓",["footprints"],15,39,31,0],"1f464":[["👤"],"","󾆚",["bust_in_silhouette"],15,40,31,0],"1f465":[["👥"],"","",["busts_in_silhouette"],15,41,31,0],"1f466":[["👦"],"","󾆛",["boy"],15,42,31,0],"1f467":[["👧"],"","󾆜",["girl"],15,48,31,0],"1f468-200d-1f33e":[["👨‍🌾"],"","",["male-farmer"],16,2,15,0],"1f468-200d-1f373":[["👨‍🍳"],"","",["male-cook"],16,8,15,0],"1f468-200d-1f393":[["👨‍🎓"],"","",["male-student"],16,14,15,0],"1f468-200d-1f3a4":[["👨‍🎤"],"","",["male-singer"],16,20,15,0],"1f468-200d-1f3a8":[["👨‍🎨"],"","",["male-artist"],16,26,15,0],"1f468-200d-1f3eb":[["👨‍🏫"],"","",["male-teacher"],16,32,15,0],"1f468-200d-1f3ed":[["👨‍🏭"],"","",["male-factory-worker"],16,38,15,0],"1f468-200d-1f466-200d-1f466":[["👨‍👦‍👦"],"","",["man-boy-boy"],16,44,15,0],"1f468-200d-1f466":[["👨‍👦"],"","",["man-boy"],16,45,15,0],"1f468-200d-1f467-200d-1f466":[["👨‍👧‍👦"],"","",["man-girl-boy"],16,46,15,0],"1f468-200d-1f467-200d-1f467":[["👨‍👧‍👧"],"","",["man-girl-girl"],16,47,15,0],"1f468-200d-1f467":[["👨‍👧"],"","",["man-girl"],16,48,15,0],"1f468-200d-1f468-200d-1f466":[["👨‍👨‍👦"],"","",["man-man-boy"],16,49,31,0],"1f468-200d-1f468-200d-1f466-200d-1f466":[["👨‍👨‍👦‍👦"],"","",["man-man-boy-boy"],16,50,31,0],"1f468-200d-1f468-200d-1f467":[["👨‍👨‍👧"],"","",["man-man-girl"],16,51,31,0],"1f468-200d-1f468-200d-1f467-200d-1f466":[["👨‍👨‍👧‍👦"],"","",["man-man-girl-boy"],17,0,31,0],"1f468-200d-1f468-200d-1f467-200d-1f467":[["👨‍👨‍👧‍👧"],"","",["man-man-girl-girl"],17,1,31,0],"1f468-200d-1f469-200d-1f466":[["👨‍👩‍👦","👪"],"","",["man-woman-boy","family"],17,2,31,0],"1f468-200d-1f469-200d-1f466-200d-1f466":[["👨‍👩‍👦‍👦"],"","",["man-woman-boy-boy"],17,3,31,0],"1f468-200d-1f469-200d-1f467":[["👨‍👩‍👧"],"","",["man-woman-girl"],17,4,31,0],"1f468-200d-1f469-200d-1f467-200d-1f466":[["👨‍👩‍👧‍👦"],"","",["man-woman-girl-boy"],17,5,31,0],"1f468-200d-1f469-200d-1f467-200d-1f467":[["👨‍👩‍👧‍👧"],"","",["man-woman-girl-girl"],17,6,31,0],"1f468-200d-1f4bb":[["👨‍💻"],"","",["male-technologist"],17,7,15,0],"1f468-200d-1f4bc":[["👨‍💼"],"","",["male-office-worker"],17,13,15,0],"1f468-200d-1f527":[["👨‍🔧"],"","",["male-mechanic"],17,19,15,0],"1f468-200d-1f52c":[["👨‍🔬"],"","",["male-scientist"],17,25,15,0],"1f468-200d-1f680":[["👨‍🚀"],"","",["male-astronaut"],17,31,15,0],"1f468-200d-1f692":[["👨‍🚒"],"","",["male-firefighter"],17,37,15,0],"1f468-200d-2695-fe0f":[["👨‍⚕️","👨‍⚕"],"","",["male-doctor"],17,43,15,0],"1f468-200d-2696-fe0f":[["👨‍⚖️","👨‍⚖"],"","",["male-judge"],17,49,15,0],"1f468-200d-2708-fe0f":[["👨‍✈️","👨‍✈"],"","",["male-pilot"],18,3,15,0],"1f468-200d-2764-fe0f-200d-1f468":[["👨‍❤️‍👨","👨‍❤‍👨"],"","",["man-heart-man"],18,9,31,0],"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468":[["👨‍❤️‍💋‍👨","👨‍❤‍💋‍👨"],"","",["man-kiss-man"],18,10,31,0],"1f468":[["👨"],"","󾆝",["man"],18,11,31,0],"1f469-200d-1f33e":[["👩‍🌾"],"","",["female-farmer"],18,17,15,0],"1f469-200d-1f373":[["👩‍🍳"],"","",["female-cook"],18,23,15,0],"1f469-200d-1f393":[["👩‍🎓"],"","",["female-student"],18,29,15,0],"1f469-200d-1f3a4":[["👩‍🎤"],"","",["female-singer"],18,35,15,0],"1f469-200d-1f3a8":[["👩‍🎨"],"","",["female-artist"],18,41,15,0],"1f469-200d-1f3eb":[["👩‍🏫"],"","",["female-teacher"],18,47,15,0],"1f469-200d-1f3ed":[["👩‍🏭"],"","",["female-factory-worker"],19,1,15,0],"1f469-200d-1f466-200d-1f466":[["👩‍👦‍👦"],"","",["woman-boy-boy"],19,7,15,0],"1f469-200d-1f466":[["👩‍👦"],"","",["woman-boy"],19,8,15,0],"1f469-200d-1f467-200d-1f466":[["👩‍👧‍👦"],"","",["woman-girl-boy"],19,9,15,0],"1f469-200d-1f467-200d-1f467":[["👩‍👧‍👧"],"","",["woman-girl-girl"],19,10,15,0],"1f469-200d-1f467":[["👩‍👧"],"","",["woman-girl"],19,11,15,0],"1f469-200d-1f469-200d-1f466":[["👩‍👩‍👦"],"","",["woman-woman-boy"],19,12,31,0],"1f469-200d-1f469-200d-1f466-200d-1f466":[["👩‍👩‍👦‍👦"],"","",["woman-woman-boy-boy"],19,13,31,0],"1f469-200d-1f469-200d-1f467":[["👩‍👩‍👧"],"","",["woman-woman-girl"],19,14,31,0],"1f469-200d-1f469-200d-1f467-200d-1f466":[["👩‍👩‍👧‍👦"],"","",["woman-woman-girl-boy"],19,15,31,0],"1f469-200d-1f469-200d-1f467-200d-1f467":[["👩‍👩‍👧‍👧"],"","",["woman-woman-girl-girl"],19,16,31,0],"1f469-200d-1f4bb":[["👩‍💻"],"","",["female-technologist"],19,17,15,0],"1f469-200d-1f4bc":[["👩‍💼"],"","",["female-office-worker"],19,23,15,0],"1f469-200d-1f527":[["👩‍🔧"],"","",["female-mechanic"],19,29,15,0],"1f469-200d-1f52c":[["👩‍🔬"],"","",["female-scientist"],19,35,15,0],"1f469-200d-1f680":[["👩‍🚀"],"","",["female-astronaut"],19,41,15,0],"1f469-200d-1f692":[["👩‍🚒"],"","",["female-firefighter"],19,47,15,0],"1f469-200d-2695-fe0f":[["👩‍⚕️","👩‍⚕"],"","",["female-doctor"],20,1,15,0],"1f469-200d-2696-fe0f":[["👩‍⚖️","👩‍⚖"],"","",["female-judge"],20,7,15,0],"1f469-200d-2708-fe0f":[["👩‍✈️","👩‍✈"],"","",["female-pilot"],20,13,15,0],"1f469-200d-2764-fe0f-200d-1f468":[["👩‍❤️‍👨","👩‍❤‍👨","💑"],"","",["woman-heart-man","couple_with_heart"],20,19,15,0],"1f469-200d-2764-fe0f-200d-1f469":[["👩‍❤️‍👩","👩‍❤‍👩"],"","",["woman-heart-woman"],20,20,31,0],"1f469-200d-2764-fe0f-200d-1f48b-200d-1f468":[["👩‍❤️‍💋‍👨","👩‍❤‍💋‍👨","💏"],"","",["woman-kiss-man","couplekiss"],20,21,15,0],"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469":[["👩‍❤️‍💋‍👩","👩‍❤‍💋‍👩"],"","",["woman-kiss-woman"],20,22,31,0],"1f469":[["👩"],"","󾆞",["woman"],20,23,31,0],"1f46b":[["👫"],"","󾆠",["couple","man_and_woman_holding_hands"],20,30,31,0],"1f46c":[["👬"],"","",["two_men_holding_hands"],20,31,31,0],"1f46d":[["👭"],"","",["two_women_holding_hands"],20,32,31,0],"1f46e-200d-2640-fe0f":[["👮‍♀️","👮‍♀"],"","",["female-police-officer"],20,33,15,0],"1f46e-200d-2642-fe0f":[["👮‍♂️","👮‍♂","👮"],"","",["male-police-officer","cop"],20,39,15,0],"1f46f-200d-2640-fe0f":[["👯‍♀️","👯‍♀","👯"],"","",["woman-with-bunny-ears-partying","dancers"],20,51,15,0],"1f46f-200d-2642-fe0f":[["👯‍♂️","👯‍♂"],"","",["man-with-bunny-ears-partying"],21,0,15,0],"1f470":[["👰"],"","󾆣",["bride_with_veil"],21,2,31,0],"1f471-200d-2640-fe0f":[["👱‍♀️","👱‍♀"],"","",["blond-haired-woman"],21,8,15,0],"1f471-200d-2642-fe0f":[["👱‍♂️","👱‍♂","👱"],"","",["blond-haired-man","person_with_blond_hair"],21,14,15,0],"1f472":[["👲"],"","󾆥",["man_with_gua_pi_mao"],21,26,31,0],"1f473-200d-2640-fe0f":[["👳‍♀️","👳‍♀"],"","",["woman-wearing-turban"],21,32,15,0],"1f473-200d-2642-fe0f":[["👳‍♂️","👳‍♂","👳"],"","",["man-wearing-turban","man_with_turban"],21,38,15,0],"1f474":[["👴"],"","󾆧",["older_man"],21,50,31,0],"1f475":[["👵"],"","󾆨",["older_woman"],22,4,31,0],"1f476":[["👶"],"","󾆩",["baby"],22,10,31,0],"1f477-200d-2640-fe0f":[["👷‍♀️","👷‍♀"],"","",["female-construction-worker"],22,16,15,0],"1f477-200d-2642-fe0f":[["👷‍♂️","👷‍♂","👷"],"","",["male-construction-worker","construction_worker"],22,22,15,0],"1f478":[["👸"],"","󾆫",["princess"],22,34,31,0],"1f479":[["👹"],"","󾆬",["japanese_ogre"],22,40,31,0],"1f47a":[["👺"],"","󾆭",["japanese_goblin"],22,41,31,0],"1f47b":[["👻"],"","󾆮",["ghost"],22,42,31,0],"1f47c":[["👼"],"","󾆯",["angel"],22,43,31,0],"1f47d":[["👽"],"","󾆰",["alien"],22,49,31,0],"1f47e":[["👾"],"","󾆱",["space_invader"],22,50,31,0],"1f47f":[["👿"],"","󾆲",["imp"],22,51,31,0],"1f480":[["💀"],"","󾆳",["skull"],23,0,31,0],"1f481-200d-2640-fe0f":[["💁‍♀️","💁‍♀","💁"],"","",["woman-tipping-hand","information_desk_person"],23,1,15,0],"1f481-200d-2642-fe0f":[["💁‍♂️","💁‍♂"],"","",["man-tipping-hand"],23,7,15,0],"1f482-200d-2640-fe0f":[["💂‍♀️","💂‍♀"],"","",["female-guard"],23,19,15,0],"1f482-200d-2642-fe0f":[["💂‍♂️","💂‍♂","💂"],"","",["male-guard","guardsman"],23,25,15,0],"1f483":[["💃"],"","󾆶",["dancer"],23,37,31,0],"1f484":[["💄"],"","󾆕",["lipstick"],23,43,31,0],"1f485":[["💅"],"","󾆖",["nail_care"],23,44,31,0],"1f486-200d-2640-fe0f":[["💆‍♀️","💆‍♀","💆"],"","",["woman-getting-massage","massage"],23,50,15,0],"1f486-200d-2642-fe0f":[["💆‍♂️","💆‍♂"],"","",["man-getting-massage"],24,4,15,0],"1f487-200d-2640-fe0f":[["💇‍♀️","💇‍♀","💇"],"","",["woman-getting-haircut","haircut"],24,16,15,0],"1f487-200d-2642-fe0f":[["💇‍♂️","💇‍♂"],"","",["man-getting-haircut"],24,22,15,0],"1f488":[["💈"],"","󾆙",["barber"],24,34,31,0],"1f489":[["💉"],"","󾔉",["syringe"],24,35,31,0],"1f48a":[["💊"],"","󾔊",["pill"],24,36,31,0],"1f48b":[["💋"],"","󾠣",["kiss"],24,37,31,0],"1f48c":[["💌"],"","󾠤",["love_letter"],24,38,31,0],"1f48d":[["💍"],"","󾠥",["ring"],24,39,31,0],"1f48e":[["💎"],"","󾠦",["gem"],24,40,31,0],"1f490":[["💐"],"","󾠨",["bouquet"],24,42,31,0],"1f492":[["💒"],"","󾠪",["wedding"],24,44,31,0],"1f493":[["💓"],"","󾬍",["heartbeat"],24,45,31,0],"1f494":[["💔"],"","󾬎",["broken_heart"],24,46,31,0,"</3"],"1f495":[["💕"],"","󾬏",["two_hearts"],24,47,31,0],"1f496":[["💖"],"","󾬐",["sparkling_heart"],24,48,31,0],"1f497":[["💗"],"","󾬑",["heartpulse"],24,49,31,0],"1f498":[["💘"],"","󾬒",["cupid"],24,50,31,0],"1f499":[["💙"],"","󾬓",["blue_heart"],24,51,31,0,"<3"],"1f49a":[["💚"],"","󾬔",["green_heart"],25,0,31,0,"<3"],"1f49b":[["💛"],"","󾬕",["yellow_heart"],25,1,31,0,"<3"],"1f49c":[["💜"],"","󾬖",["purple_heart"],25,2,31,0,"<3"],"1f49d":[["💝"],"","󾬗",["gift_heart"],25,3,31,0],"1f49e":[["💞"],"","󾬘",["revolving_hearts"],25,4,31,0],"1f49f":[["💟"],"","󾬙",["heart_decoration"],25,5,31,0],"1f4a0":[["💠"],"","󾭕",["diamond_shape_with_a_dot_inside"],25,6,31,0],"1f4a1":[["💡"],"","󾭖",["bulb"],25,7,31,0],"1f4a2":[["💢"],"","󾭗",["anger"],25,8,31,0],"1f4a3":[["💣"],"","󾭘",["bomb"],25,9,31,0],"1f4a4":[["💤"],"","󾭙",["zzz"],25,10,31,0],"1f4a5":[["💥"],"","󾭚",["boom","collision"],25,11,31,0],"1f4a6":[["💦"],"","󾭛",["sweat_drops"],25,12,31,0],"1f4a7":[["💧"],"","󾭜",["droplet"],25,13,31,0],"1f4a8":[["💨"],"","󾭝",["dash"],25,14,31,0],"1f4a9":[["💩"],"","󾓴",["hankey","poop","shit"],25,15,31,0],"1f4aa":[["💪"],"","󾭞",["muscle"],25,16,31,0],"1f4ab":[["💫"],"","󾭟",["dizzy"],25,22,31,0],"1f4ac":[["💬"],"","󾔲",["speech_balloon"],25,23,31,0],"1f4ad":[["💭"],"","",["thought_balloon"],25,24,31,0],"1f4ae":[["💮"],"","󾭺",["white_flower"],25,25,31,0],"1f4af":[["💯"],"","󾭻",["100"],25,26,31,0],"1f4b0":[["💰"],"","󾓝",["moneybag"],25,27,31,0],"1f4b1":[["💱"],"","󾓞",["currency_exchange"],25,28,31,0],"1f4b2":[["💲"],"","󾓠",["heavy_dollar_sign"],25,29,31,0],"1f4b3":[["💳"],"","󾓡",["credit_card"],25,30,31,0],"1f4b4":[["💴"],"","󾓢",["yen"],25,31,31,0],"1f4b5":[["💵"],"","󾓣",["dollar"],25,32,31,0],"1f4b6":[["💶"],"","",["euro"],25,33,31,0],"1f4b7":[["💷"],"","",["pound"],25,34,31,0],"1f4b8":[["💸"],"","󾓤",["money_with_wings"],25,35,31,0],"1f4b9":[["💹"],"","󾓟",["chart"],25,36,31,0],"1f4ba":[["💺"],"","󾔷",["seat"],25,37,31,0],"1f4bb":[["💻"],"","󾔸",["computer"],25,38,31,0],"1f4bc":[["💼"],"","󾔻",["briefcase"],25,39,31,0],"1f4bd":[["💽"],"","󾔼",["minidisc"],25,40,31,0],"1f4be":[["💾"],"","󾔽",["floppy_disk"],25,41,31,0],"1f4bf":[["💿"],"","󾠝",["cd"],25,42,31,0],"1f4c0":[["📀"],"","󾠞",["dvd"],25,43,31,0],"1f4c1":[["📁"],"","󾕃",["file_folder"],25,44,31,0],"1f4c2":[["📂"],"","󾕄",["open_file_folder"],25,45,31,0],"1f4c3":[["📃"],"","󾕀",["page_with_curl"],25,46,31,0],"1f4c4":[["📄"],"","󾕁",["page_facing_up"],25,47,31,0],"1f4c5":[["📅"],"","󾕂",["date"],25,48,31,0],"1f4c6":[["📆"],"","󾕉",["calendar"],25,49,31,0],"1f4c7":[["📇"],"","󾕍",["card_index"],25,50,31,0],"1f4c8":[["📈"],"","󾕋",["chart_with_upwards_trend"],25,51,31,0],"1f4c9":[["📉"],"","󾕌",["chart_with_downwards_trend"],26,0,31,0],"1f4ca":[["📊"],"","󾕊",["bar_chart"],26,1,31,0],"1f4cb":[["📋"],"","󾕈",["clipboard"],26,2,31,0],"1f4cc":[["📌"],"","󾕎",["pushpin"],26,3,31,0],"1f4cd":[["📍"],"","󾔿",["round_pushpin"],26,4,31,0],"1f4ce":[["📎"],"","󾔺",["paperclip"],26,5,31,0],"1f4cf":[["📏"],"","󾕐",["straight_ruler"],26,6,31,0],"1f4d0":[["📐"],"","󾕑",["triangular_ruler"],26,7,31,0],"1f4d1":[["📑"],"","󾕒",["bookmark_tabs"],26,8,31,0],"1f4d2":[["📒"],"","󾕏",["ledger"],26,9,31,0],"1f4d3":[["📓"],"","󾕅",["notebook"],26,10,31,0],"1f4d4":[["📔"],"","󾕇",["notebook_with_decorative_cover"],26,11,31,0],"1f4d5":[["📕"],"","󾔂",["closed_book"],26,12,31,0],"1f4d6":[["📖"],"","󾕆",["book","open_book"],26,13,31,0],"1f4d7":[["📗"],"","󾓿",["green_book"],26,14,31,0],"1f4d8":[["📘"],"","󾔀",["blue_book"],26,15,31,0],"1f4d9":[["📙"],"","󾔁",["orange_book"],26,16,31,0],"1f4da":[["📚"],"","󾔃",["books"],26,17,31,0],"1f4db":[["📛"],"","󾔄",["name_badge"],26,18,31,0],"1f4dc":[["📜"],"","󾓽",["scroll"],26,19,31,0],"1f4dd":[["📝"],"","󾔧",["memo","pencil"],26,20,31,0],"1f4de":[["📞"],"","󾔤",["telephone_receiver"],26,21,31,0],"1f4df":[["📟"],"","󾔢",["pager"],26,22,31,0],"1f4e0":[["📠"],"","󾔨",["fax"],26,23,31,0],"1f4e1":[["📡"],"","󾔱",["satellite_antenna"],26,24,31,0],"1f4e2":[["📢"],"","󾔯",["loudspeaker"],26,25,31,0],"1f4e3":[["📣"],"","󾔰",["mega"],26,26,31,0],"1f4e4":[["📤"],"","󾔳",["outbox_tray"],26,27,31,0],"1f4e5":[["📥"],"","󾔴",["inbox_tray"],26,28,31,0],"1f4e6":[["📦"],"","󾔵",["package"],26,29,31,0],"1f4e7":[["📧"],"","󾮒",["e-mail"],26,30,31,0],"1f4e8":[["📨"],"","󾔪",["incoming_envelope"],26,31,31,0],"1f4e9":[["📩"],"","󾔫",["envelope_with_arrow"],26,32,31,0],"1f4ea":[["📪"],"","󾔬",["mailbox_closed"],26,33,31,0],"1f4eb":[["📫"],"","󾔭",["mailbox"],26,34,31,0],"1f4ec":[["📬"],"","",["mailbox_with_mail"],26,35,31,0],"1f4ed":[["📭"],"","",["mailbox_with_no_mail"],26,36,31,0],"1f4ee":[["📮"],"","󾔮",["postbox"],26,37,31,0],"1f4ef":[["📯"],"","",["postal_horn"],26,38,31,0],"1f4f0":[["📰"],"","󾠢",["newspaper"],26,39,31,0],"1f4f1":[["📱"],"","󾔥",["iphone"],26,40,31,0],"1f4f2":[["📲"],"","󾔦",["calling"],26,41,31,0],"1f4f3":[["📳"],"","󾠹",["vibration_mode"],26,42,31,0],"1f4f4":[["📴"],"","󾠺",["mobile_phone_off"],26,43,31,0],"1f4f5":[["📵"],"","",["no_mobile_phones"],26,44,31,0],"1f4f6":[["📶"],"","󾠸",["signal_strength"],26,45,31,0],"1f4f7":[["📷"],"","󾓯",["camera"],26,46,31,0],"1f4f8":[["📸"],"","",["camera_with_flash"],26,47,15,0],"1f4f9":[["📹"],"","󾓹",["video_camera"],26,48,31,0],"1f4fa":[["📺"],"","󾠜",["tv"],26,49,31,0],"1f4fb":[["📻"],"","󾠟",["radio"],26,50,31,0],"1f4fc":[["📼"],"","󾠠",["vhs"],26,51,31,0],"1f4fd-fe0f":[["📽️","📽"],"","",["film_projector"],27,0,15,0],"1f4ff":[["📿"],"","",["prayer_beads"],27,1,15,0],"1f500":[["🔀"],"","",["twisted_rightwards_arrows"],27,2,31,0],"1f501":[["🔁"],"","",["repeat"],27,3,31,0],"1f502":[["🔂"],"","",["repeat_one"],27,4,31,0],"1f503":[["🔃"],"","󾮑",["arrows_clockwise"],27,5,31,0],"1f504":[["🔄"],"","",["arrows_counterclockwise"],27,6,31,0],"1f505":[["🔅"],"","",["low_brightness"],27,7,31,0],"1f506":[["🔆"],"","",["high_brightness"],27,8,31,0],"1f507":[["🔇"],"","",["mute"],27,9,31,0],"1f508":[["🔈"],"","",["speaker"],27,10,31,0],"1f509":[["🔉"],"","",["sound"],27,11,31,0],"1f50a":[["🔊"],"","󾠡",["loud_sound"],27,12,31,0],"1f50b":[["🔋"],"","󾓼",["battery"],27,13,31,0],"1f50c":[["🔌"],"","󾓾",["electric_plug"],27,14,31,0],"1f50d":[["🔍"],"","󾮅",["mag"],27,15,31,0],"1f50e":[["🔎"],"","󾮍",["mag_right"],27,16,31,0],"1f50f":[["🔏"],"","󾮐",["lock_with_ink_pen"],27,17,31,0],"1f510":[["🔐"],"","󾮊",["closed_lock_with_key"],27,18,31,0],"1f511":[["🔑"],"","󾮂",["key"],27,19,31,0],"1f512":[["🔒"],"","󾮆",["lock"],27,20,31,0],"1f513":[["🔓"],"","󾮇",["unlock"],27,21,31,0],"1f514":[["🔔"],"","󾓲",["bell"],27,22,31,0],"1f515":[["🔕"],"","",["no_bell"],27,23,31,0],"1f516":[["🔖"],"","󾮏",["bookmark"],27,24,31,0],"1f517":[["🔗"],"","󾭋",["link"],27,25,31,0],"1f518":[["🔘"],"","󾮌",["radio_button"],27,26,31,0],"1f519":[["🔙"],"","󾮎",["back"],27,27,31,0],"1f51a":[["🔚"],"","󾀚",["end"],27,28,31,0],"1f51b":[["🔛"],"","󾀙",["on"],27,29,31,0],"1f51c":[["🔜"],"","󾀘",["soon"],27,30,31,0],"1f51d":[["🔝"],"","󾭂",["top"],27,31,31,0],"1f51e":[["🔞"],"","󾬥",["underage"],27,32,31,0],"1f51f":[["🔟"],"","󾠻",["keycap_ten"],27,33,31,0],"1f520":[["🔠"],"","󾭼",["capital_abcd"],27,34,31,0],"1f521":[["🔡"],"","󾭽",["abcd"],27,35,31,0],"1f522":[["🔢"],"","󾭾",["1234"],27,36,31,0],"1f523":[["🔣"],"","󾭿",["symbols"],27,37,31,0],"1f524":[["🔤"],"","󾮀",["abc"],27,38,31,0],"1f525":[["🔥"],"","󾓶",["fire"],27,39,31,0],"1f526":[["🔦"],"","󾓻",["flashlight"],27,40,31,0],"1f527":[["🔧"],"","󾓉",["wrench"],27,41,31,0],"1f528":[["🔨"],"","󾓊",["hammer"],27,42,31,0],"1f529":[["🔩"],"","󾓋",["nut_and_bolt"],27,43,31,0],"1f52a":[["🔪"],"","󾓺",["hocho","knife"],27,44,31,0],"1f52b":[["🔫"],"","󾓵",["gun"],27,45,31,0],"1f52c":[["🔬"],"","",["microscope"],27,46,31,0],"1f52d":[["🔭"],"","",["telescope"],27,47,31,0],"1f52e":[["🔮"],"","󾓷",["crystal_ball"],27,48,31,0],"1f52f":[["🔯"],"","󾓸",["six_pointed_star"],27,49,31,0],"1f530":[["🔰"],"","󾁄",["beginner"],27,50,31,0],"1f531":[["🔱"],"","󾓒",["trident"],27,51,31,0],"1f532":[["🔲"],"","󾭤",["black_square_button"],28,0,31,0],"1f533":[["🔳"],"","󾭧",["white_square_button"],28,1,31,0],"1f534":[["🔴"],"","󾭣",["red_circle"],28,2,31,0],"1f535":[["🔵"],"","󾭤",["large_blue_circle"],28,3,31,0],"1f536":[["🔶"],"","󾭳",["large_orange_diamond"],28,4,31,0],"1f537":[["🔷"],"","󾭴",["large_blue_diamond"],28,5,31,0],"1f538":[["🔸"],"","󾭵",["small_orange_diamond"],28,6,31,0],"1f539":[["🔹"],"","󾭶",["small_blue_diamond"],28,7,31,0],"1f53a":[["🔺"],"","󾭸",["small_red_triangle"],28,8,31,0],"1f53b":[["🔻"],"","󾭹",["small_red_triangle_down"],28,9,31,0],"1f53c":[["🔼"],"","󾬁",["arrow_up_small"],28,10,31,0],"1f53d":[["🔽"],"","󾬀",["arrow_down_small"],28,11,31,0],"1f549-fe0f":[["🕉️","🕉"],"","",["om_symbol"],28,12,15,0],"1f54a-fe0f":[["🕊️","🕊"],"","",["dove_of_peace"],28,13,15,0],"1f54b":[["🕋"],"","",["kaaba"],28,14,15,0],"1f54c":[["🕌"],"","",["mosque"],28,15,15,0],"1f54d":[["🕍"],"","",["synagogue"],28,16,15,0],"1f54e":[["🕎"],"","",["menorah_with_nine_branches"],28,17,15,0],"1f550":[["🕐"],"","󾀞",["clock1"],28,18,31,0],"1f551":[["🕑"],"","󾀟",["clock2"],28,19,31,0],"1f552":[["🕒"],"","󾀠",["clock3"],28,20,31,0],"1f553":[["🕓"],"","󾀡",["clock4"],28,21,31,0],"1f554":[["🕔"],"","󾀢",["clock5"],28,22,31,0],"1f555":[["🕕"],"","󾀣",["clock6"],28,23,31,0],"1f556":[["🕖"],"","󾀤",["clock7"],28,24,31,0],"1f557":[["🕗"],"","󾀥",["clock8"],28,25,31,0],"1f558":[["🕘"],"","󾀦",["clock9"],28,26,31,0],"1f559":[["🕙"],"","󾀧",["clock10"],28,27,31,0],"1f55a":[["🕚"],"","󾀨",["clock11"],28,28,31,0],"1f55b":[["🕛"],"","󾀩",["clock12"],28,29,31,0],"1f55c":[["🕜"],"","",["clock130"],28,30,31,0],"1f55d":[["🕝"],"","",["clock230"],28,31,31,0],"1f55e":[["🕞"],"","",["clock330"],28,32,31,0],"1f55f":[["🕟"],"","",["clock430"],28,33,31,0],"1f560":[["🕠"],"","",["clock530"],28,34,31,0],"1f561":[["🕡"],"","",["clock630"],28,35,31,0],"1f562":[["🕢"],"","",["clock730"],28,36,31,0],"1f563":[["🕣"],"","",["clock830"],28,37,31,0],"1f564":[["🕤"],"","",["clock930"],28,38,31,0],"1f565":[["🕥"],"","",["clock1030"],28,39,31,0],"1f566":[["🕦"],"","",["clock1130"],28,40,31,0],"1f567":[["🕧"],"","",["clock1230"],28,41,31,0],"1f56f-fe0f":[["🕯️","🕯"],"","",["candle"],28,42,15,0],"1f570-fe0f":[["🕰️","🕰"],"","",["mantelpiece_clock"],28,43,15,0],"1f573-fe0f":[["🕳️","🕳"],"","",["hole"],28,44,15,0],"1f574-fe0f":[["🕴️","🕴"],"","",["man_in_business_suit_levitating"],28,45,15,0],"1f575-fe0f-200d-2640-fe0f":[["🕵️‍♀️"],"","",["female-detective"],28,51,7,0],"1f575-fe0f-200d-2642-fe0f":[["🕵️‍♂️","🕵️","🕵"],"","",["male-detective","sleuth_or_spy"],29,5,7,0],"1f576-fe0f":[["🕶️","🕶"],"","",["dark_sunglasses"],29,17,15,0],"1f577-fe0f":[["🕷️","🕷"],"","",["spider"],29,18,15,0],"1f578-fe0f":[["🕸️","🕸"],"","",["spider_web"],29,19,15,0],"1f579-fe0f":[["🕹️","🕹"],"","",["joystick"],29,20,15,0],"1f57a":[["🕺"],"","",["man_dancing"],29,21,15,0],"1f587-fe0f":[["🖇️","🖇"],"","",["linked_paperclips"],29,27,15,0],"1f58a-fe0f":[["🖊️","🖊"],"","",["lower_left_ballpoint_pen"],29,28,15,0],"1f58b-fe0f":[["🖋️","🖋"],"","",["lower_left_fountain_pen"],29,29,15,0],"1f58c-fe0f":[["🖌️","🖌"],"","",["lower_left_paintbrush"],29,30,15,0],"1f58d-fe0f":[["🖍️","🖍"],"","",["lower_left_crayon"],29,31,15,0],"1f590-fe0f":[["🖐️","🖐"],"","",["raised_hand_with_fingers_splayed"],29,32,15,0],"1f595":[["🖕"],"","",["middle_finger","reversed_hand_with_middle_finger_extended"],29,38,15,0],"1f596":[["🖖"],"","",["spock-hand"],29,44,15,0],"1f5a4":[["🖤"],"","",["black_heart"],29,50,15,0],"1f5a5-fe0f":[["🖥️","🖥"],"","",["desktop_computer"],29,51,15,0],"1f5a8-fe0f":[["🖨️","🖨"],"","",["printer"],30,0,15,0],"1f5b1-fe0f":[["🖱️","🖱"],"","",["three_button_mouse"],30,1,15,0],"1f5b2-fe0f":[["🖲️","🖲"],"","",["trackball"],30,2,15,0],"1f5bc-fe0f":[["🖼️","🖼"],"","",["frame_with_picture"],30,3,15,0],"1f5c2-fe0f":[["🗂️","🗂"],"","",["card_index_dividers"],30,4,15,0],"1f5c3-fe0f":[["🗃️","🗃"],"","",["card_file_box"],30,5,15,0],"1f5c4-fe0f":[["🗄️","🗄"],"","",["file_cabinet"],30,6,15,0],"1f5d1-fe0f":[["🗑️","🗑"],"","",["wastebasket"],30,7,15,0],"1f5d2-fe0f":[["🗒️","🗒"],"","",["spiral_note_pad"],30,8,15,0],"1f5d3-fe0f":[["🗓️","🗓"],"","",["spiral_calendar_pad"],30,9,15,0],"1f5dc-fe0f":[["🗜️","🗜"],"","",["compression"],30,10,15,0],"1f5dd-fe0f":[["🗝️","🗝"],"","",["old_key"],30,11,15,0],"1f5de-fe0f":[["🗞️","🗞"],"","",["rolled_up_newspaper"],30,12,15,0],"1f5e1-fe0f":[["🗡️","🗡"],"","",["dagger_knife"],30,13,15,0],"1f5e3-fe0f":[["🗣️","🗣"],"","",["speaking_head_in_silhouette"],30,14,15,0],"1f5e8-fe0f":[["🗨️","🗨"],"","",["left_speech_bubble"],30,15,15,0],"1f5ef-fe0f":[["🗯️","🗯"],"","",["right_anger_bubble"],30,16,15,0],"1f5f3-fe0f":[["🗳️","🗳"],"","",["ballot_box_with_ballot"],30,17,15,0],"1f5fa-fe0f":[["🗺️","🗺"],"","",["world_map"],30,18,15,0],"1f5fb":[["🗻"],"","󾓃",["mount_fuji"],30,19,31,0],"1f5fc":[["🗼"],"","󾓄",["tokyo_tower"],30,20,31,0],"1f5fd":[["🗽"],"","󾓆",["statue_of_liberty"],30,21,31,0],"1f5fe":[["🗾"],"","󾓇",["japan"],30,22,31,0],"1f5ff":[["🗿"],"","󾓈",["moyai"],30,23,31,0],"1f600":[["😀"],"","",["grinning"],30,24,31,0,":D"],"1f601":[["😁"],"","󾌳",["grin"],30,25,31,0],"1f602":[["😂"],"","󾌴",["joy"],30,26,31,0],"1f603":[["😃"],"","󾌰",["smiley"],30,27,31,0,":)"],"1f604":[["😄"],"","󾌸",["smile"],30,28,31,0,":)"],"1f605":[["😅"],"","󾌱",["sweat_smile"],30,29,31,0],"1f606":[["😆"],"","󾌲",["laughing","satisfied"],30,30,31,0],"1f607":[["😇"],"","",["innocent"],30,31,31,0],"1f608":[["😈"],"","",["smiling_imp"],30,32,31,0],"1f609":[["😉"],"","󾍇",["wink"],30,33,31,0,";)"],"1f60a":[["😊"],"","󾌵",["blush"],30,34,31,0,":)"],"1f60b":[["😋"],"","󾌫",["yum"],30,35,31,0],"1f60c":[["😌"],"","󾌾",["relieved"],30,36,31,0],"1f60d":[["😍"],"","󾌧",["heart_eyes"],30,37,31,0],"1f60e":[["😎"],"","",["sunglasses"],30,38,31,0],"1f60f":[["😏"],"","󾍃",["smirk"],30,39,31,0],"1f610":[["😐"],"","",["neutral_face"],30,40,31,0],"1f611":[["😑"],"","",["expressionless"],30,41,31,0],"1f612":[["😒"],"","󾌦",["unamused"],30,42,31,0,":("],"1f613":[["😓"],"","󾍄",["sweat"],30,43,31,0],"1f614":[["😔"],"","󾍀",["pensive"],30,44,31,0],"1f615":[["😕"],"","",["confused"],30,45,31,0],"1f616":[["😖"],"","󾌿",["confounded"],30,46,31,0],"1f617":[["😗"],"","",["kissing"],30,47,31,0],"1f618":[["😘"],"","󾌬",["kissing_heart"],30,48,31,0],"1f619":[["😙"],"","",["kissing_smiling_eyes"],30,49,31,0],"1f61a":[["😚"],"","󾌭",["kissing_closed_eyes"],30,50,31,0],"1f61b":[["😛"],"","",["stuck_out_tongue"],30,51,31,0,":p"],"1f61c":[["😜"],"","󾌩",["stuck_out_tongue_winking_eye"],31,0,31,0,";p"],"1f61d":[["😝"],"","󾌪",["stuck_out_tongue_closed_eyes"],31,1,31,0],"1f61e":[["😞"],"","󾌣",["disappointed"],31,2,31,0,":("],"1f61f":[["😟"],"","",["worried"],31,3,31,0],"1f620":[["😠"],"","󾌠",["angry"],31,4,31,0],"1f621":[["😡"],"","󾌽",["rage"],31,5,31,0],"1f622":[["😢"],"","󾌹",["cry"],31,6,31,0,":'("],"1f623":[["😣"],"","󾌼",["persevere"],31,7,31,0],"1f624":[["😤"],"","󾌨",["triumph"],31,8,31,0],"1f625":[["😥"],"","󾍅",["disappointed_relieved"],31,9,31,0],"1f626":[["😦"],"","",["frowning"],31,10,31,0],"1f627":[["😧"],"","",["anguished"],31,11,31,0],"1f628":[["😨"],"","󾌻",["fearful"],31,12,31,0],"1f629":[["😩"],"","󾌡",["weary"],31,13,31,0],"1f62a":[["😪"],"","󾍂",["sleepy"],31,14,31,0],"1f62b":[["😫"],"","󾍆",["tired_face"],31,15,31,0],"1f62c":[["😬"],"","",["grimacing"],31,16,31,0],"1f62d":[["😭"],"","󾌺",["sob"],31,17,31,0,":'("],"1f62e":[["😮"],"","",["open_mouth"],31,18,31,0],"1f62f":[["😯"],"","",["hushed"],31,19,31,0],"1f630":[["😰"],"","󾌥",["cold_sweat"],31,20,31,0],"1f631":[["😱"],"","󾍁",["scream"],31,21,31,0],"1f632":[["😲"],"","󾌢",["astonished"],31,22,31,0],"1f633":[["😳"],"","󾌯",["flushed"],31,23,31,0],"1f634":[["😴"],"","",["sleeping"],31,24,31,0],"1f635":[["😵"],"","󾌤",["dizzy_face"],31,25,31,0],"1f636":[["😶"],"","",["no_mouth"],31,26,31,0],"1f637":[["😷"],"","󾌮",["mask"],31,27,31,0],"1f638":[["😸"],"","󾍉",["smile_cat"],31,28,31,0],"1f639":[["😹"],"","󾍊",["joy_cat"],31,29,31,0],"1f63a":[["😺"],"","󾍈",["smiley_cat"],31,30,31,0],"1f63b":[["😻"],"","󾍌",["heart_eyes_cat"],31,31,31,0],"1f63c":[["😼"],"","󾍏",["smirk_cat"],31,32,31,0],"1f63d":[["😽"],"","󾍋",["kissing_cat"],31,33,31,0],"1f63e":[["😾"],"","󾍎",["pouting_cat"],31,34,31,0],"1f63f":[["😿"],"","󾍍",["crying_cat_face"],31,35,31,0],"1f640":[["🙀"],"","󾍐",["scream_cat"],31,36,31,0],"1f641":[["🙁"],"","",["slightly_frowning_face"],31,37,15,0],"1f642":[["🙂"],"","",["slightly_smiling_face"],31,38,31,0],"1f643":[["🙃"],"","",["upside_down_face"],31,39,15,0],"1f644":[["🙄"],"","",["face_with_rolling_eyes"],31,40,15,0],"1f645-200d-2640-fe0f":[["🙅‍♀️","🙅‍♀","🙅"],"","",["woman-gesturing-no","no_good"],31,41,15,0],"1f645-200d-2642-fe0f":[["🙅‍♂️","🙅‍♂"],"","",["man-gesturing-no"],31,47,15,0],"1f646-200d-2640-fe0f":[["🙆‍♀️","🙆‍♀","🙆"],"","",["woman-gesturing-ok","ok_woman"],32,7,15,0],"1f646-200d-2642-fe0f":[["🙆‍♂️","🙆‍♂"],"","",["man-gesturing-ok"],32,13,15,0],"1f647-200d-2640-fe0f":[["🙇‍♀️","🙇‍♀"],"","",["woman-bowing"],32,25,15,0],"1f647-200d-2642-fe0f":[["🙇‍♂️","🙇‍♂","🙇"],"","",["man-bowing","bow"],32,31,15,0],"1f648":[["🙈"],"","󾍔",["see_no_evil"],32,43,31,0],"1f649":[["🙉"],"","󾍖",["hear_no_evil"],32,44,31,0],"1f64a":[["🙊"],"","󾍕",["speak_no_evil"],32,45,31,0],"1f64b-200d-2640-fe0f":[["🙋‍♀️","🙋‍♀","🙋"],"","",["woman-raising-hand","raising_hand"],32,46,15,0],"1f64b-200d-2642-fe0f":[["🙋‍♂️","🙋‍♂"],"","",["man-raising-hand"],33,0,15,0],"1f64c":[["🙌"],"","󾍘",["raised_hands"],33,12,31,0],"1f64d-200d-2640-fe0f":[["🙍‍♀️","🙍‍♀","🙍"],"","",["woman-frowning","person_frowning"],33,18,15,0],"1f64d-200d-2642-fe0f":[["🙍‍♂️","🙍‍♂"],"","",["man-frowning"],33,24,15,0],"1f64e-200d-2640-fe0f":[["🙎‍♀️","🙎‍♀","🙎"],"","",["woman-pouting","person_with_pouting_face"],33,36,15,0],"1f64e-200d-2642-fe0f":[["🙎‍♂️","🙎‍♂"],"","",["man-pouting"],33,42,15,0],"1f64f":[["🙏"],"","󾍛",["pray"],34,2,31,0],"1f680":[["🚀"],"","󾟭",["rocket"],34,8,31,0],"1f681":[["🚁"],"","",["helicopter"],34,9,31,0],"1f682":[["🚂"],"","",["steam_locomotive"],34,10,31,0],"1f683":[["🚃"],"","󾟟",["railway_car"],34,11,31,0],"1f684":[["🚄"],"","󾟢",["bullettrain_side"],34,12,31,0],"1f685":[["🚅"],"","󾟣",["bullettrain_front"],34,13,31,0],"1f686":[["🚆"],"","",["train2"],34,14,31,0],"1f687":[["🚇"],"","󾟠",["metro"],34,15,31,0],"1f688":[["🚈"],"","",["light_rail"],34,16,31,0],"1f689":[["🚉"],"","󾟬",["station"],34,17,31,0],"1f68a":[["🚊"],"","",["tram"],34,18,31,0],"1f68b":[["🚋"],"","",["train"],34,19,31,0],"1f68c":[["🚌"],"","󾟦",["bus"],34,20,31,0],"1f68d":[["🚍"],"","",["oncoming_bus"],34,21,31,0],"1f68e":[["🚎"],"","",["trolleybus"],34,22,31,0],"1f68f":[["🚏"],"","󾟧",["busstop"],34,23,31,0],"1f690":[["🚐"],"","",["minibus"],34,24,31,0],"1f691":[["🚑"],"","󾟳",["ambulance"],34,25,31,0],"1f692":[["🚒"],"","󾟲",["fire_engine"],34,26,31,0],"1f693":[["🚓"],"","󾟴",["police_car"],34,27,31,0],"1f694":[["🚔"],"","",["oncoming_police_car"],34,28,31,0],"1f695":[["🚕"],"","󾟯",["taxi"],34,29,31,0],"1f696":[["🚖"],"","",["oncoming_taxi"],34,30,31,0],"1f697":[["🚗"],"","󾟤",["car","red_car"],34,31,31,0],"1f698":[["🚘"],"","",["oncoming_automobile"],34,32,31,0],"1f699":[["🚙"],"","󾟥",["blue_car"],34,33,31,0],"1f69a":[["🚚"],"","󾟱",["truck"],34,34,31,0],"1f69b":[["🚛"],"","",["articulated_lorry"],34,35,31,0],"1f69c":[["🚜"],"","",["tractor"],34,36,31,0],"1f69d":[["🚝"],"","",["monorail"],34,37,31,0],"1f69e":[["🚞"],"","",["mountain_railway"],34,38,31,0],"1f69f":[["🚟"],"","",["suspension_railway"],34,39,31,0],"1f6a0":[["🚠"],"","",["mountain_cableway"],34,40,31,0],"1f6a1":[["🚡"],"","",["aerial_tramway"],34,41,31,0],"1f6a2":[["🚢"],"","󾟨",["ship"],34,42,31,0],"1f6a3-200d-2640-fe0f":[["🚣‍♀️","🚣‍♀"],"","",["woman-rowing-boat"],34,43,15,0],"1f6a3-200d-2642-fe0f":[["🚣‍♂️","🚣‍♂","🚣"],"","",["man-rowing-boat","rowboat"],34,49,15,0],"1f6a4":[["🚤"],"","󾟮",["speedboat"],35,9,31,0],"1f6a5":[["🚥"],"","󾟷",["traffic_light"],35,10,31,0],"1f6a6":[["🚦"],"","",["vertical_traffic_light"],35,11,31,0],"1f6a7":[["🚧"],"","󾟸",["construction"],35,12,31,0],"1f6a8":[["🚨"],"","󾟹",["rotating_light"],35,13,31,0],"1f6a9":[["🚩"],"","󾬢",["triangular_flag_on_post"],35,14,31,0],"1f6aa":[["🚪"],"","󾓳",["door"],35,15,31,0],"1f6ab":[["🚫"],"","󾭈",["no_entry_sign"],35,16,31,0],"1f6ac":[["🚬"],"","󾬞",["smoking"],35,17,31,0],"1f6ad":[["🚭"],"","󾬟",["no_smoking"],35,18,31,0],"1f6ae":[["🚮"],"","",["put_litter_in_its_place"],35,19,31,0],"1f6af":[["🚯"],"","",["do_not_litter"],35,20,31,0],"1f6b0":[["🚰"],"","",["potable_water"],35,21,31,0],"1f6b1":[["🚱"],"","",["non-potable_water"],35,22,31,0],"1f6b2":[["🚲"],"","󾟫",["bike"],35,23,31,0],"1f6b3":[["🚳"],"","",["no_bicycles"],35,24,31,0],"1f6b4-200d-2640-fe0f":[["🚴‍♀️","🚴‍♀"],"","",["woman-biking"],35,25,15,0],"1f6b4-200d-2642-fe0f":[["🚴‍♂️","🚴‍♂","🚴"],"","",["man-biking","bicyclist"],35,31,15,0],"1f6b5-200d-2640-fe0f":[["🚵‍♀️","🚵‍♀"],"","",["woman-mountain-biking"],35,43,15,0],"1f6b5-200d-2642-fe0f":[["🚵‍♂️","🚵‍♂","🚵"],"","",["man-mountain-biking","mountain_bicyclist"],35,49,15,0],"1f6b6-200d-2640-fe0f":[["🚶‍♀️","🚶‍♀"],"","",["woman-walking"],36,9,15,0],"1f6b6-200d-2642-fe0f":[["🚶‍♂️","🚶‍♂","🚶"],"","",["man-walking","walking"],36,15,15,0],"1f6b7":[["🚷"],"","",["no_pedestrians"],36,27,31,0],"1f6b8":[["🚸"],"","",["children_crossing"],36,28,31,0],"1f6b9":[["🚹"],"","󾬳",["mens"],36,29,31,0],"1f6ba":[["🚺"],"","󾬴",["womens"],36,30,31,0],"1f6bb":[["🚻"],"","󾔆",["restroom"],36,31,31,0],"1f6bc":[["🚼"],"","󾬵",["baby_symbol"],36,32,31,0],"1f6bd":[["🚽"],"","󾔇",["toilet"],36,33,31,0],"1f6be":[["🚾"],"","󾔈",["wc"],36,34,31,0],"1f6bf":[["🚿"],"","",["shower"],36,35,31,0],"1f6c0":[["🛀"],"","󾔅",["bath"],36,36,31,0],"1f6c1":[["🛁"],"","",["bathtub"],36,42,31,0],"1f6c2":[["🛂"],"","",["passport_control"],36,43,31,0],"1f6c3":[["🛃"],"","",["customs"],36,44,31,0],"1f6c4":[["🛄"],"","",["baggage_claim"],36,45,31,0],"1f6c5":[["🛅"],"","",["left_luggage"],36,46,31,0],"1f6cb-fe0f":[["🛋️","🛋"],"","",["couch_and_lamp"],36,47,15,0],"1f6cc":[["🛌"],"","",["sleeping_accommodation"],36,48,15,0],"1f6cd-fe0f":[["🛍️","🛍"],"","",["shopping_bags"],37,2,15,0],"1f6ce-fe0f":[["🛎️","🛎"],"","",["bellhop_bell"],37,3,15,0],"1f6cf-fe0f":[["🛏️","🛏"],"","",["bed"],37,4,15,0],"1f6d0":[["🛐"],"","",["place_of_worship"],37,5,15,0],"1f6d1":[["🛑"],"","",["octagonal_sign"],37,6,15,0],"1f6d2":[["🛒"],"","",["shopping_trolley"],37,7,15,0],"1f6e0-fe0f":[["🛠️","🛠"],"","",["hammer_and_wrench"],37,8,15,0],"1f6e1-fe0f":[["🛡️","🛡"],"","",["shield"],37,9,15,0],"1f6e2-fe0f":[["🛢️","🛢"],"","",["oil_drum"],37,10,15,0],"1f6e3-fe0f":[["🛣️","🛣"],"","",["motorway"],37,11,15,0],"1f6e4-fe0f":[["🛤️","🛤"],"","",["railway_track"],37,12,15,0],"1f6e5-fe0f":[["🛥️","🛥"],"","",["motor_boat"],37,13,15,0],"1f6e9-fe0f":[["🛩️","🛩"],"","",["small_airplane"],37,14,15,0],"1f6eb":[["🛫"],"","",["airplane_departure"],37,15,15,0],"1f6ec":[["🛬"],"","",["airplane_arriving"],37,16,15,0],"1f6f0-fe0f":[["🛰️","🛰"],"","",["satellite"],37,17,15,0],"1f6f3-fe0f":[["🛳️","🛳"],"","",["passenger_ship"],37,18,15,0],"1f6f4":[["🛴"],"","",["scooter"],37,19,15,0],"1f6f5":[["🛵"],"","",["motor_scooter"],37,20,15,0],"1f6f6":[["🛶"],"","",["canoe"],37,21,15,0],"1f6f7":[["🛷"],"","",["sled"],37,22,15,0],"1f6f8":[["🛸"],"","",["flying_saucer"],37,23,15,0],"1f910":[["🤐"],"","",["zipper_mouth_face"],37,24,15,0],"1f911":[["🤑"],"","",["money_mouth_face"],37,25,15,0],"1f912":[["🤒"],"","",["face_with_thermometer"],37,26,15,0],"1f913":[["🤓"],"","",["nerd_face"],37,27,15,0],"1f914":[["🤔"],"","",["thinking_face"],37,28,15,0],"1f915":[["🤕"],"","",["face_with_head_bandage"],37,29,15,0],"1f916":[["🤖"],"","",["robot_face"],37,30,15,0],"1f917":[["🤗"],"","",["hugging_face"],37,31,15,0],"1f918":[["🤘"],"","",["the_horns","sign_of_the_horns"],37,32,15,0],"1f919":[["🤙"],"","",["call_me_hand"],37,38,15,0],"1f91a":[["🤚"],"","",["raised_back_of_hand"],37,44,15,0],"1f91b":[["🤛"],"","",["left-facing_fist"],37,50,15,0],"1f91c":[["🤜"],"","",["right-facing_fist"],38,4,15,0],"1f91d":[["🤝"],"","",["handshake"],38,10,15,0],"1f91e":[["🤞"],"","",["crossed_fingers","hand_with_index_and_middle_fingers_crossed"],38,11,15,0],"1f91f":[["🤟"],"","",["i_love_you_hand_sign"],38,17,15,0],"1f920":[["🤠"],"","",["face_with_cowboy_hat"],38,23,15,0],"1f921":[["🤡"],"","",["clown_face"],38,24,15,0],"1f922":[["🤢"],"","",["nauseated_face"],38,25,15,0],"1f923":[["🤣"],"","",["rolling_on_the_floor_laughing"],38,26,15,0],"1f924":[["🤤"],"","",["drooling_face"],38,27,15,0],"1f925":[["🤥"],"","",["lying_face"],38,28,15,0],"1f926-200d-2640-fe0f":[["🤦‍♀️","🤦‍♀"],"","",["woman-facepalming"],38,29,15,0],"1f926-200d-2642-fe0f":[["🤦‍♂️","🤦‍♂"],"","",["man-facepalming"],38,35,15,0],"1f926":[["🤦"],"","",["face_palm"],38,41,7,0],"1f927":[["🤧"],"","",["sneezing_face"],38,47,15,0],"1f928":[["🤨"],"","",["face_with_raised_eyebrow","face_with_one_eyebrow_raised"],38,48,15,0],"1f929":[["🤩"],"","",["star-struck","grinning_face_with_star_eyes"],38,49,15,0],"1f92a":[["🤪"],"","",["zany_face","grinning_face_with_one_large_and_one_small_eye"],38,50,15,0],"1f92b":[["🤫"],"","",["shushing_face","face_with_finger_covering_closed_lips"],38,51,15,0],"1f92c":[["🤬"],"","",["face_with_symbols_on_mouth","serious_face_with_symbols_covering_mouth"],39,0,15,0],"1f92d":[["🤭"],"","",["face_with_hand_over_mouth","smiling_face_with_smiling_eyes_and_hand_covering_mouth"],39,1,15,0],"1f92e":[["🤮"],"","",["face_vomiting","face_with_open_mouth_vomiting"],39,2,15,0],"1f92f":[["🤯"],"","",["exploding_head","shocked_face_with_exploding_head"],39,3,15,0],"1f930":[["🤰"],"","",["pregnant_woman"],39,4,15,0],"1f931":[["🤱"],"","",["breast-feeding"],39,10,15,0],"1f932":[["🤲"],"","",["palms_up_together"],39,16,15,0],"1f933":[["🤳"],"","",["selfie"],39,22,15,0],"1f934":[["🤴"],"","",["prince"],39,28,15,0],"1f935":[["🤵"],"","",["man_in_tuxedo"],39,34,15,0],"1f936":[["🤶"],"","",["mrs_claus","mother_christmas"],39,40,15,0],"1f937-200d-2640-fe0f":[["🤷‍♀️","🤷‍♀"],"","",["woman-shrugging"],39,46,15,0],"1f937-200d-2642-fe0f":[["🤷‍♂️","🤷‍♂"],"","",["man-shrugging"],40,0,15,0],"1f937":[["🤷"],"","",["shrug"],40,6,7,0],"1f938-200d-2640-fe0f":[["🤸‍♀️","🤸‍♀"],"","",["woman-cartwheeling"],40,12,15,0],"1f938-200d-2642-fe0f":[["🤸‍♂️","🤸‍♂"],"","",["man-cartwheeling"],40,18,15,0],"1f938":[["🤸"],"","",["person_doing_cartwheel"],40,24,7,0],"1f939-200d-2640-fe0f":[["🤹‍♀️","🤹‍♀"],"","",["woman-juggling"],40,30,7,0],"1f939-200d-2642-fe0f":[["🤹‍♂️","🤹‍♂"],"","",["man-juggling"],40,36,7,0],"1f939":[["🤹"],"","",["juggling"],40,42,15,0],"1f93a":[["🤺"],"","",["fencer"],40,48,15,0],"1f93c-200d-2640-fe0f":[["🤼‍♀️","🤼‍♀"],"","",["woman-wrestling"],40,49,15,0],"1f93c-200d-2642-fe0f":[["🤼‍♂️","🤼‍♂"],"","",["man-wrestling"],40,50,15,0],"1f93c":[["🤼"],"","",["wrestlers"],40,51,7,0],"1f93d-200d-2640-fe0f":[["🤽‍♀️","🤽‍♀"],"","",["woman-playing-water-polo"],41,0,15,0],"1f93d-200d-2642-fe0f":[["🤽‍♂️","🤽‍♂"],"","",["man-playing-water-polo"],41,6,15,0],"1f93d":[["🤽"],"","",["water_polo"],41,12,7,0],"1f93e-200d-2640-fe0f":[["🤾‍♀️","🤾‍♀"],"","",["woman-playing-handball"],41,18,15,0],"1f93e-200d-2642-fe0f":[["🤾‍♂️","🤾‍♂"],"","",["man-playing-handball"],41,24,15,0],"1f93e":[["🤾"],"","",["handball"],41,30,7,0],"1f940":[["🥀"],"","",["wilted_flower"],41,36,15,0],"1f941":[["🥁"],"","",["drum_with_drumsticks"],41,37,15,0],"1f942":[["🥂"],"","",["clinking_glasses"],41,38,15,0],"1f943":[["🥃"],"","",["tumbler_glass"],41,39,15,0],"1f944":[["🥄"],"","",["spoon"],41,40,15,0],"1f945":[["🥅"],"","",["goal_net"],41,41,15,0],"1f947":[["🥇"],"","",["first_place_medal"],41,42,15,0],"1f948":[["🥈"],"","",["second_place_medal"],41,43,15,0],"1f949":[["🥉"],"","",["third_place_medal"],41,44,15,0],"1f94a":[["🥊"],"","",["boxing_glove"],41,45,15,0],"1f94b":[["🥋"],"","",["martial_arts_uniform"],41,46,15,0],"1f94c":[["🥌"],"","",["curling_stone"],41,47,15,0],"1f950":[["🥐"],"","",["croissant"],41,48,15,0],"1f951":[["🥑"],"","",["avocado"],41,49,15,0],"1f952":[["🥒"],"","",["cucumber"],41,50,15,0],"1f953":[["🥓"],"","",["bacon"],41,51,15,0],"1f954":[["🥔"],"","",["potato"],42,0,15,0],"1f955":[["🥕"],"","",["carrot"],42,1,15,0],"1f956":[["🥖"],"","",["baguette_bread"],42,2,15,0],"1f957":[["🥗"],"","",["green_salad"],42,3,15,0],"1f958":[["🥘"],"","",["shallow_pan_of_food"],42,4,15,0],"1f959":[["🥙"],"","",["stuffed_flatbread"],42,5,15,0],"1f95a":[["🥚"],"","",["egg"],42,6,15,0],"1f95b":[["🥛"],"","",["glass_of_milk"],42,7,15,0],"1f95c":[["🥜"],"","",["peanuts"],42,8,15,0],"1f95d":[["🥝"],"","",["kiwifruit"],42,9,15,0],"1f95e":[["🥞"],"","",["pancakes"],42,10,15,0],"1f95f":[["🥟"],"","",["dumpling"],42,11,15,0],"1f960":[["🥠"],"","",["fortune_cookie"],42,12,15,0],"1f961":[["🥡"],"","",["takeout_box"],42,13,15,0],"1f962":[["🥢"],"","",["chopsticks"],42,14,15,0],"1f963":[["🥣"],"","",["bowl_with_spoon"],42,15,15,0],"1f964":[["🥤"],"","",["cup_with_straw"],42,16,15,0],"1f965":[["🥥"],"","",["coconut"],42,17,15,0],"1f966":[["🥦"],"","",["broccoli"],42,18,15,0],"1f967":[["🥧"],"","",["pie"],42,19,15,0],"1f968":[["🥨"],"","",["pretzel"],42,20,15,0],"1f969":[["🥩"],"","",["cut_of_meat"],42,21,15,0],"1f96a":[["🥪"],"","",["sandwich"],42,22,15,0],"1f96b":[["🥫"],"","",["canned_food"],42,23,15,0],"1f980":[["🦀"],"","",["crab"],42,24,15,0],"1f981":[["🦁"],"","",["lion_face"],42,25,15,0],"1f982":[["🦂"],"","",["scorpion"],42,26,15,0],"1f983":[["🦃"],"","",["turkey"],42,27,15,0],"1f984":[["🦄"],"","",["unicorn_face"],42,28,15,0],"1f985":[["🦅"],"","",["eagle"],42,29,15,0],"1f986":[["🦆"],"","",["duck"],42,30,15,0],"1f987":[["🦇"],"","",["bat"],42,31,15,0],"1f988":[["🦈"],"","",["shark"],42,32,15,0],"1f989":[["🦉"],"","",["owl"],42,33,15,0],"1f98a":[["🦊"],"","",["fox_face"],42,34,15,0],"1f98b":[["🦋"],"","",["butterfly"],42,35,15,0],"1f98c":[["🦌"],"","",["deer"],42,36,15,0],"1f98d":[["🦍"],"","",["gorilla"],42,37,15,0],"1f98e":[["🦎"],"","",["lizard"],42,38,15,0],"1f98f":[["🦏"],"","",["rhinoceros"],42,39,15,0],"1f990":[["🦐"],"","",["shrimp"],42,40,15,0],"1f991":[["🦑"],"","",["squid"],42,41,15,0],"1f992":[["🦒"],"","",["giraffe_face"],42,42,15,0],"1f993":[["🦓"],"","",["zebra_face"],42,43,15,0],"1f994":[["🦔"],"","",["hedgehog"],42,44,15,0],"1f995":[["🦕"],"","",["sauropod"],42,45,15,0],"1f996":[["🦖"],"","",["t-rex"],42,46,15,0],"1f997":[["🦗"],"","",["cricket"],42,47,15,0],"1f9c0":[["🧀"],"","",["cheese_wedge"],42,48,15,0],"1f9d0":[["🧐"],"","",["face_with_monocle"],42,49,15,0],"1f9d1":[["🧑"],"","",["adult"],42,50,15,0],"1f9d2":[["🧒"],"","",["child"],43,4,15,0],"1f9d3":[["🧓"],"","",["older_adult"],43,10,15,0],"1f9d4":[["🧔"],"","",["bearded_person"],43,16,15,0],"1f9d5":[["🧕"],"","",["person_with_headscarf"],43,22,15,0],"1f9d6-200d-2640-fe0f":[["🧖‍♀️","🧖‍♀"],"","",["woman_in_steamy_room"],43,28,15,0],"1f9d6-200d-2642-fe0f":[["🧖‍♂️","🧖‍♂","🧖"],"","",["man_in_steamy_room","person_in_steamy_room"],43,34,15,0],"1f9d7-200d-2640-fe0f":[["🧗‍♀️","🧗‍♀","🧗"],"","",["woman_climbing","person_climbing"],43,46,15,0],"1f9d7-200d-2642-fe0f":[["🧗‍♂️","🧗‍♂"],"","",["man_climbing"],44,0,15,0],"1f9d8-200d-2640-fe0f":[["🧘‍♀️","🧘‍♀","🧘"],"","",["woman_in_lotus_position","person_in_lotus_position"],44,12,15,0],"1f9d8-200d-2642-fe0f":[["🧘‍♂️","🧘‍♂"],"","",["man_in_lotus_position"],44,18,15,0],"1f9d9-200d-2640-fe0f":[["🧙‍♀️","🧙‍♀","🧙"],"","",["female_mage","mage"],44,30,15,0],"1f9d9-200d-2642-fe0f":[["🧙‍♂️","🧙‍♂"],"","",["male_mage"],44,36,15,0],"1f9da-200d-2640-fe0f":[["🧚‍♀️","🧚‍♀","🧚"],"","",["female_fairy","fairy"],44,48,15,0],"1f9da-200d-2642-fe0f":[["🧚‍♂️","🧚‍♂"],"","",["male_fairy"],45,2,15,0],"1f9db-200d-2640-fe0f":[["🧛‍♀️","🧛‍♀","🧛"],"","",["female_vampire","vampire"],45,14,15,0],"1f9db-200d-2642-fe0f":[["🧛‍♂️","🧛‍♂"],"","",["male_vampire"],45,20,15,0],"1f9dc-200d-2640-fe0f":[["🧜‍♀️","🧜‍♀"],"","",["mermaid"],45,32,15,0],"1f9dc-200d-2642-fe0f":[["🧜‍♂️","🧜‍♂","🧜"],"","",["merman","merperson"],45,38,15,0],"1f9dd-200d-2640-fe0f":[["🧝‍♀️","🧝‍♀"],"","",["female_elf"],45,50,15,0],"1f9dd-200d-2642-fe0f":[["🧝‍♂️","🧝‍♂","🧝"],"","",["male_elf","elf"],46,4,15,0],"1f9de-200d-2640-fe0f":[["🧞‍♀️","🧞‍♀"],"","",["female_genie"],46,16,15,0],"1f9de-200d-2642-fe0f":[["🧞‍♂️","🧞‍♂","🧞"],"","",["male_genie","genie"],46,17,15,0],"1f9df-200d-2640-fe0f":[["🧟‍♀️","🧟‍♀"],"","",["female_zombie"],46,19,15,0],"1f9df-200d-2642-fe0f":[["🧟‍♂️","🧟‍♂","🧟"],"","",["male_zombie","zombie"],46,20,15,0],"1f9e0":[["🧠"],"","",["brain"],46,22,15,0],"1f9e1":[["🧡"],"","",["orange_heart"],46,23,15,0],"1f9e2":[["🧢"],"","",["billed_cap"],46,24,15,0],"1f9e3":[["🧣"],"","",["scarf"],46,25,15,0],"1f9e4":[["🧤"],"","",["gloves"],46,26,15,0],"1f9e5":[["🧥"],"","",["coat"],46,27,15,0],"1f9e6":[["🧦"],"","",["socks"],46,28,15,0],"203c-fe0f":[["‼️","‼"],"","󾬆",["bangbang"],46,29,31,0],"2049-fe0f":[["⁉️","⁉"],"","󾬅",["interrobang"],46,30,31,0],"2122-fe0f":[["™️","™"],"","󾬪",["tm"],46,31,31,0],"2139-fe0f":[["ℹ️","ℹ"],"","󾭇",["information_source"],46,32,31,0],"2194-fe0f":[["↔️","↔"],"","󾫶",["left_right_arrow"],46,33,31,0],"2195-fe0f":[["↕️","↕"],"","󾫷",["arrow_up_down"],46,34,31,0],"2196-fe0f":[["↖️","↖"],"","󾫲",["arrow_upper_left"],46,35,31,0],"2197-fe0f":[["↗️","↗"],"","󾫰",["arrow_upper_right"],46,36,31,0],"2198-fe0f":[["↘️","↘"],"","󾫱",["arrow_lower_right"],46,37,31,0],"2199-fe0f":[["↙️","↙"],"","󾫳",["arrow_lower_left"],46,38,31,0],"21a9-fe0f":[["↩️","↩"],"","󾮃",["leftwards_arrow_with_hook"],46,39,31,0],"21aa-fe0f":[["↪️","↪"],"","󾮈",["arrow_right_hook"],46,40,31,0],"231a":[["⌚"],"","󾀝",["watch"],46,41,31,0],"231b":[["⌛"],"","󾀜",["hourglass"],46,42,31,0],"2328-fe0f":[["⌨️","⌨"],"","",["keyboard"],46,43,15,0],"23cf-fe0f":[["⏏️","⏏"],"","",["eject"],46,44,15,0],"23e9":[["⏩"],"","󾫾",["fast_forward"],46,45,31,0],"23ea":[["⏪"],"","󾫿",["rewind"],46,46,31,0],"23eb":[["⏫"],"","󾬃",["arrow_double_up"],46,47,31,0],"23ec":[["⏬"],"","󾬂",["arrow_double_down"],46,48,31,0],"23ed-fe0f":[["⏭️","⏭"],"","",["black_right_pointing_double_triangle_with_vertical_bar"],46,49,15,0],"23ee-fe0f":[["⏮️","⏮"],"","",["black_left_pointing_double_triangle_with_vertical_bar"],46,50,15,0],"23ef-fe0f":[["⏯️","⏯"],"","",["black_right_pointing_triangle_with_double_vertical_bar"],46,51,15,0],"23f0":[["⏰"],"","󾀪",["alarm_clock"],47,0,31,0],"23f1-fe0f":[["⏱️","⏱"],"","",["stopwatch"],47,1,15,0],"23f2-fe0f":[["⏲️","⏲"],"","",["timer_clock"],47,2,15,0],"23f3":[["⏳"],"","󾀛",["hourglass_flowing_sand"],47,3,31,0],"23f8-fe0f":[["⏸️","⏸"],"","",["double_vertical_bar"],47,4,15,0],"23f9-fe0f":[["⏹️","⏹"],"","",["black_square_for_stop"],47,5,15,0],"23fa-fe0f":[["⏺️","⏺"],"","",["black_circle_for_record"],47,6,15,0],"24c2-fe0f":[["Ⓜ️","Ⓜ"],"","󾟡",["m"],47,7,31,0],"25aa-fe0f":[["▪️","▪"],"","󾭮",["black_small_square"],47,8,31,0],"25ab-fe0f":[["▫️","▫"],"","󾭭",["white_small_square"],47,9,31,0],"25b6-fe0f":[["▶️","▶"],"","󾫼",["arrow_forward"],47,10,31,0],"25c0-fe0f":[["◀️","◀"],"","󾫽",["arrow_backward"],47,11,31,0],"25fb-fe0f":[["◻️","◻"],"","󾭱",["white_medium_square"],47,12,31,0],"25fc-fe0f":[["◼️","◼"],"","󾭲",["black_medium_square"],47,13,31,0],"25fd":[["◽"],"","󾭯",["white_medium_small_square"],47,14,31,0],"25fe":[["◾"],"","󾭰",["black_medium_small_square"],47,15,31,0],"2600-fe0f":[["☀️","☀"],"","󾀀",["sunny"],47,16,31,0],"2601-fe0f":[["☁️","☁"],"","󾀁",["cloud"],47,17,31,0],"2602-fe0f":[["☂️","☂"],"","",["umbrella"],47,18,15,0],"2603-fe0f":[["☃️","☃"],"","",["snowman"],47,19,15,0],"2604-fe0f":[["☄️","☄"],"","",["comet"],47,20,15,0],"260e-fe0f":[["☎️","☎"],"","󾔣",["phone","telephone"],47,21,31,0],"2611-fe0f":[["☑️","☑"],"","󾮋",["ballot_box_with_check"],47,22,31,0],2614:[["☔"],"","󾀂",["umbrella_with_rain_drops"],47,23,31,0],2615:[["☕"],"","󾦁",["coffee"],47,24,31,0],"2618-fe0f":[["☘️","☘"],"","",["shamrock"],47,25,15,0],"261d-fe0f":[["☝️","☝"],"","󾮘",["point_up"],47,26,31,0],"2620-fe0f":[["☠️","☠"],"","",["skull_and_crossbones"],47,32,15,0],"2622-fe0f":[["☢️","☢"],"","",["radioactive_sign"],47,33,15,0],"2623-fe0f":[["☣️","☣"],"","",["biohazard_sign"],47,34,15,0],"2626-fe0f":[["☦️","☦"],"","",["orthodox_cross"],47,35,15,0],"262a-fe0f":[["☪️","☪"],"","",["star_and_crescent"],47,36,15,0],"262e-fe0f":[["☮️","☮"],"","",["peace_symbol"],47,37,15,0],"262f-fe0f":[["☯️","☯"],"","",["yin_yang"],47,38,15,0],"2638-fe0f":[["☸️","☸"],"","",["wheel_of_dharma"],47,39,15,0],"2639-fe0f":[["☹️","☹"],"","",["white_frowning_face"],47,40,15,0],"263a-fe0f":[["☺️","☺"],"","󾌶",["relaxed"],47,41,31,0],"2640-fe0f":[["♀️","♀"],"","",["female_sign"],47,42,14,0],"2642-fe0f":[["♂️","♂"],"","",["male_sign"],47,43,14,0],2648:[["♈"],"","󾀫",["aries"],47,44,31,0],2649:[["♉"],"","󾀬",["taurus"],47,45,31,0],"264a":[["♊"],"","󾀭",["gemini"],47,46,31,0],"264b":[["♋"],"","󾀮",["cancer"],47,47,31,0],"264c":[["♌"],"","󾀯",["leo"],47,48,31,0],"264d":[["♍"],"","󾀰",["virgo"],47,49,31,0],"264e":[["♎"],"","󾀱",["libra"],47,50,31,0],"264f":[["♏"],"","󾀲",["scorpius"],47,51,31,0],2650:[["♐"],"","󾀳",["sagittarius"],48,0,31,0],2651:[["♑"],"","󾀴",["capricorn"],48,1,31,0],2652:[["♒"],"","󾀵",["aquarius"],48,2,31,0],2653:[["♓"],"","󾀶",["pisces"],48,3,31,0],"2660-fe0f":[["♠️","♠"],"","󾬛",["spades"],48,4,31,0],"2663-fe0f":[["♣️","♣"],"","󾬝",["clubs"],48,5,31,0],"2665-fe0f":[["♥️","♥"],"","󾬚",["hearts"],48,6,31,0],"2666-fe0f":[["♦️","♦"],"","󾬜",["diamonds"],48,7,31,0],"2668-fe0f":[["♨️","♨"],"","󾟺",["hotsprings"],48,8,31,0],"267b-fe0f":[["♻️","♻"],"","󾬬",["recycle"],48,9,31,0],"267f":[["♿"],"","󾬠",["wheelchair"],48,10,31,0],"2692-fe0f":[["⚒️","⚒"],"","",["hammer_and_pick"],48,11,15,0],2693:[["⚓"],"","󾓁",["anchor"],48,12,31,0],"2694-fe0f":[["⚔️","⚔"],"","",["crossed_swords"],48,13,15,0],"2695-fe0f":[["⚕️","⚕"],"","",["medical_symbol","staff_of_aesculapius"],48,14,14,0],"2696-fe0f":[["⚖️","⚖"],"","",["scales"],48,15,15,0],"2697-fe0f":[["⚗️","⚗"],"","",["alembic"],48,16,15,0],"2699-fe0f":[["⚙️","⚙"],"","",["gear"],48,17,15,0],"269b-fe0f":[["⚛️","⚛"],"","",["atom_symbol"],48,18,15,0],"269c-fe0f":[["⚜️","⚜"],"","",["fleur_de_lis"],48,19,15,0],"26a0-fe0f":[["⚠️","⚠"],"","󾬣",["warning"],48,20,31,0],"26a1":[["⚡"],"","󾀄",["zap"],48,21,31,0],"26aa":[["⚪"],"","󾭥",["white_circle"],48,22,31,0],"26ab":[["⚫"],"","󾭦",["black_circle"],48,23,31,0],"26b0-fe0f":[["⚰️","⚰"],"","",["coffin"],48,24,15,0],"26b1-fe0f":[["⚱️","⚱"],"","",["funeral_urn"],48,25,15,0],"26bd":[["⚽"],"","󾟔",["soccer"],48,26,31,0],"26be":[["⚾"],"","󾟑",["baseball"],48,27,31,0],"26c4":[["⛄"],"","󾀃",["snowman_without_snow"],48,28,31,0],"26c5":[["⛅"],"","󾀏",["partly_sunny"],48,29,31,0],"26c8-fe0f":[["⛈️","⛈"],"","",["thunder_cloud_and_rain"],48,30,15,0],"26ce":[["⛎"],"","󾀷",["ophiuchus"],48,31,31,0],"26cf-fe0f":[["⛏️","⛏"],"","",["pick"],48,32,15,0],"26d1-fe0f":[["⛑️","⛑"],"","",["helmet_with_white_cross"],48,33,15,0],"26d3-fe0f":[["⛓️","⛓"],"","",["chains"],48,34,15,0],"26d4":[["⛔"],"","󾬦",["no_entry"],48,35,31,0],"26e9-fe0f":[["⛩️","⛩"],"","",["shinto_shrine"],48,36,15,0],"26ea":[["⛪"],"","󾒻",["church"],48,37,31,0],"26f0-fe0f":[["⛰️","⛰"],"","",["mountain"],48,38,15,0],"26f1-fe0f":[["⛱️","⛱"],"","",["umbrella_on_ground"],48,39,15,0],"26f2":[["⛲"],"","󾒼",["fountain"],48,40,31,0],"26f3":[["⛳"],"","󾟒",["golf"],48,41,31,0],"26f4-fe0f":[["⛴️","⛴"],"","",["ferry"],48,42,15,0],"26f5":[["⛵"],"","󾟪",["boat","sailboat"],48,43,31,0],"26f7-fe0f":[["⛷️","⛷"],"","",["skier"],48,44,15,0],"26f8-fe0f":[["⛸️","⛸"],"","",["ice_skate"],48,45,15,0],"26f9-fe0f-200d-2640-fe0f":[["⛹️‍♀️"],"","",["woman-bouncing-ball"],48,46,7,0],"26f9-fe0f-200d-2642-fe0f":[["⛹️‍♂️","⛹️","⛹"],"","",["man-bouncing-ball","person_with_ball"],49,0,7,0],"26fa":[["⛺"],"","󾟻",["tent"],49,12,31,0],"26fd":[["⛽"],"","󾟵",["fuelpump"],49,13,31,0],"2702-fe0f":[["✂️","✂"],"","󾔾",["scissors"],49,14,31,0],2705:[["✅"],"","󾭊",["white_check_mark"],49,15,31,0],"2708-fe0f":[["✈️","✈"],"","󾟩",["airplane"],49,16,31,0],"2709-fe0f":[["✉️","✉"],"","󾔩",["email","envelope"],49,17,31,0],"270a":[["✊"],"","󾮓",["fist"],49,18,31,0],"270b":[["✋"],"","󾮕",["hand","raised_hand"],49,24,31,0],"270c-fe0f":[["✌️","✌"],"","󾮔",["v"],49,30,31,0],"270d-fe0f":[["✍️","✍"],"","",["writing_hand"],49,36,15,0],"270f-fe0f":[["✏️","✏"],"","󾔹",["pencil2"],49,42,31,0],"2712-fe0f":[["✒️","✒"],"","󾔶",["black_nib"],49,43,31,0],"2714-fe0f":[["✔️","✔"],"","󾭉",["heavy_check_mark"],49,44,31,0],"2716-fe0f":[["✖️","✖"],"","󾭓",["heavy_multiplication_x"],49,45,31,0],"271d-fe0f":[["✝️","✝"],"","",["latin_cross"],49,46,15,0],"2721-fe0f":[["✡️","✡"],"","",["star_of_david"],49,47,15,0],2728:[["✨"],"","󾭠",["sparkles"],49,48,31,0],"2733-fe0f":[["✳️","✳"],"","󾭢",["eight_spoked_asterisk"],49,49,31,0],"2734-fe0f":[["✴️","✴"],"","󾭡",["eight_pointed_black_star"],49,50,31,0],"2744-fe0f":[["❄️","❄"],"","󾀎",["snowflake"],49,51,31,0],"2747-fe0f":[["❇️","❇"],"","󾭷",["sparkle"],50,0,31,0],"274c":[["❌"],"","󾭅",["x"],50,1,31,0],"274e":[["❎"],"","󾭆",["negative_squared_cross_mark"],50,2,31,0],2753:[["❓"],"","󾬉",["question"],50,3,31,0],2754:[["❔"],"","󾬊",["grey_question"],50,4,31,0],2755:[["❕"],"","󾬋",["grey_exclamation"],50,5,31,0],2757:[["❗"],"","󾬄",["exclamation","heavy_exclamation_mark"],50,6,31,0],"2763-fe0f":[["❣️","❣"],"","",["heavy_heart_exclamation_mark_ornament"],50,7,15,0],"2764-fe0f":[["❤️","❤"],"","󾬌",["heart"],50,8,31,0,"<3"],2795:[["➕"],"","󾭑",["heavy_plus_sign"],50,9,31,0],2796:[["➖"],"","󾭒",["heavy_minus_sign"],50,10,31,0],2797:[["➗"],"","󾭔",["heavy_division_sign"],50,11,31,0],"27a1-fe0f":[["➡️","➡"],"","󾫺",["arrow_right"],50,12,31,0],"27b0":[["➰"],"","󾬈",["curly_loop"],50,13,31,0],"27bf":[["➿"],"","󾠫",["loop"],50,14,31,0],"2934-fe0f":[["⤴️","⤴"],"","󾫴",["arrow_heading_up"],50,15,31,0],"2935-fe0f":[["⤵️","⤵"],"","󾫵",["arrow_heading_down"],50,16,31,0],"2b05-fe0f":[["⬅️","⬅"],"","󾫻",["arrow_left"],50,17,31,0],"2b06-fe0f":[["⬆️","⬆"],"","󾫸",["arrow_up"],50,18,31,0],"2b07-fe0f":[["⬇️","⬇"],"","󾫹",["arrow_down"],50,19,31,0],"2b1b":[["⬛"],"","󾭬",["black_large_square"],50,20,31,0],"2b1c":[["⬜"],"","󾭫",["white_large_square"],50,21,31,0],"2b50":[["⭐"],"","󾭨",["star"],50,22,31,0],"2b55":[["⭕"],"","󾭄",["o"],50,23,31,0],"3030-fe0f":[["〰️","〰"],"","󾬇",["wavy_dash"],50,24,31,0],"303d-fe0f":[["〽️","〽"],"","󾠛",["part_alternation_mark"],50,25,31,0],"3297-fe0f":[["㊗️","㊗"],"","󾭃",["congratulations"],50,26,31,0],"3299-fe0f":[["㊙️","㊙"],"","󾬫",["secret"],50,27,31,0]},r.prototype.emoticons_data={":o)":"monkey_face","</3":"broken_heart","=)":"smiley","=-)":"smiley","C:":"smile","c:":"smile",":D":"smile",":-D":"smile",":>":"laughing",":->":"laughing",";)":"wink",";-)":"wink","8)":"sunglasses",":|":"neutral_face",":-|":"neutral_face",":\\":"confused",":-\\":"confused",":/":"confused",":-/":"confused",":*":"kissing_heart",":-*":"kissing_heart",":p":"stuck_out_tongue",":-p":"stuck_out_tongue",":P":"stuck_out_tongue",":-P":"stuck_out_tongue",":b":"stuck_out_tongue",":-b":"stuck_out_tongue",";p":"stuck_out_tongue_winking_eye",";-p":"stuck_out_tongue_winking_eye",";b":"stuck_out_tongue_winking_eye",";-b":"stuck_out_tongue_winking_eye",";P":"stuck_out_tongue_winking_eye",";-P":"stuck_out_tongue_winking_eye","):":"disappointed",":(":"disappointed",":-(":"disappointed",">:(":"angry",">:-(":"angry",":'(":"cry","D:":"anguished",":o":"open_mouth",":-o":"open_mouth",":O":"open_mouth",":-O":"open_mouth",":)":"slightly_smiling_face","(:":"slightly_smiling_face",":-)":"slightly_smiling_face","<3":"heart"},r.prototype.variations_data={"1f385":{"1f3fb":["1f385-1f3fb",8,20,31,["🎅🏻"]],"1f3fc":["1f385-1f3fc",8,21,31,["🎅🏼"]],"1f3fd":["1f385-1f3fd",8,22,31,["🎅🏽"]],"1f3fe":["1f385-1f3fe",8,23,31,["🎅🏾"]],"1f3ff":["1f385-1f3ff",8,24,31,["🎅🏿"]]},"1f3c2":{"1f3fb":["1f3c2-1f3fb",9,29,31,["🏂🏻"]],"1f3fc":["1f3c2-1f3fc",9,30,31,["🏂🏼"]],"1f3fd":["1f3c2-1f3fd",9,31,31,["🏂🏽"]],"1f3fe":["1f3c2-1f3fe",9,32,31,["🏂🏾"]],"1f3ff":["1f3c2-1f3ff",9,33,31,["🏂🏿"]]},"1f3c3-200d-2640-fe0f":{"1f3fb":["1f3c3-1f3fb-200d-2640-fe0f",9,35,7,["🏃🏻‍♀️"]],"1f3fc":["1f3c3-1f3fc-200d-2640-fe0f",9,36,7,["🏃🏼‍♀️"]],"1f3fd":["1f3c3-1f3fd-200d-2640-fe0f",9,37,7,["🏃🏽‍♀️"]],"1f3fe":["1f3c3-1f3fe-200d-2640-fe0f",9,38,7,["🏃🏾‍♀️"]],"1f3ff":["1f3c3-1f3ff-200d-2640-fe0f",9,39,7,["🏃🏿‍♀️"]]},"1f3c3-200d-2642-fe0f":{"1f3fb":["1f3c3-1f3fb-200d-2642-fe0f",9,41,7,["🏃🏻‍♂️","🏃🏻"]],"1f3fc":["1f3c3-1f3fc-200d-2642-fe0f",9,42,7,["🏃🏼‍♂️","🏃🏼"]],"1f3fd":["1f3c3-1f3fd-200d-2642-fe0f",9,43,7,["🏃🏽‍♂️","🏃🏽"]],"1f3fe":["1f3c3-1f3fe-200d-2642-fe0f",9,44,7,["🏃🏾‍♂️","🏃🏾"]],"1f3ff":["1f3c3-1f3ff-200d-2642-fe0f",9,45,7,["🏃🏿‍♂️","🏃🏿"]]},"1f3c4-200d-2640-fe0f":{"1f3fb":["1f3c4-1f3fb-200d-2640-fe0f",10,1,7,["🏄🏻‍♀️"]],"1f3fc":["1f3c4-1f3fc-200d-2640-fe0f",10,2,7,["🏄🏼‍♀️"]],"1f3fd":["1f3c4-1f3fd-200d-2640-fe0f",10,3,7,["🏄🏽‍♀️"]],"1f3fe":["1f3c4-1f3fe-200d-2640-fe0f",10,4,7,["🏄🏾‍♀️"]],"1f3ff":["1f3c4-1f3ff-200d-2640-fe0f",10,5,7,["🏄🏿‍♀️"]]},"1f3c4-200d-2642-fe0f":{"1f3fb":["1f3c4-1f3fb-200d-2642-fe0f",10,7,7,["🏄🏻‍♂️","🏄🏻"]],"1f3fc":["1f3c4-1f3fc-200d-2642-fe0f",10,8,7,["🏄🏼‍♂️","🏄🏼"]],"1f3fd":["1f3c4-1f3fd-200d-2642-fe0f",10,9,7,["🏄🏽‍♂️","🏄🏽"]],"1f3fe":["1f3c4-1f3fe-200d-2642-fe0f",10,10,7,["🏄🏾‍♂️","🏄🏾"]],"1f3ff":["1f3c4-1f3ff-200d-2642-fe0f",10,11,7,["🏄🏿‍♂️","🏄🏿"]]},"1f3c7":{"1f3fb":["1f3c7-1f3fb",10,21,31,["🏇🏻"]],"1f3fc":["1f3c7-1f3fc",10,22,31,["🏇🏼"]],"1f3fd":["1f3c7-1f3fd",10,23,31,["🏇🏽"]],"1f3fe":["1f3c7-1f3fe",10,24,31,["🏇🏾"]],"1f3ff":["1f3c7-1f3ff",10,25,31,["🏇🏿"]]},"1f3ca-200d-2640-fe0f":{"1f3fb":["1f3ca-1f3fb-200d-2640-fe0f",10,29,7,["🏊🏻‍♀️"]],"1f3fc":["1f3ca-1f3fc-200d-2640-fe0f",10,30,7,["🏊🏼‍♀️"]],"1f3fd":["1f3ca-1f3fd-200d-2640-fe0f",10,31,7,["🏊🏽‍♀️"]],"1f3fe":["1f3ca-1f3fe-200d-2640-fe0f",10,32,7,["🏊🏾‍♀️"]],"1f3ff":["1f3ca-1f3ff-200d-2640-fe0f",10,33,7,["🏊🏿‍♀️"]]},"1f3ca-200d-2642-fe0f":{"1f3fb":["1f3ca-1f3fb-200d-2642-fe0f",10,35,7,["🏊🏻‍♂️","🏊🏻"]],"1f3fc":["1f3ca-1f3fc-200d-2642-fe0f",10,36,7,["🏊🏼‍♂️","🏊🏼"]],"1f3fd":["1f3ca-1f3fd-200d-2642-fe0f",10,37,7,["🏊🏽‍♂️","🏊🏽"]],"1f3fe":["1f3ca-1f3fe-200d-2642-fe0f",10,38,7,["🏊🏾‍♂️","🏊🏾"]],"1f3ff":["1f3ca-1f3ff-200d-2642-fe0f",10,39,7,["🏊🏿‍♂️","🏊🏿"]]},"1f3cb-fe0f-200d-2640-fe0f":{"1f3fb":["1f3cb-1f3fb-200d-2640-fe0f",10,47,7,["🏋🏻‍♀️"]],"1f3fc":["1f3cb-1f3fc-200d-2640-fe0f",10,48,7,["🏋🏼‍♀️"]],"1f3fd":["1f3cb-1f3fd-200d-2640-fe0f",10,49,7,["🏋🏽‍♀️"]],"1f3fe":["1f3cb-1f3fe-200d-2640-fe0f",10,50,7,["🏋🏾‍♀️"]],"1f3ff":["1f3cb-1f3ff-200d-2640-fe0f",10,51,7,["🏋🏿‍♀️"]]},"1f3cb-fe0f-200d-2642-fe0f":{"1f3fb":["1f3cb-1f3fb-200d-2642-fe0f",11,1,7,["🏋🏻‍♂️","🏋🏻"]],"1f3fc":["1f3cb-1f3fc-200d-2642-fe0f",11,2,7,["🏋🏼‍♂️","🏋🏼"]],"1f3fd":["1f3cb-1f3fd-200d-2642-fe0f",11,3,7,["🏋🏽‍♂️","🏋🏽"]],"1f3fe":["1f3cb-1f3fe-200d-2642-fe0f",11,4,7,["🏋🏾‍♂️","🏋🏾"]],"1f3ff":["1f3cb-1f3ff-200d-2642-fe0f",11,5,7,["🏋🏿‍♂️","🏋🏿"]]},"1f3cc-fe0f-200d-2640-fe0f":{"1f3fb":["1f3cc-1f3fb-200d-2640-fe0f",11,13,7,["🏌🏻‍♀️"]],"1f3fc":["1f3cc-1f3fc-200d-2640-fe0f",11,14,7,["🏌🏼‍♀️"]],"1f3fd":["1f3cc-1f3fd-200d-2640-fe0f",11,15,7,["🏌🏽‍♀️"]],"1f3fe":["1f3cc-1f3fe-200d-2640-fe0f",11,16,7,["🏌🏾‍♀️"]],"1f3ff":["1f3cc-1f3ff-200d-2640-fe0f",11,17,7,["🏌🏿‍♀️"]]},"1f3cc-fe0f-200d-2642-fe0f":{"1f3fb":["1f3cc-1f3fb-200d-2642-fe0f",11,19,7,["🏌🏻‍♂️","🏌🏻"]],"1f3fc":["1f3cc-1f3fc-200d-2642-fe0f",11,20,7,["🏌🏼‍♂️","🏌🏼"]],"1f3fd":["1f3cc-1f3fd-200d-2642-fe0f",11,21,7,["🏌🏽‍♂️","🏌🏽"]],"1f3fe":["1f3cc-1f3fe-200d-2642-fe0f",11,22,7,["🏌🏾‍♂️","🏌🏾"]],"1f3ff":["1f3cc-1f3ff-200d-2642-fe0f",11,23,7,["🏌🏿‍♂️","🏌🏿"]]},"1f442":{"1f3fb":["1f442-1f3fb",13,46,31,["👂🏻"]],"1f3fc":["1f442-1f3fc",13,47,31,["👂🏼"]],"1f3fd":["1f442-1f3fd",13,48,31,["👂🏽"]],"1f3fe":["1f442-1f3fe",13,49,31,["👂🏾"]],"1f3ff":["1f442-1f3ff",13,50,31,["👂🏿"]]},"1f443":{"1f3fb":["1f443-1f3fb",14,0,31,["👃🏻"]],"1f3fc":["1f443-1f3fc",14,1,31,["👃🏼"]],"1f3fd":["1f443-1f3fd",14,2,31,["👃🏽"]],"1f3fe":["1f443-1f3fe",14,3,31,["👃🏾"]],"1f3ff":["1f443-1f3ff",14,4,31,["👃🏿"]]},"1f446":{"1f3fb":["1f446-1f3fb",14,8,31,["👆🏻"]],"1f3fc":["1f446-1f3fc",14,9,31,["👆🏼"]],"1f3fd":["1f446-1f3fd",14,10,31,["👆🏽"]],"1f3fe":["1f446-1f3fe",14,11,31,["👆🏾"]],"1f3ff":["1f446-1f3ff",14,12,31,["👆🏿"]]},"1f447":{"1f3fb":["1f447-1f3fb",14,14,31,["👇🏻"]],"1f3fc":["1f447-1f3fc",14,15,31,["👇🏼"]],"1f3fd":["1f447-1f3fd",14,16,31,["👇🏽"]],"1f3fe":["1f447-1f3fe",14,17,31,["👇🏾"]],"1f3ff":["1f447-1f3ff",14,18,31,["👇🏿"]]},"1f448":{"1f3fb":["1f448-1f3fb",14,20,31,["👈🏻"]],"1f3fc":["1f448-1f3fc",14,21,31,["👈🏼"]],"1f3fd":["1f448-1f3fd",14,22,31,["👈🏽"]],"1f3fe":["1f448-1f3fe",14,23,31,["👈🏾"]],"1f3ff":["1f448-1f3ff",14,24,31,["👈🏿"]]},"1f449":{"1f3fb":["1f449-1f3fb",14,26,31,["👉🏻"]],"1f3fc":["1f449-1f3fc",14,27,31,["👉🏼"]],"1f3fd":["1f449-1f3fd",14,28,31,["👉🏽"]],"1f3fe":["1f449-1f3fe",14,29,31,["👉🏾"]],"1f3ff":["1f449-1f3ff",14,30,31,["👉🏿"]]},"1f44a":{"1f3fb":["1f44a-1f3fb",14,32,31,["👊🏻"]],"1f3fc":["1f44a-1f3fc",14,33,31,["👊🏼"]],"1f3fd":["1f44a-1f3fd",14,34,31,["👊🏽"]],"1f3fe":["1f44a-1f3fe",14,35,31,["👊🏾"]],"1f3ff":["1f44a-1f3ff",14,36,31,["👊🏿"]]},"1f44b":{"1f3fb":["1f44b-1f3fb",14,38,31,["👋🏻"]],"1f3fc":["1f44b-1f3fc",14,39,31,["👋🏼"]],"1f3fd":["1f44b-1f3fd",14,40,31,["👋🏽"]],"1f3fe":["1f44b-1f3fe",14,41,31,["👋🏾"]],"1f3ff":["1f44b-1f3ff",14,42,31,["👋🏿"]]},"1f44c":{"1f3fb":["1f44c-1f3fb",14,44,31,["👌🏻"]],"1f3fc":["1f44c-1f3fc",14,45,31,["👌🏼"]],"1f3fd":["1f44c-1f3fd",14,46,31,["👌🏽"]],"1f3fe":["1f44c-1f3fe",14,47,31,["👌🏾"]],"1f3ff":["1f44c-1f3ff",14,48,31,["👌🏿"]]},"1f44d":{"1f3fb":["1f44d-1f3fb",14,50,31,["👍🏻"]],"1f3fc":["1f44d-1f3fc",14,51,31,["👍🏼"]],"1f3fd":["1f44d-1f3fd",15,0,31,["👍🏽"]],"1f3fe":["1f44d-1f3fe",15,1,31,["👍🏾"]],"1f3ff":["1f44d-1f3ff",15,2,31,["👍🏿"]]},"1f44e":{"1f3fb":["1f44e-1f3fb",15,4,31,["👎🏻"]],"1f3fc":["1f44e-1f3fc",15,5,31,["👎🏼"]],"1f3fd":["1f44e-1f3fd",15,6,31,["👎🏽"]],"1f3fe":["1f44e-1f3fe",15,7,31,["👎🏾"]],"1f3ff":["1f44e-1f3ff",15,8,31,["👎🏿"]]},"1f44f":{"1f3fb":["1f44f-1f3fb",15,10,31,["👏🏻"]],"1f3fc":["1f44f-1f3fc",15,11,31,["👏🏼"]],"1f3fd":["1f44f-1f3fd",15,12,31,["👏🏽"]],"1f3fe":["1f44f-1f3fe",15,13,31,["👏🏾"]],"1f3ff":["1f44f-1f3ff",15,14,31,["👏🏿"]]},"1f450":{"1f3fb":["1f450-1f3fb",15,16,31,["👐🏻"]],"1f3fc":["1f450-1f3fc",15,17,31,["👐🏼"]],"1f3fd":["1f450-1f3fd",15,18,31,["👐🏽"]],"1f3fe":["1f450-1f3fe",15,19,31,["👐🏾"]],"1f3ff":["1f450-1f3ff",15,20,31,["👐🏿"]]},"1f466":{"1f3fb":["1f466-1f3fb",15,43,31,["👦🏻"]],"1f3fc":["1f466-1f3fc",15,44,31,["👦🏼"]],"1f3fd":["1f466-1f3fd",15,45,31,["👦🏽"]],"1f3fe":["1f466-1f3fe",15,46,31,["👦🏾"]],"1f3ff":["1f466-1f3ff",15,47,31,["👦🏿"]]},"1f467":{"1f3fb":["1f467-1f3fb",15,49,31,["👧🏻"]],"1f3fc":["1f467-1f3fc",15,50,31,["👧🏼"]],"1f3fd":["1f467-1f3fd",15,51,31,["👧🏽"]],"1f3fe":["1f467-1f3fe",16,0,31,["👧🏾"]],"1f3ff":["1f467-1f3ff",16,1,31,["👧🏿"]]},"1f468-200d-1f33e":{"1f3fb":["1f468-1f3fb-200d-1f33e",16,3,15,["👨🏻‍🌾"]],"1f3fc":["1f468-1f3fc-200d-1f33e",16,4,15,["👨🏼‍🌾"]],"1f3fd":["1f468-1f3fd-200d-1f33e",16,5,15,["👨🏽‍🌾"]],"1f3fe":["1f468-1f3fe-200d-1f33e",16,6,15,["👨🏾‍🌾"]],"1f3ff":["1f468-1f3ff-200d-1f33e",16,7,15,["👨🏿‍🌾"]]},"1f468-200d-1f373":{"1f3fb":["1f468-1f3fb-200d-1f373",16,9,15,["👨🏻‍🍳"]],"1f3fc":["1f468-1f3fc-200d-1f373",16,10,15,["👨🏼‍🍳"]],"1f3fd":["1f468-1f3fd-200d-1f373",16,11,15,["👨🏽‍🍳"]],"1f3fe":["1f468-1f3fe-200d-1f373",16,12,15,["👨🏾‍🍳"]],"1f3ff":["1f468-1f3ff-200d-1f373",16,13,15,["👨🏿‍🍳"]]},"1f468-200d-1f393":{"1f3fb":["1f468-1f3fb-200d-1f393",16,15,15,["👨🏻‍🎓"]],"1f3fc":["1f468-1f3fc-200d-1f393",16,16,15,["👨🏼‍🎓"]],"1f3fd":["1f468-1f3fd-200d-1f393",16,17,15,["👨🏽‍🎓"]],"1f3fe":["1f468-1f3fe-200d-1f393",16,18,15,["👨🏾‍🎓"]],"1f3ff":["1f468-1f3ff-200d-1f393",16,19,15,["👨🏿‍🎓"]]},"1f468-200d-1f3a4":{"1f3fb":["1f468-1f3fb-200d-1f3a4",16,21,15,["👨🏻‍🎤"]],"1f3fc":["1f468-1f3fc-200d-1f3a4",16,22,15,["👨🏼‍🎤"]],"1f3fd":["1f468-1f3fd-200d-1f3a4",16,23,15,["👨🏽‍🎤"]],"1f3fe":["1f468-1f3fe-200d-1f3a4",16,24,15,["👨🏾‍🎤"]],"1f3ff":["1f468-1f3ff-200d-1f3a4",16,25,15,["👨🏿‍🎤"]]},"1f468-200d-1f3a8":{"1f3fb":["1f468-1f3fb-200d-1f3a8",16,27,15,["👨🏻‍🎨"]],"1f3fc":["1f468-1f3fc-200d-1f3a8",16,28,15,["👨🏼‍🎨"]],"1f3fd":["1f468-1f3fd-200d-1f3a8",16,29,15,["👨🏽‍🎨"]],"1f3fe":["1f468-1f3fe-200d-1f3a8",16,30,15,["👨🏾‍🎨"]],"1f3ff":["1f468-1f3ff-200d-1f3a8",16,31,15,["👨🏿‍🎨"]]},"1f468-200d-1f3eb":{"1f3fb":["1f468-1f3fb-200d-1f3eb",16,33,15,["👨🏻‍🏫"]],"1f3fc":["1f468-1f3fc-200d-1f3eb",16,34,15,["👨🏼‍🏫"]],"1f3fd":["1f468-1f3fd-200d-1f3eb",16,35,15,["👨🏽‍🏫"]],"1f3fe":["1f468-1f3fe-200d-1f3eb",16,36,15,["👨🏾‍🏫"]],"1f3ff":["1f468-1f3ff-200d-1f3eb",16,37,15,["👨🏿‍🏫"]]},"1f468-200d-1f3ed":{"1f3fb":["1f468-1f3fb-200d-1f3ed",16,39,15,["👨🏻‍🏭"]],"1f3fc":["1f468-1f3fc-200d-1f3ed",16,40,15,["👨🏼‍🏭"]],"1f3fd":["1f468-1f3fd-200d-1f3ed",16,41,15,["👨🏽‍🏭"]],"1f3fe":["1f468-1f3fe-200d-1f3ed",16,42,15,["👨🏾‍🏭"]],"1f3ff":["1f468-1f3ff-200d-1f3ed",16,43,15,["👨🏿‍🏭"]]},"1f468-200d-1f4bb":{"1f3fb":["1f468-1f3fb-200d-1f4bb",17,8,15,["👨🏻‍💻"]],"1f3fc":["1f468-1f3fc-200d-1f4bb",17,9,15,["👨🏼‍💻"]],"1f3fd":["1f468-1f3fd-200d-1f4bb",17,10,15,["👨🏽‍💻"]],"1f3fe":["1f468-1f3fe-200d-1f4bb",17,11,15,["👨🏾‍💻"]],"1f3ff":["1f468-1f3ff-200d-1f4bb",17,12,15,["👨🏿‍💻"]]},"1f468-200d-1f4bc":{"1f3fb":["1f468-1f3fb-200d-1f4bc",17,14,15,["👨🏻‍💼"]],"1f3fc":["1f468-1f3fc-200d-1f4bc",17,15,15,["👨🏼‍💼"]],"1f3fd":["1f468-1f3fd-200d-1f4bc",17,16,15,["👨🏽‍💼"]],"1f3fe":["1f468-1f3fe-200d-1f4bc",17,17,15,["👨🏾‍💼"]],"1f3ff":["1f468-1f3ff-200d-1f4bc",17,18,15,["👨🏿‍💼"]]},"1f468-200d-1f527":{"1f3fb":["1f468-1f3fb-200d-1f527",17,20,15,["👨🏻‍🔧"]],"1f3fc":["1f468-1f3fc-200d-1f527",17,21,15,["👨🏼‍🔧"]],"1f3fd":["1f468-1f3fd-200d-1f527",17,22,15,["👨🏽‍🔧"]],"1f3fe":["1f468-1f3fe-200d-1f527",17,23,15,["👨🏾‍🔧"]],"1f3ff":["1f468-1f3ff-200d-1f527",17,24,15,["👨🏿‍🔧"]]},"1f468-200d-1f52c":{"1f3fb":["1f468-1f3fb-200d-1f52c",17,26,15,["👨🏻‍🔬"]],"1f3fc":["1f468-1f3fc-200d-1f52c",17,27,15,["👨🏼‍🔬"]],"1f3fd":["1f468-1f3fd-200d-1f52c",17,28,15,["👨🏽‍🔬"]],"1f3fe":["1f468-1f3fe-200d-1f52c",17,29,15,["👨🏾‍🔬"]],"1f3ff":["1f468-1f3ff-200d-1f52c",17,30,15,["👨🏿‍🔬"]]},"1f468-200d-1f680":{"1f3fb":["1f468-1f3fb-200d-1f680",17,32,15,["👨🏻‍🚀"]],"1f3fc":["1f468-1f3fc-200d-1f680",17,33,15,["👨🏼‍🚀"]],"1f3fd":["1f468-1f3fd-200d-1f680",17,34,15,["👨🏽‍🚀"]],"1f3fe":["1f468-1f3fe-200d-1f680",17,35,15,["👨🏾‍🚀"]],"1f3ff":["1f468-1f3ff-200d-1f680",17,36,15,["👨🏿‍🚀"]]},"1f468-200d-1f692":{"1f3fb":["1f468-1f3fb-200d-1f692",17,38,15,["👨🏻‍🚒"]],"1f3fc":["1f468-1f3fc-200d-1f692",17,39,15,["👨🏼‍🚒"]],"1f3fd":["1f468-1f3fd-200d-1f692",17,40,15,["👨🏽‍🚒"]],"1f3fe":["1f468-1f3fe-200d-1f692",17,41,15,["👨🏾‍🚒"]],"1f3ff":["1f468-1f3ff-200d-1f692",17,42,15,["👨🏿‍🚒"]]},"1f468-200d-2695-fe0f":{"1f3fb":["1f468-1f3fb-200d-2695-fe0f",17,44,7,["👨🏻‍⚕️"]],"1f3fc":["1f468-1f3fc-200d-2695-fe0f",17,45,7,["👨🏼‍⚕️"]],"1f3fd":["1f468-1f3fd-200d-2695-fe0f",17,46,7,["👨🏽‍⚕️"]],"1f3fe":["1f468-1f3fe-200d-2695-fe0f",17,47,7,["👨🏾‍⚕️"]],"1f3ff":["1f468-1f3ff-200d-2695-fe0f",17,48,7,["👨🏿‍⚕️"]]},"1f468-200d-2696-fe0f":{"1f3fb":["1f468-1f3fb-200d-2696-fe0f",17,50,7,["👨🏻‍⚖️"]],"1f3fc":["1f468-1f3fc-200d-2696-fe0f",17,51,7,["👨🏼‍⚖️"]],"1f3fd":["1f468-1f3fd-200d-2696-fe0f",18,0,7,["👨🏽‍⚖️"]],"1f3fe":["1f468-1f3fe-200d-2696-fe0f",18,1,7,["👨🏾‍⚖️"]],"1f3ff":["1f468-1f3ff-200d-2696-fe0f",18,2,7,["👨🏿‍⚖️"]]},"1f468-200d-2708-fe0f":{"1f3fb":["1f468-1f3fb-200d-2708-fe0f",18,4,7,["👨🏻‍✈️"]],"1f3fc":["1f468-1f3fc-200d-2708-fe0f",18,5,7,["👨🏼‍✈️"]],"1f3fd":["1f468-1f3fd-200d-2708-fe0f",18,6,7,["👨🏽‍✈️"]],"1f3fe":["1f468-1f3fe-200d-2708-fe0f",18,7,7,["👨🏾‍✈️"]],"1f3ff":["1f468-1f3ff-200d-2708-fe0f",18,8,7,["👨🏿‍✈️"]]},"1f468":{"1f3fb":["1f468-1f3fb",18,12,31,["👨🏻"]],"1f3fc":["1f468-1f3fc",18,13,31,["👨🏼"]],"1f3fd":["1f468-1f3fd",18,14,31,["👨🏽"]],"1f3fe":["1f468-1f3fe",18,15,31,["👨🏾"]],"1f3ff":["1f468-1f3ff",18,16,31,["👨🏿"]]},"1f469-200d-1f33e":{"1f3fb":["1f469-1f3fb-200d-1f33e",18,18,15,["👩🏻‍🌾"]],"1f3fc":["1f469-1f3fc-200d-1f33e",18,19,15,["👩🏼‍🌾"]],"1f3fd":["1f469-1f3fd-200d-1f33e",18,20,15,["👩🏽‍🌾"]],"1f3fe":["1f469-1f3fe-200d-1f33e",18,21,15,["👩🏾‍🌾"]],"1f3ff":["1f469-1f3ff-200d-1f33e",18,22,15,["👩🏿‍🌾"]]},"1f469-200d-1f373":{"1f3fb":["1f469-1f3fb-200d-1f373",18,24,15,["👩🏻‍🍳"]],"1f3fc":["1f469-1f3fc-200d-1f373",18,25,15,["👩🏼‍🍳"]],"1f3fd":["1f469-1f3fd-200d-1f373",18,26,15,["👩🏽‍🍳"]],"1f3fe":["1f469-1f3fe-200d-1f373",18,27,15,["👩🏾‍🍳"]],"1f3ff":["1f469-1f3ff-200d-1f373",18,28,15,["👩🏿‍🍳"]]},"1f469-200d-1f393":{"1f3fb":["1f469-1f3fb-200d-1f393",18,30,15,["👩🏻‍🎓"]],"1f3fc":["1f469-1f3fc-200d-1f393",18,31,15,["👩🏼‍🎓"]],"1f3fd":["1f469-1f3fd-200d-1f393",18,32,15,["👩🏽‍🎓"]],"1f3fe":["1f469-1f3fe-200d-1f393",18,33,15,["👩🏾‍🎓"]],"1f3ff":["1f469-1f3ff-200d-1f393",18,34,15,["👩🏿‍🎓"]]},"1f469-200d-1f3a4":{"1f3fb":["1f469-1f3fb-200d-1f3a4",18,36,15,["👩🏻‍🎤"]],"1f3fc":["1f469-1f3fc-200d-1f3a4",18,37,15,["👩🏼‍🎤"]],"1f3fd":["1f469-1f3fd-200d-1f3a4",18,38,15,["👩🏽‍🎤"]],"1f3fe":["1f469-1f3fe-200d-1f3a4",18,39,15,["👩🏾‍🎤"]],"1f3ff":["1f469-1f3ff-200d-1f3a4",18,40,15,["👩🏿‍🎤"]]},"1f469-200d-1f3a8":{"1f3fb":["1f469-1f3fb-200d-1f3a8",18,42,15,["👩🏻‍🎨"]],"1f3fc":["1f469-1f3fc-200d-1f3a8",18,43,15,["👩🏼‍🎨"]],"1f3fd":["1f469-1f3fd-200d-1f3a8",18,44,15,["👩🏽‍🎨"]],"1f3fe":["1f469-1f3fe-200d-1f3a8",18,45,15,["👩🏾‍🎨"]],"1f3ff":["1f469-1f3ff-200d-1f3a8",18,46,15,["👩🏿‍🎨"]]},"1f469-200d-1f3eb":{"1f3fb":["1f469-1f3fb-200d-1f3eb",18,48,15,["👩🏻‍🏫"]],"1f3fc":["1f469-1f3fc-200d-1f3eb",18,49,15,["👩🏼‍🏫"]],"1f3fd":["1f469-1f3fd-200d-1f3eb",18,50,15,["👩🏽‍🏫"]],"1f3fe":["1f469-1f3fe-200d-1f3eb",18,51,15,["👩🏾‍🏫"]],"1f3ff":["1f469-1f3ff-200d-1f3eb",19,0,15,["👩🏿‍🏫"]]},"1f469-200d-1f3ed":{"1f3fb":["1f469-1f3fb-200d-1f3ed",19,2,15,["👩🏻‍🏭"]],"1f3fc":["1f469-1f3fc-200d-1f3ed",19,3,15,["👩🏼‍🏭"]],"1f3fd":["1f469-1f3fd-200d-1f3ed",19,4,15,["👩🏽‍🏭"]],"1f3fe":["1f469-1f3fe-200d-1f3ed",19,5,15,["👩🏾‍🏭"]],"1f3ff":["1f469-1f3ff-200d-1f3ed",19,6,15,["👩🏿‍🏭"]]},"1f469-200d-1f4bb":{"1f3fb":["1f469-1f3fb-200d-1f4bb",19,18,15,["👩🏻‍💻"]],"1f3fc":["1f469-1f3fc-200d-1f4bb",19,19,15,["👩🏼‍💻"]],"1f3fd":["1f469-1f3fd-200d-1f4bb",19,20,15,["👩🏽‍💻"]],"1f3fe":["1f469-1f3fe-200d-1f4bb",19,21,15,["👩🏾‍💻"]],"1f3ff":["1f469-1f3ff-200d-1f4bb",19,22,15,["👩🏿‍💻"]]},"1f469-200d-1f4bc":{"1f3fb":["1f469-1f3fb-200d-1f4bc",19,24,15,["👩🏻‍💼"]],"1f3fc":["1f469-1f3fc-200d-1f4bc",19,25,15,["👩🏼‍💼"]],"1f3fd":["1f469-1f3fd-200d-1f4bc",19,26,15,["👩🏽‍💼"]],"1f3fe":["1f469-1f3fe-200d-1f4bc",19,27,15,["👩🏾‍💼"]],"1f3ff":["1f469-1f3ff-200d-1f4bc",19,28,15,["👩🏿‍💼"]]},"1f469-200d-1f527":{"1f3fb":["1f469-1f3fb-200d-1f527",19,30,15,["👩🏻‍🔧"]],"1f3fc":["1f469-1f3fc-200d-1f527",19,31,15,["👩🏼‍🔧"]],"1f3fd":["1f469-1f3fd-200d-1f527",19,32,15,["👩🏽‍🔧"]],"1f3fe":["1f469-1f3fe-200d-1f527",19,33,15,["👩🏾‍🔧"]],"1f3ff":["1f469-1f3ff-200d-1f527",19,34,15,["👩🏿‍🔧"]]},"1f469-200d-1f52c":{"1f3fb":["1f469-1f3fb-200d-1f52c",19,36,15,["👩🏻‍🔬"]],"1f3fc":["1f469-1f3fc-200d-1f52c",19,37,15,["👩🏼‍🔬"]],"1f3fd":["1f469-1f3fd-200d-1f52c",19,38,15,["👩🏽‍🔬"]],"1f3fe":["1f469-1f3fe-200d-1f52c",19,39,15,["👩🏾‍🔬"]],"1f3ff":["1f469-1f3ff-200d-1f52c",19,40,15,["👩🏿‍🔬"]]},"1f469-200d-1f680":{"1f3fb":["1f469-1f3fb-200d-1f680",19,42,15,["👩🏻‍🚀"]],"1f3fc":["1f469-1f3fc-200d-1f680",19,43,15,["👩🏼‍🚀"]],"1f3fd":["1f469-1f3fd-200d-1f680",19,44,15,["👩🏽‍🚀"]],"1f3fe":["1f469-1f3fe-200d-1f680",19,45,15,["👩🏾‍🚀"]],"1f3ff":["1f469-1f3ff-200d-1f680",19,46,15,["👩🏿‍🚀"]]},"1f469-200d-1f692":{"1f3fb":["1f469-1f3fb-200d-1f692",19,48,15,["👩🏻‍🚒"]],"1f3fc":["1f469-1f3fc-200d-1f692",19,49,15,["👩🏼‍🚒"]],"1f3fd":["1f469-1f3fd-200d-1f692",19,50,15,["👩🏽‍🚒"]],"1f3fe":["1f469-1f3fe-200d-1f692",19,51,15,["👩🏾‍🚒"]],"1f3ff":["1f469-1f3ff-200d-1f692",20,0,15,["👩🏿‍🚒"]]},"1f469-200d-2695-fe0f":{"1f3fb":["1f469-1f3fb-200d-2695-fe0f",20,2,7,["👩🏻‍⚕️"]],"1f3fc":["1f469-1f3fc-200d-2695-fe0f",20,3,7,["👩🏼‍⚕️"]],"1f3fd":["1f469-1f3fd-200d-2695-fe0f",20,4,7,["👩🏽‍⚕️"]],"1f3fe":["1f469-1f3fe-200d-2695-fe0f",20,5,7,["👩🏾‍⚕️"]],"1f3ff":["1f469-1f3ff-200d-2695-fe0f",20,6,7,["👩🏿‍⚕️"]]},"1f469-200d-2696-fe0f":{"1f3fb":["1f469-1f3fb-200d-2696-fe0f",20,8,7,["👩🏻‍⚖️"]],"1f3fc":["1f469-1f3fc-200d-2696-fe0f",20,9,7,["👩🏼‍⚖️"]],"1f3fd":["1f469-1f3fd-200d-2696-fe0f",20,10,7,["👩🏽‍⚖️"]],"1f3fe":["1f469-1f3fe-200d-2696-fe0f",20,11,7,["👩🏾‍⚖️"]],"1f3ff":["1f469-1f3ff-200d-2696-fe0f",20,12,7,["👩🏿‍⚖️"]]},"1f469-200d-2708-fe0f":{"1f3fb":["1f469-1f3fb-200d-2708-fe0f",20,14,7,["👩🏻‍✈️"]],"1f3fc":["1f469-1f3fc-200d-2708-fe0f",20,15,7,["👩🏼‍✈️"]],"1f3fd":["1f469-1f3fd-200d-2708-fe0f",20,16,7,["👩🏽‍✈️"]],"1f3fe":["1f469-1f3fe-200d-2708-fe0f",20,17,7,["👩🏾‍✈️"]],"1f3ff":["1f469-1f3ff-200d-2708-fe0f",20,18,7,["👩🏿‍✈️"]]},"1f469":{"1f3fb":["1f469-1f3fb",20,24,31,["👩🏻"]],"1f3fc":["1f469-1f3fc",20,25,31,["👩🏼"]],"1f3fd":["1f469-1f3fd",20,26,31,["👩🏽"]],"1f3fe":["1f469-1f3fe",20,27,31,["👩🏾"]],"1f3ff":["1f469-1f3ff",20,28,31,["👩🏿"]]},"1f46e-200d-2640-fe0f":{"1f3fb":["1f46e-1f3fb-200d-2640-fe0f",20,34,7,["👮🏻‍♀️"]],"1f3fc":["1f46e-1f3fc-200d-2640-fe0f",20,35,7,["👮🏼‍♀️"]],"1f3fd":["1f46e-1f3fd-200d-2640-fe0f",20,36,7,["👮🏽‍♀️"]],"1f3fe":["1f46e-1f3fe-200d-2640-fe0f",20,37,7,["👮🏾‍♀️"]],"1f3ff":["1f46e-1f3ff-200d-2640-fe0f",20,38,7,["👮🏿‍♀️"]]},"1f46e-200d-2642-fe0f":{"1f3fb":["1f46e-1f3fb-200d-2642-fe0f",20,40,7,["👮🏻‍♂️","👮🏻"]],"1f3fc":["1f46e-1f3fc-200d-2642-fe0f",20,41,7,["👮🏼‍♂️","👮🏼"]],"1f3fd":["1f46e-1f3fd-200d-2642-fe0f",20,42,7,["👮🏽‍♂️","👮🏽"]],"1f3fe":["1f46e-1f3fe-200d-2642-fe0f",20,43,7,["👮🏾‍♂️","👮🏾"]],"1f3ff":["1f46e-1f3ff-200d-2642-fe0f",20,44,7,["👮🏿‍♂️","👮🏿"]]},"1f470":{"1f3fb":["1f470-1f3fb",21,3,31,["👰🏻"]],"1f3fc":["1f470-1f3fc",21,4,31,["👰🏼"]],"1f3fd":["1f470-1f3fd",21,5,31,["👰🏽"]],"1f3fe":["1f470-1f3fe",21,6,31,["👰🏾"]],"1f3ff":["1f470-1f3ff",21,7,31,["👰🏿"]]},"1f471-200d-2640-fe0f":{"1f3fb":["1f471-1f3fb-200d-2640-fe0f",21,9,7,["👱🏻‍♀️"]],"1f3fc":["1f471-1f3fc-200d-2640-fe0f",21,10,7,["👱🏼‍♀️"]],"1f3fd":["1f471-1f3fd-200d-2640-fe0f",21,11,7,["👱🏽‍♀️"]],"1f3fe":["1f471-1f3fe-200d-2640-fe0f",21,12,7,["👱🏾‍♀️"]],"1f3ff":["1f471-1f3ff-200d-2640-fe0f",21,13,7,["👱🏿‍♀️"]]},"1f471-200d-2642-fe0f":{"1f3fb":["1f471-1f3fb-200d-2642-fe0f",21,15,7,["👱🏻‍♂️","👱🏻"]],"1f3fc":["1f471-1f3fc-200d-2642-fe0f",21,16,7,["👱🏼‍♂️","👱🏼"]],"1f3fd":["1f471-1f3fd-200d-2642-fe0f",21,17,7,["👱🏽‍♂️","👱🏽"]],"1f3fe":["1f471-1f3fe-200d-2642-fe0f",21,18,7,["👱🏾‍♂️","👱🏾"]],"1f3ff":["1f471-1f3ff-200d-2642-fe0f",21,19,7,["👱🏿‍♂️","👱🏿"]]},"1f472":{"1f3fb":["1f472-1f3fb",21,27,31,["👲🏻"]],"1f3fc":["1f472-1f3fc",21,28,31,["👲🏼"]],"1f3fd":["1f472-1f3fd",21,29,31,["👲🏽"]],"1f3fe":["1f472-1f3fe",21,30,31,["👲🏾"]],"1f3ff":["1f472-1f3ff",21,31,31,["👲🏿"]]},"1f473-200d-2640-fe0f":{"1f3fb":["1f473-1f3fb-200d-2640-fe0f",21,33,7,["👳🏻‍♀️"]],"1f3fc":["1f473-1f3fc-200d-2640-fe0f",21,34,7,["👳🏼‍♀️"]],"1f3fd":["1f473-1f3fd-200d-2640-fe0f",21,35,7,["👳🏽‍♀️"]],"1f3fe":["1f473-1f3fe-200d-2640-fe0f",21,36,7,["👳🏾‍♀️"]],"1f3ff":["1f473-1f3ff-200d-2640-fe0f",21,37,7,["👳🏿‍♀️"]]},"1f473-200d-2642-fe0f":{"1f3fb":["1f473-1f3fb-200d-2642-fe0f",21,39,7,["👳🏻‍♂️","👳🏻"]],"1f3fc":["1f473-1f3fc-200d-2642-fe0f",21,40,7,["👳🏼‍♂️","👳🏼"]],"1f3fd":["1f473-1f3fd-200d-2642-fe0f",21,41,7,["👳🏽‍♂️","👳🏽"]],"1f3fe":["1f473-1f3fe-200d-2642-fe0f",21,42,7,["👳🏾‍♂️","👳🏾"]],"1f3ff":["1f473-1f3ff-200d-2642-fe0f",21,43,7,["👳🏿‍♂️","👳🏿"]]},"1f474":{"1f3fb":["1f474-1f3fb",21,51,31,["👴🏻"]],"1f3fc":["1f474-1f3fc",22,0,31,["👴🏼"]],"1f3fd":["1f474-1f3fd",22,1,31,["👴🏽"]],"1f3fe":["1f474-1f3fe",22,2,31,["👴🏾"]],"1f3ff":["1f474-1f3ff",22,3,31,["👴🏿"]]},"1f475":{"1f3fb":["1f475-1f3fb",22,5,31,["👵🏻"]],"1f3fc":["1f475-1f3fc",22,6,31,["👵🏼"]],"1f3fd":["1f475-1f3fd",22,7,31,["👵🏽"]],"1f3fe":["1f475-1f3fe",22,8,31,["👵🏾"]],"1f3ff":["1f475-1f3ff",22,9,31,["👵🏿"]]},"1f476":{"1f3fb":["1f476-1f3fb",22,11,31,["👶🏻"]],"1f3fc":["1f476-1f3fc",22,12,31,["👶🏼"]],"1f3fd":["1f476-1f3fd",22,13,31,["👶🏽"]],"1f3fe":["1f476-1f3fe",22,14,31,["👶🏾"]],"1f3ff":["1f476-1f3ff",22,15,31,["👶🏿"]]},"1f477-200d-2640-fe0f":{"1f3fb":["1f477-1f3fb-200d-2640-fe0f",22,17,7,["👷🏻‍♀️"]],"1f3fc":["1f477-1f3fc-200d-2640-fe0f",22,18,7,["👷🏼‍♀️"]],"1f3fd":["1f477-1f3fd-200d-2640-fe0f",22,19,7,["👷🏽‍♀️"]],"1f3fe":["1f477-1f3fe-200d-2640-fe0f",22,20,7,["👷🏾‍♀️"]],"1f3ff":["1f477-1f3ff-200d-2640-fe0f",22,21,7,["👷🏿‍♀️"]]},"1f477-200d-2642-fe0f":{"1f3fb":["1f477-1f3fb-200d-2642-fe0f",22,23,7,["👷🏻‍♂️","👷🏻"]],"1f3fc":["1f477-1f3fc-200d-2642-fe0f",22,24,7,["👷🏼‍♂️","👷🏼"]],"1f3fd":["1f477-1f3fd-200d-2642-fe0f",22,25,7,["👷🏽‍♂️","👷🏽"]],"1f3fe":["1f477-1f3fe-200d-2642-fe0f",22,26,7,["👷🏾‍♂️","👷🏾"]],"1f3ff":["1f477-1f3ff-200d-2642-fe0f",22,27,7,["👷🏿‍♂️","👷🏿"]]},"1f478":{"1f3fb":["1f478-1f3fb",22,35,31,["👸🏻"]],"1f3fc":["1f478-1f3fc",22,36,31,["👸🏼"]],"1f3fd":["1f478-1f3fd",22,37,31,["👸🏽"]],"1f3fe":["1f478-1f3fe",22,38,31,["👸🏾"]],"1f3ff":["1f478-1f3ff",22,39,31,["👸🏿"]]},"1f47c":{"1f3fb":["1f47c-1f3fb",22,44,31,["👼🏻"]],"1f3fc":["1f47c-1f3fc",22,45,31,["👼🏼"]],"1f3fd":["1f47c-1f3fd",22,46,31,["👼🏽"]],"1f3fe":["1f47c-1f3fe",22,47,31,["👼🏾"]],"1f3ff":["1f47c-1f3ff",22,48,31,["👼🏿"]]},"1f481-200d-2640-fe0f":{"1f3fb":["1f481-1f3fb-200d-2640-fe0f",23,2,7,["💁🏻‍♀️","💁🏻"]],"1f3fc":["1f481-1f3fc-200d-2640-fe0f",23,3,7,["💁🏼‍♀️","💁🏼"]],"1f3fd":["1f481-1f3fd-200d-2640-fe0f",23,4,7,["💁🏽‍♀️","💁🏽"]],"1f3fe":["1f481-1f3fe-200d-2640-fe0f",23,5,7,["💁🏾‍♀️","💁🏾"]],"1f3ff":["1f481-1f3ff-200d-2640-fe0f",23,6,7,["💁🏿‍♀️","💁🏿"]]},"1f481-200d-2642-fe0f":{"1f3fb":["1f481-1f3fb-200d-2642-fe0f",23,8,7,["💁🏻‍♂️"]],"1f3fc":["1f481-1f3fc-200d-2642-fe0f",23,9,7,["💁🏼‍♂️"]],"1f3fd":["1f481-1f3fd-200d-2642-fe0f",23,10,7,["💁🏽‍♂️"]],"1f3fe":["1f481-1f3fe-200d-2642-fe0f",23,11,7,["💁🏾‍♂️"]],"1f3ff":["1f481-1f3ff-200d-2642-fe0f",23,12,7,["💁🏿‍♂️"]]},"1f482-200d-2640-fe0f":{"1f3fb":["1f482-1f3fb-200d-2640-fe0f",23,20,7,["💂🏻‍♀️"]],"1f3fc":["1f482-1f3fc-200d-2640-fe0f",23,21,7,["💂🏼‍♀️"]],"1f3fd":["1f482-1f3fd-200d-2640-fe0f",23,22,7,["💂🏽‍♀️"]],"1f3fe":["1f482-1f3fe-200d-2640-fe0f",23,23,7,["💂🏾‍♀️"]],"1f3ff":["1f482-1f3ff-200d-2640-fe0f",23,24,7,["💂🏿‍♀️"]]},"1f482-200d-2642-fe0f":{"1f3fb":["1f482-1f3fb-200d-2642-fe0f",23,26,7,["💂🏻‍♂️","💂🏻"]],"1f3fc":["1f482-1f3fc-200d-2642-fe0f",23,27,7,["💂🏼‍♂️","💂🏼"]],"1f3fd":["1f482-1f3fd-200d-2642-fe0f",23,28,7,["💂🏽‍♂️","💂🏽"]],"1f3fe":["1f482-1f3fe-200d-2642-fe0f",23,29,7,["💂🏾‍♂️","💂🏾"]],"1f3ff":["1f482-1f3ff-200d-2642-fe0f",23,30,7,["💂🏿‍♂️","💂🏿"]]},"1f483":{"1f3fb":["1f483-1f3fb",23,38,31,["💃🏻"]],"1f3fc":["1f483-1f3fc",23,39,31,["💃🏼"]],"1f3fd":["1f483-1f3fd",23,40,31,["💃🏽"]],"1f3fe":["1f483-1f3fe",23,41,31,["💃🏾"]],"1f3ff":["1f483-1f3ff",23,42,31,["💃🏿"]]},"1f485":{"1f3fb":["1f485-1f3fb",23,45,31,["💅🏻"]],"1f3fc":["1f485-1f3fc",23,46,31,["💅🏼"]],"1f3fd":["1f485-1f3fd",23,47,31,["💅🏽"]],"1f3fe":["1f485-1f3fe",23,48,31,["💅🏾"]],"1f3ff":["1f485-1f3ff",23,49,31,["💅🏿"]]},"1f486-200d-2640-fe0f":{"1f3fb":["1f486-1f3fb-200d-2640-fe0f",23,51,7,["💆🏻‍♀️","💆🏻"]],"1f3fc":["1f486-1f3fc-200d-2640-fe0f",24,0,7,["💆🏼‍♀️","💆🏼"]],"1f3fd":["1f486-1f3fd-200d-2640-fe0f",24,1,7,["💆🏽‍♀️","💆🏽"]],"1f3fe":["1f486-1f3fe-200d-2640-fe0f",24,2,7,["💆🏾‍♀️","💆🏾"]],"1f3ff":["1f486-1f3ff-200d-2640-fe0f",24,3,7,["💆🏿‍♀️","💆🏿"]]},"1f486-200d-2642-fe0f":{"1f3fb":["1f486-1f3fb-200d-2642-fe0f",24,5,7,["💆🏻‍♂️"]],"1f3fc":["1f486-1f3fc-200d-2642-fe0f",24,6,7,["💆🏼‍♂️"]],"1f3fd":["1f486-1f3fd-200d-2642-fe0f",24,7,7,["💆🏽‍♂️"]],"1f3fe":["1f486-1f3fe-200d-2642-fe0f",24,8,7,["💆🏾‍♂️"]],"1f3ff":["1f486-1f3ff-200d-2642-fe0f",24,9,7,["💆🏿‍♂️"]]},"1f487-200d-2640-fe0f":{"1f3fb":["1f487-1f3fb-200d-2640-fe0f",24,17,7,["💇🏻‍♀️","💇🏻"]],"1f3fc":["1f487-1f3fc-200d-2640-fe0f",24,18,7,["💇🏼‍♀️","💇🏼"]],"1f3fd":["1f487-1f3fd-200d-2640-fe0f",24,19,7,["💇🏽‍♀️","💇🏽"]],"1f3fe":["1f487-1f3fe-200d-2640-fe0f",24,20,7,["💇🏾‍♀️","💇🏾"]],"1f3ff":["1f487-1f3ff-200d-2640-fe0f",24,21,7,["💇🏿‍♀️","💇🏿"]]},"1f487-200d-2642-fe0f":{"1f3fb":["1f487-1f3fb-200d-2642-fe0f",24,23,7,["💇🏻‍♂️"]],"1f3fc":["1f487-1f3fc-200d-2642-fe0f",24,24,7,["💇🏼‍♂️"]],"1f3fd":["1f487-1f3fd-200d-2642-fe0f",24,25,7,["💇🏽‍♂️"]],"1f3fe":["1f487-1f3fe-200d-2642-fe0f",24,26,7,["💇🏾‍♂️"]],"1f3ff":["1f487-1f3ff-200d-2642-fe0f",24,27,7,["💇🏿‍♂️"]]},"1f4aa":{"1f3fb":["1f4aa-1f3fb",25,17,31,["💪🏻"]],"1f3fc":["1f4aa-1f3fc",25,18,31,["💪🏼"]],"1f3fd":["1f4aa-1f3fd",25,19,31,["💪🏽"]],"1f3fe":["1f4aa-1f3fe",25,20,31,["💪🏾"]],"1f3ff":["1f4aa-1f3ff",25,21,31,["💪🏿"]]},"1f574-fe0f":{"1f3fb":["1f574-1f3fb",28,46,15,["🕴🏻"]],"1f3fc":["1f574-1f3fc",28,47,15,["🕴🏼"]],"1f3fd":["1f574-1f3fd",28,48,15,["🕴🏽"]],"1f3fe":["1f574-1f3fe",28,49,15,["🕴🏾"]],"1f3ff":["1f574-1f3ff",28,50,15,["🕴🏿"]]},"1f575-fe0f-200d-2640-fe0f":{"1f3fb":["1f575-1f3fb-200d-2640-fe0f",29,0,7,["🕵🏻‍♀️"]],"1f3fc":["1f575-1f3fc-200d-2640-fe0f",29,1,7,["🕵🏼‍♀️"]],"1f3fd":["1f575-1f3fd-200d-2640-fe0f",29,2,7,["🕵🏽‍♀️"]],"1f3fe":["1f575-1f3fe-200d-2640-fe0f",29,3,7,["🕵🏾‍♀️"]],"1f3ff":["1f575-1f3ff-200d-2640-fe0f",29,4,7,["🕵🏿‍♀️"]]},"1f575-fe0f-200d-2642-fe0f":{"1f3fb":["1f575-1f3fb-200d-2642-fe0f",29,6,7,["🕵🏻‍♂️","🕵🏻"]],"1f3fc":["1f575-1f3fc-200d-2642-fe0f",29,7,7,["🕵🏼‍♂️","🕵🏼"]],"1f3fd":["1f575-1f3fd-200d-2642-fe0f",29,8,7,["🕵🏽‍♂️","🕵🏽"]],"1f3fe":["1f575-1f3fe-200d-2642-fe0f",29,9,7,["🕵🏾‍♂️","🕵🏾"]],"1f3ff":["1f575-1f3ff-200d-2642-fe0f",29,10,7,["🕵🏿‍♂️","🕵🏿"]]},"1f57a":{"1f3fb":["1f57a-1f3fb",29,22,15,["🕺🏻"]],"1f3fc":["1f57a-1f3fc",29,23,15,["🕺🏼"]],"1f3fd":["1f57a-1f3fd",29,24,15,["🕺🏽"]],"1f3fe":["1f57a-1f3fe",29,25,15,["🕺🏾"]],"1f3ff":["1f57a-1f3ff",29,26,15,["🕺🏿"]]},"1f590-fe0f":{"1f3fb":["1f590-1f3fb",29,33,15,["🖐🏻"]],"1f3fc":["1f590-1f3fc",29,34,15,["🖐🏼"]],"1f3fd":["1f590-1f3fd",29,35,15,["🖐🏽"]],"1f3fe":["1f590-1f3fe",29,36,15,["🖐🏾"]],"1f3ff":["1f590-1f3ff",29,37,15,["🖐🏿"]]},"1f595":{"1f3fb":["1f595-1f3fb",29,39,15,["🖕🏻"]],"1f3fc":["1f595-1f3fc",29,40,15,["🖕🏼"]],"1f3fd":["1f595-1f3fd",29,41,15,["🖕🏽"]],"1f3fe":["1f595-1f3fe",29,42,15,["🖕🏾"]],"1f3ff":["1f595-1f3ff",29,43,15,["🖕🏿"]]},"1f596":{"1f3fb":["1f596-1f3fb",29,45,15,["🖖🏻"]],"1f3fc":["1f596-1f3fc",29,46,15,["🖖🏼"]],"1f3fd":["1f596-1f3fd",29,47,15,["🖖🏽"]],"1f3fe":["1f596-1f3fe",29,48,15,["🖖🏾"]],"1f3ff":["1f596-1f3ff",29,49,15,["🖖🏿"]]},"1f645-200d-2640-fe0f":{"1f3fb":["1f645-1f3fb-200d-2640-fe0f",31,42,7,["🙅🏻‍♀️","🙅🏻"]],"1f3fc":["1f645-1f3fc-200d-2640-fe0f",31,43,7,["🙅🏼‍♀️","🙅🏼"]],"1f3fd":["1f645-1f3fd-200d-2640-fe0f",31,44,7,["🙅🏽‍♀️","🙅🏽"]],"1f3fe":["1f645-1f3fe-200d-2640-fe0f",31,45,7,["🙅🏾‍♀️","🙅🏾"]],"1f3ff":["1f645-1f3ff-200d-2640-fe0f",31,46,7,["🙅🏿‍♀️","🙅🏿"]]},"1f645-200d-2642-fe0f":{"1f3fb":["1f645-1f3fb-200d-2642-fe0f",31,48,7,["🙅🏻‍♂️"]],"1f3fc":["1f645-1f3fc-200d-2642-fe0f",31,49,7,["🙅🏼‍♂️"]],"1f3fd":["1f645-1f3fd-200d-2642-fe0f",31,50,7,["🙅🏽‍♂️"]],"1f3fe":["1f645-1f3fe-200d-2642-fe0f",31,51,7,["🙅🏾‍♂️"]],"1f3ff":["1f645-1f3ff-200d-2642-fe0f",32,0,7,["🙅🏿‍♂️"]]},"1f646-200d-2640-fe0f":{"1f3fb":["1f646-1f3fb-200d-2640-fe0f",32,8,7,["🙆🏻‍♀️","🙆🏻"]],"1f3fc":["1f646-1f3fc-200d-2640-fe0f",32,9,7,["🙆🏼‍♀️","🙆🏼"]],"1f3fd":["1f646-1f3fd-200d-2640-fe0f",32,10,7,["🙆🏽‍♀️","🙆🏽"]],"1f3fe":["1f646-1f3fe-200d-2640-fe0f",32,11,7,["🙆🏾‍♀️","🙆🏾"]],"1f3ff":["1f646-1f3ff-200d-2640-fe0f",32,12,7,["🙆🏿‍♀️","🙆🏿"]]},"1f646-200d-2642-fe0f":{"1f3fb":["1f646-1f3fb-200d-2642-fe0f",32,14,7,["🙆🏻‍♂️"]],"1f3fc":["1f646-1f3fc-200d-2642-fe0f",32,15,7,["🙆🏼‍♂️"]],"1f3fd":["1f646-1f3fd-200d-2642-fe0f",32,16,7,["🙆🏽‍♂️"]],"1f3fe":["1f646-1f3fe-200d-2642-fe0f",32,17,7,["🙆🏾‍♂️"]],"1f3ff":["1f646-1f3ff-200d-2642-fe0f",32,18,7,["🙆🏿‍♂️"]]},"1f647-200d-2640-fe0f":{"1f3fb":["1f647-1f3fb-200d-2640-fe0f",32,26,7,["🙇🏻‍♀️"]],"1f3fc":["1f647-1f3fc-200d-2640-fe0f",32,27,7,["🙇🏼‍♀️"]],"1f3fd":["1f647-1f3fd-200d-2640-fe0f",32,28,7,["🙇🏽‍♀️"]],"1f3fe":["1f647-1f3fe-200d-2640-fe0f",32,29,7,["🙇🏾‍♀️"]],"1f3ff":["1f647-1f3ff-200d-2640-fe0f",32,30,7,["🙇🏿‍♀️"]]},"1f647-200d-2642-fe0f":{"1f3fb":["1f647-1f3fb-200d-2642-fe0f",32,32,7,["🙇🏻‍♂️","🙇🏻"]],"1f3fc":["1f647-1f3fc-200d-2642-fe0f",32,33,7,["🙇🏼‍♂️","🙇🏼"]],"1f3fd":["1f647-1f3fd-200d-2642-fe0f",32,34,7,["🙇🏽‍♂️","🙇🏽"]],"1f3fe":["1f647-1f3fe-200d-2642-fe0f",32,35,7,["🙇🏾‍♂️","🙇🏾"]],"1f3ff":["1f647-1f3ff-200d-2642-fe0f",32,36,7,["🙇🏿‍♂️","🙇🏿"]]},"1f64b-200d-2640-fe0f":{"1f3fb":["1f64b-1f3fb-200d-2640-fe0f",32,47,7,["🙋🏻‍♀️","🙋🏻"]],"1f3fc":["1f64b-1f3fc-200d-2640-fe0f",32,48,7,["🙋🏼‍♀️","🙋🏼"]],"1f3fd":["1f64b-1f3fd-200d-2640-fe0f",32,49,7,["🙋🏽‍♀️","🙋🏽"]],"1f3fe":["1f64b-1f3fe-200d-2640-fe0f",32,50,7,["🙋🏾‍♀️","🙋🏾"]],"1f3ff":["1f64b-1f3ff-200d-2640-fe0f",32,51,7,["🙋🏿‍♀️","🙋🏿"]]},"1f64b-200d-2642-fe0f":{"1f3fb":["1f64b-1f3fb-200d-2642-fe0f",33,1,7,["🙋🏻‍♂️"]],"1f3fc":["1f64b-1f3fc-200d-2642-fe0f",33,2,7,["🙋🏼‍♂️"]],"1f3fd":["1f64b-1f3fd-200d-2642-fe0f",33,3,7,["🙋🏽‍♂️"]],"1f3fe":["1f64b-1f3fe-200d-2642-fe0f",33,4,7,["🙋🏾‍♂️"]],"1f3ff":["1f64b-1f3ff-200d-2642-fe0f",33,5,7,["🙋🏿‍♂️"]]},"1f64c":{"1f3fb":["1f64c-1f3fb",33,13,31,["🙌🏻"]],"1f3fc":["1f64c-1f3fc",33,14,31,["🙌🏼"]],"1f3fd":["1f64c-1f3fd",33,15,31,["🙌🏽"]],"1f3fe":["1f64c-1f3fe",33,16,31,["🙌🏾"]],"1f3ff":["1f64c-1f3ff",33,17,31,["🙌🏿"]]},"1f64d-200d-2640-fe0f":{"1f3fb":["1f64d-1f3fb-200d-2640-fe0f",33,19,7,["🙍🏻‍♀️","🙍🏻"]],"1f3fc":["1f64d-1f3fc-200d-2640-fe0f",33,20,7,["🙍🏼‍♀️","🙍🏼"]],"1f3fd":["1f64d-1f3fd-200d-2640-fe0f",33,21,7,["🙍🏽‍♀️","🙍🏽"]],"1f3fe":["1f64d-1f3fe-200d-2640-fe0f",33,22,7,["🙍🏾‍♀️","🙍🏾"]],"1f3ff":["1f64d-1f3ff-200d-2640-fe0f",33,23,7,["🙍🏿‍♀️","🙍🏿"]]},"1f64d-200d-2642-fe0f":{"1f3fb":["1f64d-1f3fb-200d-2642-fe0f",33,25,7,["🙍🏻‍♂️"]],"1f3fc":["1f64d-1f3fc-200d-2642-fe0f",33,26,7,["🙍🏼‍♂️"]],"1f3fd":["1f64d-1f3fd-200d-2642-fe0f",33,27,7,["🙍🏽‍♂️"]],"1f3fe":["1f64d-1f3fe-200d-2642-fe0f",33,28,7,["🙍🏾‍♂️"]],"1f3ff":["1f64d-1f3ff-200d-2642-fe0f",33,29,7,["🙍🏿‍♂️"]]},"1f64e-200d-2640-fe0f":{"1f3fb":["1f64e-1f3fb-200d-2640-fe0f",33,37,7,["🙎🏻‍♀️","🙎🏻"]],"1f3fc":["1f64e-1f3fc-200d-2640-fe0f",33,38,7,["🙎🏼‍♀️","🙎🏼"]],"1f3fd":["1f64e-1f3fd-200d-2640-fe0f",33,39,7,["🙎🏽‍♀️","🙎🏽"]],"1f3fe":["1f64e-1f3fe-200d-2640-fe0f",33,40,7,["🙎🏾‍♀️","🙎🏾"]],"1f3ff":["1f64e-1f3ff-200d-2640-fe0f",33,41,7,["🙎🏿‍♀️","🙎🏿"]]},"1f64e-200d-2642-fe0f":{"1f3fb":["1f64e-1f3fb-200d-2642-fe0f",33,43,7,["🙎🏻‍♂️"]],"1f3fc":["1f64e-1f3fc-200d-2642-fe0f",33,44,7,["🙎🏼‍♂️"]],"1f3fd":["1f64e-1f3fd-200d-2642-fe0f",33,45,7,["🙎🏽‍♂️"]],"1f3fe":["1f64e-1f3fe-200d-2642-fe0f",33,46,7,["🙎🏾‍♂️"]],"1f3ff":["1f64e-1f3ff-200d-2642-fe0f",33,47,7,["🙎🏿‍♂️"]]},"1f64f":{"1f3fb":["1f64f-1f3fb",34,3,31,["🙏🏻"]],"1f3fc":["1f64f-1f3fc",34,4,31,["🙏🏼"]],"1f3fd":["1f64f-1f3fd",34,5,31,["🙏🏽"]],"1f3fe":["1f64f-1f3fe",34,6,31,["🙏🏾"]],"1f3ff":["1f64f-1f3ff",34,7,31,["🙏🏿"]]},"1f6a3-200d-2640-fe0f":{"1f3fb":["1f6a3-1f3fb-200d-2640-fe0f",34,44,7,["🚣🏻‍♀️"]],"1f3fc":["1f6a3-1f3fc-200d-2640-fe0f",34,45,7,["🚣🏼‍♀️"]],"1f3fd":["1f6a3-1f3fd-200d-2640-fe0f",34,46,7,["🚣🏽‍♀️"]],"1f3fe":["1f6a3-1f3fe-200d-2640-fe0f",34,47,7,["🚣🏾‍♀️"]],"1f3ff":["1f6a3-1f3ff-200d-2640-fe0f",34,48,7,["🚣🏿‍♀️"]]},"1f6a3-200d-2642-fe0f":{"1f3fb":["1f6a3-1f3fb-200d-2642-fe0f",34,50,7,["🚣🏻‍♂️","🚣🏻"]],"1f3fc":["1f6a3-1f3fc-200d-2642-fe0f",34,51,7,["🚣🏼‍♂️","🚣🏼"]],"1f3fd":["1f6a3-1f3fd-200d-2642-fe0f",35,0,7,["🚣🏽‍♂️","🚣🏽"]],"1f3fe":["1f6a3-1f3fe-200d-2642-fe0f",35,1,7,["🚣🏾‍♂️","🚣🏾"]],"1f3ff":["1f6a3-1f3ff-200d-2642-fe0f",35,2,7,["🚣🏿‍♂️","🚣🏿"]]},"1f6b4-200d-2640-fe0f":{"1f3fb":["1f6b4-1f3fb-200d-2640-fe0f",35,26,7,["🚴🏻‍♀️"]],"1f3fc":["1f6b4-1f3fc-200d-2640-fe0f",35,27,7,["🚴🏼‍♀️"]],"1f3fd":["1f6b4-1f3fd-200d-2640-fe0f",35,28,7,["🚴🏽‍♀️"]],"1f3fe":["1f6b4-1f3fe-200d-2640-fe0f",35,29,7,["🚴🏾‍♀️"]],"1f3ff":["1f6b4-1f3ff-200d-2640-fe0f",35,30,7,["🚴🏿‍♀️"]]},"1f6b4-200d-2642-fe0f":{"1f3fb":["1f6b4-1f3fb-200d-2642-fe0f",35,32,7,["🚴🏻‍♂️","🚴🏻"]],"1f3fc":["1f6b4-1f3fc-200d-2642-fe0f",35,33,7,["🚴🏼‍♂️","🚴🏼"]],"1f3fd":["1f6b4-1f3fd-200d-2642-fe0f",35,34,7,["🚴🏽‍♂️","🚴🏽"]],"1f3fe":["1f6b4-1f3fe-200d-2642-fe0f",35,35,7,["🚴🏾‍♂️","🚴🏾"]],"1f3ff":["1f6b4-1f3ff-200d-2642-fe0f",35,36,7,["🚴🏿‍♂️","🚴🏿"]]},"1f6b5-200d-2640-fe0f":{"1f3fb":["1f6b5-1f3fb-200d-2640-fe0f",35,44,7,["🚵🏻‍♀️"]],"1f3fc":["1f6b5-1f3fc-200d-2640-fe0f",35,45,7,["🚵🏼‍♀️"]],"1f3fd":["1f6b5-1f3fd-200d-2640-fe0f",35,46,7,["🚵🏽‍♀️"]],"1f3fe":["1f6b5-1f3fe-200d-2640-fe0f",35,47,7,["🚵🏾‍♀️"]],"1f3ff":["1f6b5-1f3ff-200d-2640-fe0f",35,48,7,["🚵🏿‍♀️"]]},"1f6b5-200d-2642-fe0f":{"1f3fb":["1f6b5-1f3fb-200d-2642-fe0f",35,50,7,["🚵🏻‍♂️","🚵🏻"]],"1f3fc":["1f6b5-1f3fc-200d-2642-fe0f",35,51,7,["🚵🏼‍♂️","🚵🏼"]],"1f3fd":["1f6b5-1f3fd-200d-2642-fe0f",36,0,7,["🚵🏽‍♂️","🚵🏽"]],"1f3fe":["1f6b5-1f3fe-200d-2642-fe0f",36,1,7,["🚵🏾‍♂️","🚵🏾"]],"1f3ff":["1f6b5-1f3ff-200d-2642-fe0f",36,2,7,["🚵🏿‍♂️","🚵🏿"]]},"1f6b6-200d-2640-fe0f":{"1f3fb":["1f6b6-1f3fb-200d-2640-fe0f",36,10,7,["🚶🏻‍♀️"]],"1f3fc":["1f6b6-1f3fc-200d-2640-fe0f",36,11,7,["🚶🏼‍♀️"]],"1f3fd":["1f6b6-1f3fd-200d-2640-fe0f",36,12,7,["🚶🏽‍♀️"]],"1f3fe":["1f6b6-1f3fe-200d-2640-fe0f",36,13,7,["🚶🏾‍♀️"]],"1f3ff":["1f6b6-1f3ff-200d-2640-fe0f",36,14,7,["🚶🏿‍♀️"]]},"1f6b6-200d-2642-fe0f":{"1f3fb":["1f6b6-1f3fb-200d-2642-fe0f",36,16,7,["🚶🏻‍♂️","🚶🏻"]],"1f3fc":["1f6b6-1f3fc-200d-2642-fe0f",36,17,7,["🚶🏼‍♂️","🚶🏼"]],"1f3fd":["1f6b6-1f3fd-200d-2642-fe0f",36,18,7,["🚶🏽‍♂️","🚶🏽"]],"1f3fe":["1f6b6-1f3fe-200d-2642-fe0f",36,19,7,["🚶🏾‍♂️","🚶🏾"]],"1f3ff":["1f6b6-1f3ff-200d-2642-fe0f",36,20,7,["🚶🏿‍♂️","🚶🏿"]]},"1f6c0":{"1f3fb":["1f6c0-1f3fb",36,37,31,["🛀🏻"]],"1f3fc":["1f6c0-1f3fc",36,38,31,["🛀🏼"]],"1f3fd":["1f6c0-1f3fd",36,39,31,["🛀🏽"]],"1f3fe":["1f6c0-1f3fe",36,40,31,["🛀🏾"]],"1f3ff":["1f6c0-1f3ff",36,41,31,["🛀🏿"]]},"1f6cc":{"1f3fb":["1f6cc-1f3fb",36,49,15,["🛌🏻"]],"1f3fc":["1f6cc-1f3fc",36,50,15,["🛌🏼"]],"1f3fd":["1f6cc-1f3fd",36,51,15,["🛌🏽"]],"1f3fe":["1f6cc-1f3fe",37,0,15,["🛌🏾"]],"1f3ff":["1f6cc-1f3ff",37,1,15,["🛌🏿"]]},"1f918":{"1f3fb":["1f918-1f3fb",37,33,15,["🤘🏻"]],"1f3fc":["1f918-1f3fc",37,34,15,["🤘🏼"]],"1f3fd":["1f918-1f3fd",37,35,15,["🤘🏽"]],"1f3fe":["1f918-1f3fe",37,36,15,["🤘🏾"]],"1f3ff":["1f918-1f3ff",37,37,15,["🤘🏿"]]},"1f919":{"1f3fb":["1f919-1f3fb",37,39,15,["🤙🏻"]],"1f3fc":["1f919-1f3fc",37,40,15,["🤙🏼"]],"1f3fd":["1f919-1f3fd",37,41,15,["🤙🏽"]],"1f3fe":["1f919-1f3fe",37,42,15,["🤙🏾"]],"1f3ff":["1f919-1f3ff",37,43,15,["🤙🏿"]]},"1f91a":{"1f3fb":["1f91a-1f3fb",37,45,15,["🤚🏻"]],"1f3fc":["1f91a-1f3fc",37,46,15,["🤚🏼"]],"1f3fd":["1f91a-1f3fd",37,47,15,["🤚🏽"]],"1f3fe":["1f91a-1f3fe",37,48,15,["🤚🏾"]],"1f3ff":["1f91a-1f3ff",37,49,15,["🤚🏿"]]},"1f91b":{"1f3fb":["1f91b-1f3fb",37,51,15,["🤛🏻"]],"1f3fc":["1f91b-1f3fc",38,0,15,["🤛🏼"]],"1f3fd":["1f91b-1f3fd",38,1,15,["🤛🏽"]],"1f3fe":["1f91b-1f3fe",38,2,15,["🤛🏾"]],"1f3ff":["1f91b-1f3ff",38,3,15,["🤛🏿"]]},"1f91c":{"1f3fb":["1f91c-1f3fb",38,5,15,["🤜🏻"]],"1f3fc":["1f91c-1f3fc",38,6,15,["🤜🏼"]],"1f3fd":["1f91c-1f3fd",38,7,15,["🤜🏽"]],"1f3fe":["1f91c-1f3fe",38,8,15,["🤜🏾"]],"1f3ff":["1f91c-1f3ff",38,9,15,["🤜🏿"]]},"1f91e":{"1f3fb":["1f91e-1f3fb",38,12,15,["🤞🏻"]],"1f3fc":["1f91e-1f3fc",38,13,15,["🤞🏼"]],"1f3fd":["1f91e-1f3fd",38,14,15,["🤞🏽"]],"1f3fe":["1f91e-1f3fe",38,15,15,["🤞🏾"]],"1f3ff":["1f91e-1f3ff",38,16,15,["🤞🏿"]]},"1f91f":{"1f3fb":["1f91f-1f3fb",38,18,15,["🤟🏻"]],"1f3fc":["1f91f-1f3fc",38,19,15,["🤟🏼"]],"1f3fd":["1f91f-1f3fd",38,20,15,["🤟🏽"]],"1f3fe":["1f91f-1f3fe",38,21,15,["🤟🏾"]],"1f3ff":["1f91f-1f3ff",38,22,15,["🤟🏿"]]},"1f926-200d-2640-fe0f":{"1f3fb":["1f926-1f3fb-200d-2640-fe0f",38,30,7,["🤦🏻‍♀️"]],"1f3fc":["1f926-1f3fc-200d-2640-fe0f",38,31,7,["🤦🏼‍♀️"]],"1f3fd":["1f926-1f3fd-200d-2640-fe0f",38,32,7,["🤦🏽‍♀️"]],"1f3fe":["1f926-1f3fe-200d-2640-fe0f",38,33,7,["🤦🏾‍♀️"]],"1f3ff":["1f926-1f3ff-200d-2640-fe0f",38,34,7,["🤦🏿‍♀️"]]},"1f926-200d-2642-fe0f":{"1f3fb":["1f926-1f3fb-200d-2642-fe0f",38,36,7,["🤦🏻‍♂️"]],"1f3fc":["1f926-1f3fc-200d-2642-fe0f",38,37,7,["🤦🏼‍♂️"]],"1f3fd":["1f926-1f3fd-200d-2642-fe0f",38,38,7,["🤦🏽‍♂️"]],"1f3fe":["1f926-1f3fe-200d-2642-fe0f",38,39,7,["🤦🏾‍♂️"]],"1f3ff":["1f926-1f3ff-200d-2642-fe0f",38,40,7,["🤦🏿‍♂️"]]},"1f926":{"1f3fb":["1f926-1f3fb",38,42,7,["🤦🏻"]],"1f3fc":["1f926-1f3fc",38,43,7,["🤦🏼"]],"1f3fd":["1f926-1f3fd",38,44,7,["🤦🏽"]],"1f3fe":["1f926-1f3fe",38,45,7,["🤦🏾"]],"1f3ff":["1f926-1f3ff",38,46,7,["🤦🏿"]]},"1f930":{"1f3fb":["1f930-1f3fb",39,5,15,["🤰🏻"]],"1f3fc":["1f930-1f3fc",39,6,15,["🤰🏼"]],"1f3fd":["1f930-1f3fd",39,7,15,["🤰🏽"]],"1f3fe":["1f930-1f3fe",39,8,15,["🤰🏾"]],"1f3ff":["1f930-1f3ff",39,9,15,["🤰🏿"]]},"1f931":{"1f3fb":["1f931-1f3fb",39,11,15,["🤱🏻"]],"1f3fc":["1f931-1f3fc",39,12,15,["🤱🏼"]],"1f3fd":["1f931-1f3fd",39,13,15,["🤱🏽"]],"1f3fe":["1f931-1f3fe",39,14,15,["🤱🏾"]],"1f3ff":["1f931-1f3ff",39,15,15,["🤱🏿"]]},"1f932":{"1f3fb":["1f932-1f3fb",39,17,15,["🤲🏻"]],"1f3fc":["1f932-1f3fc",39,18,15,["🤲🏼"]],"1f3fd":["1f932-1f3fd",39,19,15,["🤲🏽"]],"1f3fe":["1f932-1f3fe",39,20,15,["🤲🏾"]],"1f3ff":["1f932-1f3ff",39,21,15,["🤲🏿"]]},"1f933":{"1f3fb":["1f933-1f3fb",39,23,15,["🤳🏻"]],"1f3fc":["1f933-1f3fc",39,24,15,["🤳🏼"]],"1f3fd":["1f933-1f3fd",39,25,15,["🤳🏽"]],"1f3fe":["1f933-1f3fe",39,26,15,["🤳🏾"]],"1f3ff":["1f933-1f3ff",39,27,15,["🤳🏿"]]},"1f934":{"1f3fb":["1f934-1f3fb",39,29,15,["🤴🏻"]],"1f3fc":["1f934-1f3fc",39,30,15,["🤴🏼"]],"1f3fd":["1f934-1f3fd",39,31,15,["🤴🏽"]],"1f3fe":["1f934-1f3fe",39,32,15,["🤴🏾"]],"1f3ff":["1f934-1f3ff",39,33,15,["🤴🏿"]]},"1f935":{"1f3fb":["1f935-1f3fb",39,35,15,["🤵🏻"]],"1f3fc":["1f935-1f3fc",39,36,15,["🤵🏼"]],"1f3fd":["1f935-1f3fd",39,37,15,["🤵🏽"]],"1f3fe":["1f935-1f3fe",39,38,15,["🤵🏾"]],"1f3ff":["1f935-1f3ff",39,39,15,["🤵🏿"]]},"1f936":{"1f3fb":["1f936-1f3fb",39,41,15,["🤶🏻"]],"1f3fc":["1f936-1f3fc",39,42,15,["🤶🏼"]],"1f3fd":["1f936-1f3fd",39,43,15,["🤶🏽"]],"1f3fe":["1f936-1f3fe",39,44,15,["🤶🏾"]],"1f3ff":["1f936-1f3ff",39,45,15,["🤶🏿"]]},"1f937-200d-2640-fe0f":{"1f3fb":["1f937-1f3fb-200d-2640-fe0f",39,47,7,["🤷🏻‍♀️"]],"1f3fc":["1f937-1f3fc-200d-2640-fe0f",39,48,7,["🤷🏼‍♀️"]],"1f3fd":["1f937-1f3fd-200d-2640-fe0f",39,49,7,["🤷🏽‍♀️"]],"1f3fe":["1f937-1f3fe-200d-2640-fe0f",39,50,7,["🤷🏾‍♀️"]],"1f3ff":["1f937-1f3ff-200d-2640-fe0f",39,51,7,["🤷🏿‍♀️"]]},"1f937-200d-2642-fe0f":{"1f3fb":["1f937-1f3fb-200d-2642-fe0f",40,1,7,["🤷🏻‍♂️"]],"1f3fc":["1f937-1f3fc-200d-2642-fe0f",40,2,7,["🤷🏼‍♂️"]],"1f3fd":["1f937-1f3fd-200d-2642-fe0f",40,3,7,["🤷🏽‍♂️"]],"1f3fe":["1f937-1f3fe-200d-2642-fe0f",40,4,7,["🤷🏾‍♂️"]],"1f3ff":["1f937-1f3ff-200d-2642-fe0f",40,5,7,["🤷🏿‍♂️"]]},"1f937":{"1f3fb":["1f937-1f3fb",40,7,7,["🤷🏻"]],"1f3fc":["1f937-1f3fc",40,8,7,["🤷🏼"]],"1f3fd":["1f937-1f3fd",40,9,7,["🤷🏽"]],"1f3fe":["1f937-1f3fe",40,10,7,["🤷🏾"]],"1f3ff":["1f937-1f3ff",40,11,7,["🤷🏿"]]},"1f938-200d-2640-fe0f":{"1f3fb":["1f938-1f3fb-200d-2640-fe0f",40,13,7,["🤸🏻‍♀️"]],"1f3fc":["1f938-1f3fc-200d-2640-fe0f",40,14,7,["🤸🏼‍♀️"]],"1f3fd":["1f938-1f3fd-200d-2640-fe0f",40,15,7,["🤸🏽‍♀️"]],"1f3fe":["1f938-1f3fe-200d-2640-fe0f",40,16,7,["🤸🏾‍♀️"]],"1f3ff":["1f938-1f3ff-200d-2640-fe0f",40,17,7,["🤸🏿‍♀️"]]},"1f938-200d-2642-fe0f":{"1f3fb":["1f938-1f3fb-200d-2642-fe0f",40,19,7,["🤸🏻‍♂️"]],"1f3fc":["1f938-1f3fc-200d-2642-fe0f",40,20,7,["🤸🏼‍♂️"]],"1f3fd":["1f938-1f3fd-200d-2642-fe0f",40,21,7,["🤸🏽‍♂️"]],"1f3fe":["1f938-1f3fe-200d-2642-fe0f",40,22,7,["🤸🏾‍♂️"]],"1f3ff":["1f938-1f3ff-200d-2642-fe0f",40,23,7,["🤸🏿‍♂️"]]},"1f938":{"1f3fb":["1f938-1f3fb",40,25,7,["🤸🏻"]],"1f3fc":["1f938-1f3fc",40,26,7,["🤸🏼"]],"1f3fd":["1f938-1f3fd",40,27,7,["🤸🏽"]],"1f3fe":["1f938-1f3fe",40,28,7,["🤸🏾"]],"1f3ff":["1f938-1f3ff",40,29,7,["🤸🏿"]]},"1f939-200d-2640-fe0f":{"1f3fb":["1f939-1f3fb-200d-2640-fe0f",40,31,7,["🤹🏻‍♀️"]],"1f3fc":["1f939-1f3fc-200d-2640-fe0f",40,32,7,["🤹🏼‍♀️"]],"1f3fd":["1f939-1f3fd-200d-2640-fe0f",40,33,7,["🤹🏽‍♀️"]],"1f3fe":["1f939-1f3fe-200d-2640-fe0f",40,34,7,["🤹🏾‍♀️"]],"1f3ff":["1f939-1f3ff-200d-2640-fe0f",40,35,7,["🤹🏿‍♀️"]]},"1f939-200d-2642-fe0f":{"1f3fb":["1f939-1f3fb-200d-2642-fe0f",40,37,7,["🤹🏻‍♂️"]],"1f3fc":["1f939-1f3fc-200d-2642-fe0f",40,38,7,["🤹🏼‍♂️"]],"1f3fd":["1f939-1f3fd-200d-2642-fe0f",40,39,7,["🤹🏽‍♂️"]],"1f3fe":["1f939-1f3fe-200d-2642-fe0f",40,40,7,["🤹🏾‍♂️"]],"1f3ff":["1f939-1f3ff-200d-2642-fe0f",40,41,7,["🤹🏿‍♂️"]]},"1f939":{"1f3fb":["1f939-1f3fb",40,43,15,["🤹🏻"]],"1f3fc":["1f939-1f3fc",40,44,15,["🤹🏼"]],"1f3fd":["1f939-1f3fd",40,45,15,["🤹🏽"]],"1f3fe":["1f939-1f3fe",40,46,15,["🤹🏾"]],"1f3ff":["1f939-1f3ff",40,47,15,["🤹🏿"]]},"1f93d-200d-2640-fe0f":{"1f3fb":["1f93d-1f3fb-200d-2640-fe0f",41,1,7,["🤽🏻‍♀️"]],"1f3fc":["1f93d-1f3fc-200d-2640-fe0f",41,2,7,["🤽🏼‍♀️"]],"1f3fd":["1f93d-1f3fd-200d-2640-fe0f",41,3,7,["🤽🏽‍♀️"]],"1f3fe":["1f93d-1f3fe-200d-2640-fe0f",41,4,7,["🤽🏾‍♀️"]],"1f3ff":["1f93d-1f3ff-200d-2640-fe0f",41,5,7,["🤽🏿‍♀️"]]},"1f93d-200d-2642-fe0f":{"1f3fb":["1f93d-1f3fb-200d-2642-fe0f",41,7,7,["🤽🏻‍♂️"]],"1f3fc":["1f93d-1f3fc-200d-2642-fe0f",41,8,7,["🤽🏼‍♂️"]],"1f3fd":["1f93d-1f3fd-200d-2642-fe0f",41,9,7,["🤽🏽‍♂️"]],"1f3fe":["1f93d-1f3fe-200d-2642-fe0f",41,10,7,["🤽🏾‍♂️"]],"1f3ff":["1f93d-1f3ff-200d-2642-fe0f",41,11,7,["🤽🏿‍♂️"]]},"1f93d":{"1f3fb":["1f93d-1f3fb",41,13,7,["🤽🏻"]],"1f3fc":["1f93d-1f3fc",41,14,7,["🤽🏼"]],"1f3fd":["1f93d-1f3fd",41,15,7,["🤽🏽"]],"1f3fe":["1f93d-1f3fe",41,16,7,["🤽🏾"]],"1f3ff":["1f93d-1f3ff",41,17,7,["🤽🏿"]]},"1f93e-200d-2640-fe0f":{"1f3fb":["1f93e-1f3fb-200d-2640-fe0f",41,19,7,["🤾🏻‍♀️"]],"1f3fc":["1f93e-1f3fc-200d-2640-fe0f",41,20,7,["🤾🏼‍♀️"]],"1f3fd":["1f93e-1f3fd-200d-2640-fe0f",41,21,7,["🤾🏽‍♀️"]],"1f3fe":["1f93e-1f3fe-200d-2640-fe0f",41,22,7,["🤾🏾‍♀️"]],"1f3ff":["1f93e-1f3ff-200d-2640-fe0f",41,23,7,["🤾🏿‍♀️"]]},"1f93e-200d-2642-fe0f":{"1f3fb":["1f93e-1f3fb-200d-2642-fe0f",41,25,7,["🤾🏻‍♂️"]],"1f3fc":["1f93e-1f3fc-200d-2642-fe0f",41,26,7,["🤾🏼‍♂️"]],"1f3fd":["1f93e-1f3fd-200d-2642-fe0f",41,27,7,["🤾🏽‍♂️"]],"1f3fe":["1f93e-1f3fe-200d-2642-fe0f",41,28,7,["🤾🏾‍♂️"]],"1f3ff":["1f93e-1f3ff-200d-2642-fe0f",41,29,7,["🤾🏿‍♂️"]]},"1f93e":{"1f3fb":["1f93e-1f3fb",41,31,7,["🤾🏻"]],"1f3fc":["1f93e-1f3fc",41,32,7,["🤾🏼"]],"1f3fd":["1f93e-1f3fd",41,33,7,["🤾🏽"]],"1f3fe":["1f93e-1f3fe",41,34,7,["🤾🏾"]],"1f3ff":["1f93e-1f3ff",41,35,7,["🤾🏿"]]},"1f9d1":{"1f3fb":["1f9d1-1f3fb",42,51,15,["🧑🏻"]],"1f3fc":["1f9d1-1f3fc",43,0,15,["🧑🏼"]],"1f3fd":["1f9d1-1f3fd",43,1,15,["🧑🏽"]],"1f3fe":["1f9d1-1f3fe",43,2,15,["🧑🏾"]],"1f3ff":["1f9d1-1f3ff",43,3,15,["🧑🏿"]]},"1f9d2":{"1f3fb":["1f9d2-1f3fb",43,5,15,["🧒🏻"]],"1f3fc":["1f9d2-1f3fc",43,6,15,["🧒🏼"]],"1f3fd":["1f9d2-1f3fd",43,7,15,["🧒🏽"]],"1f3fe":["1f9d2-1f3fe",43,8,15,["🧒🏾"]],"1f3ff":["1f9d2-1f3ff",43,9,15,["🧒🏿"]]},"1f9d3":{"1f3fb":["1f9d3-1f3fb",43,11,15,["🧓🏻"]],"1f3fc":["1f9d3-1f3fc",43,12,15,["🧓🏼"]],"1f3fd":["1f9d3-1f3fd",43,13,15,["🧓🏽"]],"1f3fe":["1f9d3-1f3fe",43,14,15,["🧓🏾"]],"1f3ff":["1f9d3-1f3ff",43,15,15,["🧓🏿"]]},"1f9d4":{"1f3fb":["1f9d4-1f3fb",43,17,15,["🧔🏻"]],"1f3fc":["1f9d4-1f3fc",43,18,15,["🧔🏼"]],"1f3fd":["1f9d4-1f3fd",43,19,15,["🧔🏽"]],"1f3fe":["1f9d4-1f3fe",43,20,15,["🧔🏾"]],"1f3ff":["1f9d4-1f3ff",43,21,15,["🧔🏿"]]},"1f9d5":{"1f3fb":["1f9d5-1f3fb",43,23,15,["🧕🏻"]],"1f3fc":["1f9d5-1f3fc",43,24,15,["🧕🏼"]],"1f3fd":["1f9d5-1f3fd",43,25,15,["🧕🏽"]],"1f3fe":["1f9d5-1f3fe",43,26,15,["🧕🏾"]],"1f3ff":["1f9d5-1f3ff",43,27,15,["🧕🏿"]]},"1f9d6-200d-2640-fe0f":{"1f3fb":["1f9d6-1f3fb-200d-2640-fe0f",43,29,7,["🧖🏻‍♀️"]],"1f3fc":["1f9d6-1f3fc-200d-2640-fe0f",43,30,7,["🧖🏼‍♀️"]],"1f3fd":["1f9d6-1f3fd-200d-2640-fe0f",43,31,7,["🧖🏽‍♀️"]],"1f3fe":["1f9d6-1f3fe-200d-2640-fe0f",43,32,7,["🧖🏾‍♀️"]],"1f3ff":["1f9d6-1f3ff-200d-2640-fe0f",43,33,7,["🧖🏿‍♀️"]]},"1f9d6-200d-2642-fe0f":{"1f3fb":["1f9d6-1f3fb-200d-2642-fe0f",43,35,7,["🧖🏻‍♂️","🧖🏻"]],"1f3fc":["1f9d6-1f3fc-200d-2642-fe0f",43,36,7,["🧖🏼‍♂️","🧖🏼"]],"1f3fd":["1f9d6-1f3fd-200d-2642-fe0f",43,37,7,["🧖🏽‍♂️","🧖🏽"]],"1f3fe":["1f9d6-1f3fe-200d-2642-fe0f",43,38,7,["🧖🏾‍♂️","🧖🏾"]],"1f3ff":["1f9d6-1f3ff-200d-2642-fe0f",43,39,7,["🧖🏿‍♂️","🧖🏿"]]},"1f9d7-200d-2640-fe0f":{"1f3fb":["1f9d7-1f3fb-200d-2640-fe0f",43,47,7,["🧗🏻‍♀️","🧗🏻"]],"1f3fc":["1f9d7-1f3fc-200d-2640-fe0f",43,48,7,["🧗🏼‍♀️","🧗🏼"]],"1f3fd":["1f9d7-1f3fd-200d-2640-fe0f",43,49,7,["🧗🏽‍♀️","🧗🏽"]],"1f3fe":["1f9d7-1f3fe-200d-2640-fe0f",43,50,7,["🧗🏾‍♀️","🧗🏾"]],"1f3ff":["1f9d7-1f3ff-200d-2640-fe0f",43,51,7,["🧗🏿‍♀️","🧗🏿"]]},"1f9d7-200d-2642-fe0f":{"1f3fb":["1f9d7-1f3fb-200d-2642-fe0f",44,1,7,["🧗🏻‍♂️"]],"1f3fc":["1f9d7-1f3fc-200d-2642-fe0f",44,2,7,["🧗🏼‍♂️"]],"1f3fd":["1f9d7-1f3fd-200d-2642-fe0f",44,3,7,["🧗🏽‍♂️"]],"1f3fe":["1f9d7-1f3fe-200d-2642-fe0f",44,4,7,["🧗🏾‍♂️"]],"1f3ff":["1f9d7-1f3ff-200d-2642-fe0f",44,5,7,["🧗🏿‍♂️"]]},"1f9d8-200d-2640-fe0f":{"1f3fb":["1f9d8-1f3fb-200d-2640-fe0f",44,13,7,["🧘🏻‍♀️","🧘🏻"]],"1f3fc":["1f9d8-1f3fc-200d-2640-fe0f",44,14,7,["🧘🏼‍♀️","🧘🏼"]],"1f3fd":["1f9d8-1f3fd-200d-2640-fe0f",44,15,7,["🧘🏽‍♀️","🧘🏽"]],"1f3fe":["1f9d8-1f3fe-200d-2640-fe0f",44,16,7,["🧘🏾‍♀️","🧘🏾"]],"1f3ff":["1f9d8-1f3ff-200d-2640-fe0f",44,17,7,["🧘🏿‍♀️","🧘🏿"]]},"1f9d8-200d-2642-fe0f":{"1f3fb":["1f9d8-1f3fb-200d-2642-fe0f",44,19,7,["🧘🏻‍♂️"]],"1f3fc":["1f9d8-1f3fc-200d-2642-fe0f",44,20,7,["🧘🏼‍♂️"]],"1f3fd":["1f9d8-1f3fd-200d-2642-fe0f",44,21,7,["🧘🏽‍♂️"]],"1f3fe":["1f9d8-1f3fe-200d-2642-fe0f",44,22,7,["🧘🏾‍♂️"]],"1f3ff":["1f9d8-1f3ff-200d-2642-fe0f",44,23,7,["🧘🏿‍♂️"]]},"1f9d9-200d-2640-fe0f":{"1f3fb":["1f9d9-1f3fb-200d-2640-fe0f",44,31,7,["🧙🏻‍♀️","🧙🏻"]],"1f3fc":["1f9d9-1f3fc-200d-2640-fe0f",44,32,7,["🧙🏼‍♀️","🧙🏼"]],"1f3fd":["1f9d9-1f3fd-200d-2640-fe0f",44,33,7,["🧙🏽‍♀️","🧙🏽"]],"1f3fe":["1f9d9-1f3fe-200d-2640-fe0f",44,34,7,["🧙🏾‍♀️","🧙🏾"]],"1f3ff":["1f9d9-1f3ff-200d-2640-fe0f",44,35,7,["🧙🏿‍♀️","🧙🏿"]]},"1f9d9-200d-2642-fe0f":{"1f3fb":["1f9d9-1f3fb-200d-2642-fe0f",44,37,7,["🧙🏻‍♂️"]],"1f3fc":["1f9d9-1f3fc-200d-2642-fe0f",44,38,7,["🧙🏼‍♂️"]],"1f3fd":["1f9d9-1f3fd-200d-2642-fe0f",44,39,7,["🧙🏽‍♂️"]],"1f3fe":["1f9d9-1f3fe-200d-2642-fe0f",44,40,7,["🧙🏾‍♂️"]],"1f3ff":["1f9d9-1f3ff-200d-2642-fe0f",44,41,7,["🧙🏿‍♂️"]]},"1f9da-200d-2640-fe0f":{"1f3fb":["1f9da-1f3fb-200d-2640-fe0f",44,49,7,["🧚🏻‍♀️","🧚🏻"]],"1f3fc":["1f9da-1f3fc-200d-2640-fe0f",44,50,7,["🧚🏼‍♀️","🧚🏼"]],"1f3fd":["1f9da-1f3fd-200d-2640-fe0f",44,51,7,["🧚🏽‍♀️","🧚🏽"]],"1f3fe":["1f9da-1f3fe-200d-2640-fe0f",45,0,7,["🧚🏾‍♀️","🧚🏾"]],"1f3ff":["1f9da-1f3ff-200d-2640-fe0f",45,1,7,["🧚🏿‍♀️","🧚🏿"]]},"1f9da-200d-2642-fe0f":{"1f3fb":["1f9da-1f3fb-200d-2642-fe0f",45,3,7,["🧚🏻‍♂️"]],"1f3fc":["1f9da-1f3fc-200d-2642-fe0f",45,4,7,["🧚🏼‍♂️"]],"1f3fd":["1f9da-1f3fd-200d-2642-fe0f",45,5,7,["🧚🏽‍♂️"]],"1f3fe":["1f9da-1f3fe-200d-2642-fe0f",45,6,7,["🧚🏾‍♂️"]],"1f3ff":["1f9da-1f3ff-200d-2642-fe0f",45,7,7,["🧚🏿‍♂️"]]},"1f9db-200d-2640-fe0f":{"1f3fb":["1f9db-1f3fb-200d-2640-fe0f",45,15,7,["🧛🏻‍♀️","🧛🏻"]],"1f3fc":["1f9db-1f3fc-200d-2640-fe0f",45,16,7,["🧛🏼‍♀️","🧛🏼"]],"1f3fd":["1f9db-1f3fd-200d-2640-fe0f",45,17,7,["🧛🏽‍♀️","🧛🏽"]],"1f3fe":["1f9db-1f3fe-200d-2640-fe0f",45,18,7,["🧛🏾‍♀️","🧛🏾"]],"1f3ff":["1f9db-1f3ff-200d-2640-fe0f",45,19,7,["🧛🏿‍♀️","🧛🏿"]]},"1f9db-200d-2642-fe0f":{"1f3fb":["1f9db-1f3fb-200d-2642-fe0f",45,21,7,["🧛🏻‍♂️"]],"1f3fc":["1f9db-1f3fc-200d-2642-fe0f",45,22,7,["🧛🏼‍♂️"]],"1f3fd":["1f9db-1f3fd-200d-2642-fe0f",45,23,7,["🧛🏽‍♂️"]],"1f3fe":["1f9db-1f3fe-200d-2642-fe0f",45,24,7,["🧛🏾‍♂️"]],"1f3ff":["1f9db-1f3ff-200d-2642-fe0f",45,25,7,["🧛🏿‍♂️"]]},"1f9dc-200d-2640-fe0f":{"1f3fb":["1f9dc-1f3fb-200d-2640-fe0f",45,33,7,["🧜🏻‍♀️"]],"1f3fc":["1f9dc-1f3fc-200d-2640-fe0f",45,34,7,["🧜🏼‍♀️"]],"1f3fd":["1f9dc-1f3fd-200d-2640-fe0f",45,35,7,["🧜🏽‍♀️"]],"1f3fe":["1f9dc-1f3fe-200d-2640-fe0f",45,36,7,["🧜🏾‍♀️"]],"1f3ff":["1f9dc-1f3ff-200d-2640-fe0f",45,37,7,["🧜🏿‍♀️"]]},"1f9dc-200d-2642-fe0f":{"1f3fb":["1f9dc-1f3fb-200d-2642-fe0f",45,39,7,["🧜🏻‍♂️","🧜🏻"]],"1f3fc":["1f9dc-1f3fc-200d-2642-fe0f",45,40,7,["🧜🏼‍♂️","🧜🏼"]],"1f3fd":["1f9dc-1f3fd-200d-2642-fe0f",45,41,7,["🧜🏽‍♂️","🧜🏽"]],"1f3fe":["1f9dc-1f3fe-200d-2642-fe0f",45,42,7,["🧜🏾‍♂️","🧜🏾"]],"1f3ff":["1f9dc-1f3ff-200d-2642-fe0f",45,43,7,["🧜🏿‍♂️","🧜🏿"]]},"1f9dd-200d-2640-fe0f":{"1f3fb":["1f9dd-1f3fb-200d-2640-fe0f",45,51,7,["🧝🏻‍♀️"]],"1f3fc":["1f9dd-1f3fc-200d-2640-fe0f",46,0,7,["🧝🏼‍♀️"]],"1f3fd":["1f9dd-1f3fd-200d-2640-fe0f",46,1,7,["🧝🏽‍♀️"]],"1f3fe":["1f9dd-1f3fe-200d-2640-fe0f",46,2,7,["🧝🏾‍♀️"]],"1f3ff":["1f9dd-1f3ff-200d-2640-fe0f",46,3,7,["🧝🏿‍♀️"]]},"1f9dd-200d-2642-fe0f":{"1f3fb":["1f9dd-1f3fb-200d-2642-fe0f",46,5,7,["🧝🏻‍♂️","🧝🏻"]],"1f3fc":["1f9dd-1f3fc-200d-2642-fe0f",46,6,7,["🧝🏼‍♂️","🧝🏼"]],"1f3fd":["1f9dd-1f3fd-200d-2642-fe0f",46,7,7,["🧝🏽‍♂️","🧝🏽"]],"1f3fe":["1f9dd-1f3fe-200d-2642-fe0f",46,8,7,["🧝🏾‍♂️","🧝🏾"]],"1f3ff":["1f9dd-1f3ff-200d-2642-fe0f",46,9,7,["🧝🏿‍♂️","🧝🏿"]]},"261d-fe0f":{"1f3fb":["261d-1f3fb",47,27,31,["☝🏻"]],"1f3fc":["261d-1f3fc",47,28,31,["☝🏼"]],"1f3fd":["261d-1f3fd",47,29,31,["☝🏽"]],"1f3fe":["261d-1f3fe",47,30,31,["☝🏾"]],"1f3ff":["261d-1f3ff",47,31,31,["☝🏿"]]},"26f9-fe0f-200d-2640-fe0f":{"1f3fb":["26f9-1f3fb-200d-2640-fe0f",48,47,7,["⛹🏻‍♀️"]],"1f3fc":["26f9-1f3fc-200d-2640-fe0f",48,48,7,["⛹🏼‍♀️"]],"1f3fd":["26f9-1f3fd-200d-2640-fe0f",48,49,7,["⛹🏽‍♀️"]],"1f3fe":["26f9-1f3fe-200d-2640-fe0f",48,50,7,["⛹🏾‍♀️"]],"1f3ff":["26f9-1f3ff-200d-2640-fe0f",48,51,7,["⛹🏿‍♀️"]]},"26f9-fe0f-200d-2642-fe0f":{"1f3fb":["26f9-1f3fb-200d-2642-fe0f",49,1,7,["⛹🏻‍♂️","⛹🏻"]],"1f3fc":["26f9-1f3fc-200d-2642-fe0f",49,2,7,["⛹🏼‍♂️","⛹🏼"]],"1f3fd":["26f9-1f3fd-200d-2642-fe0f",49,3,7,["⛹🏽‍♂️","⛹🏽"]],"1f3fe":["26f9-1f3fe-200d-2642-fe0f",49,4,7,["⛹🏾‍♂️","⛹🏾"]],"1f3ff":["26f9-1f3ff-200d-2642-fe0f",49,5,7,["⛹🏿‍♂️","⛹🏿"]]},"270a":{"1f3fb":["270a-1f3fb",49,19,31,["✊🏻"]],"1f3fc":["270a-1f3fc",49,20,31,["✊🏼"]],"1f3fd":["270a-1f3fd",49,21,31,["✊🏽"]],"1f3fe":["270a-1f3fe",49,22,31,["✊🏾"]],"1f3ff":["270a-1f3ff",49,23,31,["✊🏿"]]},"270b":{"1f3fb":["270b-1f3fb",49,25,31,["✋🏻"]],"1f3fc":["270b-1f3fc",49,26,31,["✋🏼"]],"1f3fd":["270b-1f3fd",49,27,31,["✋🏽"]],"1f3fe":["270b-1f3fe",49,28,31,["✋🏾"]],"1f3ff":["270b-1f3ff",49,29,31,["✋🏿"]]},"270c-fe0f":{"1f3fb":["270c-1f3fb",49,31,31,["✌🏻"]],"1f3fc":["270c-1f3fc",49,32,31,["✌🏼"]],"1f3fd":["270c-1f3fd",49,33,31,["✌🏽"]],"1f3fe":["270c-1f3fe",49,34,31,["✌🏾"]],"1f3ff":["270c-1f3ff",49,35,31,["✌🏿"]]},"270d-fe0f":{"1f3fb":["270d-1f3fb",49,37,15,["✍🏻"]],"1f3fc":["270d-1f3fc",49,38,15,["✍🏼"]],"1f3fd":["270d-1f3fd",49,39,15,["✍🏽"]],"1f3fe":["270d-1f3fe",49,40,15,["✍🏾"]],"1f3ff":["270d-1f3ff",49,41,15,["✍🏿"]]}},r.prototype.obsoletes_data={"1f3c3-200d-2642-fe0f":["1f3c3",9,46,23],"1f3c3-1f3fb-200d-2642-fe0f":["1f3c3-1f3fb",9,47,23],"1f3c3-1f3fc-200d-2642-fe0f":["1f3c3-1f3fc",9,48,23],"1f3c3-1f3fd-200d-2642-fe0f":["1f3c3-1f3fd",9,49,23],"1f3c3-1f3fe-200d-2642-fe0f":["1f3c3-1f3fe",9,50,23],"1f3c3-1f3ff-200d-2642-fe0f":["1f3c3-1f3ff",9,51,23],"1f3c4-200d-2642-fe0f":["1f3c4",10,12,23],"1f3c4-1f3fb-200d-2642-fe0f":["1f3c4-1f3fb",10,13,23],"1f3c4-1f3fc-200d-2642-fe0f":["1f3c4-1f3fc",10,14,23],"1f3c4-1f3fd-200d-2642-fe0f":["1f3c4-1f3fd",10,15,23],"1f3c4-1f3fe-200d-2642-fe0f":["1f3c4-1f3fe",10,16,23],"1f3c4-1f3ff-200d-2642-fe0f":["1f3c4-1f3ff",10,17,23],"1f3ca-200d-2642-fe0f":["1f3ca",10,40,23],"1f3ca-1f3fb-200d-2642-fe0f":["1f3ca-1f3fb",10,41,23],"1f3ca-1f3fc-200d-2642-fe0f":["1f3ca-1f3fc",10,42,23],"1f3ca-1f3fd-200d-2642-fe0f":["1f3ca-1f3fd",10,43,23],"1f3ca-1f3fe-200d-2642-fe0f":["1f3ca-1f3fe",10,44,23],"1f3ca-1f3ff-200d-2642-fe0f":["1f3ca-1f3ff",10,45,23],"1f3cb-fe0f-200d-2642-fe0f":["1f3cb-fe0f",11,6,7],"1f3cb-1f3fb-200d-2642-fe0f":["1f3cb-1f3fb",11,7,7],"1f3cb-1f3fc-200d-2642-fe0f":["1f3cb-1f3fc",11,8,7],"1f3cb-1f3fd-200d-2642-fe0f":["1f3cb-1f3fd",11,9,7],"1f3cb-1f3fe-200d-2642-fe0f":["1f3cb-1f3fe",11,10,7],"1f3cb-1f3ff-200d-2642-fe0f":["1f3cb-1f3ff",11,11,7],"1f3cc-fe0f-200d-2642-fe0f":["1f3cc-fe0f",11,24,7],"1f3cc-1f3fb-200d-2642-fe0f":["1f3cc-1f3fb",11,25,7],"1f3cc-1f3fc-200d-2642-fe0f":["1f3cc-1f3fc",11,26,7],"1f3cc-1f3fd-200d-2642-fe0f":["1f3cc-1f3fd",11,27,7],"1f3cc-1f3fe-200d-2642-fe0f":["1f3cc-1f3fe",11,28,7],"1f3cc-1f3ff-200d-2642-fe0f":["1f3cc-1f3ff",11,29,7],"1f468-200d-1f469-200d-1f466":["1f46a",20,29,23],"1f46e-200d-2642-fe0f":["1f46e",20,45,23],"1f46e-1f3fb-200d-2642-fe0f":["1f46e-1f3fb",20,46,23],"1f46e-1f3fc-200d-2642-fe0f":["1f46e-1f3fc",20,47,23],"1f46e-1f3fd-200d-2642-fe0f":["1f46e-1f3fd",20,48,23],"1f46e-1f3fe-200d-2642-fe0f":["1f46e-1f3fe",20,49,23],"1f46e-1f3ff-200d-2642-fe0f":["1f46e-1f3ff",20,50,23],"1f46f-200d-2640-fe0f":["1f46f",21,1,23],"1f471-200d-2642-fe0f":["1f471",21,20,23],"1f471-1f3fb-200d-2642-fe0f":["1f471-1f3fb",21,21,23],"1f471-1f3fc-200d-2642-fe0f":["1f471-1f3fc",21,22,23],"1f471-1f3fd-200d-2642-fe0f":["1f471-1f3fd",21,23,23],"1f471-1f3fe-200d-2642-fe0f":["1f471-1f3fe",21,24,23],"1f471-1f3ff-200d-2642-fe0f":["1f471-1f3ff",21,25,23],"1f473-200d-2642-fe0f":["1f473",21,44,23],"1f473-1f3fb-200d-2642-fe0f":["1f473-1f3fb",21,45,23],"1f473-1f3fc-200d-2642-fe0f":["1f473-1f3fc",21,46,23],"1f473-1f3fd-200d-2642-fe0f":["1f473-1f3fd",21,47,23],"1f473-1f3fe-200d-2642-fe0f":["1f473-1f3fe",21,48,23],"1f473-1f3ff-200d-2642-fe0f":["1f473-1f3ff",21,49,23],"1f477-200d-2642-fe0f":["1f477",22,28,23],"1f477-1f3fb-200d-2642-fe0f":["1f477-1f3fb",22,29,23],"1f477-1f3fc-200d-2642-fe0f":["1f477-1f3fc",22,30,23],"1f477-1f3fd-200d-2642-fe0f":["1f477-1f3fd",22,31,23],"1f477-1f3fe-200d-2642-fe0f":["1f477-1f3fe",22,32,23],"1f477-1f3ff-200d-2642-fe0f":["1f477-1f3ff",22,33,23],"1f481-200d-2640-fe0f":["1f481",23,13,23],"1f481-1f3fb-200d-2640-fe0f":["1f481-1f3fb",23,14,23],"1f481-1f3fc-200d-2640-fe0f":["1f481-1f3fc",23,15,23],"1f481-1f3fd-200d-2640-fe0f":["1f481-1f3fd",23,16,23],"1f481-1f3fe-200d-2640-fe0f":["1f481-1f3fe",23,17,23],"1f481-1f3ff-200d-2640-fe0f":["1f481-1f3ff",23,18,23],"1f482-200d-2642-fe0f":["1f482",23,31,23],"1f482-1f3fb-200d-2642-fe0f":["1f482-1f3fb",23,32,23],"1f482-1f3fc-200d-2642-fe0f":["1f482-1f3fc",23,33,23],"1f482-1f3fd-200d-2642-fe0f":["1f482-1f3fd",23,34,23],"1f482-1f3fe-200d-2642-fe0f":["1f482-1f3fe",23,35,23],"1f482-1f3ff-200d-2642-fe0f":["1f482-1f3ff",23,36,23],"1f486-200d-2640-fe0f":["1f486",24,10,23],"1f486-1f3fb-200d-2640-fe0f":["1f486-1f3fb",24,11,23],"1f486-1f3fc-200d-2640-fe0f":["1f486-1f3fc",24,12,23],"1f486-1f3fd-200d-2640-fe0f":["1f486-1f3fd",24,13,23],"1f486-1f3fe-200d-2640-fe0f":["1f486-1f3fe",24,14,23],"1f486-1f3ff-200d-2640-fe0f":["1f486-1f3ff",24,15,23],"1f487-200d-2640-fe0f":["1f487",24,28,23],"1f487-1f3fb-200d-2640-fe0f":["1f487-1f3fb",24,29,23],"1f487-1f3fc-200d-2640-fe0f":["1f487-1f3fc",24,30,23],"1f487-1f3fd-200d-2640-fe0f":["1f487-1f3fd",24,31,23],"1f487-1f3fe-200d-2640-fe0f":["1f487-1f3fe",24,32,23],"1f487-1f3ff-200d-2640-fe0f":["1f487-1f3ff",24,33,23],"1f469-200d-2764-fe0f-200d-1f48b-200d-1f468":["1f48f",24,41,23],"1f469-200d-2764-fe0f-200d-1f468":["1f491",24,43,23],"1f575-fe0f-200d-2642-fe0f":["1f575-fe0f",29,11,7],"1f575-1f3fb-200d-2642-fe0f":["1f575-1f3fb",29,12,7],"1f575-1f3fc-200d-2642-fe0f":["1f575-1f3fc",29,13,7],"1f575-1f3fd-200d-2642-fe0f":["1f575-1f3fd",29,14,7],"1f575-1f3fe-200d-2642-fe0f":["1f575-1f3fe",29,15,7],"1f575-1f3ff-200d-2642-fe0f":["1f575-1f3ff",29,16,7],"1f645-200d-2640-fe0f":["1f645",32,1,23],"1f645-1f3fb-200d-2640-fe0f":["1f645-1f3fb",32,2,23],"1f645-1f3fc-200d-2640-fe0f":["1f645-1f3fc",32,3,23],"1f645-1f3fd-200d-2640-fe0f":["1f645-1f3fd",32,4,23],"1f645-1f3fe-200d-2640-fe0f":["1f645-1f3fe",32,5,23],"1f645-1f3ff-200d-2640-fe0f":["1f645-1f3ff",32,6,23],"1f646-200d-2640-fe0f":["1f646",32,19,23],"1f646-1f3fb-200d-2640-fe0f":["1f646-1f3fb",32,20,23],"1f646-1f3fc-200d-2640-fe0f":["1f646-1f3fc",32,21,23],"1f646-1f3fd-200d-2640-fe0f":["1f646-1f3fd",32,22,23],"1f646-1f3fe-200d-2640-fe0f":["1f646-1f3fe",32,23,23],"1f646-1f3ff-200d-2640-fe0f":["1f646-1f3ff",32,24,23],"1f647-200d-2642-fe0f":["1f647",32,37,23],"1f647-1f3fb-200d-2642-fe0f":["1f647-1f3fb",32,38,23],"1f647-1f3fc-200d-2642-fe0f":["1f647-1f3fc",32,39,23],"1f647-1f3fd-200d-2642-fe0f":["1f647-1f3fd",32,40,23],"1f647-1f3fe-200d-2642-fe0f":["1f647-1f3fe",32,41,23],"1f647-1f3ff-200d-2642-fe0f":["1f647-1f3ff",32,42,23],"1f64b-200d-2640-fe0f":["1f64b",33,6,23],"1f64b-1f3fb-200d-2640-fe0f":["1f64b-1f3fb",33,7,23],"1f64b-1f3fc-200d-2640-fe0f":["1f64b-1f3fc",33,8,23],"1f64b-1f3fd-200d-2640-fe0f":["1f64b-1f3fd",33,9,23],"1f64b-1f3fe-200d-2640-fe0f":["1f64b-1f3fe",33,10,23],"1f64b-1f3ff-200d-2640-fe0f":["1f64b-1f3ff",33,11,23],"1f64d-200d-2640-fe0f":["1f64d",33,30,23],"1f64d-1f3fb-200d-2640-fe0f":["1f64d-1f3fb",33,31,23],"1f64d-1f3fc-200d-2640-fe0f":["1f64d-1f3fc",33,32,23],"1f64d-1f3fd-200d-2640-fe0f":["1f64d-1f3fd",33,33,23],"1f64d-1f3fe-200d-2640-fe0f":["1f64d-1f3fe",33,34,23],"1f64d-1f3ff-200d-2640-fe0f":["1f64d-1f3ff",33,35,23],"1f64e-200d-2640-fe0f":["1f64e",33,48,23],"1f64e-1f3fb-200d-2640-fe0f":["1f64e-1f3fb",33,49,23],"1f64e-1f3fc-200d-2640-fe0f":["1f64e-1f3fc",33,50,23],"1f64e-1f3fd-200d-2640-fe0f":["1f64e-1f3fd",33,51,23],"1f64e-1f3fe-200d-2640-fe0f":["1f64e-1f3fe",34,0,23],"1f64e-1f3ff-200d-2640-fe0f":["1f64e-1f3ff",34,1,23],"1f6a3-200d-2642-fe0f":["1f6a3",35,3,23],"1f6a3-1f3fb-200d-2642-fe0f":["1f6a3-1f3fb",35,4,7],"1f6a3-1f3fc-200d-2642-fe0f":["1f6a3-1f3fc",35,5,7],"1f6a3-1f3fd-200d-2642-fe0f":["1f6a3-1f3fd",35,6,7],"1f6a3-1f3fe-200d-2642-fe0f":["1f6a3-1f3fe",35,7,7],"1f6a3-1f3ff-200d-2642-fe0f":["1f6a3-1f3ff",35,8,7],"1f6b4-200d-2642-fe0f":["1f6b4",35,37,23],"1f6b4-1f3fb-200d-2642-fe0f":["1f6b4-1f3fb",35,38,23],"1f6b4-1f3fc-200d-2642-fe0f":["1f6b4-1f3fc",35,39,23],"1f6b4-1f3fd-200d-2642-fe0f":["1f6b4-1f3fd",35,40,23],"1f6b4-1f3fe-200d-2642-fe0f":["1f6b4-1f3fe",35,41,23],"1f6b4-1f3ff-200d-2642-fe0f":["1f6b4-1f3ff",35,42,23],"1f6b5-200d-2642-fe0f":["1f6b5",36,3,23],"1f6b5-1f3fb-200d-2642-fe0f":["1f6b5-1f3fb",36,4,23],"1f6b5-1f3fc-200d-2642-fe0f":["1f6b5-1f3fc",36,5,23],"1f6b5-1f3fd-200d-2642-fe0f":["1f6b5-1f3fd",36,6,23],"1f6b5-1f3fe-200d-2642-fe0f":["1f6b5-1f3fe",36,7,23],"1f6b5-1f3ff-200d-2642-fe0f":["1f6b5-1f3ff",36,8,23],"1f6b6-200d-2642-fe0f":["1f6b6",36,21,23],"1f6b6-1f3fb-200d-2642-fe0f":["1f6b6-1f3fb",36,22,23],"1f6b6-1f3fc-200d-2642-fe0f":["1f6b6-1f3fc",36,23,23],"1f6b6-1f3fd-200d-2642-fe0f":["1f6b6-1f3fd",36,24,23],"1f6b6-1f3fe-200d-2642-fe0f":["1f6b6-1f3fe",36,25,23],"1f6b6-1f3ff-200d-2642-fe0f":["1f6b6-1f3ff",36,26,23],"1f9d6-200d-2642-fe0f":["1f9d6",43,40,15],"1f9d6-1f3fb-200d-2642-fe0f":["1f9d6-1f3fb",43,41,15],"1f9d6-1f3fc-200d-2642-fe0f":["1f9d6-1f3fc",43,42,15],"1f9d6-1f3fd-200d-2642-fe0f":["1f9d6-1f3fd",43,43,15],"1f9d6-1f3fe-200d-2642-fe0f":["1f9d6-1f3fe",43,44,15],"1f9d6-1f3ff-200d-2642-fe0f":["1f9d6-1f3ff",43,45,15],"1f9d7-200d-2640-fe0f":["1f9d7",44,6,15],"1f9d7-1f3fb-200d-2640-fe0f":["1f9d7-1f3fb",44,7,15],"1f9d7-1f3fc-200d-2640-fe0f":["1f9d7-1f3fc",44,8,15],"1f9d7-1f3fd-200d-2640-fe0f":["1f9d7-1f3fd",44,9,15],"1f9d7-1f3fe-200d-2640-fe0f":["1f9d7-1f3fe",44,10,15],"1f9d7-1f3ff-200d-2640-fe0f":["1f9d7-1f3ff",44,11,15],"1f9d8-200d-2640-fe0f":["1f9d8",44,24,15],"1f9d8-1f3fb-200d-2640-fe0f":["1f9d8-1f3fb",44,25,15],"1f9d8-1f3fc-200d-2640-fe0f":["1f9d8-1f3fc",44,26,15],"1f9d8-1f3fd-200d-2640-fe0f":["1f9d8-1f3fd",44,27,15],"1f9d8-1f3fe-200d-2640-fe0f":["1f9d8-1f3fe",44,28,15],"1f9d8-1f3ff-200d-2640-fe0f":["1f9d8-1f3ff",44,29,15],"1f9d9-200d-2640-fe0f":["1f9d9",44,42,15],"1f9d9-1f3fb-200d-2640-fe0f":["1f9d9-1f3fb",44,43,15],"1f9d9-1f3fc-200d-2640-fe0f":["1f9d9-1f3fc",44,44,15],"1f9d9-1f3fd-200d-2640-fe0f":["1f9d9-1f3fd",44,45,15],"1f9d9-1f3fe-200d-2640-fe0f":["1f9d9-1f3fe",44,46,15],"1f9d9-1f3ff-200d-2640-fe0f":["1f9d9-1f3ff",44,47,15],"1f9da-200d-2640-fe0f":["1f9da",45,8,15],"1f9da-1f3fb-200d-2640-fe0f":["1f9da-1f3fb",45,9,7],"1f9da-1f3fc-200d-2640-fe0f":["1f9da-1f3fc",45,10,7],"1f9da-1f3fd-200d-2640-fe0f":["1f9da-1f3fd",45,11,7],"1f9da-1f3fe-200d-2640-fe0f":["1f9da-1f3fe",45,12,7],"1f9da-1f3ff-200d-2640-fe0f":["1f9da-1f3ff",45,13,7],"1f9db-200d-2640-fe0f":["1f9db",45,26,15],"1f9db-1f3fb-200d-2640-fe0f":["1f9db-1f3fb",45,27,7],"1f9db-1f3fc-200d-2640-fe0f":["1f9db-1f3fc",45,28,7],"1f9db-1f3fd-200d-2640-fe0f":["1f9db-1f3fd",45,29,7],"1f9db-1f3fe-200d-2640-fe0f":["1f9db-1f3fe",45,30,7],"1f9db-1f3ff-200d-2640-fe0f":["1f9db-1f3ff",45,31,7],"1f9dc-200d-2642-fe0f":["1f9dc",45,44,15],"1f9dc-1f3fb-200d-2642-fe0f":["1f9dc-1f3fb",45,45,15],"1f9dc-1f3fc-200d-2642-fe0f":["1f9dc-1f3fc",45,46,15],"1f9dc-1f3fd-200d-2642-fe0f":["1f9dc-1f3fd",45,47,15],"1f9dc-1f3fe-200d-2642-fe0f":["1f9dc-1f3fe",45,48,15],"1f9dc-1f3ff-200d-2642-fe0f":["1f9dc-1f3ff",45,49,15],"1f9dd-200d-2642-fe0f":["1f9dd",46,10,15],"1f9dd-1f3fb-200d-2642-fe0f":["1f9dd-1f3fb",46,11,15],"1f9dd-1f3fc-200d-2642-fe0f":["1f9dd-1f3fc",46,12,15],"1f9dd-1f3fd-200d-2642-fe0f":["1f9dd-1f3fd",46,13,15],"1f9dd-1f3fe-200d-2642-fe0f":["1f9dd-1f3fe",46,14,15],"1f9dd-1f3ff-200d-2642-fe0f":["1f9dd-1f3ff",46,15,15],"1f9de-200d-2642-fe0f":["1f9de",46,18,15],"1f9df-200d-2642-fe0f":["1f9df",46,21,15],"26f9-fe0f-200d-2642-fe0f":["26f9-fe0f",49,6,7],"26f9-1f3fb-200d-2642-fe0f":["26f9-1f3fb",49,7,7],"26f9-1f3fc-200d-2642-fe0f":["26f9-1f3fc",49,8,7],"26f9-1f3fd-200d-2642-fe0f":["26f9-1f3fd",49,9,7],"26f9-1f3fe-200d-2642-fe0f":["26f9-1f3fe",49,10,7],"26f9-1f3ff-200d-2642-fe0f":["26f9-1f3ff",49,11,7]},e.exports&&(f=e.exports=r),f.EmojiConvertor=r}).call(function(){return this||("undefined"!==typeof window?window:t)}())}).call(this,t("c8ba"))},f069:function(e,f,t){"use strict";var n=t("1c0b"),r=function(e){var f,t;this.promise=new e((function(e,n){if(void 0!==f||void 0!==t)throw TypeError("Bad Promise constructor");f=e,t=n})),this.resolve=n(f),this.reject=n(t)};e.exports.f=function(e){return new r(e)}},f0bd:function(e,f,t){"use strict";(function(e){
/**!
 * @fileOverview Kickass library to create and place poppers near their reference elements.
 * @version 1.16.1
 * @license
 * Copyright (c) 2016 Federico Zivolo and contributors
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
var t="undefined"!==typeof window&&"undefined"!==typeof document&&"undefined"!==typeof navigator,n=function(){for(var e=["Edge","Trident","Firefox"],f=0;f<e.length;f+=1)if(t&&navigator.userAgent.indexOf(e[f])>=0)return 1;return 0}();function r(e){var f=!1;return function(){f||(f=!0,window.Promise.resolve().then((function(){f=!1,e()})))}}function o(e){var f=!1;return function(){f||(f=!0,setTimeout((function(){f=!1,e()}),n))}}var i=t&&window.Promise,a=i?r:o;function s(e){var f={};return e&&"[object Function]"===f.toString.call(e)}function c(e,f){if(1!==e.nodeType)return[];var t=e.ownerDocument.defaultView,n=t.getComputedStyle(e,null);return f?n[f]:n}function d(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function l(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var f=c(e),t=f.overflow,n=f.overflowX,r=f.overflowY;return/(auto|scroll|overlay)/.test(t+r+n)?e:l(d(e))}function u(e){return e&&e.referenceNode?e.referenceNode:e}var p=t&&!(!window.MSInputMethodContext||!document.documentMode),h=t&&/MSIE 10/.test(navigator.userAgent);function g(e){return 11===e?p:10===e?h:p||h}function m(e){if(!e)return document.documentElement;var f=g(10)?document.body:null,t=e.offsetParent||null;while(t===f&&e.nextElementSibling)t=(e=e.nextElementSibling).offsetParent;var n=t&&t.nodeName;return n&&"BODY"!==n&&"HTML"!==n?-1!==["TH","TD","TABLE"].indexOf(t.nodeName)&&"static"===c(t,"position")?m(t):t:e?e.ownerDocument.documentElement:document.documentElement}function b(e){var f=e.nodeName;return"BODY"!==f&&("HTML"===f||m(e.firstElementChild)===e)}function v(e){return null!==e.parentNode?v(e.parentNode):e}function _(e,f){if(!e||!e.nodeType||!f||!f.nodeType)return document.documentElement;var t=e.compareDocumentPosition(f)&Node.DOCUMENT_POSITION_FOLLOWING,n=t?e:f,r=t?f:e,o=document.createRange();o.setStart(n,0),o.setEnd(r,0);var i=o.commonAncestorContainer;if(e!==i&&f!==i||n.contains(r))return b(i)?i:m(i);var a=v(e);return a.host?_(a.host,f):_(e,v(f).host)}function w(e){var f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",t="top"===f?"scrollTop":"scrollLeft",n=e.nodeName;if("BODY"===n||"HTML"===n){var r=e.ownerDocument.documentElement,o=e.ownerDocument.scrollingElement||r;return o[t]}return e[t]}function y(e,f){var t=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=w(f,"top"),r=w(f,"left"),o=t?-1:1;return e.top+=n*o,e.bottom+=n*o,e.left+=r*o,e.right+=r*o,e}function x(e,f){var t="x"===f?"Left":"Top",n="Left"===t?"Right":"Bottom";return parseFloat(e["border"+t+"Width"])+parseFloat(e["border"+n+"Width"])}function k(e,f,t,n){return Math.max(f["offset"+e],f["scroll"+e],t["client"+e],t["offset"+e],t["scroll"+e],g(10)?parseInt(t["offset"+e])+parseInt(n["margin"+("Height"===e?"Top":"Left")])+parseInt(n["margin"+("Height"===e?"Bottom":"Right")]):0)}function M(e){var f=e.body,t=e.documentElement,n=g(10)&&getComputedStyle(t);return{height:k("Height",f,t,n),width:k("Width",f,t,n)}}var C=function(e,f){if(!(e instanceof f))throw new TypeError("Cannot call a class as a function")},j=function(){function e(e,f){for(var t=0;t<f.length;t++){var n=f[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(f,t,n){return t&&e(f.prototype,t),n&&e(f,n),f}}(),T=function(e,f,t){return f in e?Object.defineProperty(e,f,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[f]=t,e},I=Object.assign||function(e){for(var f=1;f<arguments.length;f++){var t=arguments[f];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e};function L(e){return I({},e,{right:e.left+e.width,bottom:e.top+e.height})}function A(e){var f={};try{if(g(10)){f=e.getBoundingClientRect();var t=w(e,"top"),n=w(e,"left");f.top+=t,f.left+=n,f.bottom+=t,f.right+=n}else f=e.getBoundingClientRect()}catch(u){}var r={left:f.left,top:f.top,width:f.right-f.left,height:f.bottom-f.top},o="HTML"===e.nodeName?M(e.ownerDocument):{},i=o.width||e.clientWidth||r.width,a=o.height||e.clientHeight||r.height,s=e.offsetWidth-i,d=e.offsetHeight-a;if(s||d){var l=c(e);s-=x(l,"x"),d-=x(l,"y"),r.width-=s,r.height-=d}return L(r)}function N(e,f){var t=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=g(10),r="HTML"===f.nodeName,o=A(e),i=A(f),a=l(e),s=c(f),d=parseFloat(s.borderTopWidth),u=parseFloat(s.borderLeftWidth);t&&r&&(i.top=Math.max(i.top,0),i.left=Math.max(i.left,0));var p=L({top:o.top-i.top-d,left:o.left-i.left-u,width:o.width,height:o.height});if(p.marginTop=0,p.marginLeft=0,!n&&r){var h=parseFloat(s.marginTop),m=parseFloat(s.marginLeft);p.top-=d-h,p.bottom-=d-h,p.left-=u-m,p.right-=u-m,p.marginTop=h,p.marginLeft=m}return(n&&!t?f.contains(a):f===a&&"BODY"!==a.nodeName)&&(p=y(p,f)),p}function S(e){var f=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=e.ownerDocument.documentElement,n=N(e,t),r=Math.max(t.clientWidth,window.innerWidth||0),o=Math.max(t.clientHeight,window.innerHeight||0),i=f?0:w(t),a=f?0:w(t,"left"),s={top:i-n.top+n.marginTop,left:a-n.left+n.marginLeft,width:r,height:o};return L(s)}function E(e){var f=e.nodeName;if("BODY"===f||"HTML"===f)return!1;if("fixed"===c(e,"position"))return!0;var t=d(e);return!!t&&E(t)}function O(e){if(!e||!e.parentElement||g())return document.documentElement;var f=e.parentElement;while(f&&"none"===c(f,"transform"))f=f.parentElement;return f||document.documentElement}function z(e,f,t,n){var r=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o={top:0,left:0},i=r?O(e):_(e,u(f));if("viewport"===n)o=S(i,r);else{var a=void 0;"scrollParent"===n?(a=l(d(f)),"BODY"===a.nodeName&&(a=e.ownerDocument.documentElement)):a="window"===n?e.ownerDocument.documentElement:n;var s=N(a,i,r);if("HTML"!==a.nodeName||E(i))o=s;else{var c=M(e.ownerDocument),p=c.height,h=c.width;o.top+=s.top-s.marginTop,o.bottom=p+s.top,o.left+=s.left-s.marginLeft,o.right=h+s.left}}t=t||0;var g="number"===typeof t;return o.left+=g?t:t.left||0,o.top+=g?t:t.top||0,o.right-=g?t:t.right||0,o.bottom-=g?t:t.bottom||0,o}function D(e){var f=e.width,t=e.height;return f*t}function P(e,f,t,n,r){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var i=z(t,n,o,r),a={top:{width:i.width,height:f.top-i.top},right:{width:i.right-f.right,height:i.height},bottom:{width:i.width,height:i.bottom-f.bottom},left:{width:f.left-i.left,height:i.height}},s=Object.keys(a).map((function(e){return I({key:e},a[e],{area:D(a[e])})})).sort((function(e,f){return f.area-e.area})),c=s.filter((function(e){var f=e.width,n=e.height;return f>=t.clientWidth&&n>=t.clientHeight})),d=c.length>0?c[0].key:s[0].key,l=e.split("-")[1];return d+(l?"-"+l:"")}function B(e,f,t){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,r=n?O(f):_(f,u(t));return N(t,r,n)}function U(e){var f=e.ownerDocument.defaultView,t=f.getComputedStyle(e),n=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),r=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0),o={width:e.offsetWidth+r,height:e.offsetHeight+n};return o}function R(e){var f={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,(function(e){return f[e]}))}function $(e,f,t){t=t.split("-")[0];var n=U(e),r={width:n.width,height:n.height},o=-1!==["right","left"].indexOf(t),i=o?"top":"left",a=o?"left":"top",s=o?"height":"width",c=o?"width":"height";return r[i]=f[i]+f[s]/2-n[s]/2,r[a]=t===a?f[a]-n[c]:f[R(a)],r}function F(e,f){return Array.prototype.find?e.find(f):e.filter(f)[0]}function q(e,f,t){if(Array.prototype.findIndex)return e.findIndex((function(e){return e[f]===t}));var n=F(e,(function(e){return e[f]===t}));return e.indexOf(n)}function Z(e,f,t){var n=void 0===t?e:e.slice(0,q(e,"name",t));return n.forEach((function(e){e["function"]&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var t=e["function"]||e.fn;e.enabled&&s(t)&&(f.offsets.popper=L(f.offsets.popper),f.offsets.reference=L(f.offsets.reference),f=t(f,e))})),f}function H(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=B(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=P(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=$(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=Z(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,f){return e.some((function(e){var t=e.name,n=e.enabled;return n&&t===f}))}function G(e){for(var f=[!1,"ms","Webkit","Moz","O"],t=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<f.length;n++){var r=f[n],o=r?""+r+t:e;if("undefined"!==typeof document.body.style[o])return o}return null}function Q(){return this.state.isDestroyed=!0,W(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[G("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function Y(e){var f=e.ownerDocument;return f?f.defaultView:window}function V(e,f,t,n){var r="BODY"===e.nodeName,o=r?e.ownerDocument.defaultView:e;o.addEventListener(f,t,{passive:!0}),r||V(l(o.parentNode),f,t,n),n.push(o)}function X(e,f,t,n){t.updateBound=n,Y(e).addEventListener("resize",t.updateBound,{passive:!0});var r=l(e);return V(r,"scroll",t.updateBound,t.scrollParents),t.scrollElement=r,t.eventsEnabled=!0,t}function J(){this.state.eventsEnabled||(this.state=X(this.reference,this.options,this.state,this.scheduleUpdate))}function K(e,f){return Y(e).removeEventListener("resize",f.updateBound),f.scrollParents.forEach((function(e){e.removeEventListener("scroll",f.updateBound)})),f.updateBound=null,f.scrollParents=[],f.scrollElement=null,f.eventsEnabled=!1,f}function ee(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=K(this.reference,this.state))}function fe(e){return""!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function te(e,f){Object.keys(f).forEach((function(t){var n="";-1!==["width","height","top","right","bottom","left"].indexOf(t)&&fe(f[t])&&(n="px"),e.style[t]=f[t]+n}))}function ne(e,f){Object.keys(f).forEach((function(t){var n=f[t];!1!==n?e.setAttribute(t,f[t]):e.removeAttribute(t)}))}function re(e){return te(e.instance.popper,e.styles),ne(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&te(e.arrowElement,e.arrowStyles),e}function oe(e,f,t,n,r){var o=B(r,f,e,t.positionFixed),i=P(t.placement,o,f,e,t.modifiers.flip.boundariesElement,t.modifiers.flip.padding);return f.setAttribute("x-placement",i),te(f,{position:t.positionFixed?"fixed":"absolute"}),t}function ie(e,f){var t=e.offsets,n=t.popper,r=t.reference,o=Math.round,i=Math.floor,a=function(e){return e},s=o(r.width),c=o(n.width),d=-1!==["left","right"].indexOf(e.placement),l=-1!==e.placement.indexOf("-"),u=s%2===c%2,p=s%2===1&&c%2===1,h=f?d||l||u?o:i:a,g=f?o:a;return{left:h(p&&!l&&f?n.left-1:n.left),top:g(n.top),bottom:g(n.bottom),right:h(n.right)}}var ae=t&&/Firefox/i.test(navigator.userAgent);function se(e,f){var t=f.x,n=f.y,r=e.offsets.popper,o=F(e.instance.modifiers,(function(e){return"applyStyle"===e.name})).gpuAcceleration;void 0!==o&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var i=void 0!==o?o:f.gpuAcceleration,a=m(e.instance.popper),s=A(a),c={position:r.position},d=ie(e,window.devicePixelRatio<2||!ae),l="bottom"===t?"top":"bottom",u="right"===n?"left":"right",p=G("transform"),h=void 0,g=void 0;if(g="bottom"===l?"HTML"===a.nodeName?-a.clientHeight+d.bottom:-s.height+d.bottom:d.top,h="right"===u?"HTML"===a.nodeName?-a.clientWidth+d.right:-s.width+d.right:d.left,i&&p)c[p]="translate3d("+h+"px, "+g+"px, 0)",c[l]=0,c[u]=0,c.willChange="transform";else{var b="bottom"===l?-1:1,v="right"===u?-1:1;c[l]=g*b,c[u]=h*v,c.willChange=l+", "+u}var _={"x-placement":e.placement};return e.attributes=I({},_,e.attributes),e.styles=I({},c,e.styles),e.arrowStyles=I({},e.offsets.arrow,e.arrowStyles),e}function ce(e,f,t){var n=F(e,(function(e){var t=e.name;return t===f})),r=!!n&&e.some((function(e){return e.name===t&&e.enabled&&e.order<n.order}));if(!r){var o="`"+f+"`",i="`"+t+"`";console.warn(i+" modifier is required by "+o+" modifier in order to work, be sure to include it before "+o+"!")}return r}function de(e,f){var t;if(!ce(e.instance.modifiers,"arrow","keepTogether"))return e;var n=f.element;if("string"===typeof n){if(n=e.instance.popper.querySelector(n),!n)return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],o=e.offsets,i=o.popper,a=o.reference,s=-1!==["left","right"].indexOf(r),d=s?"height":"width",l=s?"Top":"Left",u=l.toLowerCase(),p=s?"left":"top",h=s?"bottom":"right",g=U(n)[d];a[h]-g<i[u]&&(e.offsets.popper[u]-=i[u]-(a[h]-g)),a[u]+g>i[h]&&(e.offsets.popper[u]+=a[u]+g-i[h]),e.offsets.popper=L(e.offsets.popper);var m=a[u]+a[d]/2-g/2,b=c(e.instance.popper),v=parseFloat(b["margin"+l]),_=parseFloat(b["border"+l+"Width"]),w=m-e.offsets.popper[u]-v-_;return w=Math.max(Math.min(i[d]-g,w),0),e.arrowElement=n,e.offsets.arrow=(t={},T(t,u,Math.round(w)),T(t,p,""),t),e}function le(e){return"end"===e?"start":"start"===e?"end":e}var ue=["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"],pe=ue.slice(3);function he(e){var f=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=pe.indexOf(e),n=pe.slice(t+1).concat(pe.slice(0,t));return f?n.reverse():n}var ge={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function me(e,f){if(W(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var t=z(e.instance.popper,e.instance.reference,f.padding,f.boundariesElement,e.positionFixed),n=e.placement.split("-")[0],r=R(n),o=e.placement.split("-")[1]||"",i=[];switch(f.behavior){case ge.FLIP:i=[n,r];break;case ge.CLOCKWISE:i=he(n);break;case ge.COUNTERCLOCKWISE:i=he(n,!0);break;default:i=f.behavior}return i.forEach((function(a,s){if(n!==a||i.length===s+1)return e;n=e.placement.split("-")[0],r=R(n);var c=e.offsets.popper,d=e.offsets.reference,l=Math.floor,u="left"===n&&l(c.right)>l(d.left)||"right"===n&&l(c.left)<l(d.right)||"top"===n&&l(c.bottom)>l(d.top)||"bottom"===n&&l(c.top)<l(d.bottom),p=l(c.left)<l(t.left),h=l(c.right)>l(t.right),g=l(c.top)<l(t.top),m=l(c.bottom)>l(t.bottom),b="left"===n&&p||"right"===n&&h||"top"===n&&g||"bottom"===n&&m,v=-1!==["top","bottom"].indexOf(n),_=!!f.flipVariations&&(v&&"start"===o&&p||v&&"end"===o&&h||!v&&"start"===o&&g||!v&&"end"===o&&m),w=!!f.flipVariationsByContent&&(v&&"start"===o&&h||v&&"end"===o&&p||!v&&"start"===o&&m||!v&&"end"===o&&g),y=_||w;(u||b||y)&&(e.flipped=!0,(u||b)&&(n=i[s+1]),y&&(o=le(o)),e.placement=n+(o?"-"+o:""),e.offsets.popper=I({},e.offsets.popper,$(e.instance.popper,e.offsets.reference,e.placement)),e=Z(e.instance.modifiers,e,"flip"))})),e}function be(e){var f=e.offsets,t=f.popper,n=f.reference,r=e.placement.split("-")[0],o=Math.floor,i=-1!==["top","bottom"].indexOf(r),a=i?"right":"bottom",s=i?"left":"top",c=i?"width":"height";return t[a]<o(n[s])&&(e.offsets.popper[s]=o(n[s])-t[c]),t[s]>o(n[a])&&(e.offsets.popper[s]=o(n[a])),e}function ve(e,f,t,n){var r=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+r[1],i=r[2];if(!o)return e;if(0===i.indexOf("%")){var a=void 0;switch(i){case"%p":a=t;break;case"%":case"%r":default:a=n}var s=L(a);return s[f]/100*o}if("vh"===i||"vw"===i){var c=void 0;return c="vh"===i?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0),c/100*o}return o}function _e(e,f,t,n){var r=[0,0],o=-1!==["right","left"].indexOf(n),i=e.split(/(\+|\-)/).map((function(e){return e.trim()})),a=i.indexOf(F(i,(function(e){return-1!==e.search(/,|\s/)})));i[a]&&-1===i[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var s=/\s*,\s*|\s+/,c=-1!==a?[i.slice(0,a).concat([i[a].split(s)[0]]),[i[a].split(s)[1]].concat(i.slice(a+1))]:[i];return c=c.map((function(e,n){var r=(1===n?!o:o)?"height":"width",i=!1;return e.reduce((function(e,f){return""===e[e.length-1]&&-1!==["+","-"].indexOf(f)?(e[e.length-1]=f,i=!0,e):i?(e[e.length-1]+=f,i=!1,e):e.concat(f)}),[]).map((function(e){return ve(e,r,f,t)}))})),c.forEach((function(e,f){e.forEach((function(t,n){fe(t)&&(r[f]+=t*("-"===e[n-1]?-1:1))}))})),r}function we(e,f){var t=f.offset,n=e.placement,r=e.offsets,o=r.popper,i=r.reference,a=n.split("-")[0],s=void 0;return s=fe(+t)?[+t,0]:_e(t,o,i,a),"left"===a?(o.top+=s[0],o.left-=s[1]):"right"===a?(o.top+=s[0],o.left+=s[1]):"top"===a?(o.left+=s[0],o.top-=s[1]):"bottom"===a&&(o.left+=s[0],o.top+=s[1]),e.popper=o,e}function ye(e,f){var t=f.boundariesElement||m(e.instance.popper);e.instance.reference===t&&(t=m(t));var n=G("transform"),r=e.instance.popper.style,o=r.top,i=r.left,a=r[n];r.top="",r.left="",r[n]="";var s=z(e.instance.popper,e.instance.reference,f.padding,t,e.positionFixed);r.top=o,r.left=i,r[n]=a,f.boundaries=s;var c=f.priority,d=e.offsets.popper,l={primary:function(e){var t=d[e];return d[e]<s[e]&&!f.escapeWithReference&&(t=Math.max(d[e],s[e])),T({},e,t)},secondary:function(e){var t="right"===e?"left":"top",n=d[t];return d[e]>s[e]&&!f.escapeWithReference&&(n=Math.min(d[t],s[e]-("right"===e?d.width:d.height))),T({},t,n)}};return c.forEach((function(e){var f=-1!==["left","top"].indexOf(e)?"primary":"secondary";d=I({},d,l[f](e))})),e.offsets.popper=d,e}function xe(e){var f=e.placement,t=f.split("-")[0],n=f.split("-")[1];if(n){var r=e.offsets,o=r.reference,i=r.popper,a=-1!==["bottom","top"].indexOf(t),s=a?"left":"top",c=a?"width":"height",d={start:T({},s,o[s]),end:T({},s,o[s]+o[c]-i[c])};e.offsets.popper=I({},i,d[n])}return e}function ke(e){if(!ce(e.instance.modifiers,"hide","preventOverflow"))return e;var f=e.offsets.reference,t=F(e.instance.modifiers,(function(e){return"preventOverflow"===e.name})).boundaries;if(f.bottom<t.top||f.left>t.right||f.top>t.bottom||f.right<t.left){if(!0===e.hide)return e;e.hide=!0,e.attributes["x-out-of-boundaries"]=""}else{if(!1===e.hide)return e;e.hide=!1,e.attributes["x-out-of-boundaries"]=!1}return e}function Me(e){var f=e.placement,t=f.split("-")[0],n=e.offsets,r=n.popper,o=n.reference,i=-1!==["left","right"].indexOf(t),a=-1===["top","left"].indexOf(t);return r[i?"left":"top"]=o[t]-(a?r[i?"width":"height"]:0),e.placement=R(f),e.offsets.popper=L(r),e}var Ce={shift:{order:100,enabled:!0,fn:xe},offset:{order:200,enabled:!0,fn:we,offset:0},preventOverflow:{order:300,enabled:!0,fn:ye,priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:be},arrow:{order:500,enabled:!0,fn:de,element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:me,behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:Me},hide:{order:800,enabled:!0,fn:ke},computeStyle:{order:850,enabled:!0,fn:se,gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:re,onLoad:oe,gpuAcceleration:void 0}},je={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:Ce},Te=function(){function e(f,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};C(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=a(this.update.bind(this)),this.options=I({},e.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=f&&f.jquery?f[0]:f,this.popper=t&&t.jquery?t[0]:t,this.options.modifiers={},Object.keys(I({},e.Defaults.modifiers,r.modifiers)).forEach((function(f){n.options.modifiers[f]=I({},e.Defaults.modifiers[f]||{},r.modifiers?r.modifiers[f]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(e){return I({name:e},n.options.modifiers[e])})).sort((function(e,f){return e.order-f.order})),this.modifiers.forEach((function(e){e.enabled&&s(e.onLoad)&&e.onLoad(n.reference,n.popper,n.options,e,n.state)})),this.update();var o=this.options.eventsEnabled;o&&this.enableEventListeners(),this.state.eventsEnabled=o}return j(e,[{key:"update",value:function(){return H.call(this)}},{key:"destroy",value:function(){return Q.call(this)}},{key:"enableEventListeners",value:function(){return J.call(this)}},{key:"disableEventListeners",value:function(){return ee.call(this)}}]),e}();Te.Utils=("undefined"!==typeof window?window:e).PopperUtils,Te.placements=ue,Te.Defaults=je,f["a"]=Te}).call(this,t("c8ba"))},f120:function(e,f,t){"use strict";var n=t("8664"),r=t.n(n);r.a},f2b6:function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,".sc-user-input--emoji-icon-wrapper[data-v-45bc0ae6]{background:none;border:none;padding:0;margin:0;outline:none}.sc-user-input--emoji-icon-wrapper[data-v-45bc0ae6]:focus{outline:none}.sc-user-input--emoji-icon[data-v-45bc0ae6]{height:18px;cursor:pointer;align-self:center}.sc-user-input--emoji-icon-wrapper:focus .sc-user-input--emoji-icon circle[data-v-45bc0ae6],.sc-user-input--emoji-icon-wrapper:focus .sc-user-input--emoji-icon path[data-v-45bc0ae6],.sc-user-input--emoji-icon.active circle[data-v-45bc0ae6],.sc-user-input--emoji-icon.active path[data-v-45bc0ae6],.sc-user-input--emoji-icon:hover circle[data-v-45bc0ae6],.sc-user-input--emoji-icon:hover path[data-v-45bc0ae6]{-webkit-filter:contrast(15%);filter:contrast(15%)}",""]),e.exports=f},f5df:function(e,f,t){var n=t("00ee"),r=t("c6b6"),o=t("b622"),i=o("toStringTag"),a="Arguments"==r(function(){return arguments}()),s=function(e,f){try{return e[f]}catch(t){}};e.exports=n?r:function(e){var f,t,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(t=s(f=Object(e),i))?t:a?r(f):"Object"==(n=r(f))&&"function"==typeof f.callee?"Arguments":n}},f66f:function(e,f,t){var n=t("24fb");f=n(!1),f.push([e.i,".sc-message--emoji[data-v-31eb6bba]{font-size:40px}",""]),e.exports=f},f6fd:function(e,f){(function(e){var f="currentScript",t=e.getElementsByTagName("script");f in e||Object.defineProperty(e,f,{get:function(){try{throw new Error}catch(n){var e,f=(/.*at [^\(]*\((.*):.+:.+\)$/gi.exec(n.stack)||[!1])[1];for(e in t)if(t[e].src==f||"interactive"==t[e].readyState)return t[e];return null}}})})(document)},f772:function(e,f,t){var n=t("5692"),r=t("90e3"),o=n("keys");e.exports=function(e){return o[e]||(o[e]=r(e))}},f951:function(e,f,t){var n=t("df8e");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var r=t("499e").default;r("23b5580f",n,!0,{sourceMap:!1,shadowMode:!1})},fb15:function(e,f,t){"use strict";var n;(t.r(f),"undefined"!==typeof window)&&(t("f6fd"),(n=window.document.currentScript)&&(n=n.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(t.p=n[1]));var r=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",[e.showLauncher?t("div",{staticClass:"sc-launcher",class:{opened:e.isOpen},style:{backgroundColor:e.colors.launcher.bg},on:{click:function(f){f.preventDefault(),e.isOpen?e.close():e.openAndFocus()}}},[e.newMessagesCount>0&&!e.isOpen?t("div",{staticClass:"sc-new-messsages-count"},[e._v(" "+e._s(e.newMessagesCount)+" ")]):e._e(),e.isOpen?t("img",{staticClass:"sc-closed-icon",attrs:{src:e.icons.close.img,alt:e.icons.close.name}}):t("img",{staticClass:"sc-open-icon",attrs:{src:e.icons.open.img,alt:e.icons.open.name}})]):e._e(),t("ChatWindow",{attrs:{"show-launcher":e.showLauncher,"show-close-button":e.showCloseButton,"message-list":e.messageList,"on-user-input-submit":e.onMessageWasSent,participants:e.participants,title:e.chatWindowTitle,"title-image-url":e.titleImageUrl,"is-open":e.isOpen,"on-close":e.close,"show-emoji":e.showEmoji,"show-file":e.showFile,"show-edition":e.showEdition,"show-deletion":e.showDeletion,"show-header":e.showHeader,placeholder:e.placeholder,"show-typing-indicator":e.showTypingIndicator,colors:e.colors,"always-scroll-to-bottom":e.alwaysScrollToBottom,"message-styling":e.messageStyling,"disable-user-list-toggle":e.disableUserListToggle},on:{scrollToTop:function(f){return e.$emit("scrollToTop")},onType:function(f){return e.$emit("onType")},edit:function(f){return e.$emit("edit",f)},remove:function(f){return e.$emit("remove",f)}},scopedSlots:e._u([{key:"header",fn:function(){return[e._t("header")]},proxy:!0},{key:"user-avatar",fn:function(f){return[e._t("user-avatar",null,{user:f.user,message:f.message})]}},{key:"text-message-body",fn:function(f){return[e._t("text-message-body",null,{message:f.message,messageText:f.messageText,messageColors:f.messageColors,me:f.me})]}},{key:"system-message-body",fn:function(f){return[e._t("system-message-body",null,{message:f.message})]}},{key:"text-message-toolbox",fn:function(f){return[e._t("text-message-toolbox",null,{message:f.message,me:f.me})]}}],null,!0)})],1)},o=[],i=(t("b0c0"),t("a9e3"),function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{staticClass:"sc-chat-window",class:{opened:e.isOpen,closed:!e.isOpen}},[e.showHeader?t("Header",{attrs:{"show-close-button":e.showCloseButton,title:e.title,"image-url":e.titleImageUrl,"on-close":e.onClose,colors:e.colors,"disable-user-list-toggle":e.disableUserListToggle},on:{userList:e.handleUserListToggle}},[[e._t("header")]],2):e._e(),e.showUserList?t("UserList",{attrs:{colors:e.colors,participants:e.participants}}):e._e(),e.showUserList?e._e():t("MessageList",{attrs:{messages:e.messages,participants:e.participants,"show-typing-indicator":e.showTypingIndicator,colors:e.colors,"always-scroll-to-bottom":e.alwaysScrollToBottom,"show-edition":e.showEdition,"show-deletion":e.showDeletion,"message-styling":e.messageStyling},on:{scrollToTop:function(f){return e.$emit("scrollToTop")},remove:function(f){return e.$emit("remove",f)}},scopedSlots:e._u([{key:"user-avatar",fn:function(f){return[e._t("user-avatar",null,{user:f.user,message:f.message})]}},{key:"text-message-body",fn:function(f){return[e._t("text-message-body",null,{message:f.message,messageText:f.messageText,messageColors:f.messageColors,me:f.me})]}},{key:"system-message-body",fn:function(f){return[e._t("system-message-body",null,{message:f.message})]}},{key:"text-message-toolbox",fn:function(f){return[e._t("text-message-toolbox",null,{message:f.message,me:f.me})]}}],null,!0)}),e.showUserList?e._e():t("UserInput",{attrs:{"show-emoji":e.showEmoji,"on-submit":e.onUserInputSubmit,suggestions:e.getSuggestions(),"show-file":e.showFile,placeholder:e.placeholder,colors:e.colors},on:{onType:function(f){return e.$emit("onType")},edit:function(f){return e.$emit("edit",f)}}})],1)}),a=[],s=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{staticClass:"sc-header",style:{background:e.colors.header.bg,color:e.colors.header.text}},[e._t("default",[e.imageUrl?t("img",{staticClass:"sc-header--img",attrs:{src:e.imageUrl,alt:""}}):e._e(),e.disableUserListToggle?t("div",{staticClass:"sc-header--title"},[e._v(e._s(e.title))]):t("div",{staticClass:"sc-header--title enabled",on:{click:e.toggleUserList}},[e._v(" "+e._s(e.title)+" ")])]),e.showCloseButton?t("div",{staticClass:"sc-header--close-button",on:{click:e.onClose}},[t("img",{attrs:{src:e.icons.close.img,alt:e.icons.close.name}})]):e._e()],2)},c=[],d=t("bd73"),l=t.n(d),u={props:{icons:{type:Object,default:function(){return{close:{img:l.a,name:"default"}}}},imageUrl:{type:String,required:!0},title:{type:String,required:!0},onClose:{type:Function,required:!0},colors:{type:Object,required:!0},disableUserListToggle:{type:Boolean,default:!1},showCloseButton:{type:Boolean,default:!1}},data:function(){return{inUserList:!1}},methods:{toggleUserList:function(){this.inUserList=!this.inUserList,this.$emit("userList",this.inUserList)}}},p=u;t("800c");function h(e,f,t,n,r,o,i,a){var s,c="function"===typeof e?e.options:e;if(f&&(c.render=f,c.staticRenderFns=t,c._compiled=!0),n&&(c.functional=!0),o&&(c._scopeId="data-v-"+o),i?(s=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},c._ssrRegister=s):r&&(s=a?function(){r.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:r),s)if(c.functional){c._injectStyles=s;var d=c.render;c.render=function(e,f){return s.call(f),d(e,f)}}else{var l=c.beforeCreate;c.beforeCreate=l?[].concat(l,s):[s]}return{exports:e,options:c}}var g=h(p,s,c,!1,null,"61edfd75",null),m=g.exports,b=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{ref:"scrollList",staticClass:"sc-message-list",style:{backgroundColor:e.colors.messageList.bg},on:{scroll:e.handleScroll}},[e._l(e.messages,(function(f,n){return t("Message",{key:n,attrs:{message:f,user:e.profile(f.author),colors:e.colors,"message-styling":e.messageStyling,"show-edition":e.showEdition,"show-deletion":e.showDeletion},on:{remove:function(t){return e.$emit("remove",f)}},scopedSlots:e._u([{key:"user-avatar",fn:function(f){return[e._t("user-avatar",null,{user:f.user,message:f.message})]}},{key:"text-message-body",fn:function(f){return[e._t("text-message-body",null,{message:f.message,messageText:f.messageText,messageColors:f.messageColors,me:f.me})]}},{key:"system-message-body",fn:function(f){return[e._t("system-message-body",null,{message:f.message})]}},{key:"text-message-toolbox",fn:function(f){return[e._t("text-message-toolbox",null,{message:f.message,me:f.me})]}}],null,!0)})})),t("Message",{directives:[{name:"show",rawName:"v-show",value:""!==e.showTypingIndicator,expression:"showTypingIndicator !== ''"}],attrs:{message:{author:e.showTypingIndicator,type:"typing"},user:e.profile(e.showTypingIndicator),colors:e.colors,"message-styling":e.messageStyling,"show-edition":e.showEdition,"show-deletion":e.showDeletion}})],2)},v=[],_=(t("7db0"),function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{staticClass:"sc-message",attrs:{id:e.message.id}},[t("div",{staticClass:"sc-message--content",class:{sent:"me"===e.message.author,received:"me"!==e.message.author&&"system"!==e.message.type,system:"system"===e.message.type}},[e._t("user-avatar",["system"!==e.message.type&&e.authorName&&"me"!==e.authorName?t("div",{directives:[{name:"tooltip",rawName:"v-tooltip",value:e.authorName,expression:"authorName"}],staticClass:"sc-message--avatar",style:{backgroundImage:"url("+e.chatImageUrl+")"},attrs:{title:e.authorName}}):e._e()],{message:e.message,user:e.user}),"text"===e.message.type?t("TextMessage",{attrs:{message:e.message,"message-colors":e.messageColors,"message-styling":e.messageStyling,"show-edition":e.showEdition,"show-deletion":e.showDeletion},on:{remove:function(f){return e.$emit("remove")}},scopedSlots:e._u([{key:"default",fn:function(f){return[e._t("text-message-body",null,{message:f.message,messageText:f.messageText,messageColors:f.messageColors,me:f.me})]}},{key:"text-message-toolbox",fn:function(f){return[e._t("text-message-toolbox",null,{message:f.message,me:f.me})]}}],null,!0)}):"emoji"===e.message.type?t("EmojiMessage",{attrs:{data:e.message.data}}):"file"===e.message.type?t("FileMessage",{attrs:{data:e.message.data,"message-colors":e.messageColors}}):"typing"===e.message.type?t("TypingMessage",{attrs:{"message-colors":e.messageColors}}):"system"===e.message.type?t("SystemMessage",{attrs:{data:e.message.data,"message-colors":e.messageColors}},[e._t("system-message-body",null,{message:e.message.data})],2):e._e()],2)])}),w=[],y=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{staticClass:"sc-message--text",style:e.messageColors},[[t("div",{staticClass:"sc-message--toolbox",style:{background:e.messageColors.backgroundColor}},[e.showEdition&&e.me&&null!=e.message.id&&void 0!=e.message.id?t("button",{attrs:{disabled:e.isEditing},on:{click:e.edit}},[t("IconBase",{attrs:{color:e.isEditing?"black":e.messageColors.color,width:"10","icon-name":"edit"}},[t("IconEdit")],1)],1):e._e(),e.showDeletion&&e.me&&null!=e.message.id&&void 0!=e.message.id?t("button",{on:{click:function(f){return e.$emit("remove")}}},[t("IconBase",{attrs:{color:e.messageColors.color,width:"10","icon-name":"remove"}},[t("IconCross")],1)],1):e._e(),e._t("text-message-toolbox",null,{message:e.message,me:e.me})],2)],e._t("default",[t("p",{staticClass:"sc-message--text-content",domProps:{innerHTML:e._s(e.messageText)}}),e.message.data.meta?t("p",{staticClass:"sc-message--meta",style:{color:e.messageColors.color}},[e._v(" "+e._s(e.message.data.meta)+" ")]):e._e(),e.message.isEdited?t("p",{staticClass:"sc-message--edited"},[t("IconBase",{attrs:{width:"10","icon-name":"edited"}},[t("IconEdit")],1),e._v(" edited ")],1):e._e()],{message:e.message,messageText:e.messageText,messageColors:e.messageColors,me:e.me})],2)},x=[],k=(t("9911"),function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:e.width,height:e.height,viewBox:"0 0 18 18","aria-labelledby":e.iconName,role:"presentation"}},[t("title",{attrs:{id:e.iconName,lang:"en"}},[e._v(e._s(e.iconName))]),t("g",{attrs:{fill:e.iconColor}},[e._t("default")],2)])}),M=[],C={props:{iconName:{type:String,default:"box"},width:{type:[Number,String],default:18},height:{type:[Number,String],default:18},iconColor:{type:String,default:"currentColor"}}},j=C,T=(t("f120"),h(j,k,M,!1,null,"31f7d743",null)),I=T.exports,L=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("path",{attrs:{d:"M19.404,6.65l-5.998-5.996c-0.292-0.292-0.765-0.292-1.056,0l-2.22,2.22l-8.311,8.313l-0.003,0.001v0.003l-0.161,0.161c-0.114,0.112-0.187,0.258-0.21,0.417l-1.059,7.051c-0.035,0.233,0.044,0.47,0.21,0.639c0.143,0.14,0.333,0.219,0.528,0.219c0.038,0,0.073-0.003,0.111-0.009l7.054-1.055c0.158-0.025,0.306-0.098,0.417-0.211l8.478-8.476l2.22-2.22C19.695,7.414,19.695,6.941,19.404,6.65z M8.341,16.656l-0.989-0.99l7.258-7.258l0.989,0.99L8.341,16.656z M2.332,15.919l0.411-2.748l4.143,4.143l-2.748,0.41L2.332,15.919z M13.554,7.351L6.296,14.61l-0.849-0.848l7.259-7.258l0.423,0.424L13.554,7.351zM10.658,4.457l0.992,0.99l-7.259,7.258L3.4,11.715L10.658,4.457z M16.656,8.342l-1.517-1.517V6.823h-0.003l-0.951-0.951l-2.471-2.471l1.164-1.164l4.942,4.94L16.656,8.342z"}})},A=[],N={},S=h(N,L,A,!1,null,null,null),E=S.exports,O=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("path",{attrs:{d:"M15.898,4.045c-0.271-0.272-0.713-0.272-0.986,0l-4.71,4.711L5.493,4.045c-0.272-0.272-0.714-0.272-0.986,0s-0.272,0.714,0,0.986l4.709,4.711l-4.71,4.711c-0.272,0.271-0.272,0.713,0,0.986c0.136,0.136,0.314,0.203,0.492,0.203c0.179,0,0.357-0.067,0.493-0.203l4.711-4.711l4.71,4.711c0.137,0.136,0.314,0.203,0.494,0.203c0.178,0,0.355-0.067,0.492-0.203c0.273-0.273,0.273-0.715,0-0.986l-4.711-4.711l4.711-4.711C16.172,4.759,16.172,4.317,15.898,4.045z"}})},z=[],D={},P=h(D,O,z,!1,null,null,null),B=P.exports,U=t("21eb"),R=t.n(U),$=t("71cc"),F=t.n($),q=t("8bbf"),Z=t.n(q),H=Z.a.observable({editMessage:null}),W=t("3715"),G={components:{IconBase:I,IconCross:B,IconEdit:E},props:{message:{type:Object,required:!0},messageColors:{type:Object,required:!0},messageStyling:{type:Boolean,required:!0},showEdition:{type:Boolean,required:!0},showDeletion:{type:Boolean,required:!0}},data:function(){return{store:H}},computed:{messageText:function(){var e=R.a.escape(this.message.data.text);return F.a.link(this.messageStyling?W(e):e,{className:"chatLink",truncate:{length:50,location:"smart"}})},me:function(){return"me"===this.message.author},isEditing:function(){return(H.editMessage&&H.editMessage.id)==this.message.id}},methods:{edit:function(){this.store.editMessage=this.message}}},Q=G,Y=(t("4319"),h(Q,y,x,!1,null,"d95182e8",null)),V=Y.exports,X=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{staticClass:"sc-message--file",style:e.messageColors},[t("div",{staticClass:"sc-message--file-icon"},[t("img",{staticClass:"sc-image",attrs:{src:e.data.file.url}})]),t("div",{staticClass:"sc-message--file-name",style:e.messageColors},[t("a",{attrs:{href:e.data.file.url?e.data.file.url:"#",target:"_blank"}},[e._v(e._s(e.data.file.name||""))])]),t("div",{staticClass:"sc-message--file-text",style:e.messageColors},[e._v(" "+e._s(e.data.text)+" "),e.data.meta?t("p",{staticClass:"sc-message--meta",style:e.messageColors},[e._v(" "+e._s(e.data.meta)+" ")]):e._e()])])},J=[],K={props:{data:{type:Object,required:!0},messageColors:{type:Object,required:!0}}},ee=K,fe=(t("18c3"),h(ee,X,J,!1,null,"a240819e",null)),te=fe.exports,ne=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{staticClass:"sc-message--emoji"},[e._v(e._s(e.data.emoji))])},re=[],oe={props:{data:{type:Object,required:!0}}},ie=oe,ae=(t("39c2"),h(ie,ne,re,!1,null,"31eb6bba",null)),se=ae.exports,ce=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{staticClass:"sc-typing-indicator",style:e.messageColors},[t("span"),t("span"),t("span")])},de=[],le={props:{messageColors:{type:Object,required:!0}}},ue=le,pe=(t("eca5"),h(ue,ce,de,!1,null,"5454cb3c",null)),he=pe.exports,ge=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{staticClass:"sc-message--system",style:e.messageColors},[e._t("default",[e._v(" "+e._s(e.data.text)+" "),e.data.meta?t("p",{staticClass:"sc-message--meta",style:{color:e.messageColors.color}},[e._v(" "+e._s(e.data.meta)+" ")]):e._e()],{message:e.data})],2)},me=[],be={props:{data:{type:Object,required:!0},messageColors:{type:Object,required:!0}}},ve=be,_e=(t("54a3"),h(ve,ge,me,!1,null,"3beba850",null)),we=_e.exports,ye=t("a5d7"),xe=t.n(ye),ke={components:{TextMessage:V,FileMessage:te,EmojiMessage:se,TypingMessage:he,SystemMessage:we},props:{message:{type:Object,required:!0},colors:{type:Object,required:!0},messageStyling:{type:Boolean,required:!0},user:{type:Object,required:!0},showEdition:{type:Boolean,required:!0},showDeletion:{type:Boolean,required:!0}},computed:{authorName:function(){return this.user&&this.user.name},chatImageUrl:function(){return this.user&&this.user.imageUrl||xe.a},messageColors:function(){return"me"===this.message.author?this.sentColorsStyle:this.receivedColorsStyle},receivedColorsStyle:function(){return{color:this.colors.receivedMessage.text,backgroundColor:this.colors.receivedMessage.bg}},sentColorsStyle:function(){return{color:this.colors.sentMessage.text,backgroundColor:this.colors.sentMessage.bg}}}},Me=ke,Ce=(t("8571"),h(Me,_,w,!1,null,null,null)),je=Ce.exports,Te={components:{Message:je},props:{participants:{type:Array,required:!0},messages:{type:Array,required:!0},showTypingIndicator:{type:String,required:!0},colors:{type:Object,required:!0},alwaysScrollToBottom:{type:Boolean,required:!0},messageStyling:{type:Boolean,required:!0},showEdition:{type:Boolean,required:!0},showDeletion:{type:Boolean,required:!0}},computed:{defaultChatIcon:function(){return xe.a}},mounted:function(){this.$nextTick(this._scrollDown())},updated:function(){this.shouldScrollToBottom()&&this.$nextTick(this._scrollDown())},methods:{_scrollDown:function(){this.$refs.scrollList.scrollTop=this.$refs.scrollList.scrollHeight},handleScroll:function(e){0===e.target.scrollTop&&this.$emit("scrollToTop")},shouldScrollToBottom:function(){var e=this.$refs.scrollList.scrollTop,f=e>this.$refs.scrollList.scrollHeight-600;return this.alwaysScrollToBottom||f},profile:function(e){var f=this.participants.find((function(f){return f.id===e}));return f||{imageUrl:"",name:""}}}},Ie=Te,Le=(t("2a4d"),h(Ie,b,v,!1,null,"36bb2cf7",null)),Ae=Le.exports,Ne=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",[t("Suggestions",{attrs:{suggestions:e.suggestions,colors:e.colors},on:{sendSuggestion:e._submitSuggestion}}),e.file?t("div",{staticClass:"file-container",style:{backgroundColor:e.colors.userInput.text,color:e.colors.userInput.bg}},[t("span",{staticClass:"icon-file-message"},[t("img",{attrs:{src:e.icons.file.img,alt:e.icons.file.name,height:"15"}})]),e._v(" "+e._s(e.file.name)+" "),t("span",{staticClass:"delete-file-message",on:{click:function(f){return e.cancelFile()}}},[t("img",{attrs:{src:e.icons.closeSvg.img,alt:e.icons.closeSvg.name,height:"10",title:"Remove the file"}})])]):e._e(),t("form",{staticClass:"sc-user-input",class:{active:e.inputActive},style:{background:e.colors.userInput.bg}},[t("div",{ref:"userInput",staticClass:"sc-user-input--text",style:{color:e.colors.userInput.text},attrs:{role:"button",tabIndex:"0",contentEditable:"true",placeholder:e.placeholder},on:{focus:function(f){return e.setInputActive(!0)},blur:function(f){return e.setInputActive(!1)},keydown:e.handleKey,focusUserInput:function(f){return e.focusUserInput()}}}),t("div",{staticClass:"sc-user-input--buttons"},[t("div",{staticClass:"sc-user-input--button"}),e.showEmoji&&!e.isEditing?t("div",{staticClass:"sc-user-input--button"},[t("EmojiIcon",{attrs:{"on-emoji-picked":e._handleEmojiPicked,color:e.colors.userInput.text}})],1):e._e(),e.showFile&&!e.isEditing?t("div",{staticClass:"sc-user-input--button"},[t("FileIcons",{attrs:{"on-change":e._handleFileSubmit,color:e.colors.userInput.text}})],1):e._e(),e.isEditing?t("div",{staticClass:"sc-user-input--button"},[t("UserInputButton",{attrs:{color:e.colors.userInput.text,tooltip:"cancel"},nativeOn:{click:function(f){return f.preventDefault(),e._editFinish(f)}}},[t("IconCross")],1)],1):e._e(),t("div",{staticClass:"sc-user-input--button"},[e.isEditing?t("UserInputButton",{attrs:{color:e.colors.userInput.text,tooltip:"Edit"},nativeOn:{click:function(f){return f.preventDefault(),e._editText(f)}}},[t("IconOk")],1):t("UserInputButton",{attrs:{color:e.colors.userInput.text,tooltip:"Send"},nativeOn:{click:function(f){return f.preventDefault(),e._submitText(f)}}},[t("IconSend")],1)],1)])])],1)},Se=[],Ee=(t("c0b6"),t("d3b7"),t("e6cf"),function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{staticClass:"sc-user-input--picker-wrapper"},[e.isActive?t("EmojiPicker",{attrs:{"on-emoji-picked":e.onEmojiPicked,"on-blur":e._handlePickerBlur}}):e._e(),t("button",{staticClass:"sc-user-input--emoji-icon-wrapper",on:{click:function(f){return f.preventDefault(),e._openPicker(f)}}},[t("svg",{staticClass:"sc-user-input--emoji-icon",class:{active:e.isActive},attrs:{id:"Layer_2",version:"1.1",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",width:"37.393px",height:"37.393px",viewBox:"0 0 37.393 37.393",enableBackground:"new 0 0 37.393 37.393"}},[t("g",[t("path",{style:{fill:e.color},attrs:{d:"M18.696,37.393C8.387,37.393,0,29.006,0,18.696C0,8.387,8.387,0,18.696,0c10.31,0,18.696,8.387,18.696,18.696\n            C37.393,29.006,29.006,37.393,18.696,37.393z M18.696,2C9.49,2,2,9.49,2,18.696c0,9.206,7.49,16.696,16.696,16.696\n            c9.206,0,16.696-7.49,16.696-16.696C35.393,9.49,27.902,2,18.696,2z"}})]),t("g",[t("circle",{style:{fill:e.color},attrs:{cx:"12.379",cy:"14.359",r:"1.938"}})]),t("g",[t("circle",{style:{fill:e.color},attrs:{cx:"24.371",cy:"14.414",r:"1.992"}})]),t("g",[t("path",{style:{fill:e.color},attrs:{d:"M18.035,27.453c-5.748,0-8.342-4.18-8.449-4.357c-0.286-0.473-0.135-1.087,0.338-1.373\n            c0.471-0.286,1.084-0.136,1.372,0.335c0.094,0.151,2.161,3.396,6.74,3.396c4.713,0,7.518-3.462,7.545-3.497\n            c0.343-0.432,0.973-0.504,1.405-0.161c0.433,0.344,0.505,0.973,0.161,1.405C27.009,23.374,23.703,27.453,18.035,27.453z"}})])])])],1)}),Oe=[],ze=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{ref:"domNode",staticClass:"sc-emoji-picker",attrs:{tabIndex:"0"},on:{blur:e.onBlur}},[t("div",{staticClass:"sc-emoji-picker--content"},e._l(e.emojiData,(function(f){return t("div",{key:f.name,staticClass:"sc-emoji-picker--category"},[t("div",{staticClass:"sc-emoji-picker--category-title"},[e._v(e._s(f.name))]),e._l(f.emojis,(function(f){return t("span",{key:f,staticClass:"sc-emoji-picker--emoji",on:{click:function(t){return e.emojiClicked(f)}}},[e._v(" "+e._s(f)+" ")])}))],2)})),0)])},De=[],Pe=t("edbf"),Be=t.n(Pe),Ue=[{name:"People",emojis:["😄","😃","😀","😊","😉","😍","😘","😚","😗","😙","😜","😝","😛","😳","😁","😔","😌","😒","😞","😣","😢","😂","😭","😪","😥","😰","😅","😓","😩","😫","😨","😱","😠","😡","😤","😖","😆","😋","😷","😎","😴","😵","😲","😟","😦","😧","👿","😮","😬","😐","😕","😯","😏","😑","👲","👳","👮","👷","💂","👶","👦","👧","👨","👩","👴","👵","👱","👼","👸","😺","😸","😻","😽","😼","🙀","😿","😹","😾","👹","👺","🙈","🙉","🙊","💀","👽","💩","🔥","✨","🌟","💫","💥","💢","💦","💧","💤","💨","👂","👀","👃","👅","👄","👍","👎","👌","👊","✊","👋","✋","👐","👆","👇","👉","👈","🙌","🙏","👏","💪","🚶","🏃","💃","👫","👪","💏","💑","👯","🙆","🙅","💁","🙋","💆","💇","💅","👰","🙎","🙍","🙇","🎩","👑","👒","👟","👞","👡","👠","👢","👕","👔","👚","👗","🎽","👖","👘","👙","💼","👜","👝","👛","👓","🎀","🌂","💄","💛","💙","💜","💚","💔","💗","💓","💕","💖","💞","💘","💌","💋","💍","💎","👤","💬","👣"]},{name:"Nature",emojis:["🐶","🐺","🐱","🐭","🐹","🐰","🐸","🐯","🐨","🐻","🐷","🐽","🐮","🐗","🐵","🐒","🐴","🐑","🐘","🐼","🐧","🐦","🐤","🐥","🐣","🐔","🐍","🐢","🐛","🐝","🐜","🐞","🐌","🐙","🐚","🐠","🐟","🐬","🐳","🐎","🐲","🐡","🐫","🐩","🐾","💐","🌸","🌷","🍀","🌹","🌻","🌺","🍁","🍃","🍂","🌿","🌾","🍄","🌵","🌴","🌰","🌱","🌼","🌑","🌓","🌔","🌕","🌛","🌙","🌏","🌋","🌌","🌠","⛅","⛄","🌀","🌁","🌈","🌊"]},{name:"Objects",emojis:["🎍","💝","🎎","🎒","🎓","🎏","🎆","🎇","🎐","🎑","🎃","👻","🎅","🎄","🎁","🎋","🎉","🎊","🎈","🎌","🔮","🎥","📷","📹","📼","💿","📀","💽","💾","💻","📱","📞","📟","📠","📡","📺","📻","🔊","🔔","📢","📣","⏳","⌛","⏰","⌚","🔓","🔒","🔏","🔐","🔑","🔎","💡","🔦","🔌","🔋","🔍","🛀","🚽","🔧","🔩","🔨","🚪","🚬","💣","🔫","🔪","💊","💉","💰","💴","💵","💳","💸","📲","📧","📥","📤","📩","📨","📫","📪","📮","📦","📝","📄","📃","📑","📊","📈","📉","📜","📋","📅","📆","📇","📁","📂","📌","📎","📏","📐","📕","📗","📘","📙","📓","📔","📒","📚","📖","🔖","📛","📰","🎨","🎬","🎤","🎧","🎼","🎵","🎶","🎹","🎻","🎺","🎷","🎸","👾","🎮","🃏","🎴","🀄","🎲","🎯","🏈","🏀","⚽","⚾","🎾","🎱","🎳","⛳","🏁","🏆","🎿","🏂","🏊","🏄","🎣","🍵","🍶","🍺","🍻","🍸","🍹","🍷","🍴","🍕","🍔","🍟","🍗","🍖","🍝","🍛","🍤","🍱","🍣","🍥","🍙","🍘","🍚","🍜","🍲","🍢","🍡","🍳","🍞","🍩","🍮","🍦","🍨","🍧","🎂","🍰","🍪","🍫","🍬","🍭","🍯","🍎","🍏","🍊","🍒","🍇","🍉","🍓","🍑","🍈","🍌","🍍","🍠","🍆","🍅","🌽"]},{name:"Places",emojis:["🏠","🏡","🏫","🏢","🏣","🏥","🏦","🏪","🏩","🏨","💒","⛪","🏬","🌇","🌆","🏯","🏰","⛺","🏭","🗼","🗾","🗻","🌄","🌅","🌃","🗽","🌉","🎠","🎡","⛲","🎢","🚢","⛵","🚤","🚀","💺","🚉","🚄","🚅","🚇","🚃","🚌","🚙","🚗","🚕","🚚","🚨","🚓","🚒","🚑","🚲","💈","🚏","🎫","🚥","🚧","🔰","⛽","🏮","🎰","🗿","🎪","🎭","📍","🚩"]},{name:"Symbols",emojis:["🔟","🔢","🔣","🔠","🔡","🔤","🔼","🔽","⏪","⏩","⏫","⏬","🆗","🆕","🆙","🆒","🆓","🆖","📶","🎦","🈁","🈯","🈳","🈵","🈴","🈲","🉐","🈹","🈺","🈶","🈚","🚻","🚹","🚺","🚼","🚾","🚭","🈸","🉑","🆑","🆘","🆔","🚫","🔞","⛔","❎","✅","💟","🆚","📳","📴","🆎","💠","⛎","🔯","🏧","💹","💲","💱","❌","❗","❓","❕","❔","⭕","🔝","🔚","🔙","🔛","🔜","🔃","🕛","🕐","🕑","🕒","🕓","🕔","🕕","🕖","🕗","🕘","🕙","🕚","➕","➖","➗","💮","💯","🔘","🔗","➰","🔱","🔺","🔲","🔳","🔴","🔵","🔻","⬜","⬛","🔶","🔷","🔸","🔹"]}],Re={props:{onBlur:{type:Function,required:!0},onEmojiPicked:{type:Function,required:!0}},data:function(){return{emojiData:Ue,emojiConvertor:new Be.a}},mounted:function(){var e=this.$refs.domNode;e.style.opacity=0,window.requestAnimationFrame((function(){e.style.transition="opacity 350ms",e.style.opacity=1})),this.$refs.domNode.focus(),this.emojiConvertor.init_env()},methods:{emojiClicked:function(e){this.onEmojiPicked(e),this.$refs.domNode.blur()}}},$e=Re,Fe=(t("20b8"),h($e,ze,De,!1,null,"7e6b96ab",null)),qe=Fe.exports,Ze={components:{EmojiPicker:qe},props:{onEmojiPicked:{type:Function,required:!0},color:{type:String,required:!0}},data:function(){return{isActive:!1}},methods:{_openPicker:function(e){this.isActive=!this.isActive},_handlePickerBlur:function(){this.isActive=!1}}},He=Ze,We=(t("d987"),h(He,Ee,Oe,!1,null,"45bc0ae6",null)),Ge=We.exports,Qe=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{staticStyle:{position:"relative"}},[t("button",{staticClass:"sc-user-input--file-icon-wrapper",attrs:{type:"button"}},[t("svg",{staticClass:"sc-user-input--file-icon",attrs:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",width:"24px",height:"24px",viewBox:"0 0 37.393 37.393",enableBackground:"new 0 0 37.393 37.393"}},[t("path",{style:{fill:e.color},attrs:{d:"M20.807 10.22l-2.030-2.029-10.15 10.148c-1.682 1.681-1.682 4.408 0 6.089s4.408 1.681 6.090 0l12.18-12.178c2.804-2.802 2.804-7.346 0-10.148-2.802-2.803-7.347-2.803-10.149 0l-12.788 12.787c-0.009 0.009-0.019 0.018-0.027 0.026-3.909 3.909-3.909 10.245 0 14.153 3.908 3.908 10.246 3.908 14.156 0 0.009-0.009 0.016-0.018 0.026-0.027l0.001 0.001 8.729-8.728-2.031-2.029-8.729 8.727c-0.009 0.008-0.018 0.018-0.026 0.026-2.784 2.783-7.312 2.783-10.096 0-2.783-2.783-2.783-7.31 0-10.093 0.010-0.009 0.019-0.018 0.028-0.026l-0.001-0.002 12.79-12.786c1.678-1.679 4.411-1.679 6.090 0s1.678 4.411 0 6.089l-12.18 12.178c-0.56 0.56-1.47 0.56-2.030 0-0.559-0.559-0.559-1.47 0-2.029l10.15-10.149z"}})]),t("input",{attrs:{id:"file-input",type:"file"},on:{change:e._handleChange,click:e._handleClick}})])])},Ye=[],Ve={props:{onChange:{type:Function,required:!0},color:{type:String,required:!0}},methods:{_handleClick:function(e){e.target.value=null},_handleChange:function(e){this.onChange(e.target.files[0])}}},Xe=Ve,Je=(t("d607"),h(Xe,Qe,Ye,!1,null,"aa3e05f4",null)),Ke=Je.exports,ef=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("button",{staticClass:"sc-user-input--button-icon-wrapper"},[t("IconBase",{attrs:{color:e.color,width:"20",height:"20","icon-name":e.tooltip}},[e._t("default")],2)],1)},ff=[],tf={components:{IconBase:I},props:{color:{type:String,required:!0},tooltip:{type:String,default:""}}},nf=tf,rf=(t("3eb5"),h(nf,ef,ff,!1,null,"c241d988",null)),of=rf.exports,af=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{staticClass:"sc-suggestions-row",style:{background:e.colors.messageList.bg}},e._l(e.suggestions,(function(f,n){return t("button",{key:n,staticClass:"sc-suggestions-element",style:{borderColor:e.colors.sentMessage.bg,color:e.colors.sentMessage.bg},on:{click:function(t){return e.$emit("sendSuggestion",f)}}},[e._v(" "+e._s(f)+" ")])})),0)},sf=[],cf={props:{suggestions:{type:Array,default:function(){return[]}},colors:{type:Object,required:!0}},data:function(){return{}}},df=cf,lf=(t("11e8"),h(df,af,sf,!1,null,null,null)),uf=lf.exports,pf=t("46c7"),hf=t.n(pf),gf=t("bf37"),mf=t.n(gf),bf=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("path",{attrs:{d:"M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z"}})},vf=[],_f={},wf=h(_f,bf,vf,!1,null,null,null),yf=wf.exports,xf=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("path",{attrs:{d:"M17.218,2.268L2.477,8.388C2.13,8.535,2.164,9.05,2.542,9.134L9.33,10.67l1.535,6.787c0.083,0.377,0.602,0.415,0.745,0.065l6.123-14.74C17.866,2.46,17.539,2.134,17.218,2.268 M3.92,8.641l11.772-4.89L9.535,9.909L3.92,8.641z M11.358,16.078l-1.268-5.613l6.157-6.157L11.358,16.078z"}})},kf=[],Mf={},Cf=h(Mf,xf,kf,!1,null,null,null),jf=Cf.exports,Tf={components:{EmojiIcon:Ge,FileIcons:Ke,UserInputButton:of,Suggestions:uf,IconCross:B,IconOk:yf,IconSend:jf},props:{icons:{type:Object,default:function(){return{file:{img:hf.a,name:"default"},closeSvg:{img:mf.a,name:"default"}}}},showEmoji:{type:Boolean,default:function(){return!1}},suggestions:{type:Array,default:function(){return[]}},showFile:{type:Boolean,default:function(){return!1}},onSubmit:{type:Function,required:!0},placeholder:{type:String,default:"Write something..."},colors:{type:Object,required:!0}},data:function(){return{file:null,inputActive:!1,store:H}},computed:{editMessageId:function(){return this.isEditing&&H.editMessage.id},isEditing:function(){return H.editMessage&&H.editMessage.id}},watch:{editMessageId:function(e){null!=H.editMessage&&void 0!=H.editMessage?(this.$refs.userInput.focus(),this.$refs.userInput.textContent=H.editMessage.data.text):this.$refs.userInput.textContent=""}},mounted:function(){var e=this;this.$root.$on("focusUserInput",(function(){e.$refs.userInput&&e.focusUserInput()}))},methods:{cancelFile:function(){this.file=null},setInputActive:function(e){this.inputActive=e},handleKey:function(e){13!==e.keyCode||e.shiftKey?27===e.keyCode&&(this._editFinish(),e.preventDefault()):(this.isEditing?this._editText(e):this._submitText(e),this._editFinish(),e.preventDefault()),this.$emit("onType")},focusUserInput:function(){var e=this;this.$nextTick((function(){e.$refs.userInput.focus()}))},_submitSuggestion:function(e){this.onSubmit({author:"me",type:"text",data:{text:e}})},_checkSubmitSuccess:function(e){void 0!==Promise?Promise.resolve(e).then(function(e){(void 0===e||e)&&(this.file=null,this.$refs.userInput.innerHTML="")}.bind(this)):(this.file=null,this.$refs.userInput.innerHTML="")},_submitText:function(e){var f=this.$refs.userInput.textContent,t=this.file;t?this._submitTextWhenFile(e,f,t):f&&f.length>0&&this._checkSubmitSuccess(this.onSubmit({author:"me",type:"text",data:{text:f}}))},_submitTextWhenFile:function(e,f,t){f&&f.length>0?this._checkSubmitSuccess(this.onSubmit({author:"me",type:"file",data:{text:f,file:t}})):this._checkSubmitSuccess(this.onSubmit({author:"me",type:"file",data:{file:t}}))},_editText:function(e){var f=this.$refs.userInput.textContent;f&&f.length&&(this.$emit("edit",{author:"me",type:"text",id:H.editMessage.id,data:{text:f}}),this._editFinish())},_handleEmojiPicked:function(e){this._checkSubmitSuccess(this.onSubmit({author:"me",type:"emoji",data:{emoji:e}}))},_handleFileSubmit:function(e){this.file=e},_editFinish:function(){this.store.editMessage=null}}},If=Tf,Lf=(t("829a"),h(If,Ne,Se,!1,null,null,null)),Af=Lf.exports,Nf=function(){var e=this,f=e.$createElement,t=e._self._c||f;return t("div",{staticClass:"user-list",style:{background:e.userListColor.userList.bg}},[t("table",{staticStyle:{"padding-top":"5px"}},[t("tbody",e._l(e.participants,(function(f){return t("tr",{key:f.id},[t("td",{staticStyle:{"text-align":"center"}},[t("img",{staticClass:"img-msg",attrs:{src:f.imageUrl}})]),t("td",{staticClass:"user-element",style:{color:e.userListColor.userList.text}},[e._v(" "+e._s(f.name)+" ")])])})),0)])])},Sf=[],Ef=(t("cca6"),{props:{participants:{type:Array,required:!0},colors:{type:Object,default:function(){return{}}}},computed:{userListColor:function(){var e={userList:{bg:"#FFFFFF",text:"#000000"}};return Object.assign(e,this.colors)}}}),Of=Ef,zf=(t("387a"),h(Of,Nf,Sf,!1,null,"30547438",null)),Df=zf.exports,Pf={components:{Header:m,MessageList:Ae,UserInput:Af,UserList:Df},props:{showEmoji:{type:Boolean,default:!1},showCloseButton:{type:Boolean,default:!0},showFile:{type:Boolean,default:!1},showHeader:{type:Boolean,default:!0},participants:{type:Array,required:!0},title:{type:String,required:!0},titleImageUrl:{type:String,default:""},onUserInputSubmit:{type:Function,required:!0},onClose:{type:Function,required:!0},messageList:{type:Array,default:function(){return[]}},isOpen:{type:Boolean,default:function(){return!1}},placeholder:{type:String,default:"Write a message..."},showTypingIndicator:{type:String,required:!0},colors:{type:Object,required:!0},alwaysScrollToBottom:{type:Boolean,required:!0},messageStyling:{type:Boolean,required:!0},disableUserListToggle:{type:Boolean,default:!1},showEdition:{type:Boolean,required:!0},showDeletion:{type:Boolean,required:!0}},data:function(){return{showUserList:!1}},computed:{messages:function(){var e=this.messageList;return e}},methods:{handleUserListToggle:function(e){this.showUserList=e},getSuggestions:function(){return this.messages.length>0?this.messages[this.messages.length-1].suggestions:[]}}},Bf=Pf,Uf=(t("90db"),h(Bf,i,a,!1,null,"08d4c038",null)),Rf=Uf.exports,$f=t("c2f4"),Ff=t.n($f),qf=t("3df2"),Zf=t.n(qf),Hf={components:{ChatWindow:Rf},props:{icons:{type:Object,default:function(){return{open:{img:Zf.a,name:"default"},close:{img:Ff.a,name:"default"}}}},showEmoji:{type:Boolean,default:!1},showEdition:{type:Boolean,default:!1},showDeletion:{type:Boolean,default:!1},isOpen:{type:Boolean,required:!0},open:{type:Function,required:!0},close:{type:Function,required:!0},showFile:{type:Boolean,default:!1},showLauncher:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showHeader:{type:Boolean,default:!0},participants:{type:Array,required:!0},title:{type:String,default:function(){return""}},titleImageUrl:{type:String,default:function(){return""}},onMessageWasSent:{type:Function,required:!0},messageList:{type:Array,default:function(){return[]}},newMessagesCount:{type:Number,default:function(){return 0}},placeholder:{type:String,default:"Write a message..."},showTypingIndicator:{type:String,default:function(){return""}},colors:{type:Object,validator:function(e){return"header"in e&&"bg"in e.header&&"text"in e.header&&"launcher"in e&&"bg"in e.launcher&&"messageList"in e&&"bg"in e.messageList&&"sentMessage"in e&&"bg"in e.sentMessage&&"text"in e.sentMessage&&"receivedMessage"in e&&"bg"in e.receivedMessage&&"text"in e.receivedMessage&&"userInput"in e&&"bg"in e.userInput&&"text"in e.userInput},default:function(){return{header:{bg:"#4e8cff",text:"#ffffff"},launcher:{bg:"#4e8cff"},messageList:{bg:"#ffffff"},sentMessage:{bg:"#4e8cff",text:"#ffffff"},receivedMessage:{bg:"#f4f7f9",text:"#ffffff"},userInput:{bg:"#f4f7f9",text:"#565867"}}}},alwaysScrollToBottom:{type:Boolean,default:function(){return!1}},messageStyling:{type:Boolean,default:function(){return!1}},disableUserListToggle:{type:Boolean,default:!1}},computed:{chatWindowTitle:function(){return""!==this.title?this.title:0===this.participants.length?"You":this.participants.length>1?"You, "+this.participants[0].name+" & others":"You & "+this.participants[0].name}},methods:{openAndFocus:function(){this.open(),this.$root.$emit("focusUserInput")}}},Wf=Hf,Gf=(t("9bfa"),h(Wf,r,o,!1,null,"37d9143a",null)),Qf=Gf.exports,Yf=t("e37d"),Vf="BeautifulChat",Xf={install:function(e){var f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.installed||(this.installed=!0,this.event=new e,this.dynamicContainer=null,this.componentName=f.componentName||Vf,e.prototype.$chat={_setDynamicContainer:function(e){Xf.dynamicContainer=e}},e.component(this.componentName,Qf),e.use(Yf["a"]))}},Jf=Xf;f["default"]=Jf},fc6a:function(e,f,t){var n=t("44ad"),r=t("1d80");e.exports=function(e){return n(r(e))}},fdbf:function(e,f,t){var n=t("4930");e.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},fea9:function(e,f,t){var n=t("da84");e.exports=n.Promise}})}));

/***/ }),

/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=script&lang=js&":
/*!****************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=script&lang=js& ***!
  \****************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var nanoscroller_bin_javascripts_jquery_nanoscroller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! nanoscroller/bin/javascripts/jquery.nanoscroller */ "./node_modules/nanoscroller/bin/javascripts/jquery.nanoscroller.js");
/* harmony import */ var nanoscroller_bin_javascripts_jquery_nanoscroller__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(nanoscroller_bin_javascripts_jquery_nanoscroller__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.common.js");
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _lib_css_emoji_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/css/emoji.css */ "./node_modules/emoji-vue/src/lib/css/emoji.css");
/* harmony import */ var _lib_css_emoji_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lib_css_emoji_css__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var nanoscroller_bin_css_nanoscroller_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! nanoscroller/bin/css/nanoscroller.css */ "./node_modules/nanoscroller/bin/css/nanoscroller.css");
/* harmony import */ var nanoscroller_bin_css_nanoscroller_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(nanoscroller_bin_css_nanoscroller_css__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _lib_js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/js/util */ "./node_modules/emoji-vue/src/lib/js/util.js");
/* harmony import */ var _lib_js_emoji_picker__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/js/emoji-picker */ "./node_modules/emoji-vue/src/lib/js/emoji-picker.js");
/* harmony import */ var _lib_js_jquery_emojiarea__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/js/jquery.emojiarea */ "./node_modules/emoji-vue/src/lib/js/jquery.emojiarea.js");
/* harmony import */ var _lib_img_IconsetSmiles_png__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./lib/img/IconsetSmiles.png */ "./node_modules/emoji-vue/src/lib/img/IconsetSmiles.png");
/* harmony import */ var _lib_img_IconsetSmiles_png__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_lib_img_IconsetSmiles_png__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _lib_img_IconsetSmiles_1x_png__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./lib/img/IconsetSmiles_1x.png */ "./node_modules/emoji-vue/src/lib/img/IconsetSmiles_1x.png");
/* harmony import */ var _lib_img_IconsetSmiles_1x_png__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_lib_img_IconsetSmiles_1x_png__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _lib_img_IconsetW_png__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./lib/img/IconsetW.png */ "./node_modules/emoji-vue/src/lib/img/IconsetW.png");
/* harmony import */ var _lib_img_IconsetW_png__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_lib_img_IconsetW_png__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var _lib_img_IconsetW_1x_png__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./lib/img/IconsetW_1x.png */ "./node_modules/emoji-vue/src/lib/img/IconsetW_1x.png");
/* harmony import */ var _lib_img_IconsetW_1x_png__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_lib_img_IconsetW_1x_png__WEBPACK_IMPORTED_MODULE_10__);
//
//
//
//
//
//
//
//















/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'VueEmoji',
  data () {
    return {
      id: Object(_lib_js_jquery_emojiarea__WEBPACK_IMPORTED_MODULE_6__["getGuid"])()
    }
  },
  props: {
    width: {
      type: String,
      default: '200'
    },
    height: {
      type: String,
      default: '50'
    },
    value: {
      type: String,
      default: ''
    }
  },
  watch: {
    value: function (newVal) {
      vue__WEBPACK_IMPORTED_MODULE_1___default.a.nextTick(() => {
        this.$el.querySelector('.emoji-wysiwyg-editor').innerHTML = newVal
      })
    }
  },
  methods: {
    clear () {
      this.$el.querySelector('.emoji-wysiwyg-editor').innerHTML = ''
    },
    initEmojiPlugin () {
      window.emojiPicker = new _lib_js_emoji_picker__WEBPACK_IMPORTED_MODULE_5__["EmojiPicker"]({
        emojiable_selector: `#${this.id} [data-vue-emojiable=true]`,
        assetsPath: '',
        popupButtonClasses: 'smile-icon',
        onChangecontent: (textAreaValue) => {
          this.$emit('input', {data: textAreaValue})
        }
      })
      window.emojiPicker.discover()
      vue__WEBPACK_IMPORTED_MODULE_1___default.a.nextTick(() => {
        const editor = this.$el.querySelector('.emoji-wysiwyg-editor')
        editor.style.width = `${this.width}px`
        editor.style.height = `${this.height}px`
        this.$el.querySelector('.emoji-picker-container').style.width = `${Number(this.width) + 50}px`
      })
    }
  },
  mounted: function () {
    vue__WEBPACK_IMPORTED_MODULE_1___default.a.nextTick(() => {
      Object(_lib_js_util__WEBPACK_IMPORTED_MODULE_4__["default"])()
      this.initEmojiPlugin()
    })
  }
});


/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=template&id=573fdbbc&":
/*!**************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/emoji-vue/src/VueEmoji.vue?vue&type=template&id=573fdbbc& ***!
  \**************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "emoji-vue-wraper", attrs: { id: _vm.id } }, [
    _c("div", { staticClass: "emoji-picker-container" }, [
      _c("textarea", {
        directives: [
          {
            name: "model",
            rawName: "v-model",
            value: _vm.value,
            expression: "value"
          }
        ],
        staticClass: "emoji-vue-textarea",
        attrs: { cols: "50", rows: "10", "data-vue-emojiable": "true" },
        domProps: { value: _vm.value },
        on: {
          input: function($event) {
            if ($event.target.composing) {
              return
            }
            _vm.value = $event.target.value
          }
        }
      })
    ])
  ])
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Main.vue?vue&type=template&id=63080d70&scoped=true&":
/*!********************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/Main.vue?vue&type=template&id=63080d70&scoped=true& ***!
  \********************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "row" }, [
    _c(
      "div",
      {
        staticClass:
          "col-md-4 product-box d-flex align-content-center justify-content-center flex-wrap big-text"
      },
      [
        _c("a", { attrs: { href: "/admin/orders" } }, [
          _vm._v("Orders (" + _vm._s(_vm.orders.length) + ")")
        ])
      ]
    ),
    _vm._v(" "),
    _c("hr"),
    _vm._v(" "),
    _c(
      "div",
      {
        staticClass:
          "col-md-4 product-box d-flex align-content-center justify-content-center flex-wrap big-text"
      },
      [
        _c("a", { attrs: { href: "/admin/products" } }, [
          _vm._v("Products (" + _vm._s(_vm.products.length) + ")")
        ])
      ]
    ),
    _vm._v(" "),
    _c(
      "div",
      {
        staticClass:
          "col-md-4 product-box d-flex align-content-center justify-content-center flex-wrap big-text"
      },
      [
        _c("a", { attrs: { href: "/admin/users" } }, [
          _vm._v("Users (" + _vm._s(_vm.users.length) + ")")
        ])
      ]
    )
  ])
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Orders.vue?vue&type=template&id=129a08dc&":
/*!**********************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/Orders.vue?vue&type=template&id=129a08dc& ***!
  \**********************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "content-wrapper pb-0" }, [
    _vm.isLoading
      ? _c("div", { staticClass: "loading" }, [
          _c("img", {
            staticClass: "sidebar-brand-logo w-75 m-auto",
            attrs: { src: "/images/loader.svg", alt: "" }
          })
        ])
      : _vm._e(),
    _vm._v(" "),
    _c("div", { staticClass: "search_area" }, [
      _c("div", { staticClass: "container" }, [
        _c("div", { staticClass: "row mb-4" }, [
          _c("div", { staticClass: "col-7 col-md-5" }, [
            _c("label", [_vm._v("Search")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.search,
                  expression: "search"
                }
              ],
              staticClass: "form-control",
              attrs: { type: "text", id: "search", placeholder: "Search" },
              domProps: { value: _vm.search },
              on: {
                keyup: function($event) {
                  return _vm.searchFunction()
                },
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.search = $event.target.value
                }
              }
            })
          ])
        ])
      ])
    ]),
    _vm._v(" "),
    _c("div", { staticClass: "table-responsive" }, [
      _c("table", { staticClass: "table custom-table txt-dark" }, [
        _vm._m(0),
        _vm._v(" "),
        _c(
          "tbody",
          [
            _vm.orders.datalength === 0
              ? _c("tr", [
                  _c(
                    "td",
                    { staticClass: "text-center", attrs: { colspan: "7" } },
                    [_vm._v("No Records found")]
                  )
                ])
              : _vm._e(),
            _vm._v(" "),
            _vm._l(_vm.orders.data, function(order, index) {
              return _c("tr", { on: { key: index } }, [
                _c("td", [_vm._v(_vm._s(_vm.orders.sno + index + 1))]),
                _vm._v(" "),
                _c("td", [_vm._v(_vm._s(order.user_name))]),
                _vm._v(" "),
                _c("td", {
                  domProps: { innerHTML: _vm._s(order.product_name) }
                }),
                _vm._v(" "),
                _c("td", [_vm._v(_vm._s(order.price))]),
                _vm._v(" "),
                _c("td", {
                  domProps: {
                    innerHTML: _vm._s(_vm.getDateFormat(order.start_dt))
                  }
                }),
                _vm._v(" "),
                _c("td", {
                  domProps: {
                    innerHTML: _vm._s(_vm.getDateFormat(order.end_dt))
                  }
                })
              ])
            })
          ],
          2
        )
      ])
    ]),
    _vm._v(" "),
    _c(
      "div",
      { staticClass: "pagination" },
      [
        _c("pagination", {
          attrs: { data: _vm.orders },
          on: { "pagination-change-page": _vm.getResults }
        })
      ],
      1
    )
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("thead", [
      _c("tr", [
        _c("th", { attrs: { width: "70" } }, [_vm._v("#")]),
        _vm._v(" "),
        _c("th", [_vm._v("Customer Name")]),
        _vm._v(" "),
        _c("th", [_vm._v("Product Title")]),
        _vm._v(" "),
        _c("th", { staticStyle: { "min-width": "70px" } }, [_vm._v("Price")]),
        _vm._v(" "),
        _c("th", { attrs: { width: "150" } }, [_vm._v("Start Date")]),
        _vm._v(" "),
        _c("th", { attrs: { width: "150" } }, [_vm._v("Expiry Date")])
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/ProductModal.vue?vue&type=template&id=63afc935&scoped=true&":
/*!****************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/ProductModal.vue?vue&type=template&id=63afc935&scoped=true& ***!
  \****************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    { staticClass: "modal-mask", attrs: { id: "EditProduct" } },
    [
      _c(
        "div",
        {
          staticClass: "modal-dialog modal-dialog-slideout",
          attrs: { role: "document" }
        },
        [
          _c("div", { staticClass: "modal-content" }, [
            _c("div", { staticClass: "modal-header" }, [
              _vm.data.heading == "add"
                ? _c(
                    "h5",
                    {
                      staticClass: "modal-title",
                      attrs: { id: "exampleModalLabel" }
                    },
                    [_vm._v("Add Product")]
                  )
                : _c(
                    "h5",
                    {
                      staticClass: "modal-title",
                      attrs: { id: "exampleModalLabel" }
                    },
                    [_vm._v("Edit Product")]
                  ),
              _vm._v(" "),
              _c(
                "button",
                {
                  staticClass: "close",
                  attrs: {
                    type: "button",
                    "data-dismiss": "modal",
                    "aria-label": "Close"
                  },
                  on: { click: _vm.hideMode }
                },
                [
                  _c("span", { attrs: { "aria-hidden": "true" } }, [
                    _vm._v("×")
                  ])
                ]
              )
            ]),
            _vm._v(" "),
            _c("div", { staticClass: "modal-body" }, [
              _c(
                "form",
                { attrs: { enctype: "multipart/form-data", id: "tagform" } },
                [
                  _c("input", {
                    staticClass: "form-control",
                    attrs: { type: "hidden", id: "id", value: "<%= id %>" }
                  }),
                  _vm._v(" "),
                  _c("div", { staticClass: "container" }, [
                    _c(
                      "div",
                      { staticClass: "d-flex align-items-center mb-3" },
                      [
                        _vm.profileShow.length
                          ? _c(
                              "div",
                              {
                                staticClass: "profile-img border",
                                attrs: {
                                  id: "profileImageId",
                                  "data-id": _vm.profileShow[0].fileType
                                }
                              },
                              [
                                _vm.profileShow[0].fileType == "image"
                                  ? _c("img", {
                                      staticStyle: { width: "50px" },
                                      attrs: {
                                        src: _vm.profileShow[0].path,
                                        alt: "jenny"
                                      }
                                    })
                                  : _vm._e(),
                                _vm._v(" "),
                                _vm.profileShow[0].fileType == "video"
                                  ? _c(
                                      "video",
                                      {
                                        staticStyle: {
                                          width: "100px",
                                          height: "auto"
                                        }
                                      },
                                      [
                                        _c("source", {
                                          attrs: {
                                            src: _vm.profileShow[0].path,
                                            type: "video/mp4"
                                          }
                                        })
                                      ]
                                    )
                                  : _vm._e()
                              ]
                            )
                          : _c("div", { staticClass: "profile-img border" }, [
                              _c("img", {
                                attrs: { src: "/img/jenny.jpg", alt: "jenny" }
                              })
                            ]),
                        _vm._v(" "),
                        _c("div", { staticClass: "change-img" }, [
                          _c("div", [
                            _c("input", {
                              attrs: {
                                type: "file",
                                name: "profile",
                                id: "profile"
                              },
                              on: { change: _vm.onProfileChange }
                            })
                          ])
                        ])
                      ]
                    ),
                    _vm._v(" "),
                    _vm.errors.profile && _vm.profileShow == null
                      ? _c("span", { class: ["error_message"] }, [
                          _vm._v(_vm._s(_vm.errors.profile[0]))
                        ])
                      : _vm._e(),
                    _vm._v(" "),
                    _vm.errors.errors_profile
                      ? _c("span", { class: ["error_message"] }, [
                          _vm._v(_vm._s(_vm.errors.errors_profile))
                        ])
                      : _vm._e(),
                    _vm._v(" "),
                    _c("div", { staticClass: "mb-4 mt-4 row" }, [
                      _c("div", { staticClass: "col-md-6" }, [
                        _c("label", [_vm._v("Product Name ")]),
                        _vm._v(" "),
                        _c("input", {
                          directives: [
                            {
                              name: "model",
                              rawName: "v-model",
                              value: _vm.data.name,
                              expression: "data.name"
                            }
                          ],
                          staticClass: "form-control",
                          attrs: {
                            type: "text",
                            id: "name",
                            placeholder: "Enter Product Name"
                          },
                          domProps: { value: _vm.data.name },
                          on: {
                            input: function($event) {
                              if ($event.target.composing) {
                                return
                              }
                              _vm.$set(_vm.data, "name", $event.target.value)
                            }
                          }
                        }),
                        _vm._v(" "),
                        _vm.errors.name
                          ? _c("span", { class: ["error_message"] }, [
                              _vm._v(_vm._s(_vm.errors.name[0]))
                            ])
                          : _vm._e()
                      ]),
                      _vm._v(" "),
                      _c(
                        "div",
                        { staticClass: "col-md-6" },
                        [
                          _c("label", [_vm._v("Category")]),
                          _vm._v(" "),
                          _c("multiselect", {
                            attrs: {
                              id: "category_id",
                              name: "category",
                              options: _vm.data.categoryData,
                              multiple: false,
                              "close-on-select": false,
                              "clear-on-select": false,
                              "preserve-search": true,
                              placeholder: "Select Category",
                              label: "name",
                              "track-by": "id",
                              "preselect-first": true
                            },
                            scopedSlots: _vm._u([
                              {
                                key: "noResult",
                                fn: function(props) {
                                  return [
                                    _vm._v(
                                      "\n                       No record found \n                      "
                                    )
                                  ]
                                }
                              }
                            ]),
                            model: {
                              value: _vm.data.category_id,
                              callback: function($$v) {
                                _vm.$set(_vm.data, "category_id", $$v)
                              },
                              expression: "data.category_id"
                            }
                          }),
                          _vm._v(" "),
                          _vm.errors.category_id
                            ? _c("span", { class: ["error_message"] }, [
                                _vm._v("The Category field is required.")
                              ])
                            : _vm._e()
                        ],
                        1
                      )
                    ]),
                    _vm._v(" "),
                    _c("div", { staticClass: "mb-4 row" }, [
                      _c("div", { staticClass: "col-md-12" }, [
                        _c(
                          "div",
                          { staticClass: "form-group" },
                          [
                            _c("label", [_vm._v("Tag")]),
                            _vm._v(" "),
                            _c("multiselect", {
                              attrs: {
                                name: "tag",
                                options: _vm.data.tagData,
                                multiple: true,
                                "close-on-select": false,
                                "clear-on-select": false,
                                "preserve-search": true,
                                placeholder: "Select Tag",
                                label: "name",
                                "track-by": "id",
                                "preselect-first": true
                              },
                              scopedSlots: _vm._u([
                                {
                                  key: "noResult",
                                  fn: function(props) {
                                    return [
                                      _vm._v(
                                        "\n                       No record found \n                      "
                                      )
                                    ]
                                  }
                                }
                              ]),
                              model: {
                                value: _vm.data.tag_ids,
                                callback: function($$v) {
                                  _vm.$set(_vm.data, "tag_ids", $$v)
                                },
                                expression: "data.tag_ids"
                              }
                            }),
                            _vm._v(" "),
                            _vm.errors.tag_ids
                              ? _c("span", { class: ["error_message"] }, [
                                  _vm._v("The tag field is required.")
                                ])
                              : _vm._e()
                          ],
                          1
                        ),
                        _vm._v(" "),
                        _c(
                          "div",
                          { staticClass: "form-group" },
                          [
                            _c("label", [_vm._v("Description ")]),
                            _vm._v(" "),
                            _c("VueEmoji", {
                              ref: "emoji",
                              attrs: {
                                width: "100%",
                                height: "100",
                                value: _vm.data.description
                              },
                              on: { input: _vm.descriptionWithEmoji }
                            }),
                            _vm._v(" "),
                            _vm.errors.description
                              ? _c("span", { class: ["error_message"] }, [
                                  _vm._v(_vm._s(_vm.errors.description[0]))
                                ])
                              : _vm._e()
                          ],
                          1
                        ),
                        _vm._v(" "),
                        _c("div", { staticClass: "price_day_group row" }, [
                          _c("div", { staticClass: "col-md-6" }, [
                            _c("label", [_vm._v("Price ")]),
                            _vm._v(" "),
                            _c("input", {
                              directives: [
                                {
                                  name: "model",
                                  rawName: "v-model",
                                  value: _vm.data.price,
                                  expression: "data.price"
                                }
                              ],
                              staticClass: "form-control",
                              attrs: {
                                type: "number",
                                min: "0",
                                id: "price",
                                placeholder: "Enter Price"
                              },
                              domProps: { value: _vm.data.price },
                              on: {
                                input: function($event) {
                                  if ($event.target.composing) {
                                    return
                                  }
                                  _vm.$set(
                                    _vm.data,
                                    "price",
                                    $event.target.value
                                  )
                                }
                              }
                            }),
                            _vm._v(" "),
                            _vm.errors.price
                              ? _c("span", { class: ["error_message"] }, [
                                  _vm._v(_vm._s(_vm.errors.price[0]))
                                ])
                              : _vm._e()
                          ]),
                          _vm._v(" "),
                          _c("div", { staticClass: "col-md-6" }, [
                            _c("label", [_vm._v("Days ")]),
                            _vm._v(" "),
                            _c(
                              "select",
                              {
                                directives: [
                                  {
                                    name: "model",
                                    rawName: "v-model",
                                    value: _vm.data.days,
                                    expression: "data.days"
                                  }
                                ],
                                staticClass: "form-control",
                                attrs: { id: "days" },
                                on: {
                                  change: function($event) {
                                    var $$selectedVal = Array.prototype.filter
                                      .call($event.target.options, function(o) {
                                        return o.selected
                                      })
                                      .map(function(o) {
                                        var val =
                                          "_value" in o ? o._value : o.value
                                        return val
                                      })
                                    _vm.$set(
                                      _vm.data,
                                      "days",
                                      $event.target.multiple
                                        ? $$selectedVal
                                        : $$selectedVal[0]
                                    )
                                  }
                                }
                              },
                              [
                                _c(
                                  "option",
                                  { attrs: { disabled: "", value: "" } },
                                  [_vm._v("Please Select Days")]
                                ),
                                _vm._v(" "),
                                _c("option", { attrs: { value: "15" } }, [
                                  _vm._v("15")
                                ]),
                                _vm._v(" "),
                                _c("option", { attrs: { value: "30" } }, [
                                  _vm._v("30")
                                ]),
                                _vm._v(" "),
                                _c("option", { attrs: { value: "90" } }, [
                                  _vm._v("90")
                                ]),
                                _vm._v(" "),
                                _c("option", { attrs: { value: "180" } }, [
                                  _vm._v("180")
                                ]),
                                _vm._v(" "),
                                _c("option", { attrs: { value: "360" } }, [
                                  _vm._v("360")
                                ]),
                                _vm._v(" "),
                                _c("option", { attrs: { value: "0" } }, [
                                  _vm._v("Unlimited")
                                ])
                              ]
                            ),
                            _vm._v(" "),
                            _vm.errors.days
                              ? _c("span", { class: ["error_message"] }, [
                                  _vm._v(_vm._s(_vm.errors.days[0]))
                                ])
                              : _vm._e()
                          ])
                        ])
                      ])
                    ]),
                    _vm._v(" "),
                    _c("div", { staticClass: "mb-4 row" }, [
                      _c("div", { staticClass: "col-md-6" }, [
                        _c("div", { staticClass: "form-group imageFile" }, [
                          _c("div", { staticClass: "upload-area" }, [
                            _c("label", [_vm._v("Upload Image")]),
                            _vm._v(" "),
                            _c("input", {
                              staticClass: "form-control",
                              attrs: {
                                type: "file",
                                multiple: "true",
                                name: "images",
                                id: "images",
                                accept: ".jpg,.jpeg,.png"
                              },
                              on: { change: _vm.attachFile }
                            }),
                            _vm._v(" "),
                            _vm.errors.images
                              ? _c("span", { class: ["error_message"] }, [
                                  _vm._v(_vm._s(_vm.errors.images[0]))
                                ])
                              : _vm._e()
                          ])
                        ])
                      ]),
                      _vm._v(" "),
                      _c("div", { staticClass: "col-md-6" }, [
                        _c("div", { staticClass: "form-group videoFile" }, [
                          _c("div", { staticClass: "upload-area" }, [
                            _c("label", [_vm._v("Upload Video")]),
                            _vm._v(" "),
                            _c("input", {
                              staticClass: "form-control",
                              attrs: {
                                type: "file",
                                accept:
                                  "video/mp4,video/webm,video/mpeg,video/x-m4v,video/*",
                                name: "videos",
                                id: "videos"
                              },
                              on: { change: _vm.uploadVideoFile }
                            }),
                            _vm._v(" "),
                            _vm.errors.videos
                              ? _c("span", { class: ["error_message"] }, [
                                  _vm._v(_vm._s(_vm.errors.videos[0]))
                                ])
                              : _vm._e()
                          ])
                        ])
                      ])
                    ])
                  ]),
                  _vm._v(" "),
                  _c("hr"),
                  _vm._v(" "),
                  _c("div", { staticClass: "container-fluid" }, [
                    _c("div", { staticClass: "row" }, [
                      _c("div", { staticClass: "col-md-12" }, [
                        _c(
                          "div",
                          {
                            staticClass:
                              "d-flex flex-wrap upload-view imageFile1"
                          },
                          _vm._l(_vm.showImages, function(image, index) {
                            return image.imageType == "multiImage"
                              ? _c(
                                  "div",
                                  {
                                    key: index,
                                    class: "delete_index_" + index,
                                    attrs: { "data-id": image.id }
                                  },
                                  [
                                    _c(
                                      "a",
                                      {
                                        staticClass: "image-cancel",
                                        attrs: { href: "javascript:;" },
                                        on: {
                                          click: function($event) {
                                            return _vm.deleteUplaodedFile(
                                              "image",
                                              image.id,
                                              index
                                            )
                                          }
                                        }
                                      },
                                      [_vm._v("x")]
                                    ),
                                    _vm._v(" "),
                                    _c("img", {
                                      directives: [
                                        {
                                          name: "show",
                                          rawName: "v-show",
                                          value: image.path != null,
                                          expression: "image.path !=null "
                                        }
                                      ],
                                      staticClass: "img-thumbnail1",
                                      attrs: { src: image.path }
                                    })
                                  ]
                                )
                              : _vm._e()
                          }),
                          0
                        ),
                        _vm._v(" "),
                        _c(
                          "div",
                          {
                            staticClass:
                              "d-flex flex-wrap upload-view video-upload-view videoFile1"
                          },
                          _vm._l(_vm.showVideos, function(video, index) {
                            return _c(
                              "div",
                              {
                                key: index,
                                class: "delete_index_" + index,
                                attrs: { "data-id": video.id }
                              },
                              [
                                _c(
                                  "a",
                                  {
                                    staticClass: "image-cancel",
                                    attrs: { href: "javascript:;" },
                                    on: {
                                      click: function($event) {
                                        return _vm.deleteUplaodedFile(
                                          "video",
                                          video.id,
                                          index
                                        )
                                      }
                                    }
                                  },
                                  [_vm._v("x")]
                                ),
                                _vm._v(" "),
                                _c("video", { attrs: { controls: "false" } }, [
                                  _c("source", {
                                    attrs: {
                                      src: video.path,
                                      type: "video/mp4"
                                    }
                                  })
                                ])
                              ]
                            )
                          }),
                          0
                        )
                      ])
                    ])
                  ])
                ]
              )
            ]),
            _vm._v(" "),
            _c("div", { staticClass: "modal-footer" }, [
              _c(
                "button",
                {
                  staticClass: "btn btn-default",
                  attrs: { type: "button", "data-dismiss": "modal" },
                  on: { click: _vm.hideMode }
                },
                [_vm._v("Close")]
              ),
              _vm._v(" "),
              _vm.data.submit_button_text == "add"
                ? _c("button", {
                    staticClass: "btn btn-primary",
                    attrs: { type: "button", disabled: _vm.isDisabled },
                    domProps: { innerHTML: _vm._s(_vm.isLoadingButtonSave) },
                    on: { click: _vm.uploadFile }
                  })
                : _c(
                    "button",
                    {
                      staticClass: "btn btn-primary",
                      attrs: { type: "button", disabled: _vm.isDisabled },
                      domProps: {
                        innerHTML: _vm._s(_vm.isLoadingButtonUpdate)
                      },
                      on: { click: _vm.uploadFile }
                    },
                    [_vm._v("Update")]
                  )
            ])
          ])
        ]
      )
    ]
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Products.vue?vue&type=template&id=2739241b&":
/*!************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/Products.vue?vue&type=template&id=2739241b& ***!
  \************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    { staticClass: "content-wrapper pb-0" },
    [
      _vm.isLoading
        ? _c("div", { staticClass: "loading" }, [
            _c("img", {
              staticClass: "sidebar-brand-logo w-75 m-auto",
              attrs: { src: "/images/loader.svg", alt: "" }
            })
          ])
        : _vm._e(),
      _vm._v(" "),
      _c("div", { staticClass: "search_area" }, [
        _c("div", { staticClass: "container" }, [
          _c("div", { staticClass: "row mb-4" }, [
            _c("div", { staticClass: "col-7 col-md-5" }, [
              _c("label", [_vm._v("Search")]),
              _vm._v(" "),
              _c("input", {
                directives: [
                  {
                    name: "model",
                    rawName: "v-model",
                    value: _vm.search,
                    expression: "search"
                  }
                ],
                staticClass: "form-control",
                attrs: { type: "text", id: "search", placeholder: "Search" },
                domProps: { value: _vm.search },
                on: {
                  keyup: function($event) {
                    return _vm.searchFunction()
                  },
                  input: function($event) {
                    if ($event.target.composing) {
                      return
                    }
                    _vm.search = $event.target.value
                  }
                }
              })
            ]),
            _vm._v(" "),
            _c("div", { staticClass: "col-7 text-right" }, [
              _c(
                "button",
                {
                  staticClass: "btn btn-primary mt-3 mb-md-0 mr-2 ",
                  on: { click: _vm.newProduct }
                },
                [_vm._v(" Add New Product")]
              )
            ])
          ])
        ])
      ]),
      _vm._v(" "),
      _c("div", { staticClass: "table-responsive" }, [
        _c("table", { staticClass: "table custom-table txt-dark" }, [
          _vm._m(0),
          _vm._v(" "),
          _c(
            "tbody",
            [
              _vm.products.datalength == 0
                ? _c("tr", [
                    _c(
                      "td",
                      { staticClass: "text-center", attrs: { colspan: "7" } },
                      [_vm._v("No Records found")]
                    )
                  ])
                : _vm._e(),
              _vm._v(" "),
              _vm._l(_vm.products, function(product, index) {
                return _c("tr", { on: { key: index } }, [
                  _c("td", [_vm._v(_vm._s(index + 1))]),
                  _vm._v(" "),
                  _c(
                    "td",
                    {
                      model: {
                        value: product.name,
                        callback: function($$v) {
                          _vm.$set(product, "name", $$v)
                        },
                        expression: "product.name"
                      }
                    },
                    [_vm._v(_vm._s(product.name))]
                  ),
                  _vm._v(" "),
                  _c("td", [_vm._v(_vm._s(product.category_name))]),
                  _vm._v(" "),
                  _c(
                    "td",
                    {
                      model: {
                        value: product.price,
                        callback: function($$v) {
                          _vm.$set(product, "price", $$v)
                        },
                        expression: "product.price"
                      }
                    },
                    [_vm._v(_vm._s(product.price))]
                  ),
                  _vm._v(" "),
                  product.days != "0"
                    ? _c(
                        "td",
                        {
                          model: {
                            value: product.days,
                            callback: function($$v) {
                              _vm.$set(product, "days", $$v)
                            },
                            expression: "product.days"
                          }
                        },
                        [_vm._v(_vm._s(product.days))]
                      )
                    : _vm._e(),
                  _vm._v(" "),
                  product.days == "0"
                    ? _c("td", [_vm._v("Unlimited")])
                    : _vm._e(),
                  _vm._v(" "),
                  _c(
                    "td",
                    {
                      model: {
                        value: product.description,
                        callback: function($$v) {
                          _vm.$set(product, "description", $$v)
                        },
                        expression: "product.description"
                      }
                    },
                    [_vm._v(_vm._s(product.description))]
                  ),
                  _vm._v(" "),
                  _c("td", { staticClass: "text-center" }, [
                    _c(
                      "a",
                      {
                        staticClass: "btn btn-sm btn-secondary",
                        attrs: { href: "javascript:;" },
                        on: {
                          click: function($event) {
                            return _vm.editProduct(product)
                          }
                        }
                      },
                      [_c("i", { staticClass: "fas fa-pencil-alt" })]
                    ),
                    _vm._v(" "),
                    _c(
                      "a",
                      {
                        staticClass: "btn btn-sm btn-default",
                        attrs: { href: "javascript:;" },
                        on: {
                          click: function($event) {
                            $event.preventDefault()
                            return _vm.deleteProduct(product)
                          }
                        }
                      },
                      [_c("i", { staticClass: "fas fa-trash-alt" })]
                    )
                  ])
                ])
              })
            ],
            2
          )
        ])
      ]),
      _vm._v(" "),
      _c("modal", {
        directives: [
          {
            name: "show",
            rawName: "v-show",
            value: _vm.editingItem != null,
            expression: "editingItem != null"
          }
        ],
        attrs: { errors: _vm.errors, product: _vm.editingItem },
        on: { hide: _vm.hideMode, close: _vm.endEditing }
      }),
      _vm._v(" "),
      _c("modal", {
        directives: [
          {
            name: "show",
            rawName: "v-show",
            value: _vm.addingProduct != null,
            expression: "addingProduct != null"
          }
        ],
        attrs: { errors: _vm.errors, product: _vm.addingProduct },
        on: { hide: _vm.hideMode, close: _vm.addProduct }
      })
    ],
    1
  )
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("thead", [
      _c("tr", [
        _c("th", { attrs: { width: "70" } }, [_vm._v("#")]),
        _vm._v(" "),
        _c("th", [_vm._v("Product")]),
        _vm._v(" "),
        _c("th", { staticStyle: { "min-width": "120px" } }, [
          _vm._v("Category Name")
        ]),
        _vm._v(" "),
        _c("th", { staticStyle: { "min-width": "70px" } }, [_vm._v("Price")]),
        _vm._v(" "),
        _c("th", { staticStyle: { "min-width": "70px" } }, [_vm._v("Days")]),
        _vm._v(" "),
        _c("th", [_vm._v("Description")]),
        _vm._v(" "),
        _c("th", { staticClass: "text-center", attrs: { width: "120" } }, [
          _vm._v(" Action ")
        ])
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Users.vue?vue&type=template&id=24d856e1&":
/*!*********************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/Users.vue?vue&type=template&id=24d856e1& ***!
  \*********************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "content-wrapper pb-0" }, [
    _vm.isLoading
      ? _c("div", { staticClass: "loading" }, [
          _c("img", {
            staticClass: "sidebar-brand-logo w-75 m-auto",
            attrs: { src: "/images/loader.svg", alt: "" }
          })
        ])
      : _vm._e(),
    _vm._v(" "),
    _c("div", { staticClass: "search_area" }, [
      _c("div", { staticClass: "container" }, [
        _c("div", { staticClass: "row mb-4" }, [
          _c("div", { staticClass: "col-7 col-md-5" }, [
            _c("label", [_vm._v("Search")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.search,
                  expression: "search"
                }
              ],
              staticClass: "form-control",
              attrs: { type: "text", id: "search", placeholder: "Search" },
              domProps: { value: _vm.search },
              on: {
                keyup: function($event) {
                  return _vm.searchFunction()
                },
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.search = $event.target.value
                }
              }
            })
          ])
        ])
      ])
    ]),
    _vm._v(" "),
    _c("div", { staticClass: "table-responsive" }, [
      _c("table", { staticClass: "table custom-table txt-dark" }, [
        _c("thead", [
          _c("tr", [
            _c("th", { attrs: { width: "70" } }, [_vm._v("#")]),
            _vm._v(" "),
            _c(
              "th",
              {
                on: {
                  click: function($event) {
                    return _vm.sorting("name")
                  }
                }
              },
              [_vm._v("Name "), _c("span", { attrs: { id: "name_icon" } })]
            ),
            _vm._v(" "),
            _c(
              "th",
              {
                on: {
                  click: function($event) {
                    return _vm.sorting("email")
                  }
                }
              },
              [_vm._v("Email "), _c("span", { attrs: { id: "email_icon" } })]
            ),
            _vm._v(" "),
            _c("th", [_vm._v("Joined")]),
            _vm._v(" "),
            _c("th", [_vm._v("Total Orders")]),
            _vm._v(" "),
            _c("th", [_vm._v("Action")])
          ])
        ]),
        _vm._v(" "),
        _c(
          "tbody",
          [
            _vm.users.datalength === 0
              ? _c("tr", [
                  _c(
                    "td",
                    { staticClass: "text-center", attrs: { colspan: "5" } },
                    [_vm._v("No Records found")]
                  )
                ])
              : _vm._e(),
            _vm._v(" "),
            _vm._l(_vm.users.data, function(user, index) {
              return _c("tr", { on: { key: index } }, [
                _c("td", [_vm._v(_vm._s(_vm.users.sno + index + 1))]),
                _vm._v(" "),
                _c("td", [_vm._v(_vm._s(user.name))]),
                _vm._v(" "),
                _c("td", [_vm._v(_vm._s(user.email))]),
                _vm._v(" "),
                _c("td", {
                  domProps: {
                    innerHTML: _vm._s(_vm.getDateFormat(user.created_at))
                  }
                }),
                _vm._v(" "),
                _c("td", [_vm._v(_vm._s(user.orders.length))]),
                _vm._v(" "),
                _c("td", [
                  user.status == "active"
                    ? _c(
                        "a",
                        {
                          staticClass: "btn btn-sm btn-secondary",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.changeStatus(user)
                            }
                          }
                        },
                        [_vm._v("Block")]
                      )
                    : _vm._e(),
                  _vm._v(" "),
                  user.status == "deactive"
                    ? _c(
                        "a",
                        {
                          staticClass: "btn btn-sm btn-danger",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.changeStatus(user)
                            }
                          }
                        },
                        [_vm._v("Unblock")]
                      )
                    : _vm._e()
                ])
              ])
            })
          ],
          2
        )
      ])
    ]),
    _vm._v(" "),
    _c(
      "div",
      { staticClass: "pagination" },
      [
        _c("pagination", {
          attrs: { data: _vm.users },
          on: { "pagination-change-page": _vm.getResults }
        })
      ],
      1
    )
  ])
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/about-us/About_us.vue?vue&type=template&id=0faf948c&":
/*!*********************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/about-us/About_us.vue?vue&type=template&id=0faf948c& ***!
  \*********************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "mt-5 ml-5" }, [
    _vm.isLoading
      ? _c("div", { staticClass: "loading" }, [
          _c("img", {
            staticClass: "sidebar-brand-logo w-75 m-auto",
            attrs: { src: "/images/loader.svg", alt: "" }
          })
        ])
      : _vm._e(),
    _vm._v(" "),
    _c("h3", { staticClass: "my-3 mb-3", attrs: { id: "heading" } }, [
      _vm._v("About Us")
    ]),
    _vm._v(" "),
    _c(
      "form",
      {
        attrs: {
          enctype: "multipart/form-data",
          method: "post",
          id: "edit_profile_form"
        }
      },
      [
        _c("div", { staticClass: "row" }, [
          _c(
            "div",
            { staticClass: "form-group col-md-6" },
            [
              _c("label", { attrs: { for: "about" } }, [_vm._v("Text")]),
              _vm._v(" "),
              _c("VueEmoji", {
                ref: "emoji",
                attrs: {
                  width: "100%",
                  height: "100",
                  value: _vm.aboutData.about
                },
                on: { input: _vm.onInput }
              }),
              _vm._v(" "),
              _vm.errors.about
                ? _c("span", { class: ["error_message"] }, [
                    _vm._v(_vm._s(_vm.errors.about[0]))
                  ])
                : _vm._e()
            ],
            1
          )
        ]),
        _vm._v(" "),
        _c("input", {
          directives: [
            {
              name: "model",
              rawName: "v-model",
              value: _vm.aboutData.id,
              expression: "aboutData.id"
            }
          ],
          staticClass: "form-control",
          attrs: { type: "hidden", name: "id", id: "id" },
          domProps: { value: _vm.aboutData.id },
          on: {
            input: function($event) {
              if ($event.target.composing) {
                return
              }
              _vm.$set(_vm.aboutData, "id", $event.target.value)
            }
          }
        }),
        _vm._v(" "),
        _c(
          "button",
          {
            staticClass: "btn btn-primary",
            attrs: { type: "submit" },
            on: { click: _vm.updateProfile }
          },
          [_vm._v("Update")]
        )
      ]
    )
  ])
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/account/Change_password.vue?vue&type=template&id=2b1dd5fe&":
/*!***************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/account/Change_password.vue?vue&type=template&id=2b1dd5fe& ***!
  \***************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "mt-5 ml-5" }, [
    _vm.isLoading
      ? _c("div", { staticClass: "loading" }, [
          _c("img", {
            staticClass: "sidebar-brand-logo w-75 m-auto",
            attrs: { src: "/images/loader.svg", alt: "" }
          })
        ])
      : _vm._e(),
    _vm._v(" "),
    _c("h3", { staticClass: "my-3", attrs: { id: "heading" } }, [
      _vm._v("Change Password")
    ]),
    _vm._v(" "),
    _c(
      "form",
      {
        attrs: {
          enctype: "multipart/form-data",
          method: "post",
          id: "change_password_form"
        }
      },
      [
        _c("div", { staticClass: "form-group col-md-4" }, [
          _c("label", { attrs: { for: "password" } }, [_vm._v("Password")]),
          _vm._v(" "),
          _c("input", {
            directives: [
              {
                name: "model",
                rawName: "v-model",
                value: _vm.password,
                expression: "password"
              }
            ],
            staticClass: "form-control",
            attrs: { type: "password", name: "password", id: "password" },
            domProps: { value: _vm.password },
            on: {
              input: function($event) {
                if ($event.target.composing) {
                  return
                }
                _vm.password = $event.target.value
              }
            }
          }),
          _vm._v(" "),
          _vm.errors.password
            ? _c("span", { class: ["error_message"] }, [
                _vm._v(_vm._s(_vm.errors.password[0]))
              ])
            : _vm._e()
        ]),
        _vm._v(" "),
        _c("div", { staticClass: "form-group col-md-4" }, [
          _c("label", { attrs: { for: "confirm_password" } }, [
            _vm._v("Confirm Password")
          ]),
          _vm._v(" "),
          _c("input", {
            directives: [
              {
                name: "model",
                rawName: "v-model",
                value: _vm.confirm_password,
                expression: "confirm_password"
              }
            ],
            staticClass: "form-control",
            attrs: {
              type: "password",
              name: "confirm_password",
              id: "confirm_password"
            },
            domProps: { value: _vm.confirm_password },
            on: {
              input: function($event) {
                if ($event.target.composing) {
                  return
                }
                _vm.confirm_password = $event.target.value
              }
            }
          }),
          _vm._v(" "),
          _vm.errors.confirm_password
            ? _c("span", { class: ["error_message"] }, [
                _vm._v(_vm._s(_vm.errors.confirm_password[0]))
              ])
            : _vm._e()
        ]),
        _vm._v(" "),
        _c(
          "button",
          {
            staticClass: "btn btn-primary",
            attrs: { type: "submit" },
            on: { click: _vm.updateChangePassword }
          },
          [_vm._v("Update")]
        )
      ]
    )
  ])
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/account/Edit_profile.vue?vue&type=template&id=1adf3f66&":
/*!************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/account/Edit_profile.vue?vue&type=template&id=1adf3f66& ***!
  \************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "mt-5 ml-5" }, [
    _vm.isLoading
      ? _c("div", { staticClass: "loading " }, [
          _c("img", {
            staticClass: "sidebar-brand-logo w-75 m-auto img-svg",
            attrs: { src: "/images/loader.gif", alt: "" }
          })
        ])
      : _vm._e(),
    _vm._v(" "),
    _c("h3", { staticClass: "my-3", attrs: { id: "heading" } }, [
      _vm._v("Edit Profile")
    ]),
    _vm._v(" "),
    _c(
      "form",
      {
        attrs: {
          enctype: "multipart/form-data",
          method: "post",
          id: "edit_profile_form"
        }
      },
      [
        _c("div", { staticClass: "row" }, [
          _c("div", { staticClass: "form-group col-md-3" }, [
            _c("label", { attrs: { for: "name" } }, [_vm._v("Name")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.user.name,
                  expression: "user.name"
                }
              ],
              staticClass: "form-control",
              attrs: { type: "text", name: "name", id: "name" },
              domProps: { value: _vm.user.name },
              on: {
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.$set(_vm.user, "name", $event.target.value)
                }
              }
            }),
            _vm._v(" "),
            _vm.errors.name
              ? _c("span", { class: ["error_message"] }, [
                  _vm._v(_vm._s(_vm.errors.name[0]))
                ])
              : _vm._e()
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "form-group col-md-3" }, [
            _c("label", { attrs: { for: "phone" } }, [_vm._v("Phone")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.user.phone,
                  expression: "user.phone"
                }
              ],
              staticClass: "form-control",
              attrs: {
                type: "text",
                placeholder: "Enter Phone Number",
                name: "phone",
                id: "phone"
              },
              domProps: { value: _vm.user.phone },
              on: {
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.$set(_vm.user, "phone", $event.target.value)
                }
              }
            }),
            _vm._v(" "),
            _vm.errors.phone
              ? _c("span", { class: ["error_message"] }, [
                  _vm._v(_vm._s(_vm.errors.phone[0]))
                ])
              : _vm._e()
          ])
        ]),
        _vm._v(" "),
        _c("div", { staticClass: "row" }, [
          _c("div", { staticClass: "form-group col-md-6" }, [
            _c("label", { attrs: { for: "email" } }, [_vm._v("Email")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.user.email,
                  expression: "user.email"
                }
              ],
              staticClass: "form-control",
              attrs: { type: "email", name: "email", id: "email" },
              domProps: { value: _vm.user.email },
              on: {
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.$set(_vm.user, "email", $event.target.value)
                }
              }
            }),
            _vm._v(" "),
            _vm.errors.email
              ? _c("span", { class: ["error_message"] }, [
                  _vm._v(_vm._s(_vm.errors.email[0]))
                ])
              : _vm._e()
          ])
        ]),
        _vm._v(" "),
        _c("div", { staticClass: "row" }, [
          _c("div", { staticClass: "form-group col-md-3" }, [
            _c("label", { attrs: { for: "location" } }, [_vm._v("Location")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.user.location,
                  expression: "user.location"
                }
              ],
              staticClass: "form-control",
              attrs: {
                type: "text",
                placeholder: "Enter Location",
                name: "location",
                id: "location"
              },
              domProps: { value: _vm.user.location },
              on: {
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.$set(_vm.user, "location", $event.target.value)
                }
              }
            }),
            _vm._v(" "),
            _vm.errors.location
              ? _c("span", { class: ["error_message"] }, [
                  _vm._v(_vm._s(_vm.errors.location[0]))
                ])
              : _vm._e()
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "form-group col-md-3" }, [
            _c("label", { attrs: { for: "age" } }, [_vm._v("Age")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.user.age,
                  expression: "user.age"
                }
              ],
              staticClass: "form-control",
              attrs: {
                type: "number",
                min: "1",
                placeholder: "Enter Age",
                name: "age",
                id: "age"
              },
              domProps: { value: _vm.user.age },
              on: {
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.$set(_vm.user, "age", $event.target.value)
                }
              }
            }),
            _vm._v(" "),
            _vm.errors.age
              ? _c("span", { class: ["error_message"] }, [
                  _vm._v(_vm._s(_vm.errors.age[0]))
                ])
              : _vm._e()
          ])
        ]),
        _vm._v(" "),
        _c("div", { staticClass: "row" }, [
          _c("div", { staticClass: "form-group col-md-3" }, [
            _c("label", { attrs: { for: "height" } }, [_vm._v("Height")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.user.height,
                  expression: "user.height"
                }
              ],
              staticClass: "form-control",
              attrs: {
                type: "text",
                placeholder: "Enter Height",
                name: "height",
                id: "height"
              },
              domProps: { value: _vm.user.height },
              on: {
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.$set(_vm.user, "height", $event.target.value)
                }
              }
            }),
            _vm._v(" "),
            _vm.errors.height
              ? _c("span", { class: ["error_message"] }, [
                  _vm._v(_vm._s(_vm.errors.height[0]))
                ])
              : _vm._e()
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "form-group col-md-3" }, [
            _c("label", { attrs: { for: "weight" } }, [_vm._v("Weight")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.user.weight,
                  expression: "user.weight"
                }
              ],
              staticClass: "form-control",
              attrs: {
                type: "text",
                placeholder: "Enter Weight",
                name: "weight",
                id: "weight"
              },
              domProps: { value: _vm.user.weight },
              on: {
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.$set(_vm.user, "weight", $event.target.value)
                }
              }
            }),
            _vm._v(" "),
            _vm.errors.weight
              ? _c("span", { class: ["error_message"] }, [
                  _vm._v(_vm._s(_vm.errors.weight[0]))
                ])
              : _vm._e()
          ])
        ]),
        _vm._v(" "),
        _c("div", { staticClass: "row" }, [
          _c("div", { staticClass: "form-group col-md-3" }, [
            _c("label", { attrs: { for: "eye" } }, [_vm._v("Eyes Color")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.user.eye,
                  expression: "user.eye"
                }
              ],
              staticClass: "form-control",
              attrs: {
                type: "text",
                placeholder: "Enter Eyes Color",
                name: "eye",
                id: "eye"
              },
              domProps: { value: _vm.user.eye },
              on: {
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.$set(_vm.user, "eye", $event.target.value)
                }
              }
            })
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "form-group col-md-3" }, [
            _c("label", { attrs: { for: "hair" } }, [_vm._v("Hair")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.user.hair,
                  expression: "user.hair"
                }
              ],
              staticClass: "form-control",
              attrs: {
                type: "text",
                placeholder: "Enter Hair Color",
                name: "hair",
                id: "hair"
              },
              domProps: { value: _vm.user.hair },
              on: {
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.$set(_vm.user, "hair", $event.target.value)
                }
              }
            })
          ])
        ]),
        _vm._v(" "),
        _vm._m(0),
        _vm._v(" "),
        _c("div", { staticClass: "row" }, [
          _vm.adminProfileImage.length > 0
            ? _c(
                "div",
                {
                  staticClass:
                    "form-group col-md-6 d-flex flex-wrap upload-view"
                },
                _vm._l(_vm.adminProfileImage, function(image, index) {
                  return _c(
                    "div",
                    {
                      class: "delete_index_" + index,
                      attrs: { "data-id": image.id },
                      on: { key: index }
                    },
                    [
                      _c(
                        "a",
                        {
                          staticClass: "image-cancel",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.deleteUplaodedFile(
                                "image",
                                image.id,
                                index
                              )
                            }
                          }
                        },
                        [_vm._v("x")]
                      ),
                      _vm._v(" "),
                      _c("img", {
                        staticClass: "img-thumbnail1",
                        attrs: { src: "/api/imagesView/" + image.image }
                      })
                    ]
                  )
                }),
                0
              )
            : _vm._e()
        ]),
        _vm._v(" "),
        _c("input", {
          directives: [
            {
              name: "model",
              rawName: "v-model",
              value: _vm.user.id,
              expression: "user.id"
            }
          ],
          staticClass: "form-control",
          attrs: { type: "hidden", name: "id", id: "id" },
          domProps: { value: _vm.user.id },
          on: {
            input: function($event) {
              if ($event.target.composing) {
                return
              }
              _vm.$set(_vm.user, "id", $event.target.value)
            }
          }
        }),
        _vm._v(" "),
        _c(
          "button",
          {
            staticClass: "btn btn-primary",
            attrs: { type: "submit" },
            on: { click: _vm.updateProfile }
          },
          [_vm._v("Update")]
        )
      ]
    )
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "row" }, [
      _c("div", { staticClass: "form-group col-md-6" }, [
        _c("label", { attrs: { for: "email" } }, [
          _vm._v("Upload(Max 3 files)")
        ]),
        _vm._v(" "),
        _c("input", {
          staticClass: "form-control",
          attrs: {
            type: "file",
            accept: ".jpg,.jpeg,.png",
            name: "aboutProfile",
            multiple: "",
            id: "aboutProfile"
          }
        })
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/category/Editor.vue?vue&type=template&id=d7fd5f12&scoped=true&":
/*!*******************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/category/Editor.vue?vue&type=template&id=d7fd5f12&scoped=true& ***!
  \*******************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    { staticClass: "modal-mask", attrs: { id: "EditInvestigator" } },
    [
      _c(
        "div",
        {
          staticClass: "modal-dialog modal-dialog-slideout",
          attrs: { role: "document" }
        },
        [
          _c("div", { staticClass: "modal-content" }, [
            _c("div", { staticClass: "modal-header" }, [
              _vm.data.heading == "add"
                ? _c(
                    "h5",
                    {
                      staticClass: "modal-title",
                      attrs: { id: "exampleModalLabel" }
                    },
                    [_vm._v("Add Category")]
                  )
                : _c(
                    "h5",
                    {
                      staticClass: "modal-title",
                      attrs: { id: "exampleModalLabel" }
                    },
                    [_vm._v("Edit Category")]
                  ),
              _vm._v(" "),
              _c(
                "button",
                {
                  staticClass: "close",
                  attrs: {
                    type: "button",
                    "data-dismiss": "modal",
                    "aria-label": "Close"
                  },
                  on: { click: _vm.hideMode }
                },
                [
                  _c("span", { attrs: { "aria-hidden": "true" } }, [
                    _vm._v("×")
                  ])
                ]
              )
            ]),
            _vm._v(" "),
            _c("div", { staticClass: "modal-body" }, [
              _c(
                "form",
                {
                  attrs: { enctype: "multipart/form-data", id: "categoryform" }
                },
                [
                  _c("input", {
                    staticClass: "form-control",
                    attrs: { type: "hidden", id: "id", value: "<%= id %>" }
                  }),
                  _vm._v(" "),
                  _c("div", { staticClass: "form-group" }, [
                    _vm._m(0),
                    _vm._v(" "),
                    _c("input", {
                      directives: [
                        {
                          name: "model",
                          rawName: "v-model",
                          value: _vm.data.name,
                          expression: "data.name"
                        }
                      ],
                      staticClass: "form-control",
                      attrs: {
                        type: "text",
                        id: "name",
                        placeholder: "Enter Category"
                      },
                      domProps: { value: _vm.data.name },
                      on: {
                        input: function($event) {
                          if ($event.target.composing) {
                            return
                          }
                          _vm.$set(_vm.data, "name", $event.target.value)
                        }
                      }
                    }),
                    _vm._v(" "),
                    _vm.errors.name
                      ? _c("span", { class: ["error_message"] }, [
                          _vm._v(_vm._s(_vm.errors.name[0]))
                        ])
                      : _vm._e()
                  ])
                ]
              )
            ]),
            _vm._v(" "),
            _c("div", { staticClass: "modal-footer" }, [
              _c(
                "button",
                {
                  staticClass: "btn btn-default",
                  attrs: { type: "button", "data-dismiss": "modal" },
                  on: { click: _vm.hideMode }
                },
                [_vm._v("Close")]
              ),
              _vm._v(" "),
              _vm.data.submit_button_text == "add"
                ? _c(
                    "button",
                    {
                      staticClass: "btn btn-primary",
                      attrs: { type: "button", disabled: _vm.data.isDisabled },
                      domProps: {
                        innerHTML: _vm._s(_vm.data.isLoadingButtonSave)
                      },
                      on: { click: _vm.uploadFile }
                    },
                    [_vm._v("Save")]
                  )
                : _c(
                    "button",
                    {
                      staticClass: "btn btn-primary",
                      attrs: { type: "button", disabled: _vm.data.isDisabled },
                      domProps: {
                        innerHTML: _vm._s(_vm.data.isLoadingButtonUpdate)
                      },
                      on: { click: _vm.uploadFile }
                    },
                    [_vm._v("Update")]
                  )
            ])
          ])
        ]
      )
    ]
  )
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("label", [
      _vm._v("Name "),
      _c("span", { staticClass: "mandatory" }, [_vm._v("*")])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/category/Index.vue?vue&type=template&id=50dbfd90&":
/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/category/Index.vue?vue&type=template&id=50dbfd90& ***!
  \******************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    { staticClass: "content-wrapper pb-0" },
    [
      _vm.isLoading
        ? _c("div", { staticClass: "loading" }, [
            _c("img", {
              staticClass: "sidebar-brand-logo w-75 m-auto",
              attrs: { src: "/images/loader.svg", alt: "" }
            })
          ])
        : _vm._e(),
      _vm._v(" "),
      _c("div", { staticClass: "search_area" }, [
        _c("div", { staticClass: "container" }, [
          _c("div", { staticClass: "row mb-4" }, [
            _c("div", { staticClass: "col-7 col-md-5" }, [
              _c("label", [_vm._v("Search")]),
              _vm._v(" "),
              _c("input", {
                directives: [
                  {
                    name: "model",
                    rawName: "v-model",
                    value: _vm.search,
                    expression: "search"
                  }
                ],
                staticClass: "form-control",
                attrs: { type: "text", id: "search", placeholder: "Search" },
                domProps: { value: _vm.search },
                on: {
                  keyup: function($event) {
                    return _vm.searchFunction()
                  },
                  input: function($event) {
                    if ($event.target.composing) {
                      return
                    }
                    _vm.search = $event.target.value
                  }
                }
              })
            ]),
            _vm._v(" "),
            _c("div", { staticClass: "col-7 text-right" }, [
              _c(
                "button",
                {
                  staticClass: "btn btn-primary mt-3 mb-md-0 mr-2 ",
                  on: { click: _vm.newCategory }
                },
                [_vm._v(" Add New Category")]
              )
            ])
          ])
        ])
      ]),
      _vm._v(" "),
      _c("div", { staticClass: "table-responsive" }, [
        _c("table", { staticClass: "table custom-table txt-dark" }, [
          _vm._m(0),
          _vm._v(" "),
          _c(
            "tbody",
            [
              _vm.categorys.datalength == 0
                ? _c("tr", [
                    _c(
                      "td",
                      { staticClass: "text-center", attrs: { colspan: "3" } },
                      [_vm._v("No Records found")]
                    )
                  ])
                : _vm._e(),
              _vm._v(" "),
              _vm._l(_vm.categorys.data, function(category, index) {
                return _c(
                  "tr",
                  {
                    class: "row_" + index,
                    attrs: { "data-id": category.id },
                    on: { key: index }
                  },
                  [
                    _c("td", [_vm._v(_vm._s(_vm.categorys.sno + index + 1))]),
                    _vm._v(" "),
                    _c("td", {
                      domProps: { innerHTML: _vm._s(category.name) }
                    }),
                    _vm._v(" "),
                    _c("td", { staticClass: "text-center" }, [
                      _c(
                        "a",
                        {
                          staticClass: "btn btn-sm btn-secondary",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              _vm.editingItem = category
                            }
                          }
                        },
                        [_c("i", { staticClass: "fas fa-pencil-alt" })]
                      ),
                      _vm._v(" "),
                      _c(
                        "a",
                        {
                          staticClass: "btn btn-sm btn-default",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              $event.preventDefault()
                              return _vm.deleteItem(category)
                            }
                          }
                        },
                        [_c("i", { staticClass: "fas fa-trash-alt" })]
                      )
                    ])
                  ]
                )
              })
            ],
            2
          )
        ])
      ]),
      _vm._v(" "),
      _c(
        "div",
        { staticClass: "pagination" },
        [
          _c("pagination", {
            attrs: { data: _vm.categorys },
            on: { "pagination-change-page": _vm.getResults }
          })
        ],
        1
      ),
      _vm._v(" "),
      _c("modal", {
        directives: [
          {
            name: "show",
            rawName: "v-show",
            value: _vm.editingItem != null,
            expression: "editingItem != null"
          }
        ],
        attrs: { errors: _vm.errors, category: _vm.editingItem },
        on: { hide: _vm.hideMode, close: _vm.endEditing }
      }),
      _vm._v(" "),
      _c("modal", {
        directives: [
          {
            name: "show",
            rawName: "v-show",
            value: _vm.addingCategory != null,
            expression: "addingCategory != null"
          }
        ],
        attrs: { errors: _vm.errors, category: _vm.addingCategory },
        on: { hide: _vm.hideMode, close: _vm.addCategory }
      }),
      _vm._v(" "),
      _c("br")
    ],
    1
  )
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("thead", [
      _c("tr", [
        _c("th", { attrs: { width: "70" } }, [_vm._v("#")]),
        _vm._v(" "),
        _c("th", [_vm._v("Category Name")]),
        _vm._v(" "),
        _c("th", { staticClass: "text-center", attrs: { width: "120" } }, [
          _vm._v(" Action ")
        ])
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/chat/Index.vue?vue&type=template&id=e71332dc&":
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/chat/Index.vue?vue&type=template&id=e71332dc& ***!
  \**************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("chat-window", {
    attrs: {
      "current-user-id": _vm.currentUserId,
      rooms: _vm.rooms,
      "rooms-loaded": _vm.roomsLoaded,
      messages: _vm.messages,
      "messages-loaded": _vm.messagesLoaded,
      "show-add-room": false,
      "show-audio": false
    },
    on: {
      "room-info": _vm.roomInformation,
      "open-file": _vm.openFile,
      "send-message": _vm.sendMessage,
      "fetch-messages": _vm.fetchMessages,
      "fetch-more-rooms": _vm.fetchMoreRooms
    }
  })
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/inquiry/Index.vue?vue&type=template&id=50808d63&":
/*!*****************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/inquiry/Index.vue?vue&type=template&id=50808d63& ***!
  \*****************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "content-wrapper pb-0" }, [
    _vm.isLoading
      ? _c("div", { staticClass: "loading" }, [
          _c("img", {
            staticClass: "sidebar-brand-logo w-75 m-auto",
            attrs: { src: "/images/loader.svg", alt: "" }
          })
        ])
      : _vm._e(),
    _vm._v(" "),
    _c("div", { staticClass: "search_area" }, [
      _c("div", { staticClass: "container" }, [
        _c("div", { staticClass: "row mb-4" }, [
          _c("div", { staticClass: "col-7 col-md-5" }, [
            _c("label", [_vm._v("Search")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.search,
                  expression: "search"
                }
              ],
              staticClass: "form-control",
              attrs: { type: "text", id: "search", placeholder: "Search" },
              domProps: { value: _vm.search },
              on: {
                keyup: _vm.searchFunction,
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.search = $event.target.value
                }
              }
            })
          ])
        ])
      ])
    ]),
    _vm._v(" "),
    _c("div", { staticClass: "table-responsive" }, [
      _c("table", { staticClass: "table custom-table txt-dark" }, [
        _vm._m(0),
        _vm._v(" "),
        _c(
          "tbody",
          [
            _vm.inquirys.datalength == 0
              ? _c("tr", [
                  _c(
                    "td",
                    { staticClass: "text-center", attrs: { colspan: "4" } },
                    [_vm._v("No Records found")]
                  )
                ])
              : _vm._e(),
            _vm._v(" "),
            _vm._l(_vm.inquirys.data, function(inquiry, index) {
              return _c(
                "tr",
                { attrs: { "data-id": inquiry.id }, on: { key: index } },
                [
                  _c("td", [_vm._v(_vm._s(_vm.inquirys.sno + index + 1))]),
                  _vm._v(" "),
                  _c("td", [
                    _vm._v(_vm._s(inquiry.fname) + " " + _vm._s(inquiry.lname))
                  ]),
                  _vm._v(" "),
                  _c("td", [_vm._v(_vm._s(inquiry.email))]),
                  _vm._v(" "),
                  _c("td", [_vm._v(_vm._s(inquiry.message))]),
                  _vm._v(" "),
                  _c("td", {
                    domProps: {
                      innerHTML: _vm._s(_vm.getDateFormat(inquiry.created_at))
                    }
                  })
                ]
              )
            })
          ],
          2
        )
      ])
    ]),
    _vm._v(" "),
    _c(
      "div",
      { staticClass: "pagination" },
      [
        _c("pagination", {
          attrs: { data: _vm.inquirys },
          on: { "pagination-change-page": _vm.getResults }
        })
      ],
      1
    ),
    _vm._v(" "),
    _c("br")
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("thead", [
      _c("tr", [
        _c("th", { staticStyle: { width: "70px" } }, [_vm._v("#")]),
        _vm._v(" "),
        _c("th", { staticStyle: { "min-width": "100px" } }, [_vm._v("Name")]),
        _vm._v(" "),
        _c("th", [_vm._v("Email")]),
        _vm._v(" "),
        _c("th", [_vm._v("Message")]),
        _vm._v(" "),
        _c("th", { staticStyle: { width: "150px" } }, [_vm._v("Date")])
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/message_price/Index.vue?vue&type=template&id=59fed56d&":
/*!***********************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/message_price/Index.vue?vue&type=template&id=59fed56d& ***!
  \***********************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "mt-5 ml-5" }, [
    _vm.isLoading
      ? _c("div", { staticClass: "loading " }, [
          _c("img", {
            staticClass: "sidebar-brand-logo w-75 m-auto img-svg",
            attrs: { src: "/images/loader.gif", alt: "" }
          })
        ])
      : _vm._e(),
    _vm._v(" "),
    _c("h3", { staticClass: "my-3", attrs: { id: "heading" } }, [
      _vm._v("Message Price")
    ]),
    _vm._v(" "),
    _c(
      "form",
      {
        attrs: {
          enctype: "multipart/form-data",
          method: "post",
          id: "edit_profile_form"
        }
      },
      [
        _c("div", { staticClass: "row" }, [
          _c("div", { staticClass: "form-group col-md-3" }, [
            _c("label", { attrs: { for: "name" } }, [
              _vm._v("Price (Set Price Per Message)")
            ]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.user.message_per_price,
                  expression: "user.message_per_price"
                }
              ],
              staticClass: "form-control",
              attrs: {
                type: "number",
                min: "0",
                name: "message_per_price",
                id: "message_per_price"
              },
              domProps: { value: _vm.user.message_per_price },
              on: {
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.$set(_vm.user, "message_per_price", $event.target.value)
                }
              }
            }),
            _vm._v(" "),
            _vm.errors.message_per_price
              ? _c("span", { class: ["error_message"] }, [
                  _vm._v(_vm._s(_vm.errors.message_per_price[0]))
                ])
              : _vm._e()
          ])
        ]),
        _vm._v(" "),
        _c("input", {
          directives: [
            {
              name: "model",
              rawName: "v-model",
              value: _vm.user.id,
              expression: "user.id"
            }
          ],
          staticClass: "form-control",
          attrs: { type: "hidden", name: "id", id: "id" },
          domProps: { value: _vm.user.id },
          on: {
            input: function($event) {
              if ($event.target.composing) {
                return
              }
              _vm.$set(_vm.user, "id", $event.target.value)
            }
          }
        }),
        _vm._v(" "),
        _c(
          "button",
          {
            staticClass: "btn btn-primary",
            attrs: { type: "submit" },
            on: { click: _vm.updateMessagePerPrice }
          },
          [_vm._v("Update")]
        )
      ]
    )
  ])
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/message_purchase_history/Index.vue?vue&type=template&id=0de442c8&":
/*!**********************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/message_purchase_history/Index.vue?vue&type=template&id=0de442c8& ***!
  \**********************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "content-wrapper pb-0" }, [
    _vm.isLoading
      ? _c("div", { staticClass: "loading" }, [
          _c("img", {
            staticClass: "sidebar-brand-logo w-75 m-auto",
            attrs: { src: "/images/loader.svg", alt: "" }
          })
        ])
      : _vm._e(),
    _vm._v(" "),
    _c("div", { staticClass: "search_area" }, [
      _c("div", { staticClass: "container" }, [
        _c("div", { staticClass: "row mb-4" }, [
          _c("div", { staticClass: "col-7 col-md-5" }, [
            _c("label", [_vm._v("Search")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.search,
                  expression: "search"
                }
              ],
              staticClass: "form-control",
              attrs: { type: "text", id: "search", placeholder: "Search" },
              domProps: { value: _vm.search },
              on: {
                keyup: function($event) {
                  return _vm.searchFunction()
                },
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.search = $event.target.value
                }
              }
            })
          ])
        ])
      ])
    ]),
    _vm._v(" "),
    _c("div", { staticClass: "table-responsive" }, [
      _c("table", { staticClass: "table custom-table txt-dark" }, [
        _vm._m(0),
        _vm._v(" "),
        _c(
          "tbody",
          [
            _vm.messageData.datalength === 0
              ? _c("tr", [
                  _c(
                    "td",
                    { staticClass: "text-center", attrs: { colspan: "7" } },
                    [_vm._v("No Records found")]
                  )
                ])
              : _vm._e(),
            _vm._v(" "),
            _vm._l(_vm.messageData.data, function(order, index) {
              return _c("tr", { on: { key: index } }, [
                _c("td", [_vm._v(_vm._s(_vm.messageData.sno + index + 1))]),
                _vm._v(" "),
                _c("td", [_vm._v(_vm._s(order.user_name))]),
                _vm._v(" "),
                _c("td", { domProps: { innerHTML: _vm._s(order.quantity) } }),
                _vm._v(" "),
                _c("td", [_vm._v("$" + _vm._s(order.message_per_price))]),
                _vm._v(" "),
                _c("td", {
                  domProps: {
                    innerHTML: _vm._s(
                      "$" + order.message_per_price * order.quantity
                    )
                  }
                }),
                _vm._v(" "),
                _c("td", {
                  domProps: {
                    innerHTML: _vm._s(_vm.getDateFormat(order.created_at))
                  }
                })
              ])
            })
          ],
          2
        )
      ])
    ]),
    _vm._v(" "),
    _c(
      "div",
      { staticClass: "pagination" },
      [
        _c("pagination", {
          attrs: { data: _vm.messageData },
          on: { "pagination-change-page": _vm.getResults }
        })
      ],
      1
    )
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("thead", [
      _c("tr", [
        _c("th", { attrs: { width: "70" } }, [_vm._v("#")]),
        _vm._v(" "),
        _c("th", [_vm._v("Customer Name")]),
        _vm._v(" "),
        _c("th", [_vm._v("Message Quantity")]),
        _vm._v(" "),
        _c("th", { staticStyle: { "min-width": "70px" } }, [
          _vm._v("Rate of Message")
        ]),
        _vm._v(" "),
        _c("th", { attrs: { width: "150" } }, [_vm._v("Total Price")]),
        _vm._v(" "),
        _c("th", { attrs: { width: "150" } }, [_vm._v("Purchase Date")])
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/newsletter/Index.vue?vue&type=template&id=9289311a&":
/*!********************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/newsletter/Index.vue?vue&type=template&id=9289311a& ***!
  \********************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "content-wrapper pb-0" }, [
    _vm.isLoading
      ? _c("div", { staticClass: "loading" }, [
          _c("img", {
            staticClass: "sidebar-brand-logo w-75 m-auto",
            attrs: { src: "/images/loader.svg", alt: "" }
          })
        ])
      : _vm._e(),
    _vm._v(" "),
    _c("div", { staticClass: "search_area" }, [
      _c("div", { staticClass: "container" }, [
        _c("div", { staticClass: "row mb-4" }, [
          _c("div", { staticClass: "col-7 col-md-5" }, [
            _c("label", [_vm._v("Search")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.search,
                  expression: "search"
                }
              ],
              staticClass: "form-control",
              attrs: { type: "text", id: "search", placeholder: "Search" },
              domProps: { value: _vm.search },
              on: {
                keyup: _vm.searchFunction,
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.search = $event.target.value
                }
              }
            })
          ])
        ])
      ])
    ]),
    _vm._v(" "),
    _c("div", { staticClass: "table-responsive" }, [
      _c("table", { staticClass: "table custom-table txt-dark" }, [
        _vm._m(0),
        _vm._v(" "),
        _c(
          "tbody",
          [
            _vm.newsletters.datalength == 0
              ? _c("tr", [
                  _c(
                    "td",
                    { staticClass: "text-center", attrs: { colspan: "4" } },
                    [_vm._v("No Records found")]
                  )
                ])
              : _vm._e(),
            _vm._v(" "),
            _vm._l(_vm.newsletters.data, function(newsletter, index) {
              return _c(
                "tr",
                { attrs: { "data-id": newsletter.id }, on: { key: index } },
                [
                  _c("td", [_vm._v(_vm._s(_vm.newsletters.sno + index + 1))]),
                  _vm._v(" "),
                  _c("td", [_vm._v(_vm._s(newsletter.email))]),
                  _vm._v(" "),
                  _c("td", {
                    domProps: {
                      innerHTML: _vm._s(
                        _vm.getDateFormat(newsletter.created_at)
                      )
                    }
                  })
                ]
              )
            })
          ],
          2
        )
      ])
    ]),
    _vm._v(" "),
    _c(
      "div",
      { staticClass: "pagination" },
      [
        _c("pagination", {
          attrs: { data: _vm.newsletters },
          on: { "pagination-change-page": _vm.getResults }
        })
      ],
      1
    ),
    _vm._v(" "),
    _c("br")
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("thead", [
      _c("tr", [
        _c("th", { attrs: { width: "70" } }, [_vm._v("#")]),
        _vm._v(" "),
        _c("th", [_vm._v("Email")]),
        _vm._v(" "),
        _c("th", { attrs: { width: "150" } }, [_vm._v("Date")])
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/order_tax/Index.vue?vue&type=template&id=cc154a54&":
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/order_tax/Index.vue?vue&type=template&id=cc154a54& ***!
  \*******************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "content-wrapper pb-0" }, [
    _vm.isLoading
      ? _c("div", { staticClass: "loading" }, [
          _c("img", {
            staticClass: "sidebar-brand-logo w-75 m-auto",
            attrs: { src: "/images/loader.svg", alt: "" }
          })
        ])
      : _vm._e(),
    _vm._v(" "),
    _c("div", { staticClass: "search_area" }, [
      _c("div", { staticClass: "container" }, [
        _c("div", { staticClass: "row mb-4 align-items-end" }, [
          _c("div", { staticClass: "col-4 col-md-4" }, [
            _c("label", [_vm._v("Search")]),
            _vm._v(" "),
            _c(
              "select",
              { staticClass: "form-control", on: { change: _vm.onSelectCode } },
              [
                _c("option", { attrs: { value: "" } }, [
                  _vm._v("Select Country Code")
                ]),
                _vm._v(" "),
                _vm._l(_vm.countries, function(country, index) {
                  return _c(
                    "option",
                    {
                      attrs: { "data-id": country.code },
                      domProps: { value: country.id },
                      on: { key: index }
                    },
                    [
                      _vm._v(
                        _vm._s(country.code) + " - " + _vm._s(country.name)
                      )
                    ]
                  )
                })
              ],
              2
            )
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "col-4 col-md-4" }, [
            _c("label", [_vm._v("Start Date")]),
            _vm._v(" "),
            _c("input", {
              staticClass: "form-control",
              attrs: { type: "date", name: "start_date", id: "start_date" },
              on: { change: _vm.startDateChange }
            })
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "col-4 col-md-4" }, [
            _c("label", [_vm._v("End Date")]),
            _vm._v(" "),
            _c("input", {
              staticClass: "form-control",
              attrs: { type: "date", name: "end_date", id: "end_date" },
              on: { change: _vm.endDateChange }
            })
          ])
        ])
      ])
    ]),
    _vm._v(" "),
    _c("div", { staticClass: "table-responsive" }, [
      _c("table", { staticClass: "table custom-table txt-dark" }, [
        _vm._m(0),
        _vm._v(" "),
        _c(
          "tbody",
          [
            _vm.orderTaxData.datalength === 0
              ? _c("tr", [
                  _c(
                    "td",
                    { staticClass: "text-center", attrs: { colspan: "7" } },
                    [_vm._v("No Records found")]
                  )
                ])
              : _vm._e(),
            _vm._v(" "),
            _vm._l(_vm.orderTaxData.data, function(tax, index) {
              return _c("tr", { on: { key: index } }, [
                _c("td", [_vm._v(_vm._s(_vm.orderTaxData.sno + index + 1))]),
                _vm._v(" "),
                _c("td", {
                  domProps: {
                    innerHTML: _vm._s(
                      tax.countr_code != null
                        ? tax.countr_code
                        : tax.country_code
                    )
                  }
                }),
                _vm._v(" "),
                _c("td", [_vm._v(_vm._s(tax.total_tax_price))])
              ])
            })
          ],
          2
        )
      ])
    ]),
    _vm._v(" "),
    _c(
      "div",
      { staticClass: "pagination" },
      [
        _c("pagination", {
          attrs: { data: _vm.orderTaxData },
          on: { "pagination-change-page": _vm.getResults }
        })
      ],
      1
    )
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("thead", [
      _c("tr", [
        _c("th", { attrs: { width: "70" } }, [_vm._v("#")]),
        _vm._v(" "),
        _c("th", [_vm._v("Country Code")]),
        _vm._v(" "),
        _c("th", [_vm._v("Tax Price")])
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=template&id=1974151e&scoped=true&":
/*!***************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=template&id=1974151e&scoped=true& ***!
  \***************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "modal-mask", attrs: { id: "EditTip" } }, [
    _c(
      "div",
      {
        staticClass: "modal-dialog modal-dialog-slideout",
        attrs: { role: "document" }
      },
      [
        _c("div", { staticClass: "modal-content" }, [
          _c("div", { staticClass: "modal-header" }, [
            _vm.data.heading == "add"
              ? _c(
                  "h5",
                  {
                    staticClass: "modal-title",
                    attrs: { id: "exampleModalLabel" }
                  },
                  [_vm._v("Add Tip")]
                )
              : _c(
                  "h5",
                  {
                    staticClass: "modal-title",
                    attrs: { id: "exampleModalLabel" }
                  },
                  [_vm._v("Edit Tip")]
                ),
            _vm._v(" "),
            _c(
              "button",
              {
                staticClass: "close",
                attrs: {
                  type: "button",
                  "data-dismiss": "modal",
                  "aria-label": "Close"
                },
                on: { click: _vm.hideMode }
              },
              [_c("span", { attrs: { "aria-hidden": "true" } }, [_vm._v("×")])]
            )
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "modal-body" }, [
            _c(
              "form",
              { attrs: { enctype: "multipart/form-data", id: "tipform" } },
              [
                _c("input", {
                  staticClass: "form-control",
                  attrs: { type: "hidden", id: "id", value: "<%= id %>" }
                }),
                _vm._v(" "),
                _c("div", { staticClass: "form-group" }, [
                  _vm._m(0),
                  _vm._v(" "),
                  _c("input", {
                    directives: [
                      {
                        name: "model",
                        rawName: "v-model",
                        value: _vm.data.amount,
                        expression: "data.amount"
                      }
                    ],
                    staticClass: "form-control",
                    attrs: {
                      type: "number",
                      id: "amount",
                      placeholder: "Enter Amount"
                    },
                    domProps: { value: _vm.data.amount },
                    on: {
                      input: function($event) {
                        if ($event.target.composing) {
                          return
                        }
                        _vm.$set(_vm.data, "amount", $event.target.value)
                      }
                    }
                  }),
                  _vm._v(" "),
                  _vm.errors.amount
                    ? _c("span", { class: ["error_message"] }, [
                        _vm._v(_vm._s(_vm.errors.amount[0]))
                      ])
                    : _vm._e()
                ])
              ]
            )
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "modal-footer" }, [
            _c(
              "button",
              {
                staticClass: "btn btn-default",
                attrs: { type: "button", "data-dismiss": "modal" },
                on: { click: _vm.hideMode }
              },
              [_vm._v("Close")]
            ),
            _vm._v(" "),
            _vm.data.submit_button_text == "add"
              ? _c(
                  "button",
                  {
                    staticClass: "btn btn-primary",
                    attrs: { type: "button", disabled: _vm.data.isDisabled },
                    domProps: {
                      innerHTML: _vm._s(_vm.data.isLoadingButtonSave)
                    },
                    on: { click: _vm.uploadFile }
                  },
                  [_vm._v("Save")]
                )
              : _c(
                  "button",
                  {
                    staticClass: "btn btn-primary",
                    attrs: { type: "button", disabled: _vm.data.isDisabled },
                    domProps: {
                      innerHTML: _vm._s(_vm.data.isLoadingButtonUpdate)
                    },
                    on: { click: _vm.uploadFile }
                  },
                  [_vm._v("Update")]
                )
          ])
        ])
      ]
    )
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("label", [
      _vm._v("Amount "),
      _c("span", { staticClass: "mandatory" }, [_vm._v("*")])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/product_comments/Index.vue?vue&type=template&id=6707d4fe&":
/*!**************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/product_comments/Index.vue?vue&type=template&id=6707d4fe& ***!
  \**************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "content-wrapper pb-0" }, [
    _vm.isLoading
      ? _c("div", { staticClass: "loading" }, [
          _c("img", {
            staticClass: "sidebar-brand-logo w-75 m-auto",
            attrs: { src: "/images/loader.svg", alt: "" }
          })
        ])
      : _vm._e(),
    _vm._v(" "),
    _c("div", { staticClass: "search_area" }, [
      _c("div", { staticClass: "container" }, [
        _c("div", { staticClass: "row mb-4 align-items-end" }, [
          _c("div", { staticClass: "col-6 col-md-5" }, [
            _c("label", [_vm._v("Search")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.search,
                  expression: "search"
                }
              ],
              staticClass: "form-control",
              attrs: { type: "text", id: "search", placeholder: "Search" },
              domProps: { value: _vm.search },
              on: {
                keyup: _vm.searchFunction,
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.search = $event.target.value
                }
              }
            })
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "col-6 col-md-5 text-right" }, [
            _c(
              "select",
              {
                staticClass: "form-control",
                attrs: { id: "filter" },
                on: { change: _vm.onFilterChange }
              },
              [
                _c("option", { attrs: { value: "" } }, [
                  _vm._v("Select Product")
                ]),
                _vm._v(" "),
                _vm._l(_vm.productList, function(product, index) {
                  return _c(
                    "option",
                    { domProps: { value: product.id }, on: { key: index } },
                    [_vm._v(_vm._s(product.name))]
                  )
                })
              ],
              2
            )
          ])
        ])
      ])
    ]),
    _vm._v(" "),
    _c("div", { staticClass: "table-responsive" }, [
      _c("table", { staticClass: "table custom-table txt-dark" }, [
        _c("thead", [
          _c("tr", [
            _c("th", { staticStyle: { width: "70px" } }, [_vm._v("#")]),
            _vm._v(" "),
            _c("th", { staticStyle: { "min-width": "100px" } }, [
              _vm._v("User Name")
            ]),
            _vm._v(" "),
            _c("th", { staticStyle: { "min-width": "100px" } }, [
              _vm._v("Product Name ")
            ]),
            _vm._v(" "),
            _c(
              "th",
              {
                on: {
                  click: function($event) {
                    return _vm.sorting(_vm.amount)
                  }
                }
              },
              [_vm._v("Comment")]
            ),
            _vm._v(" "),
            _c("th", { staticStyle: { width: "150px" } }, [
              _vm._v("Create Date")
            ]),
            _vm._v(" "),
            _c("th", { staticClass: "text-center", attrs: { width: "70" } }, [
              _vm._v(" Action ")
            ])
          ])
        ]),
        _vm._v(" "),
        _c(
          "tbody",
          [
            _vm.comments.datalength == 0
              ? _c("tr", [
                  _c(
                    "td",
                    { staticClass: "text-center", attrs: { colspan: "3" } },
                    [_vm._v("No Records found")]
                  )
                ])
              : _vm._e(),
            _vm._v(" "),
            _vm._l(_vm.comments.data, function(comment, index) {
              return _c(
                "tr",
                { attrs: { "data-id": comment.id }, on: { key: index } },
                [
                  _c("td", [_vm._v(_vm._s(_vm.comments.sno + index + 1))]),
                  _vm._v(" "),
                  _c("td", {
                    domProps: { innerHTML: _vm._s(comment.user_name) }
                  }),
                  _vm._v(" "),
                  _c("td", {
                    domProps: { innerHTML: _vm._s(comment.pro_name) }
                  }),
                  _vm._v(" "),
                  _c("td", {
                    domProps: { innerHTML: _vm._s(comment.message) }
                  }),
                  _vm._v(" "),
                  _c("td", {
                    domProps: {
                      innerHTML: _vm._s(_vm.getDateFormat(comment.created_at))
                    }
                  }),
                  _vm._v(" "),
                  _c("td", { staticClass: "text-center" }, [
                    _c(
                      "a",
                      {
                        staticClass: "btn btn-sm btn-default",
                        attrs: { href: "javascript:;" },
                        on: {
                          click: function($event) {
                            $event.preventDefault()
                            return _vm.deleteItem(comment)
                          }
                        }
                      },
                      [_c("i", { staticClass: "fas fa-trash-alt" })]
                    )
                  ])
                ]
              )
            })
          ],
          2
        )
      ])
    ]),
    _vm._v(" "),
    _c(
      "div",
      { staticClass: "pagination" },
      [
        _c("pagination", {
          attrs: { data: _vm.comments },
          on: { "pagination-change-page": _vm.getResults }
        })
      ],
      1
    ),
    _vm._v(" "),
    _c("br")
  ])
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tags/Editor.vue?vue&type=template&id=54e8ba08&scoped=true&":
/*!***************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tags/Editor.vue?vue&type=template&id=54e8ba08&scoped=true& ***!
  \***************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "modal-mask", attrs: { id: "EditTag" } }, [
    _c(
      "div",
      {
        staticClass: "modal-dialog modal-dialog-slideout",
        attrs: { role: "document" }
      },
      [
        _c("div", { staticClass: "modal-content" }, [
          _c("div", { staticClass: "modal-header" }, [
            _vm.data.heading == "add"
              ? _c(
                  "h5",
                  {
                    staticClass: "modal-title",
                    attrs: { id: "exampleModalLabel" }
                  },
                  [_vm._v("Add Tag")]
                )
              : _c(
                  "h5",
                  {
                    staticClass: "modal-title",
                    attrs: { id: "exampleModalLabel" }
                  },
                  [_vm._v("Edit Tag")]
                ),
            _vm._v(" "),
            _c(
              "button",
              {
                staticClass: "close",
                attrs: {
                  type: "button",
                  "data-dismiss": "modal",
                  "aria-label": "Close"
                },
                on: { click: _vm.hideMode }
              },
              [_c("span", { attrs: { "aria-hidden": "true" } }, [_vm._v("×")])]
            )
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "modal-body" }, [
            _c(
              "form",
              { attrs: { enctype: "multipart/form-data", id: "tagform" } },
              [
                _c("input", {
                  staticClass: "form-control",
                  attrs: { type: "hidden", id: "id", value: "<%= id %>" }
                }),
                _vm._v(" "),
                _c("div", { staticClass: "form-group" }, [
                  _vm._m(0),
                  _vm._v(" "),
                  _c("input", {
                    directives: [
                      {
                        name: "model",
                        rawName: "v-model",
                        value: _vm.data.name,
                        expression: "data.name"
                      }
                    ],
                    staticClass: "form-control",
                    attrs: {
                      type: "text",
                      id: "name",
                      placeholder: "Enter Tag"
                    },
                    domProps: { value: _vm.data.name },
                    on: {
                      input: function($event) {
                        if ($event.target.composing) {
                          return
                        }
                        _vm.$set(_vm.data, "name", $event.target.value)
                      }
                    }
                  }),
                  _vm._v(" "),
                  _vm.errors.name
                    ? _c("span", { class: ["error_message"] }, [
                        _vm._v(_vm._s(_vm.errors.name[0]))
                      ])
                    : _vm._e()
                ])
              ]
            )
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "modal-footer" }, [
            _c(
              "button",
              {
                staticClass: "btn btn-default",
                attrs: { type: "button", "data-dismiss": "modal" },
                on: { click: _vm.hideMode }
              },
              [_vm._v("Close")]
            ),
            _vm._v(" "),
            _vm.data.submit_button_text == "add"
              ? _c(
                  "button",
                  {
                    staticClass: "btn btn-primary",
                    attrs: { type: "button", disabled: _vm.data.isDisabled },
                    domProps: {
                      innerHTML: _vm._s(_vm.data.isLoadingButtonSave)
                    },
                    on: { click: _vm.uploadFile }
                  },
                  [_vm._v("Save")]
                )
              : _c(
                  "button",
                  {
                    staticClass: "btn btn-primary",
                    attrs: { type: "button", disabled: _vm.data.isDisabled },
                    domProps: {
                      innerHTML: _vm._s(_vm.data.isLoadingButtonUpdate)
                    },
                    on: { click: _vm.uploadFile }
                  },
                  [_vm._v("Update")]
                )
          ])
        ])
      ]
    )
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("label", [
      _vm._v("Name "),
      _c("span", { staticClass: "mandatory" }, [_vm._v("*")])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tags/Index.vue?vue&type=template&id=c03e6bda&":
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tags/Index.vue?vue&type=template&id=c03e6bda& ***!
  \**************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    { staticClass: "content-wrapper pb-0" },
    [
      _vm.isLoading
        ? _c("div", { staticClass: "loading" }, [
            _c("img", {
              staticClass: "sidebar-brand-logo w-75 m-auto",
              attrs: { src: "/images/loader.svg", alt: "" }
            })
          ])
        : _vm._e(),
      _vm._v(" "),
      _c("div", { staticClass: "search_area" }, [
        _c("div", { staticClass: "container" }, [
          _c("div", { staticClass: "row mb-4" }, [
            _c("div", { staticClass: "col-7 col-md-5" }, [
              _c("label", [_vm._v("Search")]),
              _vm._v(" "),
              _c("input", {
                directives: [
                  {
                    name: "model",
                    rawName: "v-model",
                    value: _vm.search,
                    expression: "search"
                  }
                ],
                staticClass: "form-control",
                attrs: { type: "text", id: "search", placeholder: "Search" },
                domProps: { value: _vm.search },
                on: {
                  keyup: function($event) {
                    return _vm.searchFunction()
                  },
                  input: function($event) {
                    if ($event.target.composing) {
                      return
                    }
                    _vm.search = $event.target.value
                  }
                }
              })
            ]),
            _vm._v(" "),
            _c("div", { staticClass: "col-7 text-right" }, [
              _c(
                "button",
                {
                  staticClass: "btn btn-primary mt-3 mb-md-0 mr-2 ",
                  on: { click: _vm.newTag }
                },
                [_vm._v(" Add New Tag")]
              )
            ])
          ])
        ])
      ]),
      _vm._v(" "),
      _c("div", { staticClass: "table-responsive" }, [
        _c("table", { staticClass: "table custom-table txt-dark" }, [
          _vm._m(0),
          _vm._v(" "),
          _c(
            "tbody",
            [
              _vm.tags.datalength === 0
                ? _c("tr", [
                    _c(
                      "td",
                      { staticClass: "text-center", attrs: { colspan: "3" } },
                      [_vm._v("No Records found")]
                    )
                  ])
                : _vm._e(),
              _vm._v(" "),
              _vm._l(_vm.tags.data, function(tag, index) {
                return _c(
                  "tr",
                  { attrs: { "data-id": tag.id }, on: { key: index } },
                  [
                    _c("td", [_vm._v(_vm._s(_vm.tags.sno + index + 1))]),
                    _vm._v(" "),
                    _c("td", { domProps: { innerHTML: _vm._s(tag.name) } }),
                    _vm._v(" "),
                    _c("td", { staticClass: "text-center" }, [
                      _c(
                        "a",
                        {
                          staticClass: "btn btn-sm btn-secondary",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              _vm.editingItem = tag
                            }
                          }
                        },
                        [_c("i", { staticClass: "fas fa-pencil-alt" })]
                      ),
                      _vm._v(" "),
                      _c(
                        "a",
                        {
                          staticClass: "btn btn-sm btn-default",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              $event.preventDefault()
                              return _vm.deleteItem(tag)
                            }
                          }
                        },
                        [_c("i", { staticClass: "fas fa-trash-alt" })]
                      )
                    ])
                  ]
                )
              })
            ],
            2
          )
        ])
      ]),
      _vm._v(" "),
      _c(
        "div",
        { staticClass: "pagination" },
        [
          _c("pagination", {
            attrs: { data: _vm.tags },
            on: { "pagination-change-page": _vm.getResults }
          })
        ],
        1
      ),
      _vm._v(" "),
      _c("modal", {
        directives: [
          {
            name: "show",
            rawName: "v-show",
            value: _vm.editingItem != null,
            expression: "editingItem != null"
          }
        ],
        attrs: { errors: _vm.errors, tag: _vm.editingItem },
        on: { hide: _vm.hideMode, close: _vm.endEditing }
      }),
      _vm._v(" "),
      _c("modal", {
        directives: [
          {
            name: "show",
            rawName: "v-show",
            value: _vm.addingTag != null,
            expression: "addingTag != null"
          }
        ],
        attrs: { errors: _vm.errors, tag: _vm.addingTag },
        on: { hide: _vm.hideMode, close: _vm.addTag }
      }),
      _vm._v(" "),
      _c("br")
    ],
    1
  )
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("thead", [
      _c("tr", [
        _c("th", { attrs: { width: "70" } }, [_vm._v("#")]),
        _vm._v(" "),
        _c("th", [_vm._v("Tag Name")]),
        _vm._v(" "),
        _c("th", { staticClass: "text-center", attrs: { width: "120" } }, [
          _vm._v(" Action ")
        ])
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tax/Editor.vue?vue&type=template&id=e1a31670&scoped=true&":
/*!**************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tax/Editor.vue?vue&type=template&id=e1a31670&scoped=true& ***!
  \**************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "modal-mask", attrs: { id: "EditTax" } }, [
    _c(
      "div",
      {
        staticClass: "modal-dialog modal-dialog-slideout",
        attrs: { role: "document" }
      },
      [
        _c("div", { staticClass: "modal-content" }, [
          _c("div", { staticClass: "modal-header" }, [
            _vm.data.heading == "add"
              ? _c(
                  "h5",
                  {
                    staticClass: "modal-title",
                    attrs: { id: "exampleModalLabel" }
                  },
                  [_vm._v("Add Tax")]
                )
              : _c(
                  "h5",
                  {
                    staticClass: "modal-title",
                    attrs: { id: "exampleModalLabel" }
                  },
                  [_vm._v("Edit Tax")]
                ),
            _vm._v(" "),
            _c(
              "button",
              {
                staticClass: "close",
                attrs: {
                  type: "button",
                  "data-dismiss": "modal",
                  "aria-label": "Close"
                },
                on: { click: _vm.hideMode }
              },
              [_c("span", { attrs: { "aria-hidden": "true" } }, [_vm._v("×")])]
            )
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "modal-body" }, [
            _c(
              "form",
              { attrs: { enctype: "multipart/form-data", id: "taxform" } },
              [
                _c("input", {
                  staticClass: "form-control",
                  attrs: { type: "hidden", id: "id", value: "<%= id %>" }
                }),
                _vm._v(" "),
                _c("div", { staticClass: "form-group" }, [
                  _vm._m(0),
                  _vm._v(" "),
                  _c("input", {
                    directives: [
                      {
                        name: "model",
                        rawName: "v-model",
                        value: _vm.data.name,
                        expression: "data.name"
                      }
                    ],
                    staticClass: "form-control",
                    attrs: {
                      type: "text",
                      id: "name",
                      placeholder: "Enter Tax Name"
                    },
                    domProps: { value: _vm.data.name },
                    on: {
                      input: function($event) {
                        if ($event.target.composing) {
                          return
                        }
                        _vm.$set(_vm.data, "name", $event.target.value)
                      }
                    }
                  }),
                  _vm._v(" "),
                  _vm.errors.name
                    ? _c("span", { class: ["error_message"] }, [
                        _vm._v(_vm._s(_vm.errors.name[0]))
                      ])
                    : _vm._e()
                ]),
                _vm._v(" "),
                _c("div", { staticClass: "form-group" }, [
                  _c(
                    "select",
                    {
                      staticClass: "form-control",
                      attrs: { id: "country_code" },
                      on: { change: _vm.selectCountryCode }
                    },
                    [
                      _c("option", [_vm._v("Please select country code")]),
                      _vm._v(" "),
                      _vm._l(_vm.countries, function(country, index) {
                        return _c(
                          "option",
                          {
                            attrs: { "data-id": country.code },
                            domProps: {
                              selected:
                                country.code == _vm.data.country_code
                                  ? true
                                  : false,
                              value: country.id
                            },
                            on: { key: index }
                          },
                          [
                            _vm._v(
                              _vm._s(country.code) +
                                " - " +
                                _vm._s(country.name)
                            )
                          ]
                        )
                      })
                    ],
                    2
                  ),
                  _vm._v(" "),
                  _vm.errors.country_code
                    ? _c("span", { class: ["error_message"] }, [
                        _vm._v(_vm._s(_vm.errors.country_code[0]))
                      ])
                    : _vm._e()
                ]),
                _vm._v(" "),
                _c("div", { staticClass: "form-group" }, [
                  _vm._m(1),
                  _vm._v(" "),
                  _c("input", {
                    directives: [
                      {
                        name: "model",
                        rawName: "v-model",
                        value: _vm.data.rate,
                        expression: "data.rate"
                      }
                    ],
                    staticClass: "form-control",
                    attrs: {
                      type: "text",
                      id: "rate",
                      placeholder: "Enter tax rate"
                    },
                    domProps: { value: _vm.data.rate },
                    on: {
                      input: function($event) {
                        if ($event.target.composing) {
                          return
                        }
                        _vm.$set(_vm.data, "rate", $event.target.value)
                      }
                    }
                  }),
                  _vm._v(" "),
                  _vm.errors.rate
                    ? _c("span", { class: ["error_message"] }, [
                        _vm._v(_vm._s(_vm.errors.rate[0]))
                      ])
                    : _vm._e()
                ])
              ]
            )
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "modal-footer" }, [
            _c(
              "button",
              {
                staticClass: "btn btn-default",
                attrs: { type: "button", "data-dismiss": "modal" },
                on: { click: _vm.hideMode }
              },
              [_vm._v("Close")]
            ),
            _vm._v(" "),
            _vm.data.submit_button_text == "add"
              ? _c(
                  "button",
                  {
                    staticClass: "btn btn-primary",
                    attrs: { type: "button", disabled: _vm.data.isDisabled },
                    domProps: {
                      innerHTML: _vm._s(_vm.data.isLoadingButtonSave)
                    },
                    on: { click: _vm.uploadFile }
                  },
                  [_vm._v("Save")]
                )
              : _c(
                  "button",
                  {
                    staticClass: "btn btn-primary",
                    attrs: { type: "button", disabled: _vm.data.isDisabled },
                    domProps: {
                      innerHTML: _vm._s(_vm.data.isLoadingButtonUpdate)
                    },
                    on: { click: _vm.uploadFile }
                  },
                  [_vm._v("Update")]
                )
          ])
        ])
      ]
    )
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("label", [
      _vm._v("Name "),
      _c("span", { staticClass: "mandatory" }, [_vm._v("*")])
    ])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("label", [
      _vm._v("Rate "),
      _c("span", { staticClass: "mandatory" }, [_vm._v("*")])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tax/Index.vue?vue&type=template&id=08f68ec7&":
/*!*************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tax/Index.vue?vue&type=template&id=08f68ec7& ***!
  \*************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    { staticClass: "content-wrapper pb-0" },
    [
      _vm.isLoading
        ? _c("div", { staticClass: "loading" }, [
            _c("img", {
              staticClass: "sidebar-brand-logo w-75 m-auto",
              attrs: { src: "/images/loader.svg", alt: "" }
            })
          ])
        : _vm._e(),
      _vm._v(" "),
      _c("div", { staticClass: "search_area" }, [
        _c("div", { staticClass: "container" }, [
          _c("div", { staticClass: "row mb-4" }, [
            _c("div", { staticClass: "col-7 col-md-5" }, [
              _c("label", [_vm._v("Search")]),
              _vm._v(" "),
              _c("input", {
                directives: [
                  {
                    name: "model",
                    rawName: "v-model",
                    value: _vm.search,
                    expression: "search"
                  }
                ],
                staticClass: "form-control",
                attrs: { type: "text", id: "search", placeholder: "Search" },
                domProps: { value: _vm.search },
                on: {
                  keyup: function($event) {
                    return _vm.searchFunction()
                  },
                  input: function($event) {
                    if ($event.target.composing) {
                      return
                    }
                    _vm.search = $event.target.value
                  }
                }
              })
            ]),
            _vm._v(" "),
            _c("div", { staticClass: "col-7 text-right" }, [
              _c(
                "button",
                {
                  staticClass: "btn btn-primary mt-3 mb-md-0 mr-2 ",
                  on: { click: _vm.newTax }
                },
                [_vm._v(" Add New Tax")]
              )
            ])
          ])
        ])
      ]),
      _vm._v(" "),
      _c("div", { staticClass: "table-responsive" }, [
        _c("table", { staticClass: "table custom-table txt-dark" }, [
          _vm._m(0),
          _vm._v(" "),
          _c(
            "tbody",
            [
              _vm.taxs.datalength == 0
                ? _c("tr", [
                    _c(
                      "td",
                      { staticClass: "text-center", attrs: { colspan: "6" } },
                      [_vm._v("No Records found")]
                    )
                  ])
                : _vm._e(),
              _vm._v(" "),
              _vm._l(_vm.taxs.data, function(tax, index) {
                return _c(
                  "tr",
                  { attrs: { "data-id": tax.id }, on: { key: index } },
                  [
                    _c("td", [_vm._v(_vm._s(_vm.taxs.sno + index + 1))]),
                    _vm._v(" "),
                    _c("td", { domProps: { innerHTML: _vm._s(tax.name) } }),
                    _vm._v(" "),
                    _c("td", {
                      domProps: {
                        innerHTML: _vm._s(
                          tax.countr_code != null
                            ? tax.countr_code
                            : tax.country_code
                        )
                      }
                    }),
                    _vm._v(" "),
                    _c("td", { domProps: { innerHTML: _vm._s(tax.rate) } }),
                    _vm._v(" "),
                    _c("td", { staticClass: "text-center" }, [
                      _c(
                        "a",
                        {
                          staticClass: "btn btn-sm btn-secondary",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              _vm.editingItem = tax
                            }
                          }
                        },
                        [_c("i", { staticClass: "fas fa-pencil-alt" })]
                      ),
                      _vm._v(" "),
                      _c(
                        "a",
                        {
                          staticClass: "btn btn-sm btn-default",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              $event.preventDefault()
                              return _vm.deleteItem(tax)
                            }
                          }
                        },
                        [_c("i", { staticClass: "fas fa-trash-alt" })]
                      )
                    ])
                  ]
                )
              })
            ],
            2
          )
        ])
      ]),
      _vm._v(" "),
      _c(
        "div",
        { staticClass: "pagination" },
        [
          _c("pagination", {
            attrs: { data: _vm.taxs },
            on: { "pagination-change-page": _vm.getResults }
          })
        ],
        1
      ),
      _vm._v(" "),
      _c("modal", {
        directives: [
          {
            name: "show",
            rawName: "v-show",
            value: _vm.editingItem != null,
            expression: "editingItem != null"
          }
        ],
        attrs: {
          errors: _vm.errors,
          countries: _vm.countries,
          tax: _vm.editingItem
        },
        on: { hide: _vm.hideMode, close: _vm.endEditing }
      }),
      _vm._v(" "),
      _c("modal", {
        directives: [
          {
            name: "show",
            rawName: "v-show",
            value: _vm.addingTax != null,
            expression: "addingTax != null"
          }
        ],
        attrs: {
          errors: _vm.errors,
          countries: _vm.countries,
          tax: _vm.addingTax
        },
        on: { hide: _vm.hideMode, close: _vm.addTax }
      }),
      _vm._v(" "),
      _c("br")
    ],
    1
  )
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("thead", [
      _c("tr", [
        _c("th", [_vm._v("#")]),
        _vm._v(" "),
        _c("th", [_vm._v("Tax Name")]),
        _vm._v(" "),
        _c("th", [_vm._v("Country Code")]),
        _vm._v(" "),
        _c("th", [_vm._v("Rate %")]),
        _vm._v(" "),
        _c("th", { staticClass: "text-center", attrs: { width: "120" } }, [
          _vm._v(" Action ")
        ])
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tip_history/Index.vue?vue&type=template&id=565e6668&":
/*!*********************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tip_history/Index.vue?vue&type=template&id=565e6668& ***!
  \*********************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "content-wrapper pb-0" }, [
    _vm.isLoading
      ? _c("div", { staticClass: "loading" }, [
          _c("img", {
            staticClass: "sidebar-brand-logo w-75 m-auto",
            attrs: { src: "/images/loader.svg", alt: "" }
          })
        ])
      : _vm._e(),
    _vm._v(" "),
    _c("div", { staticClass: "search_area" }, [
      _c("div", { staticClass: "container" }, [
        _c("div", { staticClass: "row mb-4" }, [
          _c("div", { staticClass: "col-7 col-md-5" }, [
            _c("label", [_vm._v("Search")]),
            _vm._v(" "),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.search,
                  expression: "search"
                }
              ],
              staticClass: "form-control",
              attrs: { type: "text", id: "search", placeholder: "Search" },
              domProps: { value: _vm.search },
              on: {
                keyup: _vm.searchFunction,
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.search = $event.target.value
                }
              }
            })
          ])
        ])
      ])
    ]),
    _vm._v(" "),
    _c("div", { staticClass: "table-responsive" }, [
      _c("table", { staticClass: "table custom-table txt-dark" }, [
        _vm._m(0),
        _vm._v(" "),
        _c(
          "tbody",
          [
            _vm.tip_history.datalength == 0
              ? _c("tr", [
                  _c(
                    "td",
                    { staticClass: "text-center", attrs: { colspan: "4" } },
                    [_vm._v("No Records found")]
                  )
                ])
              : _vm._e(),
            _vm._v(" "),
            _vm._l(_vm.tip_history.data, function(data, index) {
              return _c(
                "tr",
                { attrs: { "data-id": data.id }, on: { key: index } },
                [
                  _c("td", [_vm._v(_vm._s(_vm.tip_history.sno + index + 1))]),
                  _vm._v(" "),
                  _c("td", [_vm._v(_vm._s(data.user_name))]),
                  _vm._v(" "),
                  _c("td", [_vm._v("$" + _vm._s(data.amount))]),
                  _vm._v(" "),
                  _c("td", {
                    domProps: {
                      innerHTML: _vm._s(_vm.getDateFormat(data.created_at))
                    }
                  })
                ]
              )
            })
          ],
          2
        )
      ])
    ]),
    _vm._v(" "),
    _c(
      "div",
      { staticClass: "pagination" },
      [
        _c("pagination", {
          attrs: { data: _vm.tip_history },
          on: { "pagination-change-page": _vm.getResults }
        })
      ],
      1
    ),
    _vm._v(" "),
    _c("br")
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("thead", [
      _c("tr", [
        _c("th", { attrs: { width: "70" } }, [_vm._v("#")]),
        _vm._v(" "),
        _c("th", { staticStyle: { "min-width": "150px" } }, [
          _vm._v("Customer Name")
        ]),
        _vm._v(" "),
        _c("th", [_vm._v("Tip Amount")]),
        _vm._v(" "),
        _c("th", { attrs: { width: "150" } }, [_vm._v("Date")])
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tips/Editor.vue?vue&type=template&id=47152a7d&scoped=true&":
/*!***************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tips/Editor.vue?vue&type=template&id=47152a7d&scoped=true& ***!
  \***************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "modal-mask", attrs: { id: "EditTip" } }, [
    _c(
      "div",
      {
        staticClass: "modal-dialog modal-dialog-slideout",
        attrs: { role: "document" }
      },
      [
        _c("div", { staticClass: "modal-content" }, [
          _c("div", { staticClass: "modal-header" }, [
            _vm.data.heading == "add"
              ? _c(
                  "h5",
                  {
                    staticClass: "modal-title",
                    attrs: { id: "exampleModalLabel" }
                  },
                  [_vm._v("Add Tip")]
                )
              : _c(
                  "h5",
                  {
                    staticClass: "modal-title",
                    attrs: { id: "exampleModalLabel" }
                  },
                  [_vm._v("Edit Tip")]
                ),
            _vm._v(" "),
            _c(
              "button",
              {
                staticClass: "close",
                attrs: {
                  type: "button",
                  "data-dismiss": "modal",
                  "aria-label": "Close"
                },
                on: { click: _vm.hideMode }
              },
              [_c("span", { attrs: { "aria-hidden": "true" } }, [_vm._v("×")])]
            )
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "modal-body" }, [
            _c(
              "form",
              { attrs: { enctype: "multipart/form-data", id: "tipform" } },
              [
                _c("input", {
                  staticClass: "form-control",
                  attrs: { type: "hidden", id: "id", value: "<%= id %>" }
                }),
                _vm._v(" "),
                _c("div", { staticClass: "form-group" }, [
                  _vm._m(0),
                  _vm._v(" "),
                  _c("input", {
                    directives: [
                      {
                        name: "model",
                        rawName: "v-model",
                        value: _vm.data.amount,
                        expression: "data.amount"
                      }
                    ],
                    staticClass: "form-control",
                    attrs: {
                      type: "number",
                      id: "amount",
                      placeholder: "Enter Amount"
                    },
                    domProps: { value: _vm.data.amount },
                    on: {
                      input: function($event) {
                        if ($event.target.composing) {
                          return
                        }
                        _vm.$set(_vm.data, "amount", $event.target.value)
                      }
                    }
                  }),
                  _vm._v(" "),
                  _vm.errors.amount
                    ? _c("span", { class: ["error_message"] }, [
                        _vm._v(_vm._s(_vm.errors.amount[0]))
                      ])
                    : _vm._e()
                ])
              ]
            )
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "modal-footer" }, [
            _c(
              "button",
              {
                staticClass: "btn btn-default",
                attrs: { type: "button", "data-dismiss": "modal" },
                on: { click: _vm.hideMode }
              },
              [_vm._v("Close")]
            ),
            _vm._v(" "),
            _vm.data.submit_button_text == "add"
              ? _c(
                  "button",
                  {
                    staticClass: "btn btn-primary",
                    attrs: { type: "button", disabled: _vm.data.isDisabled },
                    domProps: {
                      innerHTML: _vm._s(_vm.data.isLoadingButtonSave)
                    },
                    on: { click: _vm.uploadFile }
                  },
                  [_vm._v("Save")]
                )
              : _c(
                  "button",
                  {
                    staticClass: "btn btn-primary",
                    attrs: { type: "button", disabled: _vm.data.isDisabled },
                    domProps: {
                      innerHTML: _vm._s(_vm.data.isLoadingButtonUpdate)
                    },
                    on: { click: _vm.uploadFile }
                  },
                  [_vm._v("Update")]
                )
          ])
        ])
      ]
    )
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("label", [
      _vm._v("Amount (in $)"),
      _c("span", { staticClass: "mandatory" }, [_vm._v("*")])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tips/Index.vue?vue&type=template&id=5937ce72&":
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/admin/tips/Index.vue?vue&type=template&id=5937ce72& ***!
  \**************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    { staticClass: "content-wrapper pb-0" },
    [
      _vm.isLoading
        ? _c("div", { staticClass: "loading" }, [
            _c("img", {
              staticClass: "sidebar-brand-logo w-75 m-auto",
              attrs: { src: "/images/loader.svg", alt: "" }
            })
          ])
        : _vm._e(),
      _vm._v(" "),
      _c("div", { staticClass: "search_area" }, [
        _c("div", { staticClass: "container" }, [
          _c("div", { staticClass: "row mb-4" }, [
            _c("div", { staticClass: "col-7 col-md-5" }, [
              _c("label", [_vm._v("Search")]),
              _vm._v(" "),
              _c("input", {
                directives: [
                  {
                    name: "model",
                    rawName: "v-model",
                    value: _vm.search,
                    expression: "search"
                  }
                ],
                staticClass: "form-control",
                attrs: { type: "text", id: "search", placeholder: "Search" },
                domProps: { value: _vm.search },
                on: {
                  keyup: _vm.searchFunction,
                  input: function($event) {
                    if ($event.target.composing) {
                      return
                    }
                    _vm.search = $event.target.value
                  }
                }
              })
            ]),
            _vm._v(" "),
            _c("div", { staticClass: "col-7 text-right" }, [
              _c(
                "button",
                {
                  staticClass: "btn btn-primary mt-3 mb-md-0 mr-2 ",
                  on: { click: _vm.newTip }
                },
                [_vm._v(" Add New Tip")]
              )
            ])
          ])
        ])
      ]),
      _vm._v(" "),
      _c("div", { staticClass: "table-responsive" }, [
        _c("table", { staticClass: "table custom-table txt-dark" }, [
          _c("thead", [
            _c("tr", [
              _c("th", { staticStyle: { width: "70px" } }, [_vm._v("#")]),
              _vm._v(" "),
              _c(
                "th",
                {
                  on: {
                    click: function($event) {
                      return _vm.sorting("amount")
                    }
                  }
                },
                [
                  _vm._v("Tip Amount "),
                  _c("span", { attrs: { id: "amount_icon" } })
                ]
              ),
              _vm._v(" "),
              _c(
                "th",
                { staticClass: "text-center", attrs: { width: "120" } },
                [_vm._v(" Action ")]
              )
            ])
          ]),
          _vm._v(" "),
          _c(
            "tbody",
            [
              _vm.tips.datalength == 0
                ? _c("tr", [
                    _c(
                      "td",
                      { staticClass: "text-center", attrs: { colspan: "3" } },
                      [_vm._v("No Records found")]
                    )
                  ])
                : _vm._e(),
              _vm._v(" "),
              _vm._l(_vm.tips.data, function(tip, index) {
                return _c(
                  "tr",
                  { attrs: { "data-id": tip.id }, on: { key: index } },
                  [
                    _c("td", [_vm._v(_vm._s(_vm.tips.sno + index + 1))]),
                    _vm._v(" "),
                    _c("td", [_vm._v("$" + _vm._s(tip.amount))]),
                    _vm._v(" "),
                    _c("td", { staticClass: "text-center" }, [
                      _c(
                        "a",
                        {
                          staticClass: "btn btn-sm btn-secondary",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              _vm.editingItem = tip
                            }
                          }
                        },
                        [_c("i", { staticClass: "fas fa-pencil-alt" })]
                      ),
                      _vm._v(" "),
                      _c(
                        "a",
                        {
                          staticClass: "btn btn-sm btn-default",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              $event.preventDefault()
                              return _vm.deleteItem(tip)
                            }
                          }
                        },
                        [_c("i", { staticClass: "fas fa-trash-alt" })]
                      )
                    ])
                  ]
                )
              })
            ],
            2
          )
        ])
      ]),
      _vm._v(" "),
      _c(
        "div",
        { staticClass: "pagination" },
        [
          _c("pagination", {
            attrs: { data: _vm.tips },
            on: { "pagination-change-page": _vm.getResults }
          })
        ],
        1
      ),
      _vm._v(" "),
      _c("modal", {
        directives: [
          {
            name: "show",
            rawName: "v-show",
            value: _vm.editingItem != null,
            expression: "editingItem != null"
          }
        ],
        attrs: { errors: _vm.errors, tip: _vm.editingItem },
        on: { hide: _vm.hideMode, close: _vm.endEditing }
      }),
      _vm._v(" "),
      _c("modal", {
        directives: [
          {
            name: "show",
            rawName: "v-show",
            value: _vm.addingTip != null,
            expression: "addingTip != null"
          }
        ],
        attrs: { errors: _vm.errors, tip: _vm.addingTip },
        on: { hide: _vm.hideMode, close: _vm.addTip }
      }),
      _vm._v(" "),
      _c("br")
    ],
    1
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/Banner.vue?vue&type=template&id=5f3237c6&":
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/home/Banner.vue?vue&type=template&id=5f3237c6& ***!
  \*******************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "banner" }, [
    _c("div", { staticClass: "container-fluid" }, [
      _c("div", { staticClass: "swiper-banner" }, [
        _c("div", { staticClass: "swiper-wrapper" }, [
          _c("div", { staticClass: "swiper-slide" }, [
            _c("div", { staticClass: "row align-items-center" }, [
              _vm._m(0),
              _vm._v(" "),
              _c("div", { staticClass: "col-sm-5" }, [
                _c("div", { staticClass: "banner_content" }, [
                  _c("h6", [_vm._v("WELCOME TO MY PRIVATE WORLD")]),
                  _vm._v(" "),
                  _c("h1", [_vm._v("SweManda")]),
                  _vm._v(" "),
                  _vm._m(1),
                  _vm._v(" "),
                  _c(
                    "a",
                    {
                      staticClass: "btn btn-outline-primary mt-3",
                      attrs: { href: "javascript:;" },
                      on: {
                        click: function($event) {
                          return _vm.goToPremium("premium")
                        }
                      }
                    },
                    [_vm._v("Premium")]
                  )
                ])
              ])
            ])
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "swiper-slide" }, [
            _c("div", { staticClass: "row align-items-center" }, [
              _vm._m(2),
              _vm._v(" "),
              _c("div", { staticClass: "col-sm-5" }, [
                _c("div", { staticClass: "banner_content" }, [
                  _c("h6", [_vm._v("WELCOME TO MY PRIVATE WORLD")]),
                  _vm._v(" "),
                  _c("h1", [_vm._v("SweManda")]),
                  _vm._v(" "),
                  _vm._m(3),
                  _vm._v(" "),
                  _c(
                    "a",
                    {
                      staticClass: "btn btn-outline-primary mt-3",
                      attrs: { href: "javascript:;" },
                      on: {
                        click: function($event) {
                          return _vm.goToPremium("premium")
                        }
                      }
                    },
                    [_vm._v("Premium")]
                  )
                ])
              ])
            ])
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "swiper-slide" }, [
            _c("div", { staticClass: "row align-items-center" }, [
              _vm._m(4),
              _vm._v(" "),
              _c("div", { staticClass: "col-sm-5" }, [
                _c("div", { staticClass: "banner_content" }, [
                  _c("h6", [_vm._v("WELCOME TO MY PRIVATE WORLD")]),
                  _vm._v(" "),
                  _c("h1", [_vm._v("SweManda")]),
                  _vm._v(" "),
                  _vm._m(5),
                  _vm._v(" "),
                  _c(
                    "a",
                    {
                      staticClass: "btn btn-outline-primary mt-3",
                      attrs: { href: "javascript:;" },
                      on: {
                        click: function($event) {
                          return _vm.goToPremium("premium")
                        }
                      }
                    },
                    [_vm._v("Premium")]
                  )
                ])
              ])
            ])
          ])
        ]),
        _vm._v(" "),
        _c("div", { staticClass: "swiper-pagination" })
      ])
    ])
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "col-sm-7" }, [
      _c("img", { attrs: { src: "/img/SweManda-banner1.png" } })
    ])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("p", [
      _c("span", [_vm._v("Swedish girl")]),
      _vm._v(" "),
      _c("span", [_vm._v("Model")]),
      _vm._v(" "),
      _c("span", [_vm._v("Adult actress")]),
      _vm._v(" "),
      _c("span", [_vm._v("Personal Trainer")]),
      _vm._v(" "),
      _c("span", [_vm._v("Influencer")]),
      _vm._v(" "),
      _c("span", [_vm._v("Investor")])
    ])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "col-sm-7" }, [
      _c("img", { attrs: { src: "/img/SweManda-banner.png" } })
    ])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("p", [
      _c("span", [_vm._v("Swedish girl")]),
      _vm._v(" "),
      _c("span", [_vm._v("Model")]),
      _vm._v(" "),
      _c("span", [_vm._v("Adult actress")]),
      _vm._v(" "),
      _c("span", [_vm._v("Personal Trainer")]),
      _vm._v(" "),
      _c("span", [_vm._v("Influencer")]),
      _vm._v(" "),
      _c("span", [_vm._v("Investor")])
    ])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "col-sm-7" }, [
      _c("img", { attrs: { src: "/img/SweManda-banner2.png" } })
    ])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("p", [
      _c("span", [_vm._v("Swedish girl")]),
      _vm._v(" "),
      _c("span", [_vm._v("Model")]),
      _vm._v(" "),
      _c("span", [_vm._v("Adult actress")]),
      _vm._v(" "),
      _c("span", [_vm._v("Personal Trainer")]),
      _vm._v(" "),
      _c("span", [_vm._v("Influencer")]),
      _vm._v(" "),
      _c("span", [_vm._v("Investor")])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/BuyNow.vue?vue&type=template&id=50fc0161&":
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/home/BuyNow.vue?vue&type=template&id=50fc0161& ***!
  \*******************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "add-area" }, [
    _c("img", { attrs: { src: "/img/add.jpg", alt: "add" } }),
    _vm._v(" "),
    _c("div", { staticClass: "container" }, [
      _c("div", { staticClass: "row" }, [
        _c("div", { staticClass: "col-sm-8 offset-sm-4" }, [
          _c("div", [
            _c("h3", [
              _vm._v(
                "Gorgeous, just gorgeous Purchase Premium Videos & Images "
              )
            ]),
            _vm._v(" "),
            _c(
              "a",
              {
                staticClass: "btn btn-primary",
                attrs: { href: "javascript:;" },
                on: {
                  click: function($event) {
                    return _vm.goToPremium("premium")
                  }
                }
              },
              [_vm._v("Buy Now")]
            )
          ])
        ])
      ])
    ])
  ])
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/BuyTip.vue?vue&type=template&id=f87ca6b4&":
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/home/BuyTip.vue?vue&type=template&id=f87ca6b4& ***!
  \*******************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(
        "div",
        {
          staticClass: "container content-section tip-page",
          attrs: { id: "accordion" }
        },
        [
          _c("div", { staticClass: "row no-gutters" }, [
            _c("div", { staticClass: "col-sm-9" }, [
              _c("div", { staticClass: "main-content" }, [
                _c("h2", [_vm._v("Send Tip")]),
                _vm._v(" "),
                _c("hr"),
                _vm._v(" "),
                _c("div", { staticClass: "mb-5" }, [
                  _c(
                    "div",
                    {
                      staticClass: "text-center tip-type collapse show",
                      attrs: { id: "tip-type", "data-parent": "#accordion" }
                    },
                    [
                      _c("h1", [_vm._v("Choose an amount to tip")]),
                      _vm._v(" "),
                      _c(
                        "ul",
                        { staticClass: "mb-4" },
                        _vm._l(_vm.tips, function(tip, index) {
                          return _c("li", { on: { key: index } }, [
                            _c(
                              "a",
                              {
                                attrs: {
                                  href: "javascript:;",
                                  "data-id": tip.id
                                },
                                on: {
                                  click: function($event) {
                                    return _vm.OnTipAmountSelect(tip)
                                  }
                                }
                              },
                              [_vm._v("$" + _vm._s(tip.amount))]
                            )
                          ])
                        }),
                        0
                      ),
                      _vm._v(" "),
                      _vm.$isloggedin == true && _vm.paypal_amount != "0.00"
                        ? _c("paypal-checkout", {
                            attrs: {
                              amount: _vm.paypal_amount,
                              currency: "USD",
                              env: "sandbox",
                              client: _vm.paypal
                            },
                            on: {
                              "payment-authorized": _vm.paymentAuthorized,
                              "payment-completed": _vm.paymentCompleted,
                              "payment-cancelled": _vm.paymentCancelled
                            }
                          })
                        : _vm.$isloggedin == true && _vm.paypal_amount == "0.00"
                        ? _c(
                            "a",
                            {
                              staticClass: "btn btn-primary send_tip_valid",
                              attrs: { href: "javascript:;" },
                              on: {
                                click: function($event) {
                                  return _vm.send_tip_valid()
                                }
                              }
                            },
                            [_vm._v("Send Tip")]
                          )
                        : _c(
                            "a",
                            {
                              staticClass: "btn btn-primary send_tip_button",
                              attrs: { href: "login" }
                            },
                            [_vm._v("Send Tip")]
                          )
                    ],
                    1
                  )
                ])
              ])
            ]),
            _vm._v(" "),
            _c("div", { staticClass: "col-sm-3" }, [
              _c("div", { staticClass: "side-bar" }, [
                _c("ul", [
                  _c("li", [
                    _c(
                      "a",
                      {
                        attrs: {
                          href: "send-tip",
                          "data-toggle": "collapse",
                          "aria-expanded": "true"
                        }
                      },
                      [_vm._v("Send Tip")]
                    )
                  ]),
                  _vm._v(" "),
                  _c("li", [
                    _c("a", { attrs: { href: "tips-history" } }, [
                      _vm._v("Tip History")
                    ])
                  ])
                ])
              ])
            ])
          ])
        ]
      ),
      _vm._v(" "),
      _c(_vm.BuyNowComponent, { tag: "component" })
    ],
    1
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/CommentModal.vue?vue&type=template&id=32df3cbf&":
/*!*************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/home/CommentModal.vue?vue&type=template&id=32df3cbf& ***!
  \*************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _vm._m(0)
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c(
      "div",
      {
        staticClass: "modal fade",
        attrs: {
          id: "commentModal",
          tabindex: "-1",
          role: "dialog",
          "aria-labelledby": "exampleModalLabel",
          "aria-hidden": "true"
        }
      },
      [
        _c(
          "div",
          { staticClass: "modal-dialog", attrs: { role: "document" } },
          [
            _c("div", { staticClass: "modal-content" }, [
              _c("div", { staticClass: "modal-header" }, [
                _c(
                  "h5",
                  {
                    staticClass: "modal-title",
                    attrs: { id: "exampleModalLabel" }
                  },
                  [_vm._v("Add Comment")]
                ),
                _vm._v(" "),
                _c(
                  "button",
                  {
                    staticClass: "close",
                    attrs: {
                      type: "button",
                      "data-dismiss": "modal",
                      "aria-label": "Close"
                    }
                  },
                  [
                    _c("span", { attrs: { "aria-hidden": "true" } }, [
                      _vm._v("×")
                    ])
                  ]
                )
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "modal-body" }, [
                _c("form", { attrs: { action: "/action_page.php" } }, [
                  _c("div", { staticClass: "form-group" }, [
                    _c("label", [_vm._v("Comment")]),
                    _vm._v(" "),
                    _c("textarea", {
                      staticClass: "form-control",
                      attrs: { rows: "4", placeholder: "Add Comments" }
                    })
                  ])
                ])
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "modal-footer" }, [
                _c(
                  "button",
                  {
                    staticClass: "btn btn-secondary",
                    attrs: { type: "button", "data-dismiss": "modal" }
                  },
                  [_vm._v("Close")]
                ),
                _vm._v(" "),
                _c(
                  "button",
                  { staticClass: "btn btn-primary", attrs: { type: "button" } },
                  [_vm._v("Save Comment")]
                )
              ])
            ])
          ]
        )
      ]
    )
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/Indx.vue?vue&type=template&id=14f4c5ac&":
/*!*****************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/home/Indx.vue?vue&type=template&id=14f4c5ac& ***!
  \*****************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _vm.isLoading
        ? _c("div", { staticClass: "loading" }, [
            _c("img", {
              staticClass: "loader-icon img-svg",
              attrs: { src: "/images/loader.svg", alt: "" }
            })
          ])
        : _vm._e(),
      _vm._v(" "),
      _c(_vm.BannerComponent, {
        tag: "component",
        on: { setPremiumVideoComponent: _vm.getPremiumVideo }
      }),
      _vm._v(" "),
      _c(
        "div",
        {
          staticClass:
            "container content-section homepage-banner productContentList"
        },
        [
          _c("div", { staticClass: "row no-gutters" }, [
            _c("div", { staticClass: "col-sm-8" }, [
              _c("div", { staticClass: "main-content" }, [
                _c("div", { staticClass: "filter-area" }, [
                  _c(
                    "div",
                    {
                      staticClass:
                        "d-flex align-items-center justify-content-between"
                    },
                    [
                      _c("div", [
                        this.allfreepaid != "all"
                          ? _c(
                              "a",
                              {
                                attrs: { href: "javascript:;" },
                                on: {
                                  click: function($event) {
                                    return _vm.sortFreePaid("all")
                                  }
                                }
                              },
                              [_vm._v("All")]
                            )
                          : _vm._e(),
                        _vm._v(" "),
                        this.allfreepaid == "all"
                          ? _c(
                              "a",
                              {
                                staticClass: "active",
                                attrs: { href: "javascript:;" },
                                on: {
                                  click: function($event) {
                                    return _vm.sortFreePaid("all")
                                  }
                                }
                              },
                              [_vm._v("All")]
                            )
                          : _vm._e(),
                        _vm._v(" "),
                        _c("span", [_vm._v("|")]),
                        _vm._v(" "),
                        this.allfreepaid == "free"
                          ? _c(
                              "a",
                              {
                                staticClass: "active",
                                attrs: { href: "javascript:;" },
                                on: {
                                  click: function($event) {
                                    return _vm.sortFreePaid("free")
                                  }
                                }
                              },
                              [_vm._v("Free")]
                            )
                          : _vm._e(),
                        _vm._v(" "),
                        this.allfreepaid != "free"
                          ? _c(
                              "a",
                              {
                                attrs: { href: "javascript:;" },
                                on: {
                                  click: function($event) {
                                    return _vm.sortFreePaid("free")
                                  }
                                }
                              },
                              [_vm._v("Free")]
                            )
                          : _vm._e(),
                        _vm._v(" "),
                        _c("span", [_vm._v("|")]),
                        _vm._v(" "),
                        this.allfreepaid == "premium"
                          ? _c(
                              "a",
                              {
                                staticClass: "active",
                                attrs: { href: "javascript:;" },
                                on: {
                                  click: function($event) {
                                    return _vm.sortFreePaid("premium")
                                  }
                                }
                              },
                              [_vm._v("Premium")]
                            )
                          : _vm._e(),
                        _vm._v(" "),
                        this.allfreepaid != "premium"
                          ? _c(
                              "a",
                              {
                                attrs: { href: "javascript:;" },
                                on: {
                                  click: function($event) {
                                    return _vm.sortFreePaid("premium")
                                  }
                                }
                              },
                              [_vm._v("Premium")]
                            )
                          : _vm._e()
                      ]),
                      _vm._v(" "),
                      _c("div", [
                        _c("div", { staticClass: "d-flex" }, [
                          _c(
                            "select",
                            {
                              attrs: { id: "selectSortFilter" },
                              on: { change: _vm.getSelectSortBy }
                            },
                            [
                              _c("option", { attrs: { value: "" } }, [
                                _vm._v("Sort By")
                              ]),
                              _vm._v(" "),
                              _c("option", { attrs: { value: "date" } }, [
                                _vm._v("Sort By Date")
                              ]),
                              _vm._v(" "),
                              _c("option", { attrs: { value: "price" } }, [
                                _vm._v("Sort By Price")
                              ])
                            ]
                          )
                        ])
                      ])
                    ]
                  )
                ]),
                _vm._v(" "),
                _c(
                  "div",
                  { staticClass: "content-list-area" },
                  _vm._l(_vm.products.data, function(product, index) {
                    return _c(
                      "div",
                      {
                        class:
                          product.image != null && product.fileType == "video"
                            ? "content-list content-video"
                            : "content-list",
                        on: { key: index }
                      },
                      [
                        _c("div", { staticClass: "content-list-img" }, [
                          product.pro_price != 0 &&
                          product.orderPaid == 1 &&
                          _vm.$isloggedin == true
                            ? _c("div", { staticClass: "cnt-img" }, [
                                product.image != null &&
                                product.fileType == "image"
                                  ? _c("img", {
                                      staticClass: "w-100",
                                      attrs: {
                                        oncontextmenu: "return false;",
                                        src: "/api/imagesView/" + product.image,
                                        alt: ""
                                      }
                                    })
                                  : product.image != null &&
                                    product.fileType == "video"
                                  ? _c(
                                      "video",
                                      {
                                        staticClass: "w-100 ",
                                        attrs: {
                                          oncontextmenu: "return false;",
                                          height: "100",
                                          id: "videoElementID",
                                          controlsList: "nodownload",
                                          controls: "",
                                          disablePictureInPicture: ""
                                        }
                                      },
                                      [
                                        _c("source", {
                                          attrs: {
                                            src:
                                              "/api/videoView/" + product.image,
                                            type: "video/mp4"
                                          }
                                        }),
                                        _vm._v(
                                          "\n                                  Your browser does not support the video tag.\n                                "
                                        )
                                      ]
                                    )
                                  : _c("img", {
                                      staticClass: "w-100",
                                      attrs: {
                                        src: "img/no-image.png",
                                        alt: ""
                                      }
                                    })
                              ])
                            : product.pro_price == 0
                            ? _c("div", { staticClass: "cnt-img" }, [
                                product.image != null &&
                                product.fileType == "image"
                                  ? _c("img", {
                                      staticClass: "w-100",
                                      attrs: {
                                        oncontextmenu: "return false;",
                                        src: "/api/imagesView/" + product.image,
                                        alt: ""
                                      }
                                    })
                                  : product.image != null &&
                                    product.fileType == "video"
                                  ? _c(
                                      "video",
                                      {
                                        staticClass: "w-100 ",
                                        attrs: {
                                          oncontextmenu: "return false;",
                                          height: "100",
                                          id: "videoElementID",
                                          controlsList: "nodownload",
                                          controls: "",
                                          disablePictureInPicture: ""
                                        }
                                      },
                                      [
                                        _c("source", {
                                          attrs: {
                                            src:
                                              "/api/videoView/" + product.image,
                                            type: "video/mp4"
                                          }
                                        }),
                                        _vm._v(
                                          "\n                                  Your browser does not support the video tag.\n                                "
                                        )
                                      ]
                                    )
                                  : _c("img", {
                                      staticClass: "w-100",
                                      attrs: {
                                        src: "img/no-image.png",
                                        alt: ""
                                      }
                                    })
                              ])
                            : _c("div", { staticClass: "cnt-img" }, [
                                _c(
                                  "div",
                                  { staticClass: "unlock-link" },
                                  [
                                    _c("h6", { staticClass: "mb-3" }, [
                                      _vm._v(_vm._s(product.name))
                                    ]),
                                    _vm._v(" "),
                                    _vm.$isloggedin == true
                                      ? _c("paypal-checkout", {
                                          attrs: {
                                            amount: product.pro_price,
                                            currency: "USD",
                                            env: "sandbox",
                                            product_id: product.id,
                                            client: _vm.paypal
                                          },
                                          on: {
                                            "payment-authorized":
                                              _vm.paymentAuthorized,
                                            "payment-completed":
                                              _vm.paymentCompleted,
                                            "payment-cancelled":
                                              _vm.paymentCancelled
                                          }
                                        })
                                      : _c("a", { attrs: { href: "login" } }, [
                                          _c("img", {
                                            staticClass: "img-svg",
                                            attrs: {
                                              src: "img/content-lock.png",
                                              alt: ""
                                            }
                                          })
                                        ]),
                                    _vm._v(" "),
                                    product.pro_price != 0
                                      ? _c("h2", { staticClass: "mb-0" }, [
                                          _vm._v(
                                            "$" + _vm._s(product.pro_price)
                                          )
                                        ])
                                      : _vm._e(),
                                    _vm._v(" "),
                                    product.pro_days == 1
                                      ? _c(
                                          "div",
                                          {
                                            staticStyle: {
                                              color: "rgb(255 255 255 / 60%)"
                                            }
                                          },
                                          [
                                            _vm._v(
                                              _vm._s(product.pro_days) + " day"
                                            )
                                          ]
                                        )
                                      : product.pro_days == 0
                                      ? _c(
                                          "div",
                                          {
                                            staticStyle: {
                                              color: "rgb(255 255 255 / 60%)"
                                            }
                                          },
                                          [_vm._v("Unlimited")]
                                        )
                                      : product.pro_days > 1
                                      ? _c(
                                          "div",
                                          {
                                            staticStyle: {
                                              color: "rgb(255 255 255 / 60%)"
                                            }
                                          },
                                          [
                                            _vm._v(
                                              _vm._s(product.pro_days) + " days"
                                            )
                                          ]
                                        )
                                      : _vm._e()
                                  ],
                                  1
                                ),
                                _vm._v(" "),
                                _c("img", {
                                  staticClass: "w-100",
                                  attrs: { src: "img/lock-img.jpg", alt: "" }
                                })
                              ]),
                          _vm._v(" "),
                          product.pro_price == 0 || product.orderPaid == 1
                            ? _c(
                                "div",
                                {
                                  staticClass:
                                    "content-list-text d-flex justify-content-between align-items-end"
                                },
                                [
                                  _c("div", [
                                    _c("h3", [
                                      _vm.$isloggedin == true
                                        ? _c(
                                            "a",
                                            {
                                              staticClass: "h3",
                                              attrs: {
                                                href:
                                                  "/detail-view/" + product.id
                                              }
                                            },
                                            [_vm._v(_vm._s(product.name) + " ")]
                                          )
                                        : _c(
                                            "a",
                                            {
                                              staticClass: "h3",
                                              attrs: { href: "/login" }
                                            },
                                            [_vm._v(_vm._s(product.name) + " ")]
                                          )
                                    ]),
                                    _vm._v(" "),
                                    product.days == 1
                                      ? _c(
                                          "a",
                                          {
                                            staticClass: "post-date",
                                            attrs: { href: "#" }
                                          },
                                          [
                                            _vm._v(
                                              _vm._s(product.days) + " day ago"
                                            )
                                          ]
                                        )
                                      : _c(
                                          "a",
                                          {
                                            staticClass: "post-date",
                                            attrs: { href: "#" }
                                          },
                                          [
                                            _vm._v(
                                              _vm._s(product.days) + " days ago"
                                            )
                                          ]
                                        ),
                                    _vm._v(" "),
                                    _c(
                                      "div",
                                      { staticClass: "content-list-like" },
                                      [
                                        _c("div", [
                                          _c(
                                            "div",
                                            {
                                              staticClass:
                                                "dropdown show link-photo"
                                            },
                                            [
                                              _vm.$isloggedin == true &&
                                              product.like_count_user != 1
                                                ? _c(
                                                    "a",
                                                    {
                                                      attrs: {
                                                        href: "javascript:;"
                                                      },
                                                      on: {
                                                        click: function(
                                                          $event
                                                        ) {
                                                          return _vm.likeSubmit(
                                                            product.id
                                                          )
                                                        }
                                                      }
                                                    },
                                                    [
                                                      _c("img", {
                                                        attrs: {
                                                          src:
                                                            "img/like-white.png",
                                                          height: "24",
                                                          width: "24",
                                                          alt: "like-icon"
                                                        }
                                                      })
                                                    ]
                                                  )
                                                : _vm._e(),
                                              _vm._v(" "),
                                              _vm.$isloggedin == true &&
                                              product.like_count_user == 1
                                                ? _c(
                                                    "a",
                                                    {
                                                      attrs: {
                                                        href: "javascript:;"
                                                      },
                                                      on: {
                                                        click: function(
                                                          $event
                                                        ) {
                                                          return _vm.likeSubmit(
                                                            product.id
                                                          )
                                                        }
                                                      }
                                                    },
                                                    [
                                                      _c("img", {
                                                        attrs: {
                                                          src:
                                                            "img/like-red.png",
                                                          height: "24",
                                                          width: "24",
                                                          alt: "like-icon"
                                                        }
                                                      })
                                                    ]
                                                  )
                                                : _vm._e(),
                                              _vm._v(" "),
                                              _vm.$isloggedin == false
                                                ? _c(
                                                    "a",
                                                    {
                                                      attrs: { href: "login" }
                                                    },
                                                    [
                                                      _c("img", {
                                                        attrs: {
                                                          src:
                                                            "img/like-white.png",
                                                          height: "24",
                                                          width: "24",
                                                          alt: "like-icon"
                                                        }
                                                      })
                                                    ]
                                                  )
                                                : _vm._e(),
                                              _vm._v(" "),
                                              _c(
                                                "a",
                                                {
                                                  staticClass:
                                                    "dropdown-toggle",
                                                  attrs: {
                                                    href: "#",
                                                    role: "button",
                                                    id: "dropdownMenuLink1",
                                                    "data-toggle": "dropdown",
                                                    "aria-haspopup": "true",
                                                    "aria-expanded": "false"
                                                  }
                                                },
                                                [
                                                  _c(
                                                    "span",
                                                    {
                                                      class:
                                                        "like_" + product.id
                                                    },
                                                    [
                                                      _vm._v(
                                                        _vm._s(
                                                          product.like_count
                                                        )
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                        ]),
                                        _vm._v(" "),
                                        _c("div", [
                                          _vm.$isloggedin == true
                                            ? _c(
                                                "a",
                                                {
                                                  attrs: {
                                                    href: "javascript:;"
                                                  },
                                                  on: {
                                                    click: function($event) {
                                                      return _vm.commentModalShow(
                                                        product.id,
                                                        "custom_popup"
                                                      )
                                                    }
                                                  }
                                                },
                                                [
                                                  _c("img", {
                                                    attrs: {
                                                      src: "img/chat-white.png",
                                                      height: "24",
                                                      width: "24",
                                                      alt: ""
                                                    }
                                                  }),
                                                  _vm._v(" "),
                                                  _c(
                                                    "span",
                                                    {
                                                      class:
                                                        "comment_" + product.id
                                                    },
                                                    [
                                                      _vm._v(
                                                        _vm._s(
                                                          product.product_comments_count
                                                        )
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                            : _vm._e(),
                                          _vm._v(" "),
                                          _vm.$isloggedin == false
                                            ? _c(
                                                "a",
                                                { attrs: { href: "login" } },
                                                [
                                                  _c("img", {
                                                    attrs: {
                                                      src: "img/chat-white.png",
                                                      height: "24",
                                                      width: "24",
                                                      alt: ""
                                                    }
                                                  }),
                                                  _vm._v(" "),
                                                  _c(
                                                    "span",
                                                    {
                                                      class:
                                                        "comment_" + product.id
                                                    },
                                                    [
                                                      _vm._v(
                                                        _vm._s(
                                                          product.product_comments_count
                                                        )
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                            : _vm._e()
                                        ])
                                      ]
                                    )
                                  ]),
                                  _vm._v(" "),
                                  _c(
                                    "a",
                                    {
                                      staticClass: "content-list-category",
                                      attrs: { href: "javascript:;" },
                                      on: {
                                        click: function($event) {
                                          return _vm.getCategoryTagId(
                                            product.cat_id,
                                            "category"
                                          )
                                        }
                                      }
                                    },
                                    [
                                      _vm._v(
                                        " " +
                                          _vm._s(product.category_name) +
                                          " "
                                      )
                                    ]
                                  )
                                ]
                              )
                            : _vm._e()
                        ]),
                        _vm._v(" "),
                        (product.pro_price == 0 || product.orderPaid == 1) &&
                        _vm.$isloggedin == true
                          ? _c("div", { staticClass: "content-list-desc" }, [
                              _vm._v(_vm._s(product.description))
                            ])
                          : _vm._e()
                      ]
                    )
                  }),
                  0
                ),
                _vm._v(" "),
                _c(
                  "div",
                  { staticClass: "pagination text-center load-more" },
                  [
                    _c("pagination", {
                      attrs: { data: _vm.products },
                      on: { "pagination-change-page": _vm.getResults }
                    })
                  ],
                  1
                )
              ])
            ]),
            _vm._v(" "),
            _c(
              "div",
              { staticClass: "col-sm-4" },
              [
                _c(_vm.SideBarComponent, {
                  tag: "component",
                  on: {
                    setProductIdForComponent: _vm.getProductId,
                    setDetailsForComponent: _vm.getCategoryTagId
                  }
                })
              ],
              1
            )
          ])
        ]
      ),
      _vm._v(" "),
      _c(
        "div",
        { staticClass: "custom-popup-overlay", attrs: { id: "custom_popup" } },
        [
          _c("div", { staticClass: "custom-popup" }, [
            _c("div", { staticClass: "custom-popup-content" }, [
              _c("div", { attrs: { id: "add_modal_data" } }, [
                _c("div", { staticClass: "custom-popup-heading" }, [
                  _c("h5", [_vm._v("Add Comment")]),
                  _vm._v(" "),
                  _c(
                    "div",
                    {
                      staticClass: "close",
                      on: {
                        click: function($event) {
                          return _vm.custompopupclose("custom_popup")
                        }
                      }
                    },
                    [
                      _c("img", {
                        attrs: { src: "img/cancel.png", alt: "cancel" }
                      })
                    ]
                  )
                ]),
                _vm._v(" "),
                _c(
                  "form",
                  {
                    on: {
                      submit: function($event) {
                        $event.preventDefault()
                        return _vm.commentSubmit($event)
                      }
                    }
                  },
                  [
                    _c("div", { staticClass: "custom-popup-body" }, [
                      _c(
                        "div",
                        { staticClass: "form-group mb-3" },
                        [
                          _c("label", [_vm._v("Comment")]),
                          _vm._v(" "),
                          _c("VueEmoji", {
                            ref: "emoji",
                            staticClass: "textareaWithEmoji",
                            attrs: {
                              width: "100%",
                              height: "100",
                              value: _vm.commentForm.message
                            },
                            on: { input: _vm.onInput }
                          }),
                          _vm._v(" "),
                          _vm.errors.message
                            ? _c(
                                "span",
                                {
                                  class: ["error_message"],
                                  staticStyle: { color: "red" }
                                },
                                [_vm._v(_vm._s(_vm.errors.message[0]))]
                              )
                            : _vm._e()
                        ],
                        1
                      )
                    ]),
                    _vm._v(" "),
                    _c(
                      "div",
                      { staticClass: "custom-popup-footer text-right" },
                      [
                        _c(
                          "button",
                          {
                            staticClass: "btn btn-secondary",
                            attrs: { type: "button", "data-dismiss": "modal" },
                            on: {
                              click: function($event) {
                                return _vm.custompopupclose("custom_popup")
                              }
                            }
                          },
                          [_vm._v("Close")]
                        ),
                        _vm._v(" "),
                        _c(
                          "button",
                          {
                            staticClass: "btn btn-primary",
                            attrs: { type: "button" },
                            on: { click: _vm.commentSubmit }
                          },
                          [_vm._v("Send Comment")]
                        )
                      ]
                    )
                  ]
                )
              ])
            ])
          ])
        ]
      ),
      _vm._v(" "),
      _c(_vm.BuyNowComponent, {
        tag: "component",
        on: { setPremiumVideoComponent: _vm.getPremiumVideo }
      })
    ],
    1
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/SideBar.vue?vue&type=template&id=0909aaca&":
/*!********************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/home/SideBar.vue?vue&type=template&id=0909aaca& ***!
  \********************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "side-bar" }, [
    _c("div", { staticClass: "personal-profile" }, [
      _vm.adminProfileImage.length == 0
        ? _c("div", { staticClass: "personal-profile-pic" }, [
            _c("img", { attrs: { src: "img/no-image.png", alt: "" } })
          ])
        : _c(
            "div",
            { staticClass: "personal-profile-pic" },
            _vm._l(_vm.adminProfileImage, function(result, index) {
              return index == 0
                ? _c("img", {
                    staticClass: "w-100 about-main-thumb",
                    attrs: { src: "/api/imagesView/" + result.image, alt: "" },
                    on: { key: index }
                  })
                : _vm._e()
            }),
            0
          ),
      _vm._v(" "),
      _c("div", [
        _c("ul", { staticClass: "d-flex justify-content-between" }, [
          _c("li", [
            _c("span", [_vm._v("Age")]),
            _vm._v(" "),
            _vm.adminDetails.age != ""
              ? _c("strong", [_vm._v(_vm._s(_vm.adminDetails.age))])
              : _c("strong", [_vm._v("28")])
          ]),
          _vm._v(" "),
          _c("li", [
            _c("span", [_vm._v("Height")]),
            _vm._v(" "),
            _vm.adminDetails.age != ""
              ? _c("strong", [_vm._v(_vm._s(_vm.adminDetails.height))])
              : _c("strong", [_vm._v("180")])
          ]),
          _vm._v(" "),
          _c("li", [
            _c("span", [_vm._v("Weight")]),
            _vm._v(" "),
            _vm.adminDetails.age != ""
              ? _c("strong", [_vm._v(_vm._s(_vm.adminDetails.weight))])
              : _c("strong", [_vm._v("60")])
          ]),
          _vm._v(" "),
          _c("li", [
            _c("span", [_vm._v("Eyes")]),
            _vm._v(" "),
            _vm.adminDetails.age != ""
              ? _c("strong", [_vm._v(_vm._s(_vm.adminDetails.eye))])
              : _c("strong", [_vm._v("Blue")])
          ]),
          _vm._v(" "),
          _c("li", [
            _c("span", [_vm._v("Hair")]),
            _vm._v(" "),
            _vm.adminDetails.age != ""
              ? _c("strong", [_vm._v(_vm._s(_vm.adminDetails.hair))])
              : _c("strong", [_vm._v("Blonde")])
          ])
        ])
      ]),
      _vm._v(" "),
      _c("div", { staticClass: "text-center" }, [
        _c("a", { staticClass: "view-profile", attrs: { href: "/about" } }, [
          _vm._v("View Full Profile")
        ])
      ])
    ]),
    _vm._v(" "),
    _c("div", { staticClass: "latest-post" }, [
      _c("h4", [_vm._v("Latest Post")]),
      _vm._v(" "),
      _c(
        "ul",
        _vm._l(_vm.latestPosts.data, function(post, index) {
          return index < 5
            ? _c("li", { attrs: { "data-index": index }, on: { key: index } }, [
                post.orderPaid == 1 && _vm.$isloggedin == true
                  ? _c("a", {
                      attrs: { href: "/detail-view/" + post.id },
                      domProps: { innerHTML: _vm._s(post.name) }
                    })
                  : _c("a", {
                      attrs: { href: "javascript:;" },
                      domProps: { innerHTML: _vm._s(post.name) },
                      on: {
                        click: function($event) {
                          return _vm.onProductClick(post.id)
                        }
                      }
                    })
              ])
            : _vm._e()
        }),
        0
      )
    ]),
    _vm._v(" "),
    _c("div", { staticClass: "our-category" }, [
      _c("h4", [_vm._v("Our Category")]),
      _vm._v(" "),
      _c(
        "ul",
        _vm._l(_vm.categorys, function(category, index) {
          return _c(
            "li",
            {
              staticClass: "category-nav",
              attrs: { id: "category_" + category.id, "data-id": category.id },
              on: { key: index }
            },
            [
              _c("a", {
                attrs: { href: "javascript:;" },
                domProps: { innerHTML: _vm._s(category.name) },
                on: {
                  click: function($event) {
                    return _vm.onCategoryClick(category.id)
                  }
                }
              })
            ]
          )
        }),
        0
      )
    ]),
    _vm._v(" "),
    _c(
      "div",
      { staticClass: "tags" },
      [
        _c("h4", [_vm._v("Tags")]),
        _vm._v(" "),
        _vm._l(_vm.tags, function(tag, index) {
          return _c("a", {
            attrs: { href: "javascript:;" },
            domProps: { innerHTML: _vm._s(tag.name) },
            on: {
              key: index,
              click: function($event) {
                return _vm.onTagClick(tag.id)
              }
            }
          })
        })
      ],
      2
    ),
    _vm._v(" "),
    _vm._m(0)
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "instagram-feed" }, [
      _c("h4", [_vm._v("Instagram Feed")]),
      _vm._v(" "),
      _c("div", { attrs: { id: "instagram-feed" } })
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=template&id=2a9ed9a1&":
/*!*********************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=template&id=2a9ed9a1& ***!
  \*********************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", [
    _c("footer", { staticClass: "footer-area" }, [
      _c("div", { staticClass: "container-fluid" }, [
        _c("div", { staticClass: "row" }, [
          _c("div", { staticClass: "col-sm-4" }, [
            _c("div", { staticClass: "d-flex" }, [
              _vm._m(0),
              _vm._v(" "),
              _c("div", [
                _c("h5", { staticClass: "mb-2" }, [_vm._v("About")]),
                _vm._v(" "),
                _c("p", [_vm._v(_vm._s(_vm.about_us.about))]),
                _vm._v(" "),
                _c(
                  "div",
                  {
                    directives: [
                      {
                        name: "show",
                        rawName: "v-show",
                        value: this.$isloggedin == false,
                        expression: "this.$isloggedin==false"
                      }
                    ],
                    staticClass: "bottom-login"
                  },
                  [
                    _c("a", { attrs: { href: "login" } }, [_vm._v("Login")]),
                    _vm._v(" "),
                    _c("span", [_vm._v("|")]),
                    _vm._v(" "),
                    _c("a", { attrs: { href: "register" } }, [
                      _vm._v("Sign Up")
                    ])
                  ]
                ),
                _vm._v(" "),
                _c("div", { staticClass: "sub-links" }, [
                  _c(
                    "a",
                    {
                      attrs: { href: "javascript:;" },
                      on: {
                        click: function($event) {
                          return _vm.linkTochatOpen()
                        }
                      }
                    },
                    [_vm._v("Private Chat")]
                  ),
                  _vm._v(" "),
                  _c("a", { attrs: { href: "/send-tip" } }, [_vm._v("Tips")]),
                  _vm._v(" "),
                  _c("a", { attrs: { href: "/terms" } }, [
                    _vm._v("Terms of Service")
                  ]),
                  _vm._v(" "),
                  _c("a", { attrs: { href: "/privacy-policy" } }, [
                    _vm._v("Privacy Policy")
                  ])
                ])
              ])
            ])
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "col-sm-4" }, [
            _c("h5", { staticClass: "mb-2" }, [_vm._v("Private Chat")]),
            _vm._v(" "),
            _vm._m(1),
            _vm._v(" "),
            _c("h5", { staticClass: "mb-2" }, [_vm._v("Newsletter Signup")]),
            _vm._v(" "),
            _c(
              "form",
              {
                on: {
                  submit: function($event) {
                    $event.preventDefault()
                    return _vm.newsLetterSubmit($event)
                  }
                }
              },
              [
                _c("div", { staticClass: "Newsletter" }, [
                  _c("input", {
                    directives: [
                      {
                        name: "model",
                        rawName: "v-model",
                        value: _vm.newLetter.email,
                        expression: "newLetter.email"
                      }
                    ],
                    staticClass: "form-control",
                    attrs: {
                      type: "text",
                      placeholder: "Enter Email Address",
                      name: "",
                      id: "newLetterEmail"
                    },
                    domProps: { value: _vm.newLetter.email },
                    on: {
                      input: function($event) {
                        if ($event.target.composing) {
                          return
                        }
                        _vm.$set(_vm.newLetter, "email", $event.target.value)
                      }
                    }
                  }),
                  _vm._v(" "),
                  _c("i", {
                    staticClass: "fa fa-location-arrow",
                    on: { click: _vm.newsLetterSubmit }
                  })
                ])
              ]
            ),
            _vm._v(" "),
            _vm.errors.email
              ? _c("span", { class: ["error_message"] }, [
                  _vm._v(_vm._s(_vm.errors.email[0]))
                ])
              : _vm._e(),
            _vm._v(" "),
            _c(
              "div",
              {
                staticClass: "alert alert-success",
                staticStyle: { display: "none" },
                attrs: { id: "newsletter_alert", role: "alert" }
              },
              [_vm._v("\n\t\t\t\t\t\tSuccessfully Subscribed\n\t\t\t\t\t")]
            )
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "col-sm-4" }, [
            _c("div", { staticClass: "mb-5" }, [
              _c("h5", { staticClass: "mb-2" }, [_vm._v("Profile")]),
              _vm._v(" "),
              _c("a", { attrs: { href: "/about" } }, [
                _c("img", {
                  staticClass: "w-100",
                  attrs: { src: "/img/footer-banne.jpg", alt: "footer-banne" }
                })
              ])
            ]),
            _vm._v(" "),
            _c("h5", { staticClass: "mb-2" }, [_vm._v("Find Us On")]),
            _vm._v(" "),
            _vm._m(2)
          ])
        ])
      ]),
      _vm._v(" "),
      _vm._m(3)
    ]),
    _vm._v(" "),
    _c(
      "div",
      {
        directives: [
          {
            name: "show",
            rawName: "v-show",
            value: this.$isloggedin == true,
            expression: "this.$isloggedin==true"
          }
        ],
        staticClass: "floatingchat",
        staticStyle: { "z-index": "1050" }
      },
      [
        _c("beautiful-chat", {
          attrs: {
            participants: _vm.participants,
            titleImageUrl: _vm.titleImageUrl,
            onMessageWasSent: _vm.onMessageWasSent,
            messageList: _vm.messageList,
            newMessagesCount: _vm.newMessagesCount,
            isOpen: _vm.isChatOpen,
            close: _vm.closeChat,
            icons: _vm.icons,
            open: _vm.openChat,
            showEmoji: true,
            showFile: true,
            showEdition: false,
            showDeletion: false,
            showTypingIndicator: _vm.showTypingIndicator,
            showLauncher: true,
            showCloseButton: true,
            colors: _vm.colors,
            alwaysScrollToBottom: _vm.alwaysScrollToBottom,
            disableUserListToggle: true
          },
          on: {
            onType: _vm.handleOnType,
            edit: _vm.editMessage,
            remove: _vm.removeMessage
          }
        })
      ],
      1
    ),
    _vm._v(" "),
    _vm._m(4)
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "footer-logo" }, [
      _c("img", {
        staticClass: "img-svg",
        attrs: { src: "/img/swemanda-logo.svg", alt: "swemanda" }
      })
    ])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "mb-5 footer-timing" }, [
      _c("div", { staticClass: "d-flex justify-content-between" }, [
        _c("div", [_vm._v("Monday - Friday")]),
        _vm._v(" "),
        _c("span", [_vm._v("9pm  - 12 pm")])
      ]),
      _vm._v(" "),
      _c("div", { staticClass: "d-flex justify-content-between" }, [
        _c("div", [_vm._v("Saturday")]),
        _vm._v(" "),
        _c("span", [_vm._v("10pm - 3am")])
      ]),
      _vm._v(" "),
      _c("div", { staticClass: "d-flex justify-content-between" }, [
        _c("div", [_vm._v("Sunday")]),
        _vm._v(" "),
        _c("span", { staticClass: "blank" }, [_vm._v("-")])
      ])
    ])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("ul", { staticClass: "social-icons" }, [
      _c("li", { staticClass: "social-menu twitter" }, [
        _c(
          "a",
          {
            attrs: {
              href: "https://twitter.com/amandabreden",
              target: "_blank"
            }
          },
          [_c("i", { staticClass: "fa fa-twitter" })]
        )
      ]),
      _vm._v(" "),
      _c("li", { staticClass: "social-menu instagram" }, [
        _c(
          "a",
          {
            attrs: {
              href: "https://www.instagram.com/officialamandabreden/",
              target: "_blank"
            }
          },
          [_c("i", { staticClass: "fa fa-instagram" })]
        )
      ])
    ])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "copyrights" }, [
      _c("div", { staticClass: "container" }, [
        _c("div", { staticClass: "row" }, [
          _c("div", { staticClass: "col-sm-12" }, [
            _c("div", { staticClass: "text-center" }, [
              _vm._v("© Copyright 2020 All Rights Reserved")
            ])
          ])
        ])
      ])
    ])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("a", { staticClass: "gotop", attrs: { href: "#top" } }, [
      _c("i", { staticClass: "fa fa-long-arrow-up" })
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/layout/Header.vue?vue&type=template&id=4bd13d93&":
/*!*********************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/front-end/layout/Header.vue?vue&type=template&id=4bd13d93& ***!
  \*********************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "top_area", attrs: { id: "top" } }, [
    _c("header", [
      _c(
        "nav",
        {
          staticClass:
            "navbar navbar-expand-sm navbar-dark fixed-top bg-transparent"
        },
        [
          _c(
            "a",
            { staticClass: "navbar-brand animate", attrs: { href: "/" } },
            [
              _c("img", {
                staticClass: "img-svg",
                attrs: { src: "/img/swemanda-logo.svg", alt: "swemanda logo" }
              })
            ]
          ),
          _vm._v(" "),
          _c("div", { staticClass: "ml-auto action-btn right-menu" }, [
            _c(
              "div",
              {
                staticClass: "d-flex align-items-center justify-content-between"
              },
              [
                this.$isloggedin == true
                  ? _c("a", { staticClass: "tip-bar ", attrs: { href: "/" } }, [
                      _c("img", {
                        staticClass: "img-svg",
                        attrs: { src: "/img/home-icon.svg", alt: "icon" }
                      })
                    ])
                  : _vm._e(),
                _vm._v(" "),
                this.$isloggedin == true
                  ? _c("div", { staticClass: "search__wrapper" }, [
                      _c("input", {
                        staticClass: "ml-3",
                        attrs: {
                          type: "text",
                          name: "searchText",
                          id: "searchText",
                          placeholder: "Search for..."
                        },
                        on: { keyup: _vm.OnClickSearchFilter }
                      }),
                      _vm._v(" "),
                      this.$isloggedin == true
                        ? _c(
                            "button",
                            {
                              staticClass: "theme-gradient",
                              attrs: {
                                type: "button",
                                id: "searchFilterButton"
                              },
                              on: { click: _vm.OnSearchFilter }
                            },
                            [
                              _c("img", {
                                staticClass: "img-svg",
                                attrs: { src: "/img/search-icon.svg" }
                              })
                            ]
                          )
                        : _vm._e()
                    ])
                  : _vm._e(),
                _vm._v(" "),
                this.$isloggedin == true
                  ? _c(
                      "a",
                      { staticClass: "tip-bar", attrs: { href: "/send-tip" } },
                      [
                        _c("img", {
                          staticClass: "img-svg",
                          attrs: { src: "/img/dollar.svg", alt: "icon" }
                        })
                      ]
                    )
                  : _vm._e(),
                _vm._v(" "),
                this.$isloggedin == true
                  ? _c(
                      "a",
                      {
                        staticClass: "content-buy",
                        attrs: { href: "/transaction-history" }
                      },
                      [
                        _c("img", {
                          staticClass: "img-svg",
                          attrs: { src: "/img/content-buy.svg", alt: "icon" }
                        })
                      ]
                    )
                  : _vm._e(),
                _vm._v(" "),
                this.$isloggedin == false
                  ? _c(
                      "a",
                      { staticClass: "user", attrs: { href: "/login" } },
                      [
                        _c("img", {
                          staticClass: "img-svg",
                          attrs: { src: "/img/usehr.svg", alt: "icon" }
                        })
                      ]
                    )
                  : _vm._e(),
                _vm._v(" "),
                this.$isloggedin == false
                  ? _c(
                      "a",
                      {
                        staticClass: "btn btn-primary",
                        attrs: { href: "/register" }
                      },
                      [_vm._v("Join Now")]
                    )
                  : _vm._e(),
                _vm._v(" "),
                this.$isloggedin == true
                  ? _c(
                      "a",
                      {
                        staticClass: "btn btn-primary",
                        attrs: { href: "javascript:;" },
                        on: { click: _vm.logout }
                      },
                      [_vm._v("Logout")]
                    )
                  : _vm._e()
              ]
            )
          ])
        ]
      )
    ])
  ])
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/About.vue?vue&type=template&id=49c1ab4a&":
/*!**********************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/About.vue?vue&type=template&id=49c1ab4a& ***!
  \**********************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(_vm.HeaderComponent, { tag: "component" }),
      _vm._v(" "),
      _c("div", { staticClass: "container content-section self-profile" }, [
        _c("div", { staticClass: "row no-gutters" }, [
          _c("div", { staticClass: "col-sm-7" }, [
            _c("div", { staticClass: "main-content" }, [
              _c("div", { staticClass: "mb-4" }, [
                _vm.adminProfileImage.length == 0
                  ? _c("div", { staticClass: "position-relative sds" }, [
                      _vm._m(0),
                      _vm._v(" "),
                      _vm._m(1)
                    ])
                  : _c("div", { staticClass: "position-relative" }, [
                      _c(
                        "div",
                        { staticClass: "cnt-img square-img" },
                        _vm._l(_vm.adminProfileImage, function(result, index) {
                          return index == 0
                            ? _c("img", {
                                staticClass: "w-100 about-main-thumb",
                                attrs: {
                                  src: "/api/imagesView/" + result.image,
                                  alt: ""
                                },
                                on: { key: index }
                              })
                            : _vm._e()
                        }),
                        0
                      ),
                      _vm._v(" "),
                      _c(
                        "div",
                        { staticClass: "profile-thumb about-thumb" },
                        _vm._l(_vm.adminProfileImage, function(result, index) {
                          return _c(
                            "a",
                            {
                              attrs: { href: "javascript:;" },
                              on: { key: index }
                            },
                            [
                              _c("img", {
                                attrs: {
                                  src: "/api/imagesView/" + result.image,
                                  alt: ""
                                }
                              })
                            ]
                          )
                        }),
                        0
                      )
                    ]),
                _vm._v(" "),
                _c("div", { staticClass: "personal-profile mb-0" }, [
                  _c("div", [
                    _c(
                      "ul",
                      { staticClass: "d-flex justify-content-between" },
                      [
                        _c("li", [
                          _c("span", [_vm._v("Age")]),
                          _vm._v(" "),
                          _vm.adminDetails.age != ""
                            ? _c("strong", [
                                _vm._v(_vm._s(_vm.adminDetails.age))
                              ])
                            : _c("strong", [_vm._v("28")])
                        ]),
                        _vm._v(" "),
                        _c("li", [
                          _c("span", [_vm._v("Height")]),
                          _vm._v(" "),
                          _vm.adminDetails.age != ""
                            ? _c("strong", [
                                _vm._v(_vm._s(_vm.adminDetails.height))
                              ])
                            : _c("strong", [_vm._v("180")])
                        ]),
                        _vm._v(" "),
                        _c("li", [
                          _c("span", [_vm._v("Weight")]),
                          _vm._v(" "),
                          _vm.adminDetails.age != ""
                            ? _c("strong", [
                                _vm._v(_vm._s(_vm.adminDetails.weight))
                              ])
                            : _c("strong", [_vm._v("60")])
                        ]),
                        _vm._v(" "),
                        _c("li", [
                          _c("span", [_vm._v("Eyes")]),
                          _vm._v(" "),
                          _vm.adminDetails.age != ""
                            ? _c("strong", [
                                _vm._v(_vm._s(_vm.adminDetails.eye))
                              ])
                            : _c("strong", [_vm._v("Blue")])
                        ]),
                        _vm._v(" "),
                        _c("li", [
                          _c("span", [_vm._v("Hair")]),
                          _vm._v(" "),
                          _vm.adminDetails.age != ""
                            ? _c("strong", [
                                _vm._v(_vm._s(_vm.adminDetails.hair))
                              ])
                            : _c("strong", [_vm._v("Blonde")])
                        ])
                      ]
                    )
                  ])
                ])
              ]),
              _vm._v(" "),
              _vm._m(2),
              _vm._v(" "),
              _c("div", { staticClass: "mb-4" }, [
                _c(
                  "div",
                  {
                    staticClass:
                      "d-flex justify-content-start align-items-center py-3"
                  },
                  [
                    _c(
                      "h3",
                      {
                        staticClass: "mr-3",
                        staticStyle: { "min-width": "80px" }
                      },
                      [_vm._v("Location")]
                    ),
                    _vm._v(" "),
                    _c("p", {
                      staticClass: "mb-0",
                      domProps: { innerHTML: _vm._s(_vm.adminDetails.location) }
                    })
                  ]
                ),
                _vm._v(" "),
                _c(
                  "div",
                  {
                    staticClass:
                      "d-flex justify-content-start align-items-center border-top py-3"
                  },
                  [
                    _c(
                      "h3",
                      {
                        staticClass: "mr-3",
                        staticStyle: { "min-width": "80px" }
                      },
                      [_vm._v("Phone")]
                    ),
                    _vm._v(" "),
                    _c("a", {
                      staticClass: "mb-0",
                      attrs: { href: "#" },
                      domProps: { innerHTML: _vm._s(_vm.adminDetails.phone) }
                    })
                  ]
                ),
                _vm._v(" "),
                _vm._m(3)
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "mb-4" }, [
                _c(
                  "a",
                  {
                    staticClass: "btn btn-primary btn-block",
                    attrs: { href: "/send-tip" }
                  },
                  [
                    _c("i", { staticClass: "fa fa-dollar" }),
                    _vm._v(" Send Tip")
                  ]
                )
              ])
            ])
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "col-sm-5" }, [
            _c("h1", { staticClass: "mb-3 pro-nm" }, [_vm._v("Swemanda")]),
            _vm._v(" "),
            _c("div", { staticClass: "card mb-5" }, [
              _c("h3", [_vm._v("About")]),
              _vm._v(" "),
              _c("p", [_vm._v(_vm._s(_vm.about_us.about))])
            ]),
            _vm._v(" "),
            _vm._m(4),
            _vm._v(" "),
            _c("div", { staticClass: "card card-tag mb-5" }, [
              _c("h3", [_vm._v("Tags")]),
              _vm._v(" "),
              _c(
                "div",
                _vm._l(_vm.tags, function(tag, index) {
                  return _c("a", {
                    attrs: { href: "javascript:;" },
                    domProps: { innerHTML: _vm._s(tag.name) },
                    on: {
                      key: index,
                      click: function($event) {
                        return _vm.onTagClick(tag.id)
                      }
                    }
                  })
                }),
                0
              )
            ]),
            _vm._v(" "),
            _c(
              "form",
              {
                on: {
                  submit: function($event) {
                    $event.preventDefault()
                    return _vm.enquirySubmit($event)
                  }
                }
              },
              [
                _c("div", { staticClass: "card mb-5" }, [
                  _c("h3", [_vm._v("Contact Amanda")]),
                  _vm._v(" "),
                  _c("div", { staticClass: "row" }, [
                    _c("div", { staticClass: "col-sm-6" }, [
                      _c("div", { staticClass: "form-group" }, [
                        _c("label", { staticClass: "mb-1" }, [
                          _vm._v("First Name")
                        ]),
                        _vm._v(" "),
                        _c("input", {
                          directives: [
                            {
                              name: "model",
                              rawName: "v-model",
                              value: _vm.contact.fname,
                              expression: "contact.fname"
                            }
                          ],
                          staticClass: "form-control",
                          attrs: {
                            type: "text",
                            name: "fname",
                            placeholder: "Enter First Name"
                          },
                          domProps: { value: _vm.contact.fname },
                          on: {
                            input: function($event) {
                              if ($event.target.composing) {
                                return
                              }
                              _vm.$set(
                                _vm.contact,
                                "fname",
                                $event.target.value
                              )
                            }
                          }
                        }),
                        _vm._v(" "),
                        _vm.errors.fname
                          ? _c("span", { class: ["error_message"] }, [
                              _vm._v(_vm._s(_vm.errors.fname[0]))
                            ])
                          : _vm._e()
                      ])
                    ]),
                    _vm._v(" "),
                    _c("div", { staticClass: "col-sm-6" }, [
                      _c("div", { staticClass: "form-group" }, [
                        _c("label", { staticClass: "mb-1" }, [
                          _vm._v("Last Name")
                        ]),
                        _vm._v(" "),
                        _c("input", {
                          directives: [
                            {
                              name: "model",
                              rawName: "v-model",
                              value: _vm.contact.lname,
                              expression: "contact.lname"
                            }
                          ],
                          staticClass: "form-control",
                          attrs: {
                            type: "text",
                            name: "lname",
                            placeholder: "Enter Last Name"
                          },
                          domProps: { value: _vm.contact.lname },
                          on: {
                            input: function($event) {
                              if ($event.target.composing) {
                                return
                              }
                              _vm.$set(
                                _vm.contact,
                                "lname",
                                $event.target.value
                              )
                            }
                          }
                        }),
                        _vm._v(" "),
                        _vm.errors.lname
                          ? _c("span", { class: ["error_message"] }, [
                              _vm._v(_vm._s(_vm.errors.lname[0]))
                            ])
                          : _vm._e()
                      ])
                    ])
                  ]),
                  _vm._v(" "),
                  _c("div", { staticClass: "form-group" }, [
                    _c("label", { staticClass: "mb-1" }, [
                      _vm._v("Email Address")
                    ]),
                    _vm._v(" "),
                    _c("input", {
                      directives: [
                        {
                          name: "model",
                          rawName: "v-model",
                          value: _vm.contact.email,
                          expression: "contact.email"
                        }
                      ],
                      staticClass: "form-control",
                      attrs: {
                        type: "email",
                        name: "email",
                        placeholder: "Enter a valid email address"
                      },
                      domProps: { value: _vm.contact.email },
                      on: {
                        input: function($event) {
                          if ($event.target.composing) {
                            return
                          }
                          _vm.$set(_vm.contact, "email", $event.target.value)
                        }
                      }
                    }),
                    _vm._v(" "),
                    _vm.errors.email
                      ? _c("span", { class: ["error_message"] }, [
                          _vm._v(_vm._s(_vm.errors.email[0]))
                        ])
                      : _vm._e()
                  ]),
                  _vm._v(" "),
                  _c("div", { staticClass: "form-group" }, [
                    _c("label", { staticClass: "mb-1" }, [_vm._v("Message")]),
                    _vm._v(" "),
                    _c("textarea", {
                      directives: [
                        {
                          name: "model",
                          rawName: "v-model",
                          value: _vm.contact.message,
                          expression: "contact.message"
                        }
                      ],
                      staticClass: "form-control",
                      attrs: { rows: "6", placeholder: "Enter a message" },
                      domProps: { value: _vm.contact.message },
                      on: {
                        input: function($event) {
                          if ($event.target.composing) {
                            return
                          }
                          _vm.$set(_vm.contact, "message", $event.target.value)
                        }
                      }
                    }),
                    _vm._v(" "),
                    _vm.errors.message
                      ? _c("span", { class: ["error_message"] }, [
                          _vm._v(_vm._s(_vm.errors.message[0]))
                        ])
                      : _vm._e()
                  ]),
                  _vm._v(" "),
                  _c("div", { staticClass: "row mt-4 px-3" }, [
                    _c(
                      "button",
                      {
                        staticClass: "btn btn-primary",
                        attrs: { type: "submit" }
                      },
                      [
                        _vm.isLoading
                          ? _c("div", {
                              staticClass: "spinner-border text-light",
                              attrs: { role: "status" }
                            })
                          : _vm._e(),
                        _vm._v("Submit")
                      ]
                    )
                  ])
                ])
              ]
            ),
            _vm._v(" "),
            _c(
              "div",
              {
                staticClass: "alert alert-success",
                staticStyle: { display: "none" },
                attrs: { id: "contact_alert", role: "alert" }
              },
              [_vm._v("\n            Thank You for contacting us!!\n        ")]
            )
          ])
        ])
      ]),
      _vm._v(" "),
      _c(_vm.BuyNowComponent, { tag: "component" }),
      _vm._v(" "),
      _c(_vm.FooterComponent, { tag: "component" })
    ],
    1
  )
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "cnt-img square-img" }, [
      _c("img", {
        staticClass: "w-100 about-main-thumb",
        attrs: { src: "img/no-image.png", alt: "" }
      })
    ])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "profile-thumb about-thumb" }, [
      _c("a", { staticClass: "active", attrs: { href: "javascript:;" } }, [
        _c("img", { attrs: { src: "img/no-image.png", alt: "" } })
      ])
    ])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "text-center social-icons mt-5 mb-4" }, [
      _c("ul", { staticClass: "social-icons" }, [
        _c("li", { staticClass: "social-menu twitter" }, [
          _c(
            "a",
            {
              attrs: {
                href: "https://twitter.com/amandabreden",
                target: "_blank"
              }
            },
            [_c("i", { staticClass: "fa fa-twitter" })]
          )
        ]),
        _vm._v(" "),
        _c("li", { staticClass: "social-menu instagram" }, [
          _c(
            "a",
            {
              attrs: {
                href: "https://www.instagram.com/officialamandabreden/",
                target: "_blank"
              }
            },
            [_c("i", { staticClass: "fa fa-instagram" })]
          )
        ])
      ])
    ])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c(
      "div",
      {
        staticClass:
          "d-flex justify-content-start align-items-center border-top py-3"
      },
      [
        _c(
          "h3",
          { staticClass: "mr-3", staticStyle: { "min-width": "80px" } },
          [_vm._v("Email")]
        ),
        _vm._v(" "),
        _c("a", { staticClass: "mb-0", attrs: { href: "#" } }, [
          _vm._v("info@domain.com")
        ])
      ]
    )
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "card mb-5" }, [
      _c("h3", [_vm._v("Languages")]),
      _vm._v(" "),
      _c("div", { staticClass: "row" }, [
        _c("div", { staticClass: "col-sm-6" }, [
          _c("label", { staticClass: "mb-1" }, [_vm._v("English")]),
          _vm._v(" "),
          _c(
            "div",
            { staticClass: "progress mb-3", staticStyle: { height: "5px" } },
            [
              _c("div", {
                staticClass: "progress-bar",
                staticStyle: { width: "40%", height: "10px" }
              })
            ]
          )
        ]),
        _vm._v(" "),
        _c("div", { staticClass: "col-sm-6" }, [
          _c("label", { staticClass: "mb-1" }, [_vm._v("Swedish")]),
          _vm._v(" "),
          _c(
            "div",
            { staticClass: "progress mb-3", staticStyle: { height: "5px" } },
            [
              _c("div", {
                staticClass: "progress-bar",
                staticStyle: { width: "30%", height: "10px" }
              })
            ]
          )
        ])
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/AccountSetting.vue?vue&type=template&id=60b62314&":
/*!*******************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/AccountSetting.vue?vue&type=template&id=60b62314& ***!
  \*******************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(_vm.HeaderComponent, { tag: "component" }),
      _vm._v(" "),
      _c("div", { staticClass: "container content-section" }, [
        _c("div", { staticClass: "row no-gutters" }, [
          _c("div", { staticClass: "col-sm-9" }, [
            _c("div", { staticClass: "main-content" }, [
              _c("h2", [_vm._v("Account Setting")]),
              _vm._v(" "),
              _c("hr"),
              _vm._v(" "),
              _c("div", { staticClass: "mb-5" }, [
                _c("h4", [_vm._v("Personal Details")]),
                _vm._v(" "),
                _c(
                  "form",
                  {
                    attrs: {
                      enctype: "multipart/form-data",
                      autocomplete: "off",
                      method: "post"
                    },
                    on: {
                      submit: function($event) {
                        $event.preventDefault()
                        return _vm.accountUpdate($event)
                      }
                    }
                  },
                  [
                    _c(
                      "div",
                      { staticClass: "d-flex align-items-center mb-3" },
                      [
                        _vm.imagePreview
                          ? _c("div", { staticClass: "profile-img border" }, [
                              _c("img", {
                                attrs: { src: _vm.imagePreview, alt: "jenny" }
                              })
                            ])
                          : _c("div", { staticClass: "profile-img border" }, [
                              _c("img", {
                                attrs: { src: "img/jenny.jpg", alt: "jenny" }
                              })
                            ]),
                        _vm._v(" "),
                        _c("div", { staticClass: "change-img" }, [
                          _c("div", [
                            _c("input", {
                              attrs: {
                                type: "file",
                                name: "profile",
                                id: "profile"
                              },
                              on: { change: _vm.onProfileChange }
                            }),
                            _vm._v(" "),
                            _c(
                              "label",
                              { staticClass: "btn btn-sm btn-outline-info" },
                              [_vm._v("Change")]
                            )
                          ]),
                          _vm._v(" "),
                          _c(
                            "button",
                            {
                              staticClass: "btn btn-sm btn-outline-secondary",
                              on: { click: _vm.removeAccountImage }
                            },
                            [_vm._v("Remove")]
                          )
                        ])
                      ]
                    ),
                    _vm._v(" "),
                    _c("div", { staticClass: "row" }, [
                      _c("div", { staticClass: "col-sm-6" }, [
                        _c("div", { staticClass: "form-group" }, [
                          _c("label", { staticClass: "mb-1" }, [
                            _vm._v("First Name")
                          ]),
                          _vm._v(" "),
                          _c("input", {
                            directives: [
                              {
                                name: "model",
                                rawName: "v-model",
                                value: _vm.user.name,
                                expression: "user.name"
                              }
                            ],
                            staticClass: "form-control",
                            attrs: {
                              type: "text",
                              name: "name",
                              id: "name",
                              placeholder: "Enter First Name"
                            },
                            domProps: { value: _vm.user.name },
                            on: {
                              input: function($event) {
                                if ($event.target.composing) {
                                  return
                                }
                                _vm.$set(_vm.user, "name", $event.target.value)
                              }
                            }
                          }),
                          _vm._v(" "),
                          _vm.errors.name
                            ? _c("span", { class: ["error_message"] }, [
                                _vm._v(_vm._s(_vm.errors.name[0]))
                              ])
                            : _vm._e()
                        ])
                      ]),
                      _vm._v(" "),
                      _c("div", { staticClass: "col-sm-6" }, [
                        _c("div", { staticClass: "form-group" }, [
                          _c("label", { staticClass: "mb-1" }, [
                            _vm._v("Last Name")
                          ]),
                          _vm._v(" "),
                          _c("input", {
                            directives: [
                              {
                                name: "model",
                                rawName: "v-model",
                                value: _vm.user.lname,
                                expression: "user.lname"
                              }
                            ],
                            staticClass: "form-control",
                            attrs: {
                              type: "text",
                              name: "lname",
                              id: "lname",
                              placeholder: "Enter Last Name"
                            },
                            domProps: { value: _vm.user.lname },
                            on: {
                              input: function($event) {
                                if ($event.target.composing) {
                                  return
                                }
                                _vm.$set(_vm.user, "lname", $event.target.value)
                              }
                            }
                          }),
                          _vm._v(" "),
                          _vm.errors.lname
                            ? _c("span", { class: ["error_message"] }, [
                                _vm._v(_vm._s(_vm.errors.lname[0]))
                              ])
                            : _vm._e()
                        ])
                      ])
                    ]),
                    _vm._v(" "),
                    _c("div", { staticClass: "form-group" }, [
                      _c("label", { staticClass: "mb-1" }, [
                        _vm._v("Email Address")
                      ]),
                      _vm._v(" "),
                      _c("input", {
                        directives: [
                          {
                            name: "model",
                            rawName: "v-model",
                            value: _vm.user.email,
                            expression: "user.email"
                          }
                        ],
                        staticClass: "form-control",
                        attrs: {
                          type: "email",
                          name: "email",
                          placeholder: "Enter a valid email address"
                        },
                        domProps: { value: _vm.user.email },
                        on: {
                          input: function($event) {
                            if ($event.target.composing) {
                              return
                            }
                            _vm.$set(_vm.user, "email", $event.target.value)
                          }
                        }
                      }),
                      _vm._v(" "),
                      _vm.errors.email
                        ? _c("span", { class: ["error_message"] }, [
                            _vm._v(_vm._s(_vm.errors.email[0]))
                          ])
                        : _vm._e()
                    ]),
                    _vm._v(" "),
                    _c("div", { staticClass: "form-group" }, [
                      _c("label", { staticClass: "mb-1" }, [_vm._v("DOB")]),
                      _vm._v(" "),
                      _c("input", {
                        directives: [
                          {
                            name: "model",
                            rawName: "v-model",
                            value: _vm.user.dob,
                            expression: "user.dob"
                          }
                        ],
                        staticClass: "form-control",
                        attrs: {
                          type: "date",
                          name: "dob",
                          id: "dob",
                          placeholder: "Enter Birth Date"
                        },
                        domProps: { value: _vm.user.dob },
                        on: {
                          input: function($event) {
                            if ($event.target.composing) {
                              return
                            }
                            _vm.$set(_vm.user, "dob", $event.target.value)
                          }
                        }
                      }),
                      _vm._v(" "),
                      _vm.errors.dob
                        ? _c("span", { class: ["error_message"] }, [
                            _vm._v(_vm._s(_vm.errors.dob[0]))
                          ])
                        : _vm._e()
                    ]),
                    _vm._v(" "),
                    _c("hr", { staticClass: "my-4" }),
                    _vm._v(" "),
                    _c("input", {
                      directives: [
                        {
                          name: "model",
                          rawName: "v-model",
                          value: _vm.user.id,
                          expression: "user.id"
                        }
                      ],
                      staticClass: "form-control",
                      attrs: { type: "hidden", name: "id", id: "id" },
                      domProps: { value: _vm.user.id },
                      on: {
                        input: function($event) {
                          if ($event.target.composing) {
                            return
                          }
                          _vm.$set(_vm.user, "id", $event.target.value)
                        }
                      }
                    }),
                    _vm._v(" "),
                    _vm._m(0)
                  ]
                )
              ])
            ])
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "col-sm-3" }, [
            _c("div", { staticClass: "side-bar" }, [
              _c("ul", [
                _c("li", [
                  _c(
                    "a",
                    {
                      staticClass: "active",
                      attrs: { href: "account-setting" }
                    },
                    [_vm._v("Account Setting")]
                  )
                ]),
                _vm._v(" "),
                _c("li", [
                  _c("a", { attrs: { href: "transaction-history" } }, [
                    _vm._v("Transaction History")
                  ])
                ]),
                _vm._v(" "),
                _c("li", [
                  _c("a", { attrs: { href: "change-password" } }, [
                    _vm._v("Change Password")
                  ])
                ]),
                _vm._v(" "),
                _c("li", [
                  _c("a", { attrs: { href: "message-purchase-history" } }, [
                    _vm._v("Message Purchase History")
                  ])
                ])
              ])
            ])
          ])
        ])
      ]),
      _vm._v(" "),
      _c(_vm.FooterComponent, { tag: "component" })
    ],
    1
  )
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c(
      "div",
      { staticClass: "d-flex align-items-center justify-content-between my-4" },
      [
        _c(
          "button",
          { staticClass: "btn btn-primary", attrs: { type: "submit" } },
          [_vm._v("Save Details")]
        )
      ]
    )
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Admin/Dashboard.vue?vue&type=template&id=ee70649e&scoped=true&":
/*!********************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Admin/Dashboard.vue?vue&type=template&id=ee70649e&scoped=true& ***!
  \********************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", [
    _c(
      "nav",
      { staticClass: "navbar animate bg-theme p-0 fixed-top d-flex flex-row" },
      [
        _c(
          "div",
          {
            staticClass:
              "navbar-menu-wrapper animate d-flex align-items-stretch"
          },
          [
            _vm._m(0),
            _vm._v(" "),
            _c("h2", { staticClass: "my-3", attrs: { id: "heading" } }),
            _vm._v(" "),
            _c("ul", { staticClass: "navbar-nav navbar-nav-right mt-3" }, [
              _c("li", { staticClass: "nav-item dropdown" }, [
                _c(
                  "a",
                  {
                    staticClass: "nav-link dropdown-toggle",
                    attrs: {
                      href: "#",
                      id: "navbarDropdown",
                      role: "button",
                      "data-toggle": "dropdown",
                      "aria-haspopup": "true",
                      "aria-expanded": "false"
                    }
                  },
                  [
                    _vm._v(
                      "\n                      Hi, Admin\n                    "
                    )
                  ]
                ),
                _vm._v(" "),
                _c(
                  "div",
                  {
                    staticClass: "dropdown-menu",
                    attrs: { "aria-labelledby": "navbarDropdown" }
                  },
                  [
                    _c(
                      "a",
                      {
                        staticClass: "dropdown-item",
                        attrs: { href: "javascript:;" },
                        on: {
                          click: function($event) {
                            return _vm.setComponent("edit-profile")
                          }
                        }
                      },
                      [_vm._v("Edit Profile")]
                    ),
                    _vm._v(" "),
                    _c(
                      "a",
                      {
                        staticClass: "dropdown-item",
                        attrs: { href: "javascript:;" },
                        on: {
                          click: function($event) {
                            return _vm.setComponent("change-password")
                          }
                        }
                      },
                      [_vm._v("Change Password")]
                    ),
                    _vm._v(" "),
                    _c(
                      "a",
                      {
                        staticClass: "dropdown-item",
                        attrs: { href: "javascript:;" },
                        on: { click: _vm.logout }
                      },
                      [_vm._v("Logout")]
                    )
                  ]
                )
              ])
            ])
          ]
        )
      ]
    ),
    _vm._v(" "),
    _c("div", { staticClass: "container-scroller" }, [
      _c("nav", { staticClass: "sidebar animate", attrs: { id: "sidebar" } }, [
        _c("div", { staticClass: "px-3 pt-3 logo-area" }, [
          _c(
            "a",
            {
              staticClass: "d-block mb-4 navbar-brand text-center",
              attrs: { href: "javascript:;" },
              on: {
                click: function($event) {
                  return _vm.setComponent("main")
                }
              }
            },
            [
              _c("img", {
                staticClass: "sidebar-brand-logo w-75 m-auto img-svg",
                attrs: { src: "/images/swemanda-logo.svg", alt: "" }
              })
            ]
          )
        ]),
        _vm._v(" "),
        _c("ul", { staticClass: "nav", attrs: { id: "setActiveOnNav" } }, [
          _c(
            "li",
            {
              class: _vm.activeMenu == "Main" ? "active nav-item" : "nav-item",
              attrs: { id: "dashboard_active" }
            },
            [
              _c(
                "a",
                {
                  staticClass: "nav-link",
                  attrs: { href: "javascript:;" },
                  on: {
                    click: function($event) {
                      return _vm.setComponent("main")
                    }
                  }
                },
                [
                  _c("i", { staticClass: "fas fa-tachometer-alt menu-icon" }),
                  _vm._v(" "),
                  _c("span", { staticClass: "menu-title" }, [
                    _vm._v("Dashboard")
                  ])
                ]
              )
            ]
          ),
          _vm._v(" "),
          _c(
            "li",
            {
              class:
                _vm.activeMenu == "Products" ? "active nav-item" : "nav-item",
              attrs: { id: "distributor_active" }
            },
            [
              _c(
                "a",
                {
                  staticClass: "nav-link",
                  attrs: { href: "javascript:;" },
                  on: {
                    click: function($event) {
                      return _vm.setComponent("products")
                    }
                  }
                },
                [
                  _c("i", { staticClass: "fas fa-user-friends menu-icon" }),
                  _vm._v(" "),
                  _c("span", { staticClass: "menu-title" }, [
                    _vm._v("Products")
                  ])
                ]
              )
            ]
          ),
          _vm._v(" "),
          _c(
            "li",
            {
              class: _vm.activeMenu == "Users" ? "active nav-item" : "nav-item",
              attrs: { id: "distributor_active" }
            },
            [
              _c(
                "a",
                {
                  staticClass: "nav-link",
                  attrs: { href: "javascript:;" },
                  on: {
                    click: function($event) {
                      return _vm.setComponent("users")
                    }
                  }
                },
                [
                  _c("i", { staticClass: "fas fa-user-friends menu-icon" }),
                  _vm._v(" "),
                  _c("span", { staticClass: "menu-title" }, [_vm._v("Users")])
                ]
              )
            ]
          ),
          _vm._v(" "),
          _c("li", { staticClass: "nav-item" }, [
            _c(
              "a",
              {
                staticClass: "nav-link",
                attrs: {
                  "data-toggle": "collapse",
                  href: "#case_list",
                  "aria-expanded":
                    _vm.activeMenu == "Category" ||
                    _vm.activeMenu == "Tags" ||
                    _vm.activeMenu == "Tips" ||
                    _vm.activeMenu == "Tax" ||
                    _vm.activeMenu == "AboutUs" ||
                    _vm.activeMenu == "MessagePerPrice"
                      ? true
                      : false,
                  "aria-controls": "case_list"
                }
              },
              [
                _c("i", { staticClass: "fas fa-suitcase menu-icon" }),
                _vm._v(" "),
                _c("span", { staticClass: "menu-title" }, [_vm._v("Setting")]),
                _vm._v(" "),
                _c("i", { staticClass: "fas fa-angle-right menu-arrow" })
              ]
            ),
            _vm._v(" "),
            _c(
              "div",
              {
                class:
                  _vm.activeMenu == "Category" ||
                  _vm.activeMenu == "Tags" ||
                  _vm.activeMenu == "Tips" ||
                  _vm.activeMenu == "Tax" ||
                  _vm.activeMenu == "AboutUs" ||
                  _vm.activeMenu == "MessagePerPrice"
                    ? "collapse show"
                    : "collapse",
                attrs: { id: "case_list" }
              },
              [
                _c("ul", { staticClass: "nav flex-column sub-menu" }, [
                  _c(
                    "li",
                    {
                      class:
                        _vm.activeMenu == "Category"
                          ? "active nav-item"
                          : "nav-item",
                      attrs: { id: "product_active" }
                    },
                    [
                      _c(
                        "a",
                        {
                          staticClass: "nav-link",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.setComponent("category")
                            }
                          }
                        },
                        [
                          _c("i", { staticClass: "fas fa-suitcase menu-icon" }),
                          _vm._v(" "),
                          _c("span", { staticClass: "menu-title" }, [
                            _vm._v("Category")
                          ])
                        ]
                      )
                    ]
                  ),
                  _vm._v(" "),
                  _c(
                    "li",
                    {
                      class:
                        _vm.activeMenu == "Tax"
                          ? "active nav-item"
                          : "nav-item",
                      attrs: { id: "product_active" }
                    },
                    [
                      _c(
                        "a",
                        {
                          staticClass: "nav-link",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.setComponent("tax")
                            }
                          }
                        },
                        [
                          _c("i", { staticClass: "fas fa-suitcase menu-icon" }),
                          _vm._v(" "),
                          _c("span", { staticClass: "menu-title" }, [
                            _vm._v("Tax")
                          ])
                        ]
                      )
                    ]
                  ),
                  _vm._v(" "),
                  _c(
                    "li",
                    {
                      class:
                        _vm.activeMenu == "Tags"
                          ? "active nav-item"
                          : "nav-item",
                      attrs: { id: "product_active" }
                    },
                    [
                      _c(
                        "a",
                        {
                          staticClass: "nav-link",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.setComponent("tags")
                            }
                          }
                        },
                        [
                          _c("i", { staticClass: "fas fa-suitcase menu-icon" }),
                          _vm._v(" "),
                          _c("span", { staticClass: "menu-title" }, [
                            _vm._v("Tags")
                          ])
                        ]
                      )
                    ]
                  ),
                  _vm._v(" "),
                  _c(
                    "li",
                    {
                      class:
                        _vm.activeMenu == "Tips"
                          ? "active nav-item"
                          : "nav-item",
                      attrs: { id: "product_active" }
                    },
                    [
                      _c(
                        "a",
                        {
                          staticClass: "nav-link",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.setComponent("tips")
                            }
                          }
                        },
                        [
                          _c("i", { staticClass: "fas fa-suitcase menu-icon" }),
                          _vm._v(" "),
                          _c("span", { staticClass: "menu-title" }, [
                            _vm._v("Tips")
                          ])
                        ]
                      )
                    ]
                  ),
                  _vm._v(" "),
                  _c(
                    "li",
                    {
                      class:
                        _vm.activeMenu == "AboutUs"
                          ? "active nav-item"
                          : "nav-item",
                      attrs: { id: "product_active" }
                    },
                    [
                      _c(
                        "a",
                        {
                          staticClass: "nav-link",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.setComponent("about-us")
                            }
                          }
                        },
                        [
                          _c("i", { staticClass: "fas fa-suitcase menu-icon" }),
                          _vm._v(" "),
                          _c("span", { staticClass: "menu-title" }, [
                            _vm._v("About Us")
                          ])
                        ]
                      )
                    ]
                  ),
                  _vm._v(" "),
                  _c(
                    "li",
                    {
                      class:
                        _vm.activeMenu == "MessagePerPrice"
                          ? "active nav-item"
                          : "nav-item",
                      attrs: { id: "product_active" }
                    },
                    [
                      _c(
                        "a",
                        {
                          staticClass: "nav-link",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.setComponent("message-per-price")
                            }
                          }
                        },
                        [
                          _c("i", { staticClass: "fas fa-suitcase menu-icon" }),
                          _vm._v(" "),
                          _c("span", { staticClass: "menu-title" }, [
                            _vm._v("Message Per Price")
                          ])
                        ]
                      )
                    ]
                  )
                ])
              ]
            )
          ]),
          _vm._v(" "),
          _c("li", { staticClass: "nav-item" }, [
            _c(
              "a",
              {
                staticClass: "nav-link",
                attrs: {
                  "data-toggle": "collapse",
                  href: "#report_manage",
                  "aria-expanded":
                    _vm.activeMenu == "Orders" ||
                    _vm.activeMenu == "Inquiry" ||
                    _vm.activeMenu == "Newsletter" ||
                    _vm.activeMenu == "Tip_history" ||
                    _vm.activeMenu == "ProductComments" ||
                    _vm.activeMenu == "MessagePurchaseHistory" ||
                    _vm.activeMenu == "OrderTax"
                      ? true
                      : false,
                  "aria-controls": "report_manage"
                }
              },
              [
                _c("i", { staticClass: "fas fa-file-alt menu-icon" }),
                _vm._v(" "),
                _c("span", { staticClass: "menu-title" }, [_vm._v("Report")]),
                _vm._v(" "),
                _c("i", { staticClass: "fas fa-angle-right menu-arrow" })
              ]
            ),
            _vm._v(" "),
            _c(
              "div",
              {
                class:
                  _vm.activeMenu == "Orders" ||
                  _vm.activeMenu == "Inquiry" ||
                  _vm.activeMenu == "Newsletter" ||
                  _vm.activeMenu == "Tip_history" ||
                  _vm.activeMenu == "ProductComments" ||
                  _vm.activeMenu == "MessagePurchaseHistory" ||
                  _vm.activeMenu == "OrderTax"
                    ? "collapse show"
                    : "collapse",
                attrs: { id: "report_manage" }
              },
              [
                _c("ul", { staticClass: "nav flex-column sub-menu" }, [
                  _c(
                    "li",
                    {
                      class:
                        _vm.activeMenu == "Orders"
                          ? "active nav-item"
                          : "nav-item",
                      attrs: { id: "content_page_active" }
                    },
                    [
                      _c(
                        "a",
                        {
                          staticClass: "nav-link",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.setComponent("orders")
                            }
                          }
                        },
                        [
                          _c("i", {
                            staticClass: "fas fa-suitcase  menu-icon"
                          }),
                          _vm._v(" "),
                          _c("span", { staticClass: "menu-title" }, [
                            _vm._v("Orders")
                          ])
                        ]
                      )
                    ]
                  ),
                  _vm._v(" "),
                  _c(
                    "li",
                    {
                      class:
                        _vm.activeMenu == "OrderTax"
                          ? "active nav-item"
                          : "nav-item",
                      attrs: { id: "content_page_active" }
                    },
                    [
                      _c(
                        "a",
                        {
                          staticClass: "nav-link",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.setComponent("order-tax")
                            }
                          }
                        },
                        [
                          _c("i", {
                            staticClass: "fas fa-suitcase  menu-icon"
                          }),
                          _vm._v(" "),
                          _c("span", { staticClass: "menu-title" }, [
                            _vm._v("Order Tax")
                          ])
                        ]
                      )
                    ]
                  ),
                  _vm._v(" "),
                  _c(
                    "li",
                    {
                      class:
                        _vm.activeMenu == "Inquiry"
                          ? "active nav-item"
                          : "nav-item",
                      attrs: { id: "content_page_active" }
                    },
                    [
                      _c(
                        "a",
                        {
                          staticClass: "nav-link",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.setComponent("inquiry")
                            }
                          }
                        },
                        [
                          _c("i", {
                            staticClass: "fas fa-suitcase  menu-icon"
                          }),
                          _vm._v(" "),
                          _c("span", { staticClass: "menu-title" }, [
                            _vm._v("Inquiry")
                          ])
                        ]
                      )
                    ]
                  ),
                  _vm._v(" "),
                  _c(
                    "li",
                    {
                      class:
                        _vm.activeMenu == "Newsletter"
                          ? "active nav-item"
                          : "nav-item",
                      attrs: { id: "content_page_active" }
                    },
                    [
                      _c(
                        "a",
                        {
                          staticClass: "nav-link",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.setComponent("newsletter")
                            }
                          }
                        },
                        [
                          _c("i", {
                            staticClass: "fas fa-suitcase  menu-icon"
                          }),
                          _vm._v(" "),
                          _c("span", { staticClass: "menu-title" }, [
                            _vm._v("Newsletter")
                          ])
                        ]
                      )
                    ]
                  ),
                  _vm._v(" "),
                  _c(
                    "li",
                    {
                      class:
                        _vm.activeMenu == "Tip_history"
                          ? "active nav-item"
                          : "nav-item",
                      attrs: { id: "content_page_active" }
                    },
                    [
                      _c(
                        "a",
                        {
                          staticClass: "nav-link",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.setComponent("tip-history")
                            }
                          }
                        },
                        [
                          _c("i", {
                            staticClass: "fas fa-suitcase  menu-icon"
                          }),
                          _vm._v(" "),
                          _c("span", { staticClass: "menu-title" }, [
                            _vm._v("Tip History")
                          ])
                        ]
                      )
                    ]
                  ),
                  _vm._v(" "),
                  _c(
                    "li",
                    {
                      class:
                        _vm.activeMenu == "ProductComments"
                          ? "active nav-item"
                          : "nav-item",
                      attrs: { id: "content_page_active" }
                    },
                    [
                      _c(
                        "a",
                        {
                          staticClass: "nav-link",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.setComponent("product-comment")
                            }
                          }
                        },
                        [
                          _c("i", {
                            staticClass: "fas fa-suitcase  menu-icon"
                          }),
                          _vm._v(" "),
                          _c("span", { staticClass: "menu-title" }, [
                            _vm._v("Comments")
                          ])
                        ]
                      )
                    ]
                  ),
                  _vm._v(" "),
                  _c(
                    "li",
                    {
                      class:
                        _vm.activeMenu == "MessagePurchaseHistory"
                          ? "active nav-item"
                          : "nav-item",
                      attrs: { id: "content_page_active" }
                    },
                    [
                      _c(
                        "a",
                        {
                          staticClass: "nav-link",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.setComponent(
                                "message-purchase-history"
                              )
                            }
                          }
                        },
                        [
                          _c("i", {
                            staticClass: "fas fa-suitcase  menu-icon"
                          }),
                          _vm._v(" "),
                          _c("span", { staticClass: "menu-title" }, [
                            _vm._v("Message Purchase History")
                          ])
                        ]
                      )
                    ]
                  )
                ])
              ]
            )
          ]),
          _vm._v(" "),
          _c(
            "li",
            {
              class: _vm.activeMenu == "Chats" ? "active nav-item" : "nav-item",
              attrs: { id: "distributor_active" }
            },
            [
              _c(
                "a",
                {
                  staticClass: "nav-link",
                  attrs: { href: "javascript:;" },
                  on: {
                    click: function($event) {
                      return _vm.setComponent("chat")
                    }
                  }
                },
                [
                  _c("i", { staticClass: "fas fa-user-friends menu-icon" }),
                  _vm._v(" "),
                  _c("span", { staticClass: "menu-title" }, [_vm._v("Chat")])
                ]
              )
            ]
          )
        ])
      ]),
      _vm._v(" "),
      _c("div", { staticClass: "page-body-wrapper animate" }, [
        _c(
          "div",
          { staticClass: "main-panel" },
          [_c(_vm.activeComponent, { tag: "component" })],
          1
        )
      ])
    ])
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c(
      "button",
      {
        staticClass: "navbar-toggler align-self-center",
        attrs: { type: "button", "data-toggle": "minimize" }
      },
      [_c("i", { staticClass: "fas fa-angle-double-left" })]
    )
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/App.vue?vue&type=template&id=50e73d1e&class=h-100&":
/*!********************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/App.vue?vue&type=template&id=50e73d1e&class=h-100& ***!
  \********************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _vm.isLoading
        ? _c("div", { staticClass: "loading" }, [
            _c("img", {
              staticClass: "sidebar-brand-logo w-75 m-auto",
              attrs: { src: "/images/loader.svg", alt: "" }
            })
          ])
        : _vm._e(),
      _vm._v(" "),
      _c("router-view", {
        on: { loggedIn: _vm.change, loadingIn: _vm.changeLoading }
      })
    ],
    1
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/BuyTip.vue?vue&type=template&id=11ab9548&scoped=true&":
/*!***********************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/BuyTip.vue?vue&type=template&id=11ab9548&scoped=true& ***!
  \***********************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(_vm.HeaderComponent, { tag: "component" }),
      _vm._v(" "),
      _c(_vm.pageComponent, { tag: "component" }),
      _vm._v(" "),
      _c(_vm.FooterComponent, { tag: "component" })
    ],
    1
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/ChangePassword.vue?vue&type=template&id=6556ed7e&":
/*!*******************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/ChangePassword.vue?vue&type=template&id=6556ed7e& ***!
  \*******************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(_vm.HeaderComponent, { tag: "component" }),
      _vm._v(" "),
      _c("div", { staticClass: "container content-section" }, [
        _c("div", { staticClass: "row no-gutters" }, [
          _c("div", { staticClass: "col-sm-9" }, [
            _c("div", { staticClass: "main-content" }, [
              _c("h2", [_vm._v("Change Password")]),
              _vm._v(" "),
              _c("hr"),
              _vm._v(" "),
              _c(
                "form",
                {
                  attrs: { autocomplete: "off", method: "post" },
                  on: {
                    submit: function($event) {
                      $event.preventDefault()
                      return _vm.changePassword($event)
                    }
                  }
                },
                [
                  _c("div", { staticClass: "form-group" }, [
                    _c("label", { staticClass: "mb-1" }, [
                      _vm._v("Old Password")
                    ]),
                    _vm._v(" "),
                    _c("input", {
                      directives: [
                        {
                          name: "model",
                          rawName: "v-model",
                          value: _vm.current_password,
                          expression: "current_password"
                        }
                      ],
                      staticClass: "form-control",
                      attrs: {
                        type: "password",
                        name: "current_password",
                        id: "current_password",
                        placeholder: "Enter password"
                      },
                      domProps: { value: _vm.current_password },
                      on: {
                        input: function($event) {
                          if ($event.target.composing) {
                            return
                          }
                          _vm.current_password = $event.target.value
                        }
                      }
                    }),
                    _vm._v(" "),
                    _vm.errors.current_password
                      ? _c("span", { class: ["error_message"] }, [
                          _vm._v(_vm._s(_vm.errors.current_password[0]))
                        ])
                      : _vm._e()
                  ]),
                  _vm._v(" "),
                  _c("hr"),
                  _vm._v(" "),
                  _c("div", { staticClass: "form-group" }, [
                    _c("label", { staticClass: "mb-1" }, [
                      _vm._v("New Password")
                    ]),
                    _vm._v(" "),
                    _c("input", {
                      directives: [
                        {
                          name: "model",
                          rawName: "v-model",
                          value: _vm.password,
                          expression: "password"
                        }
                      ],
                      staticClass: "form-control",
                      attrs: {
                        type: "password",
                        name: "password",
                        id: "password",
                        placeholder: "Enter password"
                      },
                      domProps: { value: _vm.password },
                      on: {
                        input: function($event) {
                          if ($event.target.composing) {
                            return
                          }
                          _vm.password = $event.target.value
                        }
                      }
                    }),
                    _vm._v(" "),
                    _vm.errors.password
                      ? _c("span", { class: ["error_message"] }, [
                          _vm._v(_vm._s(_vm.errors.password[0]))
                        ])
                      : _vm._e()
                  ]),
                  _vm._v(" "),
                  _c("div", { staticClass: "form-group" }, [
                    _c("label", { staticClass: "mb-1" }, [
                      _vm._v("Confirm Password")
                    ]),
                    _vm._v(" "),
                    _c("input", {
                      directives: [
                        {
                          name: "model",
                          rawName: "v-model",
                          value: _vm.confirm_password,
                          expression: "confirm_password"
                        }
                      ],
                      staticClass: "form-control",
                      attrs: {
                        type: "password",
                        name: "confirm_password",
                        id: "confirm_password",
                        placeholder: "Enter password"
                      },
                      domProps: { value: _vm.confirm_password },
                      on: {
                        input: function($event) {
                          if ($event.target.composing) {
                            return
                          }
                          _vm.confirm_password = $event.target.value
                        }
                      }
                    }),
                    _vm._v(" "),
                    _vm.errors.confirm_password
                      ? _c("span", { class: ["error_message"] }, [
                          _vm._v(_vm._s(_vm.errors.confirm_password[0]))
                        ])
                      : _vm._e()
                  ]),
                  _vm._v(" "),
                  _vm._m(0)
                ]
              )
            ])
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "col-sm-3" }, [
            _c("div", { staticClass: "side-bar" }, [
              _c("ul", [
                _c("li", [
                  _c("a", { attrs: { href: "account-setting" } }, [
                    _vm._v("Account Setting")
                  ])
                ]),
                _vm._v(" "),
                _c("li", [
                  _c("a", { attrs: { href: "transaction-history" } }, [
                    _vm._v("Transaction History")
                  ])
                ]),
                _vm._v(" "),
                _c("li", [
                  _c(
                    "a",
                    {
                      staticClass: "active",
                      attrs: { href: "change-password" }
                    },
                    [_vm._v("Change Password")]
                  )
                ]),
                _vm._v(" "),
                _c("li", [
                  _c("a", { attrs: { href: "message-purchase-history" } }, [
                    _vm._v("Message Purchase History")
                  ])
                ])
              ])
            ])
          ])
        ])
      ]),
      _vm._v(" "),
      _c(_vm.FooterComponent, { tag: "component" })
    ],
    1
  )
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "row my-4 px-3" }, [
      _c(
        "button",
        { staticClass: "btn btn-primary", attrs: { type: "submit" } },
        [_vm._v("Change Password")]
      )
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Chat.vue?vue&type=template&id=429c24aa&":
/*!*********************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Chat.vue?vue&type=template&id=429c24aa& ***!
  \*********************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(_vm.HeaderComponent, { tag: "component" }),
      _vm._v(" "),
      _c(
        "div",
        {
          staticClass: "container content-section self-profile",
          staticStyle: { "z-index": "1040" }
        },
        [
          _c(
            "div",
            { staticClass: "row no-gutters" },
            [
              _c("beautiful-chat", {
                attrs: {
                  participants: _vm.participants,
                  titleImageUrl: _vm.titleImageUrl,
                  onMessageWasSent: _vm.onMessageWasSent,
                  messageList: _vm.messageList,
                  newMessagesCount: _vm.newMessagesCount,
                  isOpen: _vm.isChatOpen,
                  close: _vm.closeChat,
                  icons: _vm.icons,
                  open: _vm.openChat,
                  showEmoji: true,
                  showFile: true,
                  showEdition: false,
                  showDeletion: false,
                  showTypingIndicator: _vm.showTypingIndicator,
                  showLauncher: true,
                  showCloseButton: true,
                  colors: _vm.colors,
                  alwaysScrollToBottom: _vm.alwaysScrollToBottom,
                  messageStyling: _vm.messageStyling
                },
                on: {
                  onType: _vm.handleOnType,
                  edit: _vm.editMessage,
                  remove: _vm.removeMessage
                }
              })
            ],
            1
          )
        ]
      )
    ],
    1
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Checkout.vue?vue&type=template&id=7b3dab19&scoped=true&":
/*!*************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Checkout.vue?vue&type=template&id=7b3dab19&scoped=true& ***!
  \*************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "container" }, [
    _c("div", { staticClass: "row" }, [
      _c("div", { staticClass: "col-md-8 offset-md-2" }, [
        _c("div", { staticClass: "order-box" }, [
          _c("img", {
            attrs: { src: _vm.product.image, alt: _vm.product.name }
          }),
          _vm._v(" "),
          _c("h2", {
            staticClass: "title",
            domProps: { innerHTML: _vm._s(_vm.product.name) }
          }),
          _vm._v(" "),
          _c("p", { staticClass: "small-text text-muted float-left" }, [
            _vm._v("$ " + _vm._s(_vm.product.price))
          ]),
          _vm._v(" "),
          _c("p", { staticClass: "small-text text-muted float-right" }, [
            _vm._v("Available Units: " + _vm._s(_vm.product.units))
          ]),
          _vm._v(" "),
          _c("br"),
          _vm._v(" "),
          _c("hr"),
          _vm._v(" "),
          _c("label", { staticClass: "row" }, [
            _c("span", { staticClass: "col-md-2 float-left" }, [
              _vm._v("Quantity: ")
            ]),
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.quantity,
                  expression: "quantity"
                }
              ],
              staticClass: "col-md-2 float-left",
              attrs: {
                type: "number",
                name: "units",
                min: "1",
                max: _vm.product.units
              },
              domProps: { value: _vm.quantity },
              on: {
                change: _vm.checkUnits,
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.quantity = $event.target.value
                }
              }
            })
          ])
        ]),
        _vm._v(" "),
        _c("br"),
        _vm._v(" "),
        _c("div", [
          !_vm.isLoggedIn
            ? _c("div", [
                _c("h2", [_vm._v("You need to login to continue")]),
                _vm._v(" "),
                _c(
                  "button",
                  {
                    staticClass: "col-md-4 btn btn-primary float-left",
                    on: { click: _vm.login }
                  },
                  [_vm._v("Login")]
                ),
                _vm._v(" "),
                _c(
                  "button",
                  {
                    staticClass: "col-md-4 btn btn-danger float-right",
                    on: { click: _vm.register }
                  },
                  [_vm._v("Create an account")]
                )
              ])
            : _vm._e(),
          _vm._v(" "),
          _vm.isLoggedIn
            ? _c("div", [
                _c("div", { staticClass: "row" }, [
                  _c(
                    "label",
                    {
                      staticClass: "col-md-3 col-form-label",
                      attrs: { for: "address" }
                    },
                    [_vm._v("Delivery Address")]
                  ),
                  _vm._v(" "),
                  _c("div", { staticClass: "col-md-9" }, [
                    _c("input", {
                      directives: [
                        {
                          name: "model",
                          rawName: "v-model",
                          value: _vm.address,
                          expression: "address"
                        }
                      ],
                      staticClass: "form-control",
                      attrs: { id: "address", type: "text", required: "" },
                      domProps: { value: _vm.address },
                      on: {
                        input: function($event) {
                          if ($event.target.composing) {
                            return
                          }
                          _vm.address = $event.target.value
                        }
                      }
                    })
                  ])
                ]),
                _vm._v(" "),
                _c("br"),
                _vm._v(" "),
                _vm.isLoggedIn
                  ? _c(
                      "button",
                      {
                        staticClass:
                          "col-md-4 btn btn-sm btn-success float-right",
                        on: { click: _vm.placeOrder }
                      },
                      [_vm._v("Continue")]
                    )
                  : _vm._e()
              ])
            : _vm._e()
        ])
      ])
    ])
  ])
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Confirmation.vue?vue&type=template&id=296b75f0&scoped=true&":
/*!*****************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Confirmation.vue?vue&type=template&id=296b75f0&scoped=true& ***!
  \*****************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", [
    _c(
      "div",
      {
        staticClass:
          "container-fluid hero-section d-flex align-content-center justify-content-center flex-wrap ml-auto"
      },
      [
        _c(
          "h2",
          [
            _vm._m(0),
            _c("br"),
            _vm._v(" "),
            _c("span", { staticClass: "medium-text" }, [
              _vm._v("Your order has been placed.")
            ]),
            _c("br"),
            _vm._v(" "),
            _c(
              "router-link",
              {
                staticClass: "small-link",
                attrs: { to: { name: "userboard" } }
              },
              [_vm._v("\n                See your orders\n            ")]
            )
          ],
          1
        )
      ]
    )
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("span", { staticClass: "title" }, [
      _c("strong", [_vm._v("Thank You!")])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/DetailView.vue?vue&type=template&id=3e9a6cae&":
/*!***************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/DetailView.vue?vue&type=template&id=3e9a6cae& ***!
  \***************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(_vm.HeaderComponent, { tag: "component" }),
      _vm._v(" "),
      _vm.isLoading
        ? _c("div", { staticClass: "loading" }, [
            _c("img", {
              staticClass: "loader-icon img-svg",
              attrs: { src: "/images/loader.svg", alt: "" }
            })
          ])
        : _vm._e(),
      _vm._v(" "),
      _c(
        "div",
        { staticClass: "container content-section purchanse-details" },
        [
          _c("div", { staticClass: "row no-gutters" }, [
            _c("div", { staticClass: "col-sm-9" }, [
              _c("div", { staticClass: "main-content" }, [
                _c("div", { staticClass: "position-relative" }, [
                  _c(
                    "div",
                    {
                      staticClass:
                        "d-flex justify-content-between align-items-center mb-2"
                    },
                    [
                      _c("h1", [_vm._v(_vm._s(_vm.product.name))]),
                      _vm._v(" "),
                      _c(
                        "a",
                        {
                          staticClass: "content-list-category",
                          attrs: { href: "javascript:;" },
                          on: {
                            click: function($event) {
                              return _vm.onCategoryClick(
                                _vm.product.category_id
                              )
                            }
                          }
                        },
                        [_vm._v(" " + _vm._s(_vm.product.cate_name) + " ")]
                      )
                    ]
                  ),
                  _vm._v(" "),
                  _c(
                    "div",
                    {
                      class:
                        _vm.product.image != null &&
                        _vm.product.fileType == "video"
                          ? "content-video"
                          : "  border"
                    },
                    [
                      _c("div", { staticClass: "cnt-img" }, [
                        _vm.product.image != null &&
                        _vm.product.fileType == "image"
                          ? _c("img", {
                              staticClass: "w-100",
                              attrs: {
                                src: "/api/imagesView/" + _vm.product.image,
                                alt: "",
                                oncontextmenu: "return false;"
                              }
                            })
                          : _vm._e(),
                        _vm._v(" "),
                        _vm.product.image != null &&
                        _vm.product.fileType == "video"
                          ? _c(
                              "video",
                              {
                                staticClass: "w-100",
                                attrs: {
                                  oncontextmenu: "return false;",
                                  controlsList: "nodownload",
                                  disablePictureInPicture: "",
                                  controls: ""
                                }
                              },
                              [
                                _c("source", {
                                  attrs: {
                                    src: "/api/videoView/" + _vm.product.image,
                                    type: "video/mp4"
                                  }
                                }),
                                _vm._v(
                                  "\n                    Your browser does not support the video tag.\n                  "
                                )
                              ]
                            )
                          : _vm._e()
                      ])
                    ]
                  ),
                  _vm._v(" "),
                  _c(
                    "div",
                    {
                      staticClass:
                        "d-flex justify-content-between align-items-center mt-2"
                    },
                    [
                      _c(
                        "div",
                        {
                          staticClass:
                            "d-flex justify-content-start align-items-start"
                        },
                        [
                          _vm.$isloggedin == true && _vm.like_count_user == 1
                            ? _c(
                                "a",
                                {
                                  staticClass: "mr-2 ",
                                  attrs: {
                                    href: "javascript:;",
                                    "data-id": _vm.$isloggedin,
                                    "data-test": _vm.like_count_user
                                  },
                                  on: {
                                    click: function($event) {
                                      return _vm.likeSubmit(_vm.product.id)
                                    }
                                  }
                                },
                                [
                                  _c("img", {
                                    staticClass: "img-svg icon-sm",
                                    attrs: { src: "/img/like-red.png", alt: "" }
                                  })
                                ]
                              )
                            : _vm._e(),
                          _vm._v(" "),
                          _vm.$isloggedin == true && _vm.like_count_user != 1
                            ? _c(
                                "a",
                                {
                                  staticClass: "mr-2 ",
                                  attrs: {
                                    href: "javascript:;",
                                    "data-id": _vm.$isloggedin
                                  },
                                  on: {
                                    click: function($event) {
                                      return _vm.likeSubmit(_vm.product.id)
                                    }
                                  }
                                },
                                [
                                  _c("img", {
                                    staticClass: "img-svg icon-sm",
                                    attrs: {
                                      src: "/img/like-white.png",
                                      alt: ""
                                    }
                                  })
                                ]
                              )
                            : _vm._e(),
                          _vm._v(" "),
                          _vm.$isloggedin == false
                            ? _c(
                                "a",
                                {
                                  staticClass: "mr-2",
                                  attrs: { href: "/login" }
                                },
                                [
                                  _c("img", {
                                    staticClass: "img-svg icon-sm",
                                    attrs: { src: "/img/like-1.svg", alt: "" }
                                  })
                                ]
                              )
                            : _vm._e(),
                          _vm._v(" "),
                          _c("div", { staticClass: "dropdown show" }, [
                            _c(
                              "a",
                              {
                                staticClass: "dropdown-toggle text-white",
                                attrs: {
                                  href: "#",
                                  role: "button",
                                  id: "dropdownMenuLink",
                                  "data-toggle": "dropdown",
                                  "aria-haspopup": "true",
                                  "aria-expanded": "false"
                                }
                              },
                              [
                                _c(
                                  "span",
                                  { class: "like_" + _vm.product.id },
                                  [_vm._v(_vm._s(_vm.like_count))]
                                )
                              ]
                            ),
                            _vm._v(" "),
                            _c(
                              "div",
                              {
                                staticClass: "dropdown-menu",
                                attrs: { "aria-labelledby": "dropdownMenuLink" }
                              },
                              _vm._l(_vm.like_users, function(user, index) {
                                return _c("a", {
                                  staticClass: "dropdown-item",
                                  attrs: { href: "javascript:;" },
                                  domProps: { innerHTML: _vm._s(user.name) },
                                  on: { key: index }
                                })
                              }),
                              0
                            )
                          ])
                        ]
                      ),
                      _vm._v(" "),
                      _c("div", {
                        staticClass: "post-date text-muted",
                        domProps: {
                          innerHTML: _vm._s(
                            _vm.getDateFormat(_vm.product.created_at)
                          )
                        }
                      })
                    ]
                  ),
                  _vm._v(" "),
                  _c(
                    "div",
                    { staticClass: "tags mb-0 mt-2" },
                    _vm._l(_vm.product_tags, function(tag, index) {
                      return _c("a", {
                        staticClass: "badge badge-dark",
                        attrs: { href: "javascript:;" },
                        domProps: { innerHTML: _vm._s(tag.name) },
                        on: {
                          key: index,
                          click: function($event) {
                            return _vm.onTagClick(tag.id)
                          }
                        }
                      })
                    }),
                    0
                  )
                ]),
                _vm._v(" "),
                _c("div", { staticClass: "my-4" }, [
                  _c("h6", [_vm._v(" " + _vm._s(_vm.product.description))])
                ]),
                _vm._v(" "),
                _c("hr", { staticClass: "mt-4 mb-5" }),
                _vm._v(" "),
                _vm._m(0),
                _vm._v(" "),
                _c(
                  "div",
                  { staticClass: "all-comments border" },
                  _vm._l(_vm.comments, function(pro_comment, index) {
                    return _c(
                      "div",
                      {
                        class: "comment_" + pro_comment.id,
                        on: { key: index }
                      },
                      [
                        _c("div", [
                          _c("h6", { staticClass: "mb-2" }, [
                            _vm._v(
                              _vm._s(pro_comment.user_name) +
                                "\n                "
                            ),
                            _c("span", {
                              staticClass: "post-date text-muted",
                              domProps: {
                                innerHTML: _vm._s(
                                  _vm.getDateFormat(pro_comment.created_at)
                                )
                              }
                            })
                          ])
                        ]),
                        _vm._v(" "),
                        _c("p", [_vm._v(_vm._s(pro_comment.message))])
                      ]
                    )
                  }),
                  0
                ),
                _vm._v(" "),
                _c("div", [
                  _c(
                    "a",
                    {
                      staticClass: "btn btn-primary mt-4",
                      attrs: {
                        href: "#",
                        "data-toggle": "collapse",
                        "data-target": "#add-comment"
                      }
                    },
                    [_vm._v("Add Comment")]
                  ),
                  _vm._v(" "),
                  _c(
                    "div",
                    {
                      staticClass: "collapse border p-3 mt-3",
                      attrs: { id: "add-comment" }
                    },
                    [
                      _c(
                        "form",
                        {
                          on: {
                            submit: function($event) {
                              $event.preventDefault()
                              return _vm.commentSubmit($event)
                            }
                          }
                        },
                        [
                          _c(
                            "div",
                            { staticClass: "form-group" },
                            [
                              _c("VueEmoji", {
                                ref: "emoji",
                                staticClass: "commentDetailText",
                                attrs: {
                                  width: "100%",
                                  height: "100",
                                  value: _vm.commentForm.message
                                },
                                on: { input: _vm.onInput }
                              }),
                              _vm._v(" "),
                              _vm.errors.message
                                ? _c("span", { class: ["error_message"] }, [
                                    _vm._v(_vm._s(_vm.errors.message[0]))
                                  ])
                                : _vm._e()
                            ],
                            1
                          ),
                          _vm._v(" "),
                          _c(
                            "button",
                            {
                              staticClass: "btn btn-secondary",
                              attrs: {
                                type: "button",
                                "data-id": _vm.product.id
                              },
                              on: { click: _vm.commentSubmit }
                            },
                            [_vm._v("Submit")]
                          )
                        ]
                      )
                    ]
                  )
                ])
              ])
            ]),
            _vm._v(" "),
            _c("div", { staticClass: "col-sm-3" }, [
              _c("div", { staticClass: "side-bar" }, [
                _c("div", { staticClass: "instagram-feed" }, [
                  _c("h4", [_vm._v("Related Images")]),
                  _vm._v(" "),
                  _c(
                    "div",
                    [
                      _vm._l(_vm.product_images, function(pro_image, index) {
                        return _c(
                          "div",
                          {
                            staticClass: "image_tn gallery-img",
                            on: { key: index }
                          },
                          [
                            _c(
                              "a",
                              {
                                staticClass: "html5lightbox",
                                attrs: {
                                  href: "/api/imagesView/" + pro_image.fileName,
                                  "data-showsocial": "false",
                                  "data-transition": "crossfade",
                                  "data-group": "set1",
                                  "data-width": "600",
                                  "data-height": "400",
                                  title: ""
                                }
                              },
                              [
                                _c("img", {
                                  attrs: {
                                    src:
                                      "/api/imagesView/" + pro_image.fileName,
                                    width: "50"
                                  }
                                })
                              ]
                            )
                          ]
                        )
                      }),
                      _vm._v(" "),
                      _vm._l(_vm.product_videos, function(p_video, index1) {
                        return _c(
                          "div",
                          {
                            staticClass: "image_tn gallery-img",
                            on: { key: index1 }
                          },
                          [
                            _c(
                              "a",
                              {
                                staticClass: "html5lightbox",
                                attrs: {
                                  href: "/api/videoView/" + p_video.fileName,
                                  "data-showsocial": "false",
                                  "data-group": "set1",
                                  "data-width": "800",
                                  "data-height": "600",
                                  title: ""
                                }
                              },
                              [
                                _c("video", { attrs: { width: "100" } }, [
                                  _c("source", {
                                    attrs: {
                                      src: "/api/videoView/" + p_video.fileName,
                                      type: "video/mp4"
                                    }
                                  })
                                ])
                              ]
                            )
                          ]
                        )
                      })
                    ],
                    2
                  )
                ]),
                _vm._v(" "),
                _c("div", { staticClass: "our-category mt-5" }, [
                  _c("h4", [_vm._v("Our Category")]),
                  _vm._v(" "),
                  _c(
                    "ul",
                    _vm._l(_vm.categorys, function(category, index) {
                      return _c(
                        "li",
                        {
                          attrs: {
                            id: "category_" + category.id,
                            "data-id": category.id
                          },
                          on: { key: index }
                        },
                        [
                          _c("a", {
                            attrs: { href: "javascript:;" },
                            domProps: { innerHTML: _vm._s(category.name) },
                            on: {
                              click: function($event) {
                                return _vm.onCategoryClick(category.id)
                              }
                            }
                          })
                        ]
                      )
                    }),
                    0
                  )
                ]),
                _vm._v(" "),
                _c(
                  "div",
                  { staticClass: "tags" },
                  [
                    _c("h4", [_vm._v("Tags")]),
                    _vm._v(" "),
                    _vm._l(_vm.tags, function(tag, index) {
                      return _c("a", {
                        attrs: { href: "javascript:;" },
                        domProps: { innerHTML: _vm._s(tag.name) },
                        on: {
                          key: index,
                          click: function($event) {
                            return _vm.onTagClick(tag.id)
                          }
                        }
                      })
                    })
                  ],
                  2
                )
              ])
            ])
          ])
        ]
      ),
      _vm._v(" "),
      _c(_vm.BuyNowComponent, { tag: "component" }),
      _vm._v(" "),
      _c(_vm.FooterComponent, { tag: "component" })
    ],
    1
  )
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c(
      "div",
      { staticClass: "d-flex justify-content-start align-items-center mb-3" },
      [
        _c("img", {
          staticClass: "img-svg mr-2 icon-sm",
          attrs: { src: "/img/chat.svg", alt: "" }
        }),
        _vm._v(" "),
        _c("h5", [_vm._v("Comments")])
      ]
    )
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Front-Login.vue?vue&type=template&id=5ec01aa2&":
/*!****************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Front-Login.vue?vue&type=template&id=5ec01aa2& ***!
  \****************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(_vm.HeaderComponent, { tag: "component" }),
      _vm._v(" "),
      _vm.isLoading
        ? _c("div", { staticClass: "loading" }, [
            _c("img", {
              staticClass: "loader-icon img-svg",
              attrs: { src: "/images/loader.svg", alt: "" }
            })
          ])
        : _vm._e(),
      _vm._v(" "),
      _c("div", { staticClass: "container content-section" }, [
        _c("div", { staticClass: "row no-gutters" }, [
          _c("div", { staticClass: "col-sm-5 m-auto" }, [
            _c("form", { staticClass: "login-form" }, [
              _c("h1", [_vm._v("Login")]),
              _vm._v(" "),
              _vm.errors[0]
                ? _c(
                    "div",
                    {
                      class: ["error_message"],
                      staticStyle: {
                        "text-align": "center",
                        "margin-bottom": "17px"
                      }
                    },
                    [_vm._v(_vm._s(_vm.errors))]
                  )
                : _vm._e(),
              _vm._v(" "),
              _c("div", { staticClass: "form-group" }, [
                _c("label", { staticClass: "mb-1" }, [_vm._v("Email Address")]),
                _vm._v(" "),
                _c("input", {
                  directives: [
                    {
                      name: "model",
                      rawName: "v-model",
                      value: _vm.email,
                      expression: "email"
                    }
                  ],
                  staticClass: "form-control",
                  attrs: {
                    type: "text",
                    name: "email",
                    id: "email",
                    placeholder: "Enter email address"
                  },
                  domProps: { value: _vm.email },
                  on: {
                    input: function($event) {
                      if ($event.target.composing) {
                        return
                      }
                      _vm.email = $event.target.value
                    }
                  }
                }),
                _vm._v(" "),
                _vm.errors.email
                  ? _c("span", { class: ["error_message"] }, [
                      _vm._v(_vm._s(_vm.errors.email[0]))
                    ])
                  : _vm._e()
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "form-group" }, [
                _c("label", { staticClass: "mb-1" }, [_vm._v("Password")]),
                _vm._v(" "),
                _c("input", {
                  directives: [
                    {
                      name: "model",
                      rawName: "v-model",
                      value: _vm.password,
                      expression: "password"
                    }
                  ],
                  staticClass: "form-control",
                  attrs: {
                    type: "password",
                    id: "password",
                    name: "password",
                    placeholder: "Enter password"
                  },
                  domProps: { value: _vm.password },
                  on: {
                    input: function($event) {
                      if ($event.target.composing) {
                        return
                      }
                      _vm.password = $event.target.value
                    }
                  }
                }),
                _vm._v(" "),
                _c(
                  "a",
                  {
                    staticClass: "pass_visible",
                    attrs: { href: "javascript:;" }
                  },
                  [
                    _c("i", {
                      staticClass: "fa fa-eye show_password",
                      attrs: { id: "pass-status" },
                      on: { click: _vm.viewPassword }
                    })
                  ]
                ),
                _vm._v(" "),
                _vm.errors.password
                  ? _c("span", { class: ["error_message"] }, [
                      _vm._v(_vm._s(_vm.errors.password[0]))
                    ])
                  : _vm._e()
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "d-flex" }, [
                _vm._m(0),
                _vm._v(" "),
                _c(
                  "a",
                  {
                    staticClass: "ml-auto mb-0 text-sm",
                    attrs: { href: "password/reset" }
                  },
                  [_vm._v("Forgot Password?")]
                )
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "row my-4 px-3" }, [
                _c(
                  "button",
                  {
                    staticClass: "btn btn-primary",
                    attrs: { type: "submit" },
                    on: { click: _vm.handleSubmit }
                  },
                  [_vm._v("Login")]
                )
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "row my-4 px-3" }, [
                _c("small", { staticClass: "font-weight-bold" }, [
                  _vm._v("Don't have an account? "),
                  _c("a", { attrs: { href: "register" } }, [_vm._v("Register")])
                ])
              ])
            ])
          ])
        ])
      ]),
      _vm._v(" "),
      _c(_vm.FooterComponent, { tag: "component" })
    ],
    1
  )
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c(
      "div",
      { staticClass: "custom-control custom-checkbox custom-control-inline" },
      [
        _c("input", {
          staticClass: "custom-control-input",
          attrs: { id: "chk1", type: "checkbox", name: "chk" }
        }),
        _vm._v(" "),
        _c(
          "label",
          {
            staticClass: "custom-control-label text-sm",
            attrs: { for: "chk1" }
          },
          [_vm._v("Remember me")]
        )
      ]
    )
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Home.vue?vue&type=template&id=6c0a33b2&scoped=true&":
/*!*********************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Home.vue?vue&type=template&id=6c0a33b2&scoped=true& ***!
  \*********************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(_vm.HeaderComponent, { tag: "component" }),
      _vm._v(" "),
      _c(_vm.pageComponent, { tag: "component" }),
      _vm._v(" "),
      _c(_vm.FooterComponent, { tag: "component" })
    ],
    1
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Login.vue?vue&type=template&id=33212926&":
/*!**********************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Login.vue?vue&type=template&id=33212926& ***!
  \**********************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "login-bg" }, [
    _c("div", { staticClass: "container h-100 m-auto" }, [
      _c(
        "div",
        { staticClass: "row align-items-center justify-content-center h-100" },
        [
          _c("div", { staticClass: "col-md-5 col-sm-6 col-10" }, [
            _vm._m(0),
            _vm._v(" "),
            _c("div", { staticClass: "card card-default" }, [
              _c("div", { staticClass: "card-body" }, [
                _vm._m(1),
                _vm._v(" "),
                _c("form", [
                  _vm.errors[0]
                    ? _c(
                        "div",
                        {
                          class: ["error_message"],
                          staticStyle: {
                            "text-align": "center",
                            "margin-bottom": "17px"
                          }
                        },
                        [_vm._v(_vm._s(_vm.errors))]
                      )
                    : _vm._e(),
                  _vm._v(" "),
                  _c("div", { staticClass: "form-group" }, [
                    _c("label", { attrs: { for: "email" } }, [
                      _vm._v("E-Mail Address")
                    ]),
                    _vm._v(" "),
                    _c("input", {
                      directives: [
                        {
                          name: "model",
                          rawName: "v-model",
                          value: _vm.email,
                          expression: "email"
                        }
                      ],
                      staticClass: "form-control",
                      attrs: {
                        id: "email",
                        name: "email",
                        type: "email",
                        placeholder: "Enter Email Address",
                        required: "",
                        autofocus: ""
                      },
                      domProps: { value: _vm.email },
                      on: {
                        input: function($event) {
                          if ($event.target.composing) {
                            return
                          }
                          _vm.email = $event.target.value
                        }
                      }
                    }),
                    _vm._v(" "),
                    _vm.errors.email
                      ? _c("span", { class: ["error_message"] }, [
                          _vm._v(_vm._s(_vm.errors.email[0]))
                        ])
                      : _vm._e()
                  ]),
                  _vm._v(" "),
                  _c("div", { staticClass: "form-group" }, [
                    _c("label", { attrs: { for: "password" } }, [
                      _vm._v("Password")
                    ]),
                    _vm._v(" "),
                    _c("input", {
                      directives: [
                        {
                          name: "model",
                          rawName: "v-model",
                          value: _vm.password,
                          expression: "password"
                        }
                      ],
                      staticClass: "form-control",
                      attrs: {
                        id: "password",
                        type: "password",
                        placeholder: "Enter Password",
                        required: ""
                      },
                      domProps: { value: _vm.password },
                      on: {
                        input: function($event) {
                          if ($event.target.composing) {
                            return
                          }
                          _vm.password = $event.target.value
                        }
                      }
                    }),
                    _vm._v(" "),
                    _c(
                      "a",
                      {
                        staticClass: "pass_visible",
                        attrs: { href: "javascript:;" }
                      },
                      [
                        _c("i", {
                          staticClass: "fa fa-eye show_password",
                          attrs: { id: "pass-status" },
                          on: { click: _vm.viewPassword }
                        })
                      ]
                    ),
                    _vm._v(" "),
                    _vm.errors.password
                      ? _c("span", { class: ["error_message"] }, [
                          _vm._v(_vm._s(_vm.errors.password[0]))
                        ])
                      : _vm._e()
                  ]),
                  _vm._v(" "),
                  _vm._m(2),
                  _vm._v(" "),
                  _c("div", { staticClass: "form-group mb-0" }, [
                    _c(
                      "div",
                      {
                        staticClass:
                          "d-flex align-self-center justify-content-between"
                      },
                      [
                        _c(
                          "button",
                          {
                            staticClass: "btn btn-primary mr-4",
                            attrs: { type: "submit" },
                            on: { click: _vm.handleSubmit }
                          },
                          [_vm._v(" Login ")]
                        ),
                        _vm._v(" "),
                        _c(
                          "a",
                          {
                            staticClass: "forgot_pass",
                            attrs: { href: "javascript:;" }
                          },
                          [_vm._v("Forgot Password?")]
                        )
                      ]
                    )
                  ])
                ])
              ])
            ])
          ])
        ]
      )
    ])
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "text-center brand-logo" }, [
      _c("img", {
        staticClass: "img-svg",
        attrs: { src: "/img/swemanda-logo.svg" }
      })
    ])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("h1", [_c("span", [_vm._v("Login")])])
  },
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("div", { staticClass: "form-group form-check" }, [
      _c("label", { staticClass: "form-check-label" }, [
        _c("input", {
          staticClass: "form-check-input",
          attrs: { type: "checkbox" }
        }),
        _vm._v(" Remember me\n                                ")
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/MessagePurchaseHistory.vue?vue&type=template&id=7659b4df&":
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/MessagePurchaseHistory.vue?vue&type=template&id=7659b4df& ***!
  \***************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(_vm.HeaderComponent, { tag: "component" }),
      _vm._v(" "),
      _vm.isLoading
        ? _c("div", { staticClass: "loading" }, [
            _c("img", {
              staticClass: "loader-icon img-svg",
              attrs: { src: "/images/loader.svg", alt: "" }
            })
          ])
        : _vm._e(),
      _vm._v(" "),
      _c("div", { staticClass: "container content-section" }, [
        _c("div", { staticClass: "row no-gutters" }, [
          _c("div", { staticClass: "col-sm-9" }, [
            _c("div", { staticClass: "main-content" }, [
              _c(
                "a",
                {
                  staticClass: "btn btn-primary text-right",
                  attrs: { href: "javascript:;" },
                  on: {
                    click: function($event) {
                      return _vm.openMessagePerPrice("message_price_popup")
                    }
                  }
                },
                [_vm._v("Purchase Message ")]
              ),
              _vm._v(" "),
              _c("hr"),
              _vm._v(" "),
              _c("h2", [_vm._v("Message Price History")]),
              _vm._v(" "),
              _c("div", { staticClass: "mb-4" }),
              _vm._v(" "),
              _c("div", { staticClass: "tableFixHead" }, [
                _c(
                  "table",
                  { staticClass: "table table-striped table-dark " },
                  [
                    _vm._m(0),
                    _vm._v(" "),
                    _c(
                      "tbody",
                      _vm._l(_vm.transactionData, function(result, index) {
                        return _c(
                          "tr",
                          {
                            attrs: { "data-id": result.id },
                            on: { key: index }
                          },
                          [
                            _c("td", [_vm._v(_vm._s(index + 1))]),
                            _vm._v(" "),
                            _c("td", { staticClass: "text-left" }, [
                              _vm._v(_vm._s(result.quantity))
                            ]),
                            _vm._v(" "),
                            _c("td", { staticClass: "text-left" }, [
                              _vm._v("$" + _vm._s(result.message_per_price))
                            ]),
                            _vm._v(" "),
                            _c("td", {
                              staticClass: "text-left",
                              domProps: {
                                innerHTML: _vm._s(
                                  "$" +
                                    result.message_per_price * result.quantity
                                )
                              }
                            }),
                            _vm._v(" "),
                            _c("td", {
                              staticClass: "text-center",
                              domProps: {
                                innerHTML: _vm._s(
                                  _vm.getDateFormat(result.created_at)
                                )
                              }
                            })
                          ]
                        )
                      }),
                      0
                    )
                  ]
                )
              ])
            ])
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "col-sm-3" }, [
            _c("div", { staticClass: "side-bar" }, [
              _c("ul", [
                _c("li", [
                  _c("a", { attrs: { href: "account-setting" } }, [
                    _vm._v("Account Setting")
                  ])
                ]),
                _vm._v(" "),
                _c("li", [
                  _c("a", { attrs: { href: "transaction-history" } }, [
                    _vm._v("Transaction History")
                  ])
                ]),
                _vm._v(" "),
                _c("li", [
                  _c("a", { attrs: { href: "change-password" } }, [
                    _vm._v("Change Password")
                  ])
                ]),
                _vm._v(" "),
                _c("li", [
                  _c(
                    "a",
                    {
                      staticClass: "active",
                      attrs: { href: "message-purchase-history" }
                    },
                    [_vm._v("Message Purchase History")]
                  )
                ])
              ])
            ])
          ])
        ])
      ]),
      _vm._v(" "),
      _c(
        "div",
        {
          staticClass: "custom-popup-overlay",
          attrs: { id: "message_price_popup" }
        },
        [
          _c("div", { staticClass: "custom-popup" }, [
            _c("div", { staticClass: "custom-popup-content" }, [
              _c("div", { attrs: { id: "add_modal_data" } }, [
                _c("div", { staticClass: "custom-popup-heading" }, [
                  _c("h5", [_vm._v("Add Quantity")]),
                  _vm._v(" "),
                  _c(
                    "div",
                    {
                      staticClass: "close",
                      on: {
                        click: function($event) {
                          return _vm.custompopupclose("message_price_popup")
                        }
                      }
                    },
                    [
                      _c("img", {
                        attrs: { src: "img/cancel.png", alt: "cancel" }
                      })
                    ]
                  )
                ]),
                _vm._v(" "),
                _c(
                  "form",
                  {
                    on: {
                      submit: function($event) {
                        $event.preventDefault()
                        return _vm.messagePriceSubmit($event)
                      }
                    }
                  },
                  [
                    _c("div", { staticClass: "custom-popup-body" }, [
                      _c("div", { staticClass: "form-group mb-3" }, [
                        _c("label", [
                          _vm._v(
                            "Quantity (Per message price $" +
                              _vm._s(_vm.per_message_price) +
                              ")"
                          )
                        ]),
                        _vm._v(" "),
                        _c("input", {
                          directives: [
                            {
                              name: "model",
                              rawName: "v-model",
                              value: _vm.messagePriceForm.quantity,
                              expression: "messagePriceForm.quantity"
                            }
                          ],
                          staticClass: "textareaWithEmoji form-control",
                          attrs: {
                            type: "number",
                            placeholder: "Enter Quantity",
                            name: "quantity",
                            id: "quantity"
                          },
                          domProps: { value: _vm.messagePriceForm.quantity },
                          on: {
                            change: _vm.onMessagePriceChange,
                            input: function($event) {
                              if ($event.target.composing) {
                                return
                              }
                              _vm.$set(
                                _vm.messagePriceForm,
                                "quantity",
                                $event.target.value
                              )
                            }
                          }
                        }),
                        _vm._v(" "),
                        _vm.errors.quantity
                          ? _c(
                              "span",
                              {
                                class: ["error_message"],
                                staticStyle: { color: "red" }
                              },
                              [_vm._v(_vm._s(_vm.errors.quantity[0]))]
                            )
                          : _vm._e()
                      ])
                    ]),
                    _vm._v(" "),
                    _c(
                      "div",
                      { staticClass: "custom-popup-footer text-right" },
                      [
                        _vm.messagePriceForm.quantity != "" &&
                        _vm.messagePriceForm.quantity > 99
                          ? _c("paypal-checkout", {
                              attrs: {
                                amount: _vm.paypal_amount,
                                currency: "USD",
                                env: "sandbox",
                                client: _vm.paypal
                              },
                              on: {
                                "payment-authorized": _vm.paymentAuthorized,
                                "payment-completed": _vm.paymentCompleted,
                                "payment-cancelled": _vm.paymentCancelled
                              }
                            })
                          : _c(
                              "button",
                              {
                                staticClass: "btn btn-primary",
                                attrs: { type: "button" },
                                on: { click: _vm.messagePriceSubmit }
                              },
                              [_vm._v("Buy Message")]
                            )
                      ],
                      1
                    )
                  ]
                )
              ])
            ])
          ])
        ]
      ),
      _vm._v(" "),
      _c(_vm.FooterComponent, { tag: "component" })
    ],
    1
  )
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("thead", [
      _c("tr", [
        _c("th", { attrs: { width: "80" } }, [_vm._v("#")]),
        _vm._v(" "),
        _c("th", { staticClass: "text-left", attrs: { width: "70" } }, [
          _vm._v("Quantity")
        ]),
        _vm._v(" "),
        _c("th", { staticClass: "text-left", attrs: { width: "70" } }, [
          _vm._v("Per Message Price")
        ]),
        _vm._v(" "),
        _c("th", { staticClass: "text-left", attrs: { width: "70" } }, [
          _vm._v("Total Price")
        ]),
        _vm._v(" "),
        _c("th", { staticClass: "text-center", attrs: { width: "80" } }, [
          _vm._v("Purchase Date")
        ])
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue?vue&type=template&id=ae7286a8&":
/*!**********************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue?vue&type=template&id=ae7286a8& ***!
  \**********************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "paypal-button", attrs: { id: _vm.id } })
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/PurchaseHistory.vue?vue&type=template&id=e029a260&":
/*!********************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/PurchaseHistory.vue?vue&type=template&id=e029a260& ***!
  \********************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(_vm.HeaderComponent, { tag: "component" }),
      _vm._v(" "),
      _vm.isLoading
        ? _c("div", { staticClass: "loading" }, [
            _c("img", {
              staticClass: "loader-icon img-svg",
              attrs: { src: "/images/loader.svg", alt: "" }
            })
          ])
        : _vm._e(),
      _vm._v(" "),
      _c(
        "div",
        { staticClass: "container content-section purchanse-details" },
        [
          _c("div", { staticClass: "row no-gutters" }, [
            _c("div", { staticClass: "col-sm-9" }, [
              _c("div", { staticClass: "main-content" }, [
                _c("h1", [_vm._v("Tip History")]),
                _vm._v(" "),
                _c("hr"),
                _vm._v(" "),
                _c("div", { staticClass: "tableFixHead" }, [
                  _c(
                    "table",
                    { staticClass: "table table-striped table-dark  " },
                    [
                      _vm._m(0),
                      _vm._v(" "),
                      _c(
                        "tbody",
                        _vm._l(_vm.tipHistory, function(history, index) {
                          return _c(
                            "tr",
                            {
                              attrs: { "data-id": history.id },
                              on: { key: index }
                            },
                            [
                              _c("td", [_vm._v(_vm._s(index + 1))]),
                              _vm._v(" "),
                              _c("td", {
                                staticClass: "text-left",
                                domProps: {
                                  innerHTML: _vm._s(
                                    _vm.getDateFormat(history.created_at)
                                  )
                                }
                              }),
                              _vm._v(" "),
                              _c("td", { staticClass: "text-center" }, [
                                _vm._v("$" + _vm._s(history.amount))
                              ])
                            ]
                          )
                        }),
                        0
                      )
                    ]
                  )
                ])
              ])
            ]),
            _vm._v(" "),
            _c("div", { staticClass: "col-sm-3" }, [
              _c("div", { staticClass: "side-bar" }, [
                _c("ul", [
                  _c("li", [
                    _c("a", { attrs: { href: "send-tip" } }, [
                      _vm._v("Send Tip")
                    ])
                  ]),
                  _vm._v(" "),
                  _c("li", [
                    _c(
                      "a",
                      {
                        staticClass: "active",
                        attrs: { href: "tips-history" }
                      },
                      [_vm._v("Tip History")]
                    )
                  ])
                ])
              ])
            ])
          ])
        ]
      ),
      _vm._v(" "),
      _c(_vm.FooterComponent, { tag: "component" })
    ],
    1
  )
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("thead", [
      _c("tr", [
        _c("th", { attrs: { width: "100" } }),
        _vm._v(" "),
        _c("th", { staticClass: "text-left" }, [_vm._v("Date")]),
        _vm._v(" "),
        _c("th", { staticClass: "text-center", attrs: { width: "100" } }, [
          _vm._v("Amount")
        ])
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Register.vue?vue&type=template&id=8376d414&":
/*!*************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/Register.vue?vue&type=template&id=8376d414& ***!
  \*************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(_vm.HeaderComponent, { tag: "component" }),
      _vm._v(" "),
      _c("div", { staticClass: "container content-section" }, [
        _c("div", { staticClass: "row no-gutters" }, [
          _c("div", { staticClass: "col-sm-5 m-auto" }, [
            _c("form", { staticClass: "login-form" }, [
              _c("h1", [_vm._v("Register")]),
              _vm._v(" "),
              _vm.errors[0]
                ? _c(
                    "div",
                    {
                      class: ["error_message"],
                      staticStyle: {
                        "text-align": "center",
                        "margin-bottom": "17px"
                      }
                    },
                    [_vm._v(_vm._s(_vm.errors))]
                  )
                : _vm._e(),
              _vm._v(" "),
              _c("div", { staticClass: "form-group" }, [
                _c("label", { attrs: { for: "name" } }, [_vm._v("Name")]),
                _vm._v(" "),
                _c("input", {
                  directives: [
                    {
                      name: "model",
                      rawName: "v-model",
                      value: _vm.name,
                      expression: "name"
                    }
                  ],
                  staticClass: "form-control",
                  attrs: {
                    id: "name",
                    type: "text",
                    placeholder: "Enter Name",
                    required: "",
                    autofocus: ""
                  },
                  domProps: { value: _vm.name },
                  on: {
                    input: function($event) {
                      if ($event.target.composing) {
                        return
                      }
                      _vm.name = $event.target.value
                    }
                  }
                }),
                _vm._v(" "),
                _vm.errors.name
                  ? _c("span", { class: ["error_message"] }, [
                      _vm._v(_vm._s(_vm.errors.name[0]))
                    ])
                  : _vm._e()
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "form-group" }, [
                _c("label", { attrs: { for: "email" } }, [
                  _vm._v("E-Mail Address")
                ]),
                _vm._v(" "),
                _c("input", {
                  directives: [
                    {
                      name: "model",
                      rawName: "v-model",
                      value: _vm.email,
                      expression: "email"
                    }
                  ],
                  staticClass: "form-control",
                  attrs: {
                    id: "email",
                    type: "email",
                    placeholder: "Enter Email Address",
                    required: ""
                  },
                  domProps: { value: _vm.email },
                  on: {
                    input: function($event) {
                      if ($event.target.composing) {
                        return
                      }
                      _vm.email = $event.target.value
                    }
                  }
                }),
                _vm._v(" "),
                _vm.errors.email
                  ? _c("span", { class: ["error_message"] }, [
                      _vm._v(_vm._s(_vm.errors.email[0]))
                    ])
                  : _vm._e()
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "form-group" }, [
                _c("label", { attrs: { for: "email" } }, [_vm._v("Gender")]),
                _c("br"),
                _vm._v(" "),
                _c("input", {
                  attrs: {
                    type: "radio",
                    checked: "",
                    id: "male",
                    name: "gender",
                    value: "male"
                  }
                }),
                _vm._v(" "),
                _c("label", { staticClass: "mr-3", attrs: { for: "male" } }, [
                  _vm._v("Male")
                ]),
                _vm._v(" "),
                _c("input", {
                  attrs: {
                    type: "radio",
                    id: "female",
                    name: "gender",
                    value: "female"
                  }
                }),
                _vm._v(" "),
                _c("label", { attrs: { for: "female" } }, [_vm._v("Female")]),
                _c("br"),
                _vm._v(" "),
                _vm.errors.gender
                  ? _c("span", { class: ["error_message"] }, [
                      _vm._v(_vm._s(_vm.errors.gender[0]))
                    ])
                  : _vm._e()
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "form-group" }, [
                _c("label", { attrs: { for: "password" } }, [
                  _vm._v("Password")
                ]),
                _vm._v(" "),
                _c("input", {
                  directives: [
                    {
                      name: "model",
                      rawName: "v-model",
                      value: _vm.password,
                      expression: "password"
                    }
                  ],
                  staticClass: "form-control",
                  attrs: {
                    id: "password",
                    type: "password",
                    placeholder: "Enter Password",
                    required: ""
                  },
                  domProps: { value: _vm.password },
                  on: {
                    input: function($event) {
                      if ($event.target.composing) {
                        return
                      }
                      _vm.password = $event.target.value
                    }
                  }
                }),
                _vm._v(" "),
                _c(
                  "a",
                  {
                    staticClass: "pass_visible",
                    attrs: { href: "javascript:;" }
                  },
                  [
                    _c("i", {
                      staticClass: "fa fa-eye show_password",
                      attrs: { id: "pass-status" },
                      on: { click: _vm.viewPassword }
                    })
                  ]
                ),
                _vm._v(" "),
                _vm.errors.password
                  ? _c("span", { class: ["error_message"] }, [
                      _vm._v(_vm._s(_vm.errors.password[0]))
                    ])
                  : _vm._e()
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "form-group" }, [
                _c("label", { attrs: { for: "password-confirm" } }, [
                  _vm._v("Confirm Password")
                ]),
                _vm._v(" "),
                _c("input", {
                  directives: [
                    {
                      name: "model",
                      rawName: "v-model",
                      value: _vm.password_confirmation,
                      expression: "password_confirmation"
                    }
                  ],
                  staticClass: "form-control",
                  attrs: {
                    id: "password-confirm",
                    type: "password",
                    placeholder: "Confirm Password",
                    required: ""
                  },
                  domProps: { value: _vm.password_confirmation },
                  on: {
                    input: function($event) {
                      if ($event.target.composing) {
                        return
                      }
                      _vm.password_confirmation = $event.target.value
                    }
                  }
                }),
                _vm._v(" "),
                _vm.errors.confirm_password
                  ? _c("span", { class: ["error_message"] }, [
                      _vm._v(_vm._s(_vm.errors.confirm_password[0]))
                    ])
                  : _vm._e()
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "form-group mb-0" }, [
                _c(
                  "div",
                  {
                    staticClass:
                      "d-flex align-self-center justify-content-between"
                  },
                  [
                    _c(
                      "button",
                      {
                        staticClass: "btn btn-primary mr-3",
                        attrs: { type: "submit" },
                        on: { click: _vm.handleSubmit }
                      },
                      [_vm._v(" Register ")]
                    ),
                    _vm._v(" "),
                    _c(
                      "a",
                      {
                        staticClass: "forgot_pass login-button-text",
                        attrs: { href: "/login" }
                      },
                      [_vm._v("Login")]
                    )
                  ]
                )
              ])
            ])
          ])
        ])
      ]),
      _vm._v(" "),
      _c(_vm.FooterComponent, { tag: "component" })
    ],
    1
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/ResetPasswordForm.vue?vue&type=template&id=761308ab&":
/*!**********************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/ResetPasswordForm.vue?vue&type=template&id=761308ab& ***!
  \**********************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(_vm.HeaderComponent, { tag: "component" }),
      _vm._v(" "),
      _c("div", { staticClass: "container content-section" }, [
        _c("div", { staticClass: "row no-gutters" }, [
          _c("div", { staticClass: "col-sm-5 m-auto" }, [
            _c("form", { staticClass: "login-form" }, [
              _c("h5", [_vm._v("Reset Password")]),
              _vm._v(" "),
              _c("br"),
              _vm._v(" "),
              _vm.errors[0]
                ? _c(
                    "div",
                    {
                      class: ["error_message"],
                      staticStyle: {
                        "text-align": "center",
                        "margin-bottom": "5px"
                      }
                    },
                    [_vm._v(_vm._s(_vm.errors))]
                  )
                : _vm._e(),
              _vm._v(" "),
              _c("div", { staticClass: "form-group" }, [
                _c("label", { staticClass: "mb-1" }, [_vm._v("Email Address")]),
                _vm._v(" "),
                _c("input", {
                  directives: [
                    {
                      name: "model",
                      rawName: "v-model",
                      value: _vm.email,
                      expression: "email"
                    }
                  ],
                  staticClass: "form-control",
                  attrs: {
                    type: "text",
                    name: "email",
                    id: "email",
                    placeholder: "Enter email address"
                  },
                  domProps: { value: _vm.email },
                  on: {
                    input: function($event) {
                      if ($event.target.composing) {
                        return
                      }
                      _vm.email = $event.target.value
                    }
                  }
                }),
                _vm._v(" "),
                _vm.errors.email
                  ? _c("span", { class: ["error_message"] }, [
                      _vm._v(_vm._s(_vm.errors.email[0]))
                    ])
                  : _vm._e()
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "form-group" }, [
                _c("label", { staticClass: "mb-1" }, [_vm._v("Password")]),
                _vm._v(" "),
                _c("input", {
                  directives: [
                    {
                      name: "model",
                      rawName: "v-model",
                      value: _vm.password,
                      expression: "password"
                    }
                  ],
                  staticClass: "form-control",
                  attrs: {
                    type: "password",
                    name: "password",
                    id: "password",
                    placeholder: "Enter email address"
                  },
                  domProps: { value: _vm.password },
                  on: {
                    input: function($event) {
                      if ($event.target.composing) {
                        return
                      }
                      _vm.password = $event.target.value
                    }
                  }
                }),
                _vm._v(" "),
                _vm.errors.password
                  ? _c("span", { class: ["error_message"] }, [
                      _vm._v(_vm._s(_vm.errors.password[0]))
                    ])
                  : _vm._e()
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "form-group" }, [
                _c("label", { staticClass: "mb-1" }, [
                  _vm._v("Confirm Password")
                ]),
                _vm._v(" "),
                _c("input", {
                  directives: [
                    {
                      name: "model",
                      rawName: "v-model",
                      value: _vm.confirm_password,
                      expression: "confirm_password"
                    }
                  ],
                  staticClass: "form-control",
                  attrs: {
                    type: "password",
                    name: "confirm_password",
                    id: "confirm_password",
                    placeholder: "Enter email address"
                  },
                  domProps: { value: _vm.confirm_password },
                  on: {
                    input: function($event) {
                      if ($event.target.composing) {
                        return
                      }
                      _vm.confirm_password = $event.target.value
                    }
                  }
                }),
                _vm._v(" "),
                _vm.errors.confirm_password
                  ? _c("span", { class: ["error_message"] }, [
                      _vm._v(_vm._s(_vm.errors.confirm_password[0]))
                    ])
                  : _vm._e()
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "d-flex" }, [
                _c(
                  "a",
                  {
                    staticClass: "btn btn-primary mb-0 text-sm",
                    attrs: { href: "javascript:;" },
                    on: { click: _vm.updatePassword }
                  },
                  [_vm._v("Reset Password")]
                )
              ])
            ])
          ])
        ])
      ]),
      _vm._v(" "),
      _c(_vm.FooterComponent, { tag: "component" })
    ],
    1
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/SendResetPasswordLink.vue?vue&type=template&id=47bae88e&":
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/SendResetPasswordLink.vue?vue&type=template&id=47bae88e& ***!
  \**************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(_vm.HeaderComponent, { tag: "component" }),
      _vm._v(" "),
      _vm.isLoading
        ? _c("div", { staticClass: "loading" }, [
            _c("img", {
              staticClass: "loader-icon img-svg",
              attrs: { src: "/images/loader.svg", alt: "" }
            })
          ])
        : _vm._e(),
      _vm._v(" "),
      _c("div", { staticClass: "container content-section" }, [
        _c("div", { staticClass: "row no-gutters" }, [
          _c("div", { staticClass: "col-sm-5 m-auto" }, [
            _c("form", { staticClass: "login-form" }, [
              _c("h5", [
                _vm._v("Please enter your email to get reset password link")
              ]),
              _vm._v(" "),
              _c("br"),
              _vm._v(" "),
              _vm.errors[0]
                ? _c(
                    "div",
                    {
                      class: ["error_message"],
                      staticStyle: {
                        "text-align": "center",
                        "margin-bottom": "5px"
                      }
                    },
                    [_vm._v(_vm._s(_vm.errors))]
                  )
                : _vm._e(),
              _vm._v(" "),
              _c("div", { staticClass: "form-group" }, [
                _c("label", { staticClass: "mb-1" }, [_vm._v("Email Address")]),
                _vm._v(" "),
                _c("input", {
                  directives: [
                    {
                      name: "model",
                      rawName: "v-model",
                      value: _vm.email,
                      expression: "email"
                    }
                  ],
                  staticClass: "form-control",
                  attrs: {
                    type: "text",
                    name: "email",
                    id: "email",
                    placeholder: "Enter email address"
                  },
                  domProps: { value: _vm.email },
                  on: {
                    input: function($event) {
                      if ($event.target.composing) {
                        return
                      }
                      _vm.email = $event.target.value
                    }
                  }
                }),
                _vm._v(" "),
                _vm.errors.email
                  ? _c("span", { class: ["error_message"] }, [
                      _vm._v(_vm._s(_vm.errors.email[0]))
                    ])
                  : _vm._e()
              ]),
              _vm._v(" "),
              _c("div", { staticClass: "d-flex" }, [
                _c(
                  "a",
                  { staticClass: " text-sm", attrs: { href: "/login" } },
                  [_vm._v("Back To Login")]
                ),
                _vm._v(" "),
                _c(
                  "a",
                  {
                    staticClass: "btn btn-primary ml-auto mb-0 text-sm",
                    attrs: { href: "javascript:;" },
                    on: { click: _vm.resetPasswordLinkSend }
                  },
                  [_vm._v("Send Link")]
                )
              ])
            ])
          ])
        ])
      ]),
      _vm._v(" "),
      _c(_vm.FooterComponent, { tag: "component" })
    ],
    1
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/SingleProduct.vue?vue&type=template&id=25288544&scoped=true&":
/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/SingleProduct.vue?vue&type=template&id=25288544&scoped=true& ***!
  \******************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "container" }, [
    _c("div", { staticClass: "row" }, [
      _c(
        "div",
        { staticClass: "col-md-8 offset-md-2" },
        [
          _c("img", {
            attrs: { src: _vm.product.image, alt: _vm.product.name }
          }),
          _vm._v(" "),
          _c("h3", {
            staticClass: "title",
            domProps: { innerHTML: _vm._s(_vm.product.name) }
          }),
          _vm._v(" "),
          _c("p", { staticClass: "text-muted" }, [
            _vm._v(_vm._s(_vm.product.description))
          ]),
          _vm._v(" "),
          _c("h4", [
            _c("span", { staticClass: "small-text text-muted float-left" }, [
              _vm._v("$ " + _vm._s(_vm.product.price))
            ]),
            _vm._v(" "),
            _c("span", { staticClass: "small-text float-right" }, [
              _vm._v("Available Quantity: " + _vm._s(_vm.product.units))
            ])
          ]),
          _vm._v(" "),
          _c("br"),
          _vm._v(" "),
          _c("hr"),
          _vm._v(" "),
          _c(
            "router-link",
            {
              staticClass: "col-md-4 btn btn-sm btn-primary float-right",
              attrs: { to: { path: "/checkout?pid=" + _vm.product.id } }
            },
            [_vm._v("Buy Now")]
          )
        ],
        1
      )
    ])
  ])
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/TransactionHistory.vue?vue&type=template&id=31289be9&":
/*!***********************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/TransactionHistory.vue?vue&type=template&id=31289be9& ***!
  \***********************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    [
      _c(_vm.HeaderComponent, { tag: "component" }),
      _vm._v(" "),
      _vm.isLoading
        ? _c("div", { staticClass: "loading" }, [
            _c("img", {
              staticClass: "loader-icon img-svg",
              attrs: { src: "/images/loader.svg", alt: "" }
            })
          ])
        : _vm._e(),
      _vm._v(" "),
      _c("div", { staticClass: "container content-section" }, [
        _c("div", { staticClass: "row no-gutters" }, [
          _c("div", { staticClass: "col-sm-9" }, [
            _c("div", { staticClass: "main-content" }, [
              _c("h2", [_vm._v("Transaction History")]),
              _vm._v(" "),
              _c("hr"),
              _vm._v(" "),
              _c("div", { staticClass: "mb-4" }),
              _vm._v(" "),
              _c("div", { staticClass: "tableFixHead" }, [
                _c(
                  "table",
                  { staticClass: "table table-striped table-dark " },
                  [
                    _vm._m(0),
                    _vm._v(" "),
                    _c(
                      "tbody",
                      _vm._l(_vm.transactionData, function(order, index) {
                        return _c(
                          "tr",
                          {
                            attrs: { "data-id": order.id },
                            on: { key: index }
                          },
                          [
                            _c("td", [
                              order.profile != null
                                ? _c(
                                    "div",
                                    {
                                      staticClass: "cnt-img square-img border"
                                    },
                                    [
                                      (order.fileType = "image")
                                        ? _c("img", {
                                            staticClass: "w-100",
                                            attrs: {
                                              src:
                                                "/api/imagesView/" +
                                                order.profile,
                                              alt: ""
                                            }
                                          })
                                        : order.fileType == "video"
                                        ? _c(
                                            "video",
                                            {
                                              staticClass: "w-100 ",
                                              attrs: {
                                                oncontextmenu: "return false;",
                                                height: "100",
                                                id: "videoElementID",
                                                controlsList: "nodownload",
                                                controls: "",
                                                disablePictureInPicture: ""
                                              }
                                            },
                                            [
                                              _c("source", {
                                                attrs: {
                                                  src:
                                                    "/api/videoView/" +
                                                    _vm.product.image,
                                                  type: "video/mp4"
                                                }
                                              }),
                                              _vm._v(
                                                "\n                        Your browser does not support the video tag.\n                      "
                                              )
                                            ]
                                          )
                                        : _vm._e()
                                    ]
                                  )
                                : _c(
                                    "div",
                                    {
                                      staticClass: "cnt-img square-img border"
                                    },
                                    [
                                      _c("img", {
                                        staticClass: "w-100",
                                        attrs: {
                                          src: "img/no-image.png",
                                          alt: ""
                                        }
                                      })
                                    ]
                                  )
                            ]),
                            _vm._v(" "),
                            _c("td", [
                              _c("h5", { staticClass: "mb-1" }, [
                                _c(
                                  "a",
                                  {
                                    attrs: {
                                      href: "/detail-view/" + order.product_id
                                    }
                                  },
                                  [_vm._v(_vm._s(order.product_name))]
                                )
                              ])
                            ]),
                            _vm._v(" "),
                            _c("td", {
                              staticClass: "text-left",
                              domProps: {
                                innerHTML: _vm._s(
                                  _vm.getDateFormat(order.start_dt)
                                )
                              }
                            }),
                            _vm._v(" "),
                            _c("td", {
                              staticClass: "text-left",
                              domProps: {
                                innerHTML: _vm._s(
                                  _vm.getDateFormat(order.end_dt)
                                )
                              }
                            }),
                            _vm._v(" "),
                            _c("td", { staticClass: "text-left" }, [
                              _vm._v("$" + _vm._s(order.price))
                            ]),
                            _vm._v(" "),
                            _c(
                              "td",
                              { staticClass: "text-center align-middle" },
                              [
                                _c(
                                  "a",
                                  {
                                    staticClass: "p-2",
                                    attrs: {
                                      href: "/detail-view/" + order.product_id
                                    }
                                  },
                                  [_c("i", { staticClass: "fa fa-eye" })]
                                ),
                                _vm._v(" "),
                                _c(
                                  "a",
                                  {
                                    staticClass: "p-2",
                                    attrs: { href: "javascript:;" },
                                    on: {
                                      click: function($event) {
                                        return _vm.deleteOrderProduct(order)
                                      }
                                    }
                                  },
                                  [_c("i", { staticClass: "fa fa-trash" })]
                                )
                              ]
                            )
                          ]
                        )
                      }),
                      0
                    )
                  ]
                )
              ])
            ])
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "col-sm-3" }, [
            _c("div", { staticClass: "side-bar" }, [
              _c("ul", [
                _c("li", [
                  _c("a", { attrs: { href: "account-setting" } }, [
                    _vm._v("Account Setting")
                  ])
                ]),
                _vm._v(" "),
                _c("li", [
                  _c(
                    "a",
                    {
                      staticClass: "active",
                      attrs: { href: "transaction-history" }
                    },
                    [_vm._v("Transaction History")]
                  )
                ]),
                _vm._v(" "),
                _c("li", [
                  _c("a", { attrs: { href: "change-password" } }, [
                    _vm._v("Change Password")
                  ])
                ]),
                _vm._v(" "),
                _c("li", [
                  _c("a", { attrs: { href: "message-purchase-history" } }, [
                    _vm._v("Message Purchase History")
                  ])
                ])
              ])
            ])
          ])
        ])
      ]),
      _vm._v(" "),
      _c(_vm.FooterComponent, { tag: "component" })
    ],
    1
  )
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c("thead", [
      _c("tr", [
        _c("th", { attrs: { width: "80" } }),
        _vm._v(" "),
        _c("th", { staticClass: "text-left" }, [_vm._v("Title")]),
        _vm._v(" "),
        _c("th", { staticClass: "text-left", attrs: { width: "120" } }, [
          _vm._v("Buy Date")
        ]),
        _vm._v(" "),
        _c("th", { staticClass: "text-left", attrs: { width: "120" } }, [
          _vm._v("Expiry Date")
        ]),
        _vm._v(" "),
        _c("th", { staticClass: "text-right", attrs: { width: "80" } }, [
          _vm._v("Amount")
        ]),
        _vm._v(" "),
        _c("th", { staticClass: "text-center" }, [_vm._v("Action")])
      ])
    ])
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/UserBoard.vue?vue&type=template&id=751a1018&scoped=true&":
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/views/UserBoard.vue?vue&type=template&id=751a1018&scoped=true& ***!
  \**************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", [
    _vm._m(0),
    _vm._v(" "),
    _c("div", { staticClass: "container" }, [
      _c("div", { staticClass: "row" }, [
        _c("div", { staticClass: "col-md-12" }, [
          _c("br"),
          _vm._v(" "),
          _c(
            "div",
            { staticClass: "row" },
            _vm._l(_vm.orders, function(order, index) {
              return _c(
                "div",
                { staticClass: "col-md-4 product-box", on: { key: index } },
                [
                  _c("img", {
                    attrs: { src: order.product.image, alt: order.product.name }
                  }),
                  _vm._v(" "),
                  _c("h5", [
                    _c("span", {
                      domProps: { innerHTML: _vm._s(order.product.name) }
                    }),
                    _c("br"),
                    _vm._v(" "),
                    _c("span", { staticClass: "small-text text-muted" }, [
                      _vm._v("$ " + _vm._s(order.product.price))
                    ])
                  ]),
                  _vm._v(" "),
                  _c("hr"),
                  _vm._v(" "),
                  _c("span", { staticClass: "small-text text-muted" }, [
                    _vm._v(
                      "Quantity: " +
                        _vm._s(order.quantity) +
                        "\n                            "
                    ),
                    _c("span", { staticClass: "float-right" }, [
                      _vm._v(
                        _vm._s(
                          order.is_delivered == 1 ? "shipped!" : "not shipped"
                        )
                      )
                    ])
                  ]),
                  _vm._v(" "),
                  _c("br"),
                  _c("br"),
                  _vm._v(" "),
                  _c("p", [
                    _c("strong", [_vm._v("Delivery address:")]),
                    _vm._v(" "),
                    _c("br"),
                    _vm._v(_vm._s(order.address))
                  ])
                ]
              )
            }),
            0
          )
        ])
      ])
    ])
  ])
}
var staticRenderFns = [
  function() {
    var _vm = this
    var _h = _vm.$createElement
    var _c = _vm._self._c || _h
    return _c(
      "div",
      {
        staticClass:
          "container-fluid hero-section d-flex align-content-center justify-content-center flex-wrap ml-auto"
      },
      [_c("h2", { staticClass: "title" }, [_vm._v("All your orders")])]
    )
  }
]
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js":
/*!********************************************************************!*\
  !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; });
/* globals __VUE_SSR_CONTEXT__ */

// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.

function normalizeComponent (
  scriptExports,
  render,
  staticRenderFns,
  functionalTemplate,
  injectStyles,
  scopeId,
  moduleIdentifier, /* server only */
  shadowMode /* vue-cli only */
) {
  // Vue.extend constructor export interop
  var options = typeof scriptExports === 'function'
    ? scriptExports.options
    : scriptExports

  // render functions
  if (render) {
    options.render = render
    options.staticRenderFns = staticRenderFns
    options._compiled = true
  }

  // functional template
  if (functionalTemplate) {
    options.functional = true
  }

  // scopedId
  if (scopeId) {
    options._scopeId = 'data-v-' + scopeId
  }

  var hook
  if (moduleIdentifier) { // server build
    hook = function (context) {
      // 2.3 injection
      context =
        context || // cached call
        (this.$vnode && this.$vnode.ssrContext) || // stateful
        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
      // 2.2 with runInNewContext: true
      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
        context = __VUE_SSR_CONTEXT__
      }
      // inject component styles
      if (injectStyles) {
        injectStyles.call(this, context)
      }
      // register component module identifier for async chunk inferrence
      if (context && context._registeredComponents) {
        context._registeredComponents.add(moduleIdentifier)
      }
    }
    // used by ssr in case component is cached and beforeCreate
    // never gets called
    options._ssrRegister = hook
  } else if (injectStyles) {
    hook = shadowMode
      ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
      : injectStyles
  }

  if (hook) {
    if (options.functional) {
      // for template-only hot-reload because in that case the render fn doesn't
      // go through the normalizer
      options._injectStyles = hook
      // register for functioal component in vue file
      var originalRender = options.render
      options.render = function renderWithStyleInjection (h, context) {
        hook.call(context)
        return originalRender(h, context)
      }
    } else {
      // inject component registration as beforeCreate hook
      var existing = options.beforeCreate
      options.beforeCreate = existing
        ? [].concat(existing, hook)
        : [hook]
    }
  }

  return {
    exports: scriptExports,
    options: options
  }
}


/***/ }),

/***/ "./node_modules/vue-multiselect/dist/vue-multiselect.min.css?vue&type=style&index=0&lang=css&":
/*!****************************************************************************************************!*\
  !*** ./node_modules/vue-multiselect/dist/vue-multiselect.min.css?vue&type=style&index=0&lang=css& ***!
  \****************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _style_loader_index_js_css_loader_index_js_ref_6_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_6_2_vue_multiselect_min_css_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../style-loader!../../css-loader??ref--6-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src??ref--6-2!./vue-multiselect.min.css?vue&type=style&index=0&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-multiselect/dist/vue-multiselect.min.css?vue&type=style&index=0&lang=css&");
/* harmony import */ var _style_loader_index_js_css_loader_index_js_ref_6_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_6_2_vue_multiselect_min_css_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_index_js_css_loader_index_js_ref_6_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_6_2_vue_multiselect_min_css_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _style_loader_index_js_css_loader_index_js_ref_6_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_6_2_vue_multiselect_min_css_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _style_loader_index_js_css_loader_index_js_ref_6_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_6_2_vue_multiselect_min_css_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_style_loader_index_js_css_loader_index_js_ref_6_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_6_2_vue_multiselect_min_css_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./node_modules/vue-multiselect/dist/vue-multiselect.min.js":
/*!******************************************************************!*\
  !*** ./node_modules/vue-multiselect/dist/vue-multiselect.min.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

!function(t,e){ true?module.exports=e():undefined}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].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,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},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=60)}([function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){var i=n(49)("wks"),r=n(30),o=n(0).Symbol,s="function"==typeof o;(t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)("Symbol."+t))}).store=i},function(t,e,n){var i=n(5);t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){var i=n(0),r=n(10),o=n(8),s=n(6),u=n(11),a=function(t,e,n){var l,c,f,p,h=t&a.F,d=t&a.G,v=t&a.S,g=t&a.P,y=t&a.B,m=d?i:v?i[e]||(i[e]={}):(i[e]||{}).prototype,b=d?r:r[e]||(r[e]={}),_=b.prototype||(b.prototype={});d&&(n=e);for(l in n)c=!h&&m&&void 0!==m[l],f=(c?m:n)[l],p=y&&c?u(f,i):g&&"function"==typeof f?u(Function.call,f):f,m&&s(m,l,f,t&a.U),b[l]!=f&&o(b,l,p),g&&_[l]!=f&&(_[l]=f)};i.core=r,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},function(t,e,n){t.exports=!n(7)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var i=n(0),r=n(8),o=n(12),s=n(30)("src"),u=Function.toString,a=(""+u).split("toString");n(10).inspectSource=function(t){return u.call(t)},(t.exports=function(t,e,n,u){var l="function"==typeof n;l&&(o(n,"name")||r(n,"name",e)),t[e]!==n&&(l&&(o(n,s)||r(n,s,t[e]?""+t[e]:a.join(String(e)))),t===i?t[e]=n:u?t[e]?t[e]=n:r(t,e,n):(delete t[e],r(t,e,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[s]||u.call(this)})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var i=n(13),r=n(25);t.exports=n(4)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){var n=t.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(t,e,n){var i=n(14);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var i=n(2),r=n(41),o=n(29),s=Object.defineProperty;e.f=n(4)?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports={}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on  "+t);return t}},function(t,e,n){"use strict";var i=n(7);t.exports=function(t,e){return!!t&&i(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,n){var i=n(23),r=n(16);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(53),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e,n){var i=n(11),r=n(23),o=n(28),s=n(19),u=n(64);t.exports=function(t,e){var n=1==t,a=2==t,l=3==t,c=4==t,f=6==t,p=5==t||f,h=e||u;return function(e,u,d){for(var v,g,y=o(e),m=r(y),b=i(u,d,3),_=s(m.length),x=0,w=n?h(e,_):a?h(e,0):void 0;_>x;x++)if((p||x in m)&&(v=m[x],g=b(v,x,y),t))if(n)w[x]=g;else if(g)switch(t){case 3:return!0;case 5:return v;case 6:return x;case 2:w.push(v)}else if(c)return!1;return f?-1:l||c?c:w}}},function(t,e,n){var i=n(5),r=n(0).document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var i=n(9);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},function(t,e){t.exports=!1},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var i=n(13).f,r=n(12),o=n(1)("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){var i=n(49)("keys"),r=n(30);t.exports=function(t){return i[t]||(i[t]=r(t))}},function(t,e,n){var i=n(16);t.exports=function(t){return Object(i(t))}},function(t,e,n){var i=n(5);t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},function(t,e){var n=0,i=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},function(t,e,n){"use strict";var i=n(0),r=n(12),o=n(9),s=n(67),u=n(29),a=n(7),l=n(77).f,c=n(45).f,f=n(13).f,p=n(51).trim,h=i.Number,d=h,v=h.prototype,g="Number"==o(n(44)(v)),y="trim"in String.prototype,m=function(t){var e=u(t,!1);if("string"==typeof e&&e.length>2){e=y?e.trim():p(e,3);var n,i,r,o=e.charCodeAt(0);if(43===o||45===o){if(88===(n=e.charCodeAt(2))||120===n)return NaN}else if(48===o){switch(e.charCodeAt(1)){case 66:case 98:i=2,r=49;break;case 79:case 111:i=8,r=55;break;default:return+e}for(var s,a=e.slice(2),l=0,c=a.length;l<c;l++)if((s=a.charCodeAt(l))<48||s>r)return NaN;return parseInt(a,i)}}return+e};if(!h(" 0o1")||!h("0b1")||h("+0x1")){h=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof h&&(g?a(function(){v.valueOf.call(n)}):"Number"!=o(n))?s(new d(m(e)),n,h):m(e)};for(var b,_=n(4)?l(d):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),x=0;_.length>x;x++)r(d,b=_[x])&&!r(h,b)&&f(h,b,c(d,b));h.prototype=v,v.constructor=h,n(6)(i,"Number",h)}},function(t,e,n){"use strict";function i(t){return 0!==t&&(!(!Array.isArray(t)||0!==t.length)||!t)}function r(t){return function(){return!t.apply(void 0,arguments)}}function o(t,e){return void 0===t&&(t="undefined"),null===t&&(t="null"),!1===t&&(t="false"),-1!==t.toString().toLowerCase().indexOf(e.trim())}function s(t,e,n,i){return t.filter(function(t){return o(i(t,n),e)})}function u(t){return t.filter(function(t){return!t.$isLabel})}function a(t,e){return function(n){return n.reduce(function(n,i){return i[t]&&i[t].length?(n.push({$groupLabel:i[e],$isLabel:!0}),n.concat(i[t])):n},[])}}function l(t,e,i,r,o){return function(u){return u.map(function(u){var a;if(!u[i])return console.warn("Options passed to vue-multiselect do not contain groups, despite the config."),[];var l=s(u[i],t,e,o);return l.length?(a={},n.i(d.a)(a,r,u[r]),n.i(d.a)(a,i,l),a):[]})}}var c=n(59),f=n(54),p=(n.n(f),n(95)),h=(n.n(p),n(31)),d=(n.n(h),n(58)),v=n(91),g=(n.n(v),n(98)),y=(n.n(g),n(92)),m=(n.n(y),n(88)),b=(n.n(m),n(97)),_=(n.n(b),n(89)),x=(n.n(_),n(96)),w=(n.n(x),n(93)),S=(n.n(w),n(90)),O=(n.n(S),function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){return e.reduce(function(t,e){return e(t)},t)}});e.a={data:function(){return{search:"",isOpen:!1,preferredOpenDirection:"below",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},value:{type:null,default:function(){return[]}},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:"Select option"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default:function(t,e){return i(t)?"":e?t[e]:t}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:"Press enter to create a tag"},tagPosition:{type:String,default:"top"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default:function(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1}},mounted:function(){!this.multiple&&this.max&&console.warn("[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false."),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue:function(){return this.value||0===this.value?Array.isArray(this.value)?this.value:[this.value]:[]},filteredOptions:function(){var t=this.search||"",e=t.toLowerCase().trim(),n=this.options.concat();return n=this.internalSearch?this.groupValues?this.filterAndFlat(n,e,this.label):s(n,e,this.label,this.customLabel):this.groupValues?a(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(r(this.isSelected)):n,this.taggable&&e.length&&!this.isExistingOption(e)&&("bottom"===this.tagPosition?n.push({isTag:!0,label:t}):n.unshift({isTag:!0,label:t})),n.slice(0,this.optionsLimit)},valueKeys:function(){var t=this;return this.trackBy?this.internalValue.map(function(e){return e[t.trackBy]}):this.internalValue},optionKeys:function(){var t=this;return(this.groupValues?this.flatAndStrip(this.options):this.options).map(function(e){return t.customLabel(e,t.label).toString().toLowerCase()})},currentOptionLabel:function(){return this.multiple?this.searchable?"":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?"":this.placeholder}},watch:{internalValue:function(){this.resetAfter&&this.internalValue.length&&(this.search="",this.$emit("input",this.multiple?[]:null))},search:function(){this.$emit("search-change",this.search,this.id)}},methods:{getValue:function(){return this.multiple?this.internalValue:0===this.internalValue.length?null:this.internalValue[0]},filterAndFlat:function(t,e,n){return O(l(e,n,this.groupValues,this.groupLabel,this.customLabel),a(this.groupValues,this.groupLabel))(t)},flatAndStrip:function(t){return O(a(this.groupValues,this.groupLabel),u)(t)},updateSearch:function(t){this.search=t},isExistingOption:function(t){return!!this.options&&this.optionKeys.indexOf(t)>-1},isSelected:function(t){var e=this.trackBy?t[this.trackBy]:t;return this.valueKeys.indexOf(e)>-1},isOptionDisabled:function(t){return!!t.$isDisabled},getOptionLabel:function(t){if(i(t))return"";if(t.isTag)return t.label;if(t.$isLabel)return t.$groupLabel;var e=this.customLabel(t,this.label);return i(e)?"":e},select:function(t,e){if(t.$isLabel&&this.groupSelect)return void this.selectGroup(t);if(!(-1!==this.blockKeys.indexOf(e)||this.disabled||t.$isDisabled||t.$isLabel)&&(!this.max||!this.multiple||this.internalValue.length!==this.max)&&("Tab"!==e||this.pointerDirty)){if(t.isTag)this.$emit("tag",t.label,this.id),this.search="",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(t))return void("Tab"!==e&&this.removeElement(t));this.$emit("select",t,this.id),this.multiple?this.$emit("input",this.internalValue.concat([t]),this.id):this.$emit("input",t,this.id),this.clearOnSelect&&(this.search="")}this.closeOnSelect&&this.deactivate()}},selectGroup:function(t){var e=this,n=this.options.find(function(n){return n[e.groupLabel]===t.$groupLabel});if(n)if(this.wholeGroupSelected(n)){this.$emit("remove",n[this.groupValues],this.id);var i=this.internalValue.filter(function(t){return-1===n[e.groupValues].indexOf(t)});this.$emit("input",i,this.id)}else{var r=n[this.groupValues].filter(function(t){return!(e.isOptionDisabled(t)||e.isSelected(t))});this.$emit("select",r,this.id),this.$emit("input",this.internalValue.concat(r),this.id)}},wholeGroupSelected:function(t){var e=this;return t[this.groupValues].every(function(t){return e.isSelected(t)||e.isOptionDisabled(t)})},wholeGroupDisabled:function(t){return t[this.groupValues].every(this.isOptionDisabled)},removeElement:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.disabled&&!t.$isDisabled){if(!this.allowEmpty&&this.internalValue.length<=1)return void this.deactivate();var i="object"===n.i(c.a)(t)?this.valueKeys.indexOf(t[this.trackBy]):this.valueKeys.indexOf(t);if(this.$emit("remove",t,this.id),this.multiple){var r=this.internalValue.slice(0,i).concat(this.internalValue.slice(i+1));this.$emit("input",r,this.id)}else this.$emit("input",null,this.id);this.closeOnSelect&&e&&this.deactivate()}},removeLastElement:function(){-1===this.blockKeys.indexOf("Delete")&&0===this.search.length&&Array.isArray(this.internalValue)&&this.internalValue.length&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate:function(){var t=this;this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&0===this.pointer&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=""),this.$nextTick(function(){return t.$refs.search.focus()})):this.$el.focus(),this.$emit("open",this.id))},deactivate:function(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search.blur():this.$el.blur(),this.preserveSearch||(this.search=""),this.$emit("close",this.getValue(),this.id))},toggle:function(){this.isOpen?this.deactivate():this.activate()},adjustPosition:function(){if("undefined"!=typeof window){var t=this.$el.getBoundingClientRect().top,e=window.innerHeight-this.$el.getBoundingClientRect().bottom;e>this.maxHeight||e>t||"below"===this.openDirection||"bottom"===this.openDirection?(this.preferredOpenDirection="below",this.optimizedHeight=Math.min(e-40,this.maxHeight)):(this.preferredOpenDirection="above",this.optimizedHeight=Math.min(t-40,this.maxHeight))}}}}},function(t,e,n){"use strict";var i=n(54),r=(n.n(i),n(31));n.n(r);e.a={data:function(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition:function(){return this.pointer*this.optionHeight},visibleElements:function(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions:function(){this.pointerAdjust()},isOpen:function(){this.pointerDirty=!1}},methods:{optionHighlight:function(t,e){return{"multiselect__option--highlight":t===this.pointer&&this.showPointer,"multiselect__option--selected":this.isSelected(e)}},groupHighlight:function(t,e){var n=this;if(!this.groupSelect)return["multiselect__option--group","multiselect__option--disabled"];var i=this.options.find(function(t){return t[n.groupLabel]===e.$groupLabel});return i&&!this.wholeGroupDisabled(i)?["multiselect__option--group",{"multiselect__option--highlight":t===this.pointer&&this.showPointer},{"multiselect__option--group-selected":this.wholeGroupSelected(i)}]:"multiselect__option--disabled"},addPointerElement:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Enter",e=t.key;this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],e),this.pointerReset()},pointerForward:function(){this.pointer<this.filteredOptions.length-1&&(this.pointer++,this.$refs.list.scrollTop<=this.pointerPosition-(this.visibleElements-1)*this.optionHeight&&(this.$refs.list.scrollTop=this.pointerPosition-(this.visibleElements-1)*this.optionHeight),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()),this.pointerDirty=!0},pointerBackward:function(){this.pointer>0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset:function(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust:function(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet:function(t){this.pointer=t,this.pointerDirty=!0}}}},function(t,e,n){"use strict";var i=n(36),r=n(74),o=n(15),s=n(18);t.exports=n(72)(Array,"Array",function(t,e){this._t=s(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,r(1)):"keys"==e?r(0,n):"values"==e?r(0,t[n]):r(0,[n,t[n]])},"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},function(t,e,n){"use strict";var i=n(31),r=(n.n(i),n(32)),o=n(33);e.a={name:"vue-multiselect",mixins:[r.a,o.a],props:{name:{type:String,default:""},selectLabel:{type:String,default:"Press enter to select"},selectGroupLabel:{type:String,default:"Press enter to select group"},selectedLabel:{type:String,default:"Selected"},deselectLabel:{type:String,default:"Press enter to remove"},deselectGroupLabel:{type:String,default:"Press enter to deselect group"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:function(t){return"and ".concat(t," more")}},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:""},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{isSingleLabelVisible:function(){return(this.singleValue||0===this.singleValue)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible:function(){return!(this.internalValue.length||this.searchable&&this.isOpen)},visibleValues:function(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue:function(){return this.internalValue[0]},deselectLabelText:function(){return this.showLabels?this.deselectLabel:""},deselectGroupLabelText:function(){return this.showLabels?this.deselectGroupLabel:""},selectLabelText:function(){return this.showLabels?this.selectLabel:""},selectGroupLabelText:function(){return this.showLabels?this.selectGroupLabel:""},selectedLabelText:function(){return this.showLabels?this.selectedLabel:""},inputStyle:function(){if(this.searchable||this.multiple&&this.value&&this.value.length)return this.isOpen?{width:"100%"}:{width:"0",position:"absolute",padding:"0"}},contentStyle:function(){return this.options.length?{display:"inline-block"}:{display:"block"}},isAbove:function(){return"above"===this.openDirection||"top"===this.openDirection||"below"!==this.openDirection&&"bottom"!==this.openDirection&&"above"===this.preferredOpenDirection},showSearchInput:function(){return this.searchable&&(!this.hasSingleSelectedSlot||!this.visibleSingleValue&&0!==this.visibleSingleValue||this.isOpen)}}}},function(t,e,n){var i=n(1)("unscopables"),r=Array.prototype;void 0==r[i]&&n(8)(r,i,{}),t.exports=function(t){r[i][t]=!0}},function(t,e,n){var i=n(18),r=n(19),o=n(85);t.exports=function(t){return function(e,n,s){var u,a=i(e),l=r(a.length),c=o(s,l);if(t&&n!=n){for(;l>c;)if((u=a[c++])!=u)return!0}else for(;l>c;c++)if((t||c in a)&&a[c]===n)return t||c||0;return!t&&-1}}},function(t,e,n){var i=n(9),r=n(1)("toStringTag"),o="Arguments"==i(function(){return arguments}()),s=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,n,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=s(e=Object(t),r))?n:o?i(e):"Object"==(u=i(e))&&"function"==typeof e.callee?"Arguments":u}},function(t,e,n){"use strict";var i=n(2);t.exports=function(){var t=i(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},function(t,e,n){var i=n(0).document;t.exports=i&&i.documentElement},function(t,e,n){t.exports=!n(4)&&!n(7)(function(){return 7!=Object.defineProperty(n(21)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var i=n(9);t.exports=Array.isArray||function(t){return"Array"==i(t)}},function(t,e,n){"use strict";function i(t){var e,n;this.promise=new t(function(t,i){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=i}),this.resolve=r(e),this.reject=r(n)}var r=n(14);t.exports.f=function(t){return new i(t)}},function(t,e,n){var i=n(2),r=n(76),o=n(22),s=n(27)("IE_PROTO"),u=function(){},a=function(){var t,e=n(21)("iframe"),i=o.length;for(e.style.display="none",n(40).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("<script>document.F=Object<\/script>"),t.close(),a=t.F;i--;)delete a.prototype[o[i]];return a()};t.exports=Object.create||function(t,e){var n;return null!==t?(u.prototype=i(t),n=new u,u.prototype=null,n[s]=t):n=a(),void 0===e?n:r(n,e)}},function(t,e,n){var i=n(79),r=n(25),o=n(18),s=n(29),u=n(12),a=n(41),l=Object.getOwnPropertyDescriptor;e.f=n(4)?l:function(t,e){if(t=o(t),e=s(e,!0),a)try{return l(t,e)}catch(t){}if(u(t,e))return r(!i.f.call(t,e),t[e])}},function(t,e,n){var i=n(12),r=n(18),o=n(37)(!1),s=n(27)("IE_PROTO");t.exports=function(t,e){var n,u=r(t),a=0,l=[];for(n in u)n!=s&&i(u,n)&&l.push(n);for(;e.length>a;)i(u,n=e[a++])&&(~o(l,n)||l.push(n));return l}},function(t,e,n){var i=n(46),r=n(22);t.exports=Object.keys||function(t){return i(t,r)}},function(t,e,n){var i=n(2),r=n(5),o=n(43);t.exports=function(t,e){if(i(t),r(e)&&e.constructor===t)return e;var n=o.f(t);return(0,n.resolve)(e),n.promise}},function(t,e,n){var i=n(10),r=n(0),o=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:i.version,mode:n(24)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(t,e,n){var i=n(2),r=n(14),o=n(1)("species");t.exports=function(t,e){var n,s=i(t).constructor;return void 0===s||void 0==(n=i(s)[o])?e:r(n)}},function(t,e,n){var i=n(3),r=n(16),o=n(7),s=n(84),u="["+s+"]",a="​…",l=RegExp("^"+u+u+"*"),c=RegExp(u+u+"*$"),f=function(t,e,n){var r={},u=o(function(){return!!s[t]()||a[t]()!=a}),l=r[t]=u?e(p):s[t];n&&(r[n]=l),i(i.P+i.F*u,"String",r)},p=f.trim=function(t,e){return t=String(r(t)),1&e&&(t=t.replace(l,"")),2&e&&(t=t.replace(c,"")),t};t.exports=f},function(t,e,n){var i,r,o,s=n(11),u=n(68),a=n(40),l=n(21),c=n(0),f=c.process,p=c.setImmediate,h=c.clearImmediate,d=c.MessageChannel,v=c.Dispatch,g=0,y={},m=function(){var t=+this;if(y.hasOwnProperty(t)){var e=y[t];delete y[t],e()}},b=function(t){m.call(t.data)};p&&h||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return y[++g]=function(){u("function"==typeof t?t:Function(t),e)},i(g),g},h=function(t){delete y[t]},"process"==n(9)(f)?i=function(t){f.nextTick(s(m,t,1))}:v&&v.now?i=function(t){v.now(s(m,t,1))}:d?(r=new d,o=r.port2,r.port1.onmessage=b,i=s(o.postMessage,o,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(i=function(t){c.postMessage(t+"","*")},c.addEventListener("message",b,!1)):i="onreadystatechange"in l("script")?function(t){a.appendChild(l("script")).onreadystatechange=function(){a.removeChild(this),m.call(t)}}:function(t){setTimeout(s(m,t,1),0)}),t.exports={set:p,clear:h}},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){"use strict";var i=n(3),r=n(20)(5),o=!0;"find"in[]&&Array(1).find(function(){o=!1}),i(i.P+i.F*o,"Array",{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n(36)("find")},function(t,e,n){"use strict";var i,r,o,s,u=n(24),a=n(0),l=n(11),c=n(38),f=n(3),p=n(5),h=n(14),d=n(61),v=n(66),g=n(50),y=n(52).set,m=n(75)(),b=n(43),_=n(80),x=n(86),w=n(48),S=a.TypeError,O=a.process,L=O&&O.versions,k=L&&L.v8||"",P=a.Promise,T="process"==c(O),V=function(){},E=r=b.f,A=!!function(){try{var t=P.resolve(1),e=(t.constructor={})[n(1)("species")]=function(t){t(V,V)};return(T||"function"==typeof PromiseRejectionEvent)&&t.then(V)instanceof e&&0!==k.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(t){}}(),C=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},D=function(t,e){if(!t._n){t._n=!0;var n=t._c;m(function(){for(var i=t._v,r=1==t._s,o=0;n.length>o;)!function(e){var n,o,s,u=r?e.ok:e.fail,a=e.resolve,l=e.reject,c=e.domain;try{u?(r||(2==t._h&&$(t),t._h=1),!0===u?n=i:(c&&c.enter(),n=u(i),c&&(c.exit(),s=!0)),n===e.promise?l(S("Promise-chain cycle")):(o=C(n))?o.call(n,a,l):a(n)):l(i)}catch(t){c&&!s&&c.exit(),l(t)}}(n[o++]);t._c=[],t._n=!1,e&&!t._h&&j(t)})}},j=function(t){y.call(a,function(){var e,n,i,r=t._v,o=N(t);if(o&&(e=_(function(){T?O.emit("unhandledRejection",r,t):(n=a.onunhandledrejection)?n({promise:t,reason:r}):(i=a.console)&&i.error&&i.error("Unhandled promise rejection",r)}),t._h=T||N(t)?2:1),t._a=void 0,o&&e.e)throw e.v})},N=function(t){return 1!==t._h&&0===(t._a||t._c).length},$=function(t){y.call(a,function(){var e;T?O.emit("rejectionHandled",t):(e=a.onrejectionhandled)&&e({promise:t,reason:t._v})})},F=function(t){var e=this;e._d||(e._d=!0,e=e._w||e,e._v=t,e._s=2,e._a||(e._a=e._c.slice()),D(e,!0))},M=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw S("Promise can't be resolved itself");(e=C(t))?m(function(){var i={_w:n,_d:!1};try{e.call(t,l(M,i,1),l(F,i,1))}catch(t){F.call(i,t)}}):(n._v=t,n._s=1,D(n,!1))}catch(t){F.call({_w:n,_d:!1},t)}}};A||(P=function(t){d(this,P,"Promise","_h"),h(t),i.call(this);try{t(l(M,this,1),l(F,this,1))}catch(t){F.call(this,t)}},i=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},i.prototype=n(81)(P.prototype,{then:function(t,e){var n=E(g(this,P));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=T?O.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&D(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new i;this.promise=t,this.resolve=l(M,t,1),this.reject=l(F,t,1)},b.f=E=function(t){return t===P||t===s?new o(t):r(t)}),f(f.G+f.W+f.F*!A,{Promise:P}),n(26)(P,"Promise"),n(83)("Promise"),s=n(10).Promise,f(f.S+f.F*!A,"Promise",{reject:function(t){var e=E(this);return(0,e.reject)(t),e.promise}}),f(f.S+f.F*(u||!A),"Promise",{resolve:function(t){return w(u&&this===s?P:this,t)}}),f(f.S+f.F*!(A&&n(73)(function(t){P.all(t).catch(V)})),"Promise",{all:function(t){var e=this,n=E(e),i=n.resolve,r=n.reject,o=_(function(){var n=[],o=0,s=1;v(t,!1,function(t){var u=o++,a=!1;n.push(void 0),s++,e.resolve(t).then(function(t){a||(a=!0,n[u]=t,--s||i(n))},r)}),--s||i(n)});return o.e&&r(o.v),n.promise},race:function(t){var e=this,n=E(e),i=n.reject,r=_(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,i)})});return r.e&&i(r.v),n.promise}})},function(t,e,n){"use strict";var i=n(3),r=n(10),o=n(0),s=n(50),u=n(48);i(i.P+i.R,"Promise",{finally:function(t){var e=s(this,r.Promise||o.Promise),n="function"==typeof t;return this.then(n?function(n){return u(e,t()).then(function(){return n})}:t,n?function(n){return u(e,t()).then(function(){throw n})}:t)}})},function(t,e,n){"use strict";function i(t){n(99)}var r=n(35),o=n(101),s=n(100),u=i,a=s(r.a,o.a,!1,u,null,null);e.a=a.exports},function(t,e,n){"use strict";function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}e.a=i},function(t,e,n){"use strict";function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function r(t){return(r="function"==typeof Symbol&&"symbol"===i(Symbol.iterator)?function(t){return i(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":i(t)})(t)}e.a=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(34),r=(n.n(i),n(55)),o=(n.n(r),n(56)),s=(n.n(o),n(57)),u=n(32),a=n(33);n.d(e,"Multiselect",function(){return s.a}),n.d(e,"multiselectMixin",function(){return u.a}),n.d(e,"pointerMixin",function(){return a.a}),e.default=s.a},function(t,e){t.exports=function(t,e,n,i){if(!(t instanceof e)||void 0!==i&&i in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var i=n(14),r=n(28),o=n(23),s=n(19);t.exports=function(t,e,n,u,a){i(e);var l=r(t),c=o(l),f=s(l.length),p=a?f-1:0,h=a?-1:1;if(n<2)for(;;){if(p in c){u=c[p],p+=h;break}if(p+=h,a?p<0:f<=p)throw TypeError("Reduce of empty array with no initial value")}for(;a?p>=0:f>p;p+=h)p in c&&(u=e(u,c[p],p,l));return u}},function(t,e,n){var i=n(5),r=n(42),o=n(1)("species");t.exports=function(t){var e;return r(t)&&(e=t.constructor,"function"!=typeof e||e!==Array&&!r(e.prototype)||(e=void 0),i(e)&&null===(e=e[o])&&(e=void 0)),void 0===e?Array:e}},function(t,e,n){var i=n(63);t.exports=function(t,e){return new(i(t))(e)}},function(t,e,n){"use strict";var i=n(8),r=n(6),o=n(7),s=n(16),u=n(1);t.exports=function(t,e,n){var a=u(t),l=n(s,a,""[t]),c=l[0],f=l[1];o(function(){var e={};return e[a]=function(){return 7},7!=""[t](e)})&&(r(String.prototype,t,c),i(RegExp.prototype,a,2==e?function(t,e){return f.call(t,this,e)}:function(t){return f.call(t,this)}))}},function(t,e,n){var i=n(11),r=n(70),o=n(69),s=n(2),u=n(19),a=n(87),l={},c={},e=t.exports=function(t,e,n,f,p){var h,d,v,g,y=p?function(){return t}:a(t),m=i(n,f,e?2:1),b=0;if("function"!=typeof y)throw TypeError(t+" is not iterable!");if(o(y)){for(h=u(t.length);h>b;b++)if((g=e?m(s(d=t[b])[0],d[1]):m(t[b]))===l||g===c)return g}else for(v=y.call(t);!(d=v.next()).done;)if((g=r(v,m,d.value,e))===l||g===c)return g};e.BREAK=l,e.RETURN=c},function(t,e,n){var i=n(5),r=n(82).set;t.exports=function(t,e,n){var o,s=e.constructor;return s!==n&&"function"==typeof s&&(o=s.prototype)!==n.prototype&&i(o)&&r&&r(t,o),t}},function(t,e){t.exports=function(t,e,n){var i=void 0===n;switch(e.length){case 0:return i?t():t.call(n);case 1:return i?t(e[0]):t.call(n,e[0]);case 2:return i?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return i?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return i?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){var i=n(15),r=n(1)("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(i.Array===t||o[r]===t)}},function(t,e,n){var i=n(2);t.exports=function(t,e,n,r){try{return r?e(i(n)[0],n[1]):e(n)}catch(e){var o=t.return;throw void 0!==o&&i(o.call(t)),e}}},function(t,e,n){"use strict";var i=n(44),r=n(25),o=n(26),s={};n(8)(s,n(1)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=i(s,{next:r(1,n)}),o(t,e+" Iterator")}},function(t,e,n){"use strict";var i=n(24),r=n(3),o=n(6),s=n(8),u=n(15),a=n(71),l=n(26),c=n(78),f=n(1)("iterator"),p=!([].keys&&"next"in[].keys()),h=function(){return this};t.exports=function(t,e,n,d,v,g,y){a(n,e,d);var m,b,_,x=function(t){if(!p&&t in L)return L[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},w=e+" Iterator",S="values"==v,O=!1,L=t.prototype,k=L[f]||L["@@iterator"]||v&&L[v],P=k||x(v),T=v?S?x("entries"):P:void 0,V="Array"==e?L.entries||k:k;if(V&&(_=c(V.call(new t)))!==Object.prototype&&_.next&&(l(_,w,!0),i||"function"==typeof _[f]||s(_,f,h)),S&&k&&"values"!==k.name&&(O=!0,P=function(){return k.call(this)}),i&&!y||!p&&!O&&L[f]||s(L,f,P),u[e]=P,u[w]=h,v)if(m={values:S?P:x("values"),keys:g?P:x("keys"),entries:T},y)for(b in m)b in L||o(L,b,m[b]);else r(r.P+r.F*(p||O),e,m);return m}},function(t,e,n){var i=n(1)("iterator"),r=!1;try{var o=[7][i]();o.return=function(){r=!0},Array.from(o,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!r)return!1;var n=!1;try{var o=[7],s=o[i]();s.next=function(){return{done:n=!0}},o[i]=function(){return s},t(o)}catch(t){}return n}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var i=n(0),r=n(52).set,o=i.MutationObserver||i.WebKitMutationObserver,s=i.process,u=i.Promise,a="process"==n(9)(s);t.exports=function(){var t,e,n,l=function(){var i,r;for(a&&(i=s.domain)&&i.exit();t;){r=t.fn,t=t.next;try{r()}catch(i){throw t?n():e=void 0,i}}e=void 0,i&&i.enter()};if(a)n=function(){s.nextTick(l)};else if(!o||i.navigator&&i.navigator.standalone)if(u&&u.resolve){var c=u.resolve(void 0);n=function(){c.then(l)}}else n=function(){r.call(i,l)};else{var f=!0,p=document.createTextNode("");new o(l).observe(p,{characterData:!0}),n=function(){p.data=f=!f}}return function(i){var r={fn:i,next:void 0};e&&(e.next=r),t||(t=r,n()),e=r}}},function(t,e,n){var i=n(13),r=n(2),o=n(47);t.exports=n(4)?Object.defineProperties:function(t,e){r(t);for(var n,s=o(e),u=s.length,a=0;u>a;)i.f(t,n=s[a++],e[n]);return t}},function(t,e,n){var i=n(46),r=n(22).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,r)}},function(t,e,n){var i=n(12),r=n(28),o=n(27)("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),i(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},function(t,e,n){var i=n(6);t.exports=function(t,e,n){for(var r in e)i(t,r,e[r],n);return t}},function(t,e,n){var i=n(5),r=n(2),o=function(t,e){if(r(t),!i(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,i){try{i=n(11)(Function.call,n(45).f(Object.prototype,"__proto__").set,2),i(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,n){return o(t,n),e?t.__proto__=n:i(t,n),t}}({},!1):void 0),check:o}},function(t,e,n){"use strict";var i=n(0),r=n(13),o=n(4),s=n(1)("species");t.exports=function(t){var e=i[t];o&&e&&!e[s]&&r.f(e,s,{configurable:!0,get:function(){return this}})}},function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},function(t,e,n){var i=n(53),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},function(t,e,n){var i=n(0),r=i.navigator;t.exports=r&&r.userAgent||""},function(t,e,n){var i=n(38),r=n(1)("iterator"),o=n(15);t.exports=n(10).getIteratorMethod=function(t){if(void 0!=t)return t[r]||t["@@iterator"]||o[i(t)]}},function(t,e,n){"use strict";var i=n(3),r=n(20)(2);i(i.P+i.F*!n(17)([].filter,!0),"Array",{filter:function(t){return r(this,t,arguments[1])}})},function(t,e,n){"use strict";var i=n(3),r=n(37)(!1),o=[].indexOf,s=!!o&&1/[1].indexOf(1,-0)<0;i(i.P+i.F*(s||!n(17)(o)),"Array",{indexOf:function(t){return s?o.apply(this,arguments)||0:r(this,t,arguments[1])}})},function(t,e,n){var i=n(3);i(i.S,"Array",{isArray:n(42)})},function(t,e,n){"use strict";var i=n(3),r=n(20)(1);i(i.P+i.F*!n(17)([].map,!0),"Array",{map:function(t){return r(this,t,arguments[1])}})},function(t,e,n){"use strict";var i=n(3),r=n(62);i(i.P+i.F*!n(17)([].reduce,!0),"Array",{reduce:function(t){return r(this,t,arguments.length,arguments[1],!1)}})},function(t,e,n){var i=Date.prototype,r=i.toString,o=i.getTime;new Date(NaN)+""!="Invalid Date"&&n(6)(i,"toString",function(){var t=o.call(this);return t===t?r.call(this):"Invalid Date"})},function(t,e,n){n(4)&&"g"!=/./g.flags&&n(13).f(RegExp.prototype,"flags",{configurable:!0,get:n(39)})},function(t,e,n){n(65)("search",1,function(t,e,n){return[function(n){"use strict";var i=t(this),r=void 0==n?void 0:n[e];return void 0!==r?r.call(n,i):new RegExp(n)[e](String(i))},n]})},function(t,e,n){"use strict";n(94);var i=n(2),r=n(39),o=n(4),s=/./.toString,u=function(t){n(6)(RegExp.prototype,"toString",t,!0)};n(7)(function(){return"/a/b"!=s.call({source:"a",flags:"b"})})?u(function(){var t=i(this);return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?r.call(t):void 0)}):"toString"!=s.name&&u(function(){return s.call(this)})},function(t,e,n){"use strict";n(51)("trim",function(t){return function(){return t(this,3)}})},function(t,e,n){for(var i=n(34),r=n(47),o=n(6),s=n(0),u=n(8),a=n(15),l=n(1),c=l("iterator"),f=l("toStringTag"),p=a.Array,h={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},d=r(h),v=0;v<d.length;v++){var g,y=d[v],m=h[y],b=s[y],_=b&&b.prototype;if(_&&(_[c]||u(_,c,p),_[f]||u(_,f,y),a[y]=p,m))for(g in i)_[g]||o(_,g,i[g],!0)}},function(t,e){},function(t,e){t.exports=function(t,e,n,i,r,o){var s,u=t=t||{},a=typeof t.default;"object"!==a&&"function"!==a||(s=t,u=t.default);var l="function"==typeof u?u.options:u;e&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),r&&(l._scopeId=r);var c;if(o?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=c):i&&(c=i),c){var f=l.functional,p=f?l.render:l.beforeCreate;f?(l._injectStyles=c,l.render=function(t,e){return c.call(e),p(t,e)}):l.beforeCreate=p?[].concat(p,c):[c]}return{esModule:s,exports:u,options:l}}},function(t,e,n){"use strict";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"multiselect",class:{"multiselect--active":t.isOpen,"multiselect--disabled":t.disabled,"multiselect--above":t.isAbove},attrs:{tabindex:t.searchable?-1:t.tabindex},on:{focus:function(e){t.activate()},blur:function(e){!t.searchable&&t.deactivate()},keydown:[function(e){return"button"in e||!t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerForward()):null},function(e){return"button"in e||!t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerBackward()):null}],keypress:function(e){return"button"in e||!t._k(e.keyCode,"enter",13,e.key,"Enter")||!t._k(e.keyCode,"tab",9,e.key,"Tab")?(e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null},keyup:function(e){if(!("button"in e)&&t._k(e.keyCode,"esc",27,e.key,"Escape"))return null;t.deactivate()}}},[t._t("caret",[n("div",{staticClass:"multiselect__select",on:{mousedown:function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}}})],{toggle:t.toggle}),t._v(" "),t._t("clear",null,{search:t.search}),t._v(" "),n("div",{ref:"tags",staticClass:"multiselect__tags"},[t._t("selection",[n("div",{directives:[{name:"show",rawName:"v-show",value:t.visibleValues.length>0,expression:"visibleValues.length > 0"}],staticClass:"multiselect__tags-wrap"},[t._l(t.visibleValues,function(e,i){return[t._t("tag",[n("span",{key:i,staticClass:"multiselect__tag"},[n("span",{domProps:{textContent:t._s(t.getOptionLabel(e))}}),t._v(" "),n("i",{staticClass:"multiselect__tag-icon",attrs:{"aria-hidden":"true",tabindex:"1"},on:{keypress:function(n){if(!("button"in n)&&t._k(n.keyCode,"enter",13,n.key,"Enter"))return null;n.preventDefault(),t.removeElement(e)},mousedown:function(n){n.preventDefault(),t.removeElement(e)}}})])],{option:e,search:t.search,remove:t.removeElement})]})],2),t._v(" "),t.internalValue&&t.internalValue.length>t.limit?[t._t("limit",[n("strong",{staticClass:"multiselect__strong",domProps:{textContent:t._s(t.limitText(t.internalValue.length-t.limit))}})])]:t._e()],{search:t.search,remove:t.removeElement,values:t.visibleValues,isOpen:t.isOpen}),t._v(" "),n("transition",{attrs:{name:"multiselect__loading"}},[t._t("loading",[n("div",{directives:[{name:"show",rawName:"v-show",value:t.loading,expression:"loading"}],staticClass:"multiselect__spinner"})])],2),t._v(" "),t.searchable?n("input",{ref:"search",staticClass:"multiselect__input",style:t.inputStyle,attrs:{name:t.name,id:t.id,type:"text",autocomplete:"nope",placeholder:t.placeholder,disabled:t.disabled,tabindex:t.tabindex},domProps:{value:t.search},on:{input:function(e){t.updateSearch(e.target.value)},focus:function(e){e.preventDefault(),t.activate()},blur:function(e){e.preventDefault(),t.deactivate()},keyup:function(e){if(!("button"in e)&&t._k(e.keyCode,"esc",27,e.key,"Escape"))return null;t.deactivate()},keydown:[function(e){if(!("button"in e)&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"]))return null;e.preventDefault(),t.pointerForward()},function(e){if(!("button"in e)&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"]))return null;e.preventDefault(),t.pointerBackward()},function(e){if(!("button"in e)&&t._k(e.keyCode,"delete",[8,46],e.key,["Backspace","Delete"]))return null;e.stopPropagation(),t.removeLastElement()}],keypress:function(e){return"button"in e||!t._k(e.keyCode,"enter",13,e.key,"Enter")?(e.preventDefault(),e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null}}}):t._e(),t._v(" "),t.isSingleLabelVisible?n("span",{staticClass:"multiselect__single",on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t("singleLabel",[[t._v(t._s(t.currentOptionLabel))]],{option:t.singleValue})],2):t._e(),t._v(" "),t.isPlaceholderVisible?n("span",{staticClass:"multiselect__placeholder",on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t("placeholder",[t._v("\n          "+t._s(t.placeholder)+"\n        ")])],2):t._e()],2),t._v(" "),n("transition",{attrs:{name:"multiselect"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.isOpen,expression:"isOpen"}],ref:"list",staticClass:"multiselect__content-wrapper",style:{maxHeight:t.optimizedHeight+"px"},attrs:{tabindex:"-1"},on:{focus:t.activate,mousedown:function(t){t.preventDefault()}}},[n("ul",{staticClass:"multiselect__content",style:t.contentStyle},[t._t("beforeList"),t._v(" "),t.multiple&&t.max===t.internalValue.length?n("li",[n("span",{staticClass:"multiselect__option"},[t._t("maxElements",[t._v("Maximum of "+t._s(t.max)+" options selected. First remove a selected option to select another.")])],2)]):t._e(),t._v(" "),!t.max||t.internalValue.length<t.max?t._l(t.filteredOptions,function(e,i){return n("li",{key:i,staticClass:"multiselect__element"},[e&&(e.$isLabel||e.$isDisabled)?t._e():n("span",{staticClass:"multiselect__option",class:t.optionHighlight(i,e),attrs:{"data-select":e&&e.isTag?t.tagPlaceholder:t.selectLabelText,"data-selected":t.selectedLabelText,"data-deselect":t.deselectLabelText},on:{click:function(n){n.stopPropagation(),t.select(e)},mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.pointerSet(i)}}},[t._t("option",[n("span",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2),t._v(" "),e&&(e.$isLabel||e.$isDisabled)?n("span",{staticClass:"multiselect__option",class:t.groupHighlight(i,e),attrs:{"data-select":t.groupSelect&&t.selectGroupLabelText,"data-deselect":t.groupSelect&&t.deselectGroupLabelText},on:{mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.groupSelect&&t.pointerSet(i)},mousedown:function(n){n.preventDefault(),t.selectGroup(e)}}},[t._t("option",[n("span",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2):t._e()])}):t._e(),t._v(" "),n("li",{directives:[{name:"show",rawName:"v-show",value:t.showNoResults&&0===t.filteredOptions.length&&t.search&&!t.loading,expression:"showNoResults && (filteredOptions.length === 0 && search && !loading)"}]},[n("span",{staticClass:"multiselect__option"},[t._t("noResult",[t._v("No elements found. Consider changing the search query.")],{search:t.search})],2)]),t._v(" "),n("li",{directives:[{name:"show",rawName:"v-show",value:t.showNoOptions&&0===t.options.length&&!t.search&&!t.loading,expression:"showNoOptions && (options.length === 0 && !search && !loading)"}]},[n("span",{staticClass:"multiselect__option"},[t._t("noOptions",[t._v("List is empty.")])],2)]),t._v(" "),t._t("afterList")],2)])])],2)},r=[],o={render:i,staticRenderFns:r};e.a=o}])});

/***/ }),

/***/ "./node_modules/vue-router/dist/vue-router.esm.js":
/*!********************************************************!*\
  !*** ./node_modules/vue-router/dist/vue-router.esm.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/*!
  * vue-router v3.0.6
  * (c) 2019 Evan You
  * @license MIT
  */
/*  */

function assert (condition, message) {
  if (!condition) {
    throw new Error(("[vue-router] " + message))
  }
}

function warn (condition, message) {
  if ( true && !condition) {
    typeof console !== 'undefined' && console.warn(("[vue-router] " + message));
  }
}

function isError (err) {
  return Object.prototype.toString.call(err).indexOf('Error') > -1
}

function extend (a, b) {
  for (var key in b) {
    a[key] = b[key];
  }
  return a
}

var View = {
  name: 'RouterView',
  functional: true,
  props: {
    name: {
      type: String,
      default: 'default'
    }
  },
  render: function render (_, ref) {
    var props = ref.props;
    var children = ref.children;
    var parent = ref.parent;
    var data = ref.data;

    // used by devtools to display a router-view badge
    data.routerView = true;

    // directly use parent context's createElement() function
    // so that components rendered by router-view can resolve named slots
    var h = parent.$createElement;
    var name = props.name;
    var route = parent.$route;
    var cache = parent._routerViewCache || (parent._routerViewCache = {});

    // determine current view depth, also check to see if the tree
    // has been toggled inactive but kept-alive.
    var depth = 0;
    var inactive = false;
    while (parent && parent._routerRoot !== parent) {
      var vnodeData = parent.$vnode && parent.$vnode.data;
      if (vnodeData) {
        if (vnodeData.routerView) {
          depth++;
        }
        if (vnodeData.keepAlive && parent._inactive) {
          inactive = true;
        }
      }
      parent = parent.$parent;
    }
    data.routerViewDepth = depth;

    // render previous view if the tree is inactive and kept-alive
    if (inactive) {
      return h(cache[name], data, children)
    }

    var matched = route.matched[depth];
    // render empty node if no matched route
    if (!matched) {
      cache[name] = null;
      return h()
    }

    var component = cache[name] = matched.components[name];

    // attach instance registration hook
    // this will be called in the instance's injected lifecycle hooks
    data.registerRouteInstance = function (vm, val) {
      // val could be undefined for unregistration
      var current = matched.instances[name];
      if (
        (val && current !== vm) ||
        (!val && current === vm)
      ) {
        matched.instances[name] = val;
      }
    }

    // also register instance in prepatch hook
    // in case the same component instance is reused across different routes
    ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {
      matched.instances[name] = vnode.componentInstance;
    };

    // register instance in init hook
    // in case kept-alive component be actived when routes changed
    data.hook.init = function (vnode) {
      if (vnode.data.keepAlive &&
        vnode.componentInstance &&
        vnode.componentInstance !== matched.instances[name]
      ) {
        matched.instances[name] = vnode.componentInstance;
      }
    };

    // resolve props
    var propsToPass = data.props = resolveProps(route, matched.props && matched.props[name]);
    if (propsToPass) {
      // clone to prevent mutation
      propsToPass = data.props = extend({}, propsToPass);
      // pass non-declared props as attrs
      var attrs = data.attrs = data.attrs || {};
      for (var key in propsToPass) {
        if (!component.props || !(key in component.props)) {
          attrs[key] = propsToPass[key];
          delete propsToPass[key];
        }
      }
    }

    return h(component, data, children)
  }
}

function resolveProps (route, config) {
  switch (typeof config) {
    case 'undefined':
      return
    case 'object':
      return config
    case 'function':
      return config(route)
    case 'boolean':
      return config ? route.params : undefined
    default:
      if (true) {
        warn(
          false,
          "props in \"" + (route.path) + "\" is a " + (typeof config) + ", " +
          "expecting an object, function or boolean."
        );
      }
  }
}

/*  */

var encodeReserveRE = /[!'()*]/g;
var encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };
var commaRE = /%2C/g;

// fixed encodeURIComponent which is more conformant to RFC3986:
// - escapes [!'()*]
// - preserve commas
var encode = function (str) { return encodeURIComponent(str)
  .replace(encodeReserveRE, encodeReserveReplacer)
  .replace(commaRE, ','); };

var decode = decodeURIComponent;

function resolveQuery (
  query,
  extraQuery,
  _parseQuery
) {
  if ( extraQuery === void 0 ) extraQuery = {};

  var parse = _parseQuery || parseQuery;
  var parsedQuery;
  try {
    parsedQuery = parse(query || '');
  } catch (e) {
     true && warn(false, e.message);
    parsedQuery = {};
  }
  for (var key in extraQuery) {
    parsedQuery[key] = extraQuery[key];
  }
  return parsedQuery
}

function parseQuery (query) {
  var res = {};

  query = query.trim().replace(/^(\?|#|&)/, '');

  if (!query) {
    return res
  }

  query.split('&').forEach(function (param) {
    var parts = param.replace(/\+/g, ' ').split('=');
    var key = decode(parts.shift());
    var val = parts.length > 0
      ? decode(parts.join('='))
      : null;

    if (res[key] === undefined) {
      res[key] = val;
    } else if (Array.isArray(res[key])) {
      res[key].push(val);
    } else {
      res[key] = [res[key], val];
    }
  });

  return res
}

function stringifyQuery (obj) {
  var res = obj ? Object.keys(obj).map(function (key) {
    var val = obj[key];

    if (val === undefined) {
      return ''
    }

    if (val === null) {
      return encode(key)
    }

    if (Array.isArray(val)) {
      var result = [];
      val.forEach(function (val2) {
        if (val2 === undefined) {
          return
        }
        if (val2 === null) {
          result.push(encode(key));
        } else {
          result.push(encode(key) + '=' + encode(val2));
        }
      });
      return result.join('&')
    }

    return encode(key) + '=' + encode(val)
  }).filter(function (x) { return x.length > 0; }).join('&') : null;
  return res ? ("?" + res) : ''
}

/*  */

var trailingSlashRE = /\/?$/;

function createRoute (
  record,
  location,
  redirectedFrom,
  router
) {
  var stringifyQuery$$1 = router && router.options.stringifyQuery;

  var query = location.query || {};
  try {
    query = clone(query);
  } catch (e) {}

  var route = {
    name: location.name || (record && record.name),
    meta: (record && record.meta) || {},
    path: location.path || '/',
    hash: location.hash || '',
    query: query,
    params: location.params || {},
    fullPath: getFullPath(location, stringifyQuery$$1),
    matched: record ? formatMatch(record) : []
  };
  if (redirectedFrom) {
    route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery$$1);
  }
  return Object.freeze(route)
}

function clone (value) {
  if (Array.isArray(value)) {
    return value.map(clone)
  } else if (value && typeof value === 'object') {
    var res = {};
    for (var key in value) {
      res[key] = clone(value[key]);
    }
    return res
  } else {
    return value
  }
}

// the starting route that represents the initial state
var START = createRoute(null, {
  path: '/'
});

function formatMatch (record) {
  var res = [];
  while (record) {
    res.unshift(record);
    record = record.parent;
  }
  return res
}

function getFullPath (
  ref,
  _stringifyQuery
) {
  var path = ref.path;
  var query = ref.query; if ( query === void 0 ) query = {};
  var hash = ref.hash; if ( hash === void 0 ) hash = '';

  var stringify = _stringifyQuery || stringifyQuery;
  return (path || '/') + stringify(query) + hash
}

function isSameRoute (a, b) {
  if (b === START) {
    return a === b
  } else if (!b) {
    return false
  } else if (a.path && b.path) {
    return (
      a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&
      a.hash === b.hash &&
      isObjectEqual(a.query, b.query)
    )
  } else if (a.name && b.name) {
    return (
      a.name === b.name &&
      a.hash === b.hash &&
      isObjectEqual(a.query, b.query) &&
      isObjectEqual(a.params, b.params)
    )
  } else {
    return false
  }
}

function isObjectEqual (a, b) {
  if ( a === void 0 ) a = {};
  if ( b === void 0 ) b = {};

  // handle null value #1566
  if (!a || !b) { return a === b }
  var aKeys = Object.keys(a);
  var bKeys = Object.keys(b);
  if (aKeys.length !== bKeys.length) {
    return false
  }
  return aKeys.every(function (key) {
    var aVal = a[key];
    var bVal = b[key];
    // check nested equality
    if (typeof aVal === 'object' && typeof bVal === 'object') {
      return isObjectEqual(aVal, bVal)
    }
    return String(aVal) === String(bVal)
  })
}

function isIncludedRoute (current, target) {
  return (
    current.path.replace(trailingSlashRE, '/').indexOf(
      target.path.replace(trailingSlashRE, '/')
    ) === 0 &&
    (!target.hash || current.hash === target.hash) &&
    queryIncludes(current.query, target.query)
  )
}

function queryIncludes (current, target) {
  for (var key in target) {
    if (!(key in current)) {
      return false
    }
  }
  return true
}

/*  */

// work around weird flow bug
var toTypes = [String, Object];
var eventTypes = [String, Array];

var Link = {
  name: 'RouterLink',
  props: {
    to: {
      type: toTypes,
      required: true
    },
    tag: {
      type: String,
      default: 'a'
    },
    exact: Boolean,
    append: Boolean,
    replace: Boolean,
    activeClass: String,
    exactActiveClass: String,
    event: {
      type: eventTypes,
      default: 'click'
    }
  },
  render: function render (h) {
    var this$1 = this;

    var router = this.$router;
    var current = this.$route;
    var ref = router.resolve(this.to, current, this.append);
    var location = ref.location;
    var route = ref.route;
    var href = ref.href;

    var classes = {};
    var globalActiveClass = router.options.linkActiveClass;
    var globalExactActiveClass = router.options.linkExactActiveClass;
    // Support global empty active class
    var activeClassFallback = globalActiveClass == null
      ? 'router-link-active'
      : globalActiveClass;
    var exactActiveClassFallback = globalExactActiveClass == null
      ? 'router-link-exact-active'
      : globalExactActiveClass;
    var activeClass = this.activeClass == null
      ? activeClassFallback
      : this.activeClass;
    var exactActiveClass = this.exactActiveClass == null
      ? exactActiveClassFallback
      : this.exactActiveClass;
    var compareTarget = location.path
      ? createRoute(null, location, null, router)
      : route;

    classes[exactActiveClass] = isSameRoute(current, compareTarget);
    classes[activeClass] = this.exact
      ? classes[exactActiveClass]
      : isIncludedRoute(current, compareTarget);

    var handler = function (e) {
      if (guardEvent(e)) {
        if (this$1.replace) {
          router.replace(location);
        } else {
          router.push(location);
        }
      }
    };

    var on = { click: guardEvent };
    if (Array.isArray(this.event)) {
      this.event.forEach(function (e) { on[e] = handler; });
    } else {
      on[this.event] = handler;
    }

    var data = {
      class: classes
    };

    if (this.tag === 'a') {
      data.on = on;
      data.attrs = { href: href };
    } else {
      // find the first <a> child and apply listener and href
      var a = findAnchor(this.$slots.default);
      if (a) {
        // in case the <a> is a static node
        a.isStatic = false;
        var aData = a.data = extend({}, a.data);
        aData.on = on;
        var aAttrs = a.data.attrs = extend({}, a.data.attrs);
        aAttrs.href = href;
      } else {
        // doesn't have <a> child, apply listener to self
        data.on = on;
      }
    }

    return h(this.tag, data, this.$slots.default)
  }
}

function guardEvent (e) {
  // don't redirect with control keys
  if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }
  // don't redirect when preventDefault called
  if (e.defaultPrevented) { return }
  // don't redirect on right click
  if (e.button !== undefined && e.button !== 0) { return }
  // don't redirect if `target="_blank"`
  if (e.currentTarget && e.currentTarget.getAttribute) {
    var target = e.currentTarget.getAttribute('target');
    if (/\b_blank\b/i.test(target)) { return }
  }
  // this may be a Weex event which doesn't have this method
  if (e.preventDefault) {
    e.preventDefault();
  }
  return true
}

function findAnchor (children) {
  if (children) {
    var child;
    for (var i = 0; i < children.length; i++) {
      child = children[i];
      if (child.tag === 'a') {
        return child
      }
      if (child.children && (child = findAnchor(child.children))) {
        return child
      }
    }
  }
}

var _Vue;

function install (Vue) {
  if (install.installed && _Vue === Vue) { return }
  install.installed = true;

  _Vue = Vue;

  var isDef = function (v) { return v !== undefined; };

  var registerInstance = function (vm, callVal) {
    var i = vm.$options._parentVnode;
    if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {
      i(vm, callVal);
    }
  };

  Vue.mixin({
    beforeCreate: function beforeCreate () {
      if (isDef(this.$options.router)) {
        this._routerRoot = this;
        this._router = this.$options.router;
        this._router.init(this);
        Vue.util.defineReactive(this, '_route', this._router.history.current);
      } else {
        this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;
      }
      registerInstance(this, this);
    },
    destroyed: function destroyed () {
      registerInstance(this);
    }
  });

  Object.defineProperty(Vue.prototype, '$router', {
    get: function get () { return this._routerRoot._router }
  });

  Object.defineProperty(Vue.prototype, '$route', {
    get: function get () { return this._routerRoot._route }
  });

  Vue.component('RouterView', View);
  Vue.component('RouterLink', Link);

  var strats = Vue.config.optionMergeStrategies;
  // use the same hook merging strategy for route hooks
  strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;
}

/*  */

var inBrowser = typeof window !== 'undefined';

/*  */

function resolvePath (
  relative,
  base,
  append
) {
  var firstChar = relative.charAt(0);
  if (firstChar === '/') {
    return relative
  }

  if (firstChar === '?' || firstChar === '#') {
    return base + relative
  }

  var stack = base.split('/');

  // remove trailing segment if:
  // - not appending
  // - appending to trailing slash (last segment is empty)
  if (!append || !stack[stack.length - 1]) {
    stack.pop();
  }

  // resolve relative path
  var segments = relative.replace(/^\//, '').split('/');
  for (var i = 0; i < segments.length; i++) {
    var segment = segments[i];
    if (segment === '..') {
      stack.pop();
    } else if (segment !== '.') {
      stack.push(segment);
    }
  }

  // ensure leading slash
  if (stack[0] !== '') {
    stack.unshift('');
  }

  return stack.join('/')
}

function parsePath (path) {
  var hash = '';
  var query = '';

  var hashIndex = path.indexOf('#');
  if (hashIndex >= 0) {
    hash = path.slice(hashIndex);
    path = path.slice(0, hashIndex);
  }

  var queryIndex = path.indexOf('?');
  if (queryIndex >= 0) {
    query = path.slice(queryIndex + 1);
    path = path.slice(0, queryIndex);
  }

  return {
    path: path,
    query: query,
    hash: hash
  }
}

function cleanPath (path) {
  return path.replace(/\/\//g, '/')
}

var isarray = Array.isArray || function (arr) {
  return Object.prototype.toString.call(arr) == '[object Array]';
};

/**
 * Expose `pathToRegexp`.
 */
var pathToRegexp_1 = pathToRegexp;
var parse_1 = parse;
var compile_1 = compile;
var tokensToFunction_1 = tokensToFunction;
var tokensToRegExp_1 = tokensToRegExp;

/**
 * The main path matching regexp utility.
 *
 * @type {RegExp}
 */
var PATH_REGEXP = new RegExp([
  // Match escaped characters that would otherwise appear in future matches.
  // This allows the user to escape special characters that won't transform.
  '(\\\\.)',
  // Match Express-style parameters and un-named parameters with a prefix
  // and optional suffixes. Matches appear as:
  //
  // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined]
  // "/route(\\d+)"  => [undefined, undefined, undefined, "\d+", undefined, undefined]
  // "/*"            => ["/", undefined, undefined, undefined, undefined, "*"]
  '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))'
].join('|'), 'g');

/**
 * Parse a string for the raw tokens.
 *
 * @param  {string}  str
 * @param  {Object=} options
 * @return {!Array}
 */
function parse (str, options) {
  var tokens = [];
  var key = 0;
  var index = 0;
  var path = '';
  var defaultDelimiter = options && options.delimiter || '/';
  var res;

  while ((res = PATH_REGEXP.exec(str)) != null) {
    var m = res[0];
    var escaped = res[1];
    var offset = res.index;
    path += str.slice(index, offset);
    index = offset + m.length;

    // Ignore already escaped sequences.
    if (escaped) {
      path += escaped[1];
      continue
    }

    var next = str[index];
    var prefix = res[2];
    var name = res[3];
    var capture = res[4];
    var group = res[5];
    var modifier = res[6];
    var asterisk = res[7];

    // Push the current path onto the tokens.
    if (path) {
      tokens.push(path);
      path = '';
    }

    var partial = prefix != null && next != null && next !== prefix;
    var repeat = modifier === '+' || modifier === '*';
    var optional = modifier === '?' || modifier === '*';
    var delimiter = res[2] || defaultDelimiter;
    var pattern = capture || group;

    tokens.push({
      name: name || key++,
      prefix: prefix || '',
      delimiter: delimiter,
      optional: optional,
      repeat: repeat,
      partial: partial,
      asterisk: !!asterisk,
      pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')
    });
  }

  // Match any characters still remaining.
  if (index < str.length) {
    path += str.substr(index);
  }

  // If the path exists, push it onto the end.
  if (path) {
    tokens.push(path);
  }

  return tokens
}

/**
 * Compile a string to a template function for the path.
 *
 * @param  {string}             str
 * @param  {Object=}            options
 * @return {!function(Object=, Object=)}
 */
function compile (str, options) {
  return tokensToFunction(parse(str, options))
}

/**
 * Prettier encoding of URI path segments.
 *
 * @param  {string}
 * @return {string}
 */
function encodeURIComponentPretty (str) {
  return encodeURI(str).replace(/[\/?#]/g, function (c) {
    return '%' + c.charCodeAt(0).toString(16).toUpperCase()
  })
}

/**
 * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.
 *
 * @param  {string}
 * @return {string}
 */
function encodeAsterisk (str) {
  return encodeURI(str).replace(/[?#]/g, function (c) {
    return '%' + c.charCodeAt(0).toString(16).toUpperCase()
  })
}

/**
 * Expose a method for transforming tokens into the path function.
 */
function tokensToFunction (tokens) {
  // Compile all the tokens into regexps.
  var matches = new Array(tokens.length);

  // Compile all the patterns before compilation.
  for (var i = 0; i < tokens.length; i++) {
    if (typeof tokens[i] === 'object') {
      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$');
    }
  }

  return function (obj, opts) {
    var path = '';
    var data = obj || {};
    var options = opts || {};
    var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;

    for (var i = 0; i < tokens.length; i++) {
      var token = tokens[i];

      if (typeof token === 'string') {
        path += token;

        continue
      }

      var value = data[token.name];
      var segment;

      if (value == null) {
        if (token.optional) {
          // Prepend partial segment prefixes.
          if (token.partial) {
            path += token.prefix;
          }

          continue
        } else {
          throw new TypeError('Expected "' + token.name + '" to be defined')
        }
      }

      if (isarray(value)) {
        if (!token.repeat) {
          throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`')
        }

        if (value.length === 0) {
          if (token.optional) {
            continue
          } else {
            throw new TypeError('Expected "' + token.name + '" to not be empty')
          }
        }

        for (var j = 0; j < value.length; j++) {
          segment = encode(value[j]);

          if (!matches[i].test(segment)) {
            throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`')
          }

          path += (j === 0 ? token.prefix : token.delimiter) + segment;
        }

        continue
      }

      segment = token.asterisk ? encodeAsterisk(value) : encode(value);

      if (!matches[i].test(segment)) {
        throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"')
      }

      path += token.prefix + segment;
    }

    return path
  }
}

/**
 * Escape a regular expression string.
 *
 * @param  {string} str
 * @return {string}
 */
function escapeString (str) {
  return str.replace(/([.+*?=^!:${}()[\]|\/\\])/g, '\\$1')
}

/**
 * Escape the capturing group by escaping special characters and meaning.
 *
 * @param  {string} group
 * @return {string}
 */
function escapeGroup (group) {
  return group.replace(/([=!:$\/()])/g, '\\$1')
}

/**
 * Attach the keys as a property of the regexp.
 *
 * @param  {!RegExp} re
 * @param  {Array}   keys
 * @return {!RegExp}
 */
function attachKeys (re, keys) {
  re.keys = keys;
  return re
}

/**
 * Get the flags for a regexp from the options.
 *
 * @param  {Object} options
 * @return {string}
 */
function flags (options) {
  return options.sensitive ? '' : 'i'
}

/**
 * Pull out keys from a regexp.
 *
 * @param  {!RegExp} path
 * @param  {!Array}  keys
 * @return {!RegExp}
 */
function regexpToRegexp (path, keys) {
  // Use a negative lookahead to match only capturing groups.
  var groups = path.source.match(/\((?!\?)/g);

  if (groups) {
    for (var i = 0; i < groups.length; i++) {
      keys.push({
        name: i,
        prefix: null,
        delimiter: null,
        optional: false,
        repeat: false,
        partial: false,
        asterisk: false,
        pattern: null
      });
    }
  }

  return attachKeys(path, keys)
}

/**
 * Transform an array into a regexp.
 *
 * @param  {!Array}  path
 * @param  {Array}   keys
 * @param  {!Object} options
 * @return {!RegExp}
 */
function arrayToRegexp (path, keys, options) {
  var parts = [];

  for (var i = 0; i < path.length; i++) {
    parts.push(pathToRegexp(path[i], keys, options).source);
  }

  var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));

  return attachKeys(regexp, keys)
}

/**
 * Create a path regexp from string input.
 *
 * @param  {string}  path
 * @param  {!Array}  keys
 * @param  {!Object} options
 * @return {!RegExp}
 */
function stringToRegexp (path, keys, options) {
  return tokensToRegExp(parse(path, options), keys, options)
}

/**
 * Expose a function for taking tokens and returning a RegExp.
 *
 * @param  {!Array}          tokens
 * @param  {(Array|Object)=} keys
 * @param  {Object=}         options
 * @return {!RegExp}
 */
function tokensToRegExp (tokens, keys, options) {
  if (!isarray(keys)) {
    options = /** @type {!Object} */ (keys || options);
    keys = [];
  }

  options = options || {};

  var strict = options.strict;
  var end = options.end !== false;
  var route = '';

  // Iterate over the tokens and create our regexp string.
  for (var i = 0; i < tokens.length; i++) {
    var token = tokens[i];

    if (typeof token === 'string') {
      route += escapeString(token);
    } else {
      var prefix = escapeString(token.prefix);
      var capture = '(?:' + token.pattern + ')';

      keys.push(token);

      if (token.repeat) {
        capture += '(?:' + prefix + capture + ')*';
      }

      if (token.optional) {
        if (!token.partial) {
          capture = '(?:' + prefix + '(' + capture + '))?';
        } else {
          capture = prefix + '(' + capture + ')?';
        }
      } else {
        capture = prefix + '(' + capture + ')';
      }

      route += capture;
    }
  }

  var delimiter = escapeString(options.delimiter || '/');
  var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;

  // In non-strict mode we allow a slash at the end of match. If the path to
  // match already ends with a slash, we remove it for consistency. The slash
  // is valid at the end of a path match, not in the middle. This is important
  // in non-ending mode, where "/test/" shouldn't match "/test//route".
  if (!strict) {
    route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';
  }

  if (end) {
    route += '$';
  } else {
    // In non-ending mode, we need the capturing groups to match as much as
    // possible by using a positive lookahead to the end or next path segment.
    route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';
  }

  return attachKeys(new RegExp('^' + route, flags(options)), keys)
}

/**
 * Normalize the given path string, returning a regular expression.
 *
 * An empty array can be passed in for the keys, which will hold the
 * placeholder key descriptions. For example, using `/user/:id`, `keys` will
 * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.
 *
 * @param  {(string|RegExp|Array)} path
 * @param  {(Array|Object)=}       keys
 * @param  {Object=}               options
 * @return {!RegExp}
 */
function pathToRegexp (path, keys, options) {
  if (!isarray(keys)) {
    options = /** @type {!Object} */ (keys || options);
    keys = [];
  }

  options = options || {};

  if (path instanceof RegExp) {
    return regexpToRegexp(path, /** @type {!Array} */ (keys))
  }

  if (isarray(path)) {
    return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)
  }

  return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)
}
pathToRegexp_1.parse = parse_1;
pathToRegexp_1.compile = compile_1;
pathToRegexp_1.tokensToFunction = tokensToFunction_1;
pathToRegexp_1.tokensToRegExp = tokensToRegExp_1;

/*  */

// $flow-disable-line
var regexpCompileCache = Object.create(null);

function fillParams (
  path,
  params,
  routeMsg
) {
  params = params || {};
  try {
    var filler =
      regexpCompileCache[path] ||
      (regexpCompileCache[path] = pathToRegexp_1.compile(path));

    // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}
    if (params.pathMatch) { params[0] = params.pathMatch; }

    return filler(params, { pretty: true })
  } catch (e) {
    if (true) {
      warn(false, ("missing param for " + routeMsg + ": " + (e.message)));
    }
    return ''
  } finally {
    // delete the 0 if it was added
    delete params[0];
  }
}

/*  */

function createRouteMap (
  routes,
  oldPathList,
  oldPathMap,
  oldNameMap
) {
  // the path list is used to control path matching priority
  var pathList = oldPathList || [];
  // $flow-disable-line
  var pathMap = oldPathMap || Object.create(null);
  // $flow-disable-line
  var nameMap = oldNameMap || Object.create(null);

  routes.forEach(function (route) {
    addRouteRecord(pathList, pathMap, nameMap, route);
  });

  // ensure wildcard routes are always at the end
  for (var i = 0, l = pathList.length; i < l; i++) {
    if (pathList[i] === '*') {
      pathList.push(pathList.splice(i, 1)[0]);
      l--;
      i--;
    }
  }

  return {
    pathList: pathList,
    pathMap: pathMap,
    nameMap: nameMap
  }
}

function addRouteRecord (
  pathList,
  pathMap,
  nameMap,
  route,
  parent,
  matchAs
) {
  var path = route.path;
  var name = route.name;
  if (true) {
    assert(path != null, "\"path\" is required in a route configuration.");
    assert(
      typeof route.component !== 'string',
      "route config \"component\" for path: " + (String(path || name)) + " cannot be a " +
      "string id. Use an actual component instead."
    );
  }

  var pathToRegexpOptions = route.pathToRegexpOptions || {};
  var normalizedPath = normalizePath(
    path,
    parent,
    pathToRegexpOptions.strict
  );

  if (typeof route.caseSensitive === 'boolean') {
    pathToRegexpOptions.sensitive = route.caseSensitive;
  }

  var record = {
    path: normalizedPath,
    regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),
    components: route.components || { default: route.component },
    instances: {},
    name: name,
    parent: parent,
    matchAs: matchAs,
    redirect: route.redirect,
    beforeEnter: route.beforeEnter,
    meta: route.meta || {},
    props: route.props == null
      ? {}
      : route.components
        ? route.props
        : { default: route.props }
  };

  if (route.children) {
    // Warn if route is named, does not redirect and has a default child route.
    // If users navigate to this route by name, the default child will
    // not be rendered (GH Issue #629)
    if (true) {
      if (route.name && !route.redirect && route.children.some(function (child) { return /^\/?$/.test(child.path); })) {
        warn(
          false,
          "Named Route '" + (route.name) + "' has a default child route. " +
          "When navigating to this named route (:to=\"{name: '" + (route.name) + "'\"), " +
          "the default child route will not be rendered. Remove the name from " +
          "this route and use the name of the default child route for named " +
          "links instead."
        );
      }
    }
    route.children.forEach(function (child) {
      var childMatchAs = matchAs
        ? cleanPath((matchAs + "/" + (child.path)))
        : undefined;
      addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);
    });
  }

  if (route.alias !== undefined) {
    var aliases = Array.isArray(route.alias)
      ? route.alias
      : [route.alias];

    aliases.forEach(function (alias) {
      var aliasRoute = {
        path: alias,
        children: route.children
      };
      addRouteRecord(
        pathList,
        pathMap,
        nameMap,
        aliasRoute,
        parent,
        record.path || '/' // matchAs
      );
    });
  }

  if (!pathMap[record.path]) {
    pathList.push(record.path);
    pathMap[record.path] = record;
  }

  if (name) {
    if (!nameMap[name]) {
      nameMap[name] = record;
    } else if ( true && !matchAs) {
      warn(
        false,
        "Duplicate named routes definition: " +
        "{ name: \"" + name + "\", path: \"" + (record.path) + "\" }"
      );
    }
  }
}

function compileRouteRegex (path, pathToRegexpOptions) {
  var regex = pathToRegexp_1(path, [], pathToRegexpOptions);
  if (true) {
    var keys = Object.create(null);
    regex.keys.forEach(function (key) {
      warn(!keys[key.name], ("Duplicate param keys in route with path: \"" + path + "\""));
      keys[key.name] = true;
    });
  }
  return regex
}

function normalizePath (path, parent, strict) {
  if (!strict) { path = path.replace(/\/$/, ''); }
  if (path[0] === '/') { return path }
  if (parent == null) { return path }
  return cleanPath(((parent.path) + "/" + path))
}

/*  */

function normalizeLocation (
  raw,
  current,
  append,
  router
) {
  var next = typeof raw === 'string' ? { path: raw } : raw;
  // named target
  if (next._normalized) {
    return next
  } else if (next.name) {
    return extend({}, raw)
  }

  // relative params
  if (!next.path && next.params && current) {
    next = extend({}, next);
    next._normalized = true;
    var params = extend(extend({}, current.params), next.params);
    if (current.name) {
      next.name = current.name;
      next.params = params;
    } else if (current.matched.length) {
      var rawPath = current.matched[current.matched.length - 1].path;
      next.path = fillParams(rawPath, params, ("path " + (current.path)));
    } else if (true) {
      warn(false, "relative params navigation requires a current route.");
    }
    return next
  }

  var parsedPath = parsePath(next.path || '');
  var basePath = (current && current.path) || '/';
  var path = parsedPath.path
    ? resolvePath(parsedPath.path, basePath, append || next.append)
    : basePath;

  var query = resolveQuery(
    parsedPath.query,
    next.query,
    router && router.options.parseQuery
  );

  var hash = next.hash || parsedPath.hash;
  if (hash && hash.charAt(0) !== '#') {
    hash = "#" + hash;
  }

  return {
    _normalized: true,
    path: path,
    query: query,
    hash: hash
  }
}

/*  */



function createMatcher (
  routes,
  router
) {
  var ref = createRouteMap(routes);
  var pathList = ref.pathList;
  var pathMap = ref.pathMap;
  var nameMap = ref.nameMap;

  function addRoutes (routes) {
    createRouteMap(routes, pathList, pathMap, nameMap);
  }

  function match (
    raw,
    currentRoute,
    redirectedFrom
  ) {
    var location = normalizeLocation(raw, currentRoute, false, router);
    var name = location.name;

    if (name) {
      var record = nameMap[name];
      if (true) {
        warn(record, ("Route with name '" + name + "' does not exist"));
      }
      if (!record) { return _createRoute(null, location) }
      var paramNames = record.regex.keys
        .filter(function (key) { return !key.optional; })
        .map(function (key) { return key.name; });

      if (typeof location.params !== 'object') {
        location.params = {};
      }

      if (currentRoute && typeof currentRoute.params === 'object') {
        for (var key in currentRoute.params) {
          if (!(key in location.params) && paramNames.indexOf(key) > -1) {
            location.params[key] = currentRoute.params[key];
          }
        }
      }

      if (record) {
        location.path = fillParams(record.path, location.params, ("named route \"" + name + "\""));
        return _createRoute(record, location, redirectedFrom)
      }
    } else if (location.path) {
      location.params = {};
      for (var i = 0; i < pathList.length; i++) {
        var path = pathList[i];
        var record$1 = pathMap[path];
        if (matchRoute(record$1.regex, location.path, location.params)) {
          return _createRoute(record$1, location, redirectedFrom)
        }
      }
    }
    // no match
    return _createRoute(null, location)
  }

  function redirect (
    record,
    location
  ) {
    var originalRedirect = record.redirect;
    var redirect = typeof originalRedirect === 'function'
      ? originalRedirect(createRoute(record, location, null, router))
      : originalRedirect;

    if (typeof redirect === 'string') {
      redirect = { path: redirect };
    }

    if (!redirect || typeof redirect !== 'object') {
      if (true) {
        warn(
          false, ("invalid redirect option: " + (JSON.stringify(redirect)))
        );
      }
      return _createRoute(null, location)
    }

    var re = redirect;
    var name = re.name;
    var path = re.path;
    var query = location.query;
    var hash = location.hash;
    var params = location.params;
    query = re.hasOwnProperty('query') ? re.query : query;
    hash = re.hasOwnProperty('hash') ? re.hash : hash;
    params = re.hasOwnProperty('params') ? re.params : params;

    if (name) {
      // resolved named direct
      var targetRecord = nameMap[name];
      if (true) {
        assert(targetRecord, ("redirect failed: named route \"" + name + "\" not found."));
      }
      return match({
        _normalized: true,
        name: name,
        query: query,
        hash: hash,
        params: params
      }, undefined, location)
    } else if (path) {
      // 1. resolve relative redirect
      var rawPath = resolveRecordPath(path, record);
      // 2. resolve params
      var resolvedPath = fillParams(rawPath, params, ("redirect route with path \"" + rawPath + "\""));
      // 3. rematch with existing query and hash
      return match({
        _normalized: true,
        path: resolvedPath,
        query: query,
        hash: hash
      }, undefined, location)
    } else {
      if (true) {
        warn(false, ("invalid redirect option: " + (JSON.stringify(redirect))));
      }
      return _createRoute(null, location)
    }
  }

  function alias (
    record,
    location,
    matchAs
  ) {
    var aliasedPath = fillParams(matchAs, location.params, ("aliased route with path \"" + matchAs + "\""));
    var aliasedMatch = match({
      _normalized: true,
      path: aliasedPath
    });
    if (aliasedMatch) {
      var matched = aliasedMatch.matched;
      var aliasedRecord = matched[matched.length - 1];
      location.params = aliasedMatch.params;
      return _createRoute(aliasedRecord, location)
    }
    return _createRoute(null, location)
  }

  function _createRoute (
    record,
    location,
    redirectedFrom
  ) {
    if (record && record.redirect) {
      return redirect(record, redirectedFrom || location)
    }
    if (record && record.matchAs) {
      return alias(record, location, record.matchAs)
    }
    return createRoute(record, location, redirectedFrom, router)
  }

  return {
    match: match,
    addRoutes: addRoutes
  }
}

function matchRoute (
  regex,
  path,
  params
) {
  var m = path.match(regex);

  if (!m) {
    return false
  } else if (!params) {
    return true
  }

  for (var i = 1, len = m.length; i < len; ++i) {
    var key = regex.keys[i - 1];
    var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];
    if (key) {
      // Fix #1994: using * with props: true generates a param named 0
      params[key.name || 'pathMatch'] = val;
    }
  }

  return true
}

function resolveRecordPath (path, record) {
  return resolvePath(path, record.parent ? record.parent.path : '/', true)
}

/*  */

var positionStore = Object.create(null);

function setupScroll () {
  // Fix for #1585 for Firefox
  // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678
  window.history.replaceState({ key: getStateKey() }, '', window.location.href.replace(window.location.origin, ''));
  window.addEventListener('popstate', function (e) {
    saveScrollPosition();
    if (e.state && e.state.key) {
      setStateKey(e.state.key);
    }
  });
}

function handleScroll (
  router,
  to,
  from,
  isPop
) {
  if (!router.app) {
    return
  }

  var behavior = router.options.scrollBehavior;
  if (!behavior) {
    return
  }

  if (true) {
    assert(typeof behavior === 'function', "scrollBehavior must be a function");
  }

  // wait until re-render finishes before scrolling
  router.app.$nextTick(function () {
    var position = getScrollPosition();
    var shouldScroll = behavior.call(router, to, from, isPop ? position : null);

    if (!shouldScroll) {
      return
    }

    if (typeof shouldScroll.then === 'function') {
      shouldScroll.then(function (shouldScroll) {
        scrollToPosition((shouldScroll), position);
      }).catch(function (err) {
        if (true) {
          assert(false, err.toString());
        }
      });
    } else {
      scrollToPosition(shouldScroll, position);
    }
  });
}

function saveScrollPosition () {
  var key = getStateKey();
  if (key) {
    positionStore[key] = {
      x: window.pageXOffset,
      y: window.pageYOffset
    };
  }
}

function getScrollPosition () {
  var key = getStateKey();
  if (key) {
    return positionStore[key]
  }
}

function getElementPosition (el, offset) {
  var docEl = document.documentElement;
  var docRect = docEl.getBoundingClientRect();
  var elRect = el.getBoundingClientRect();
  return {
    x: elRect.left - docRect.left - offset.x,
    y: elRect.top - docRect.top - offset.y
  }
}

function isValidPosition (obj) {
  return isNumber(obj.x) || isNumber(obj.y)
}

function normalizePosition (obj) {
  return {
    x: isNumber(obj.x) ? obj.x : window.pageXOffset,
    y: isNumber(obj.y) ? obj.y : window.pageYOffset
  }
}

function normalizeOffset (obj) {
  return {
    x: isNumber(obj.x) ? obj.x : 0,
    y: isNumber(obj.y) ? obj.y : 0
  }
}

function isNumber (v) {
  return typeof v === 'number'
}

function scrollToPosition (shouldScroll, position) {
  var isObject = typeof shouldScroll === 'object';
  if (isObject && typeof shouldScroll.selector === 'string') {
    var el = document.querySelector(shouldScroll.selector);
    if (el) {
      var offset = shouldScroll.offset && typeof shouldScroll.offset === 'object' ? shouldScroll.offset : {};
      offset = normalizeOffset(offset);
      position = getElementPosition(el, offset);
    } else if (isValidPosition(shouldScroll)) {
      position = normalizePosition(shouldScroll);
    }
  } else if (isObject && isValidPosition(shouldScroll)) {
    position = normalizePosition(shouldScroll);
  }

  if (position) {
    window.scrollTo(position.x, position.y);
  }
}

/*  */

var supportsPushState = inBrowser && (function () {
  var ua = window.navigator.userAgent;

  if (
    (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&
    ua.indexOf('Mobile Safari') !== -1 &&
    ua.indexOf('Chrome') === -1 &&
    ua.indexOf('Windows Phone') === -1
  ) {
    return false
  }

  return window.history && 'pushState' in window.history
})();

// use User Timing api (if present) for more accurate key precision
var Time = inBrowser && window.performance && window.performance.now
  ? window.performance
  : Date;

var _key = genKey();

function genKey () {
  return Time.now().toFixed(3)
}

function getStateKey () {
  return _key
}

function setStateKey (key) {
  _key = key;
}

function pushState (url, replace) {
  saveScrollPosition();
  // try...catch the pushState call to get around Safari
  // DOM Exception 18 where it limits to 100 pushState calls
  var history = window.history;
  try {
    if (replace) {
      history.replaceState({ key: _key }, '', url);
    } else {
      _key = genKey();
      history.pushState({ key: _key }, '', url);
    }
  } catch (e) {
    window.location[replace ? 'replace' : 'assign'](url);
  }
}

function replaceState (url) {
  pushState(url, true);
}

/*  */

function runQueue (queue, fn, cb) {
  var step = function (index) {
    if (index >= queue.length) {
      cb();
    } else {
      if (queue[index]) {
        fn(queue[index], function () {
          step(index + 1);
        });
      } else {
        step(index + 1);
      }
    }
  };
  step(0);
}

/*  */

function resolveAsyncComponents (matched) {
  return function (to, from, next) {
    var hasAsync = false;
    var pending = 0;
    var error = null;

    flatMapComponents(matched, function (def, _, match, key) {
      // if it's a function and doesn't have cid attached,
      // assume it's an async component resolve function.
      // we are not using Vue's default async resolving mechanism because
      // we want to halt the navigation until the incoming component has been
      // resolved.
      if (typeof def === 'function' && def.cid === undefined) {
        hasAsync = true;
        pending++;

        var resolve = once(function (resolvedDef) {
          if (isESModule(resolvedDef)) {
            resolvedDef = resolvedDef.default;
          }
          // save resolved on async factory in case it's used elsewhere
          def.resolved = typeof resolvedDef === 'function'
            ? resolvedDef
            : _Vue.extend(resolvedDef);
          match.components[key] = resolvedDef;
          pending--;
          if (pending <= 0) {
            next();
          }
        });

        var reject = once(function (reason) {
          var msg = "Failed to resolve async component " + key + ": " + reason;
           true && warn(false, msg);
          if (!error) {
            error = isError(reason)
              ? reason
              : new Error(msg);
            next(error);
          }
        });

        var res;
        try {
          res = def(resolve, reject);
        } catch (e) {
          reject(e);
        }
        if (res) {
          if (typeof res.then === 'function') {
            res.then(resolve, reject);
          } else {
            // new syntax in Vue 2.3
            var comp = res.component;
            if (comp && typeof comp.then === 'function') {
              comp.then(resolve, reject);
            }
          }
        }
      }
    });

    if (!hasAsync) { next(); }
  }
}

function flatMapComponents (
  matched,
  fn
) {
  return flatten(matched.map(function (m) {
    return Object.keys(m.components).map(function (key) { return fn(
      m.components[key],
      m.instances[key],
      m, key
    ); })
  }))
}

function flatten (arr) {
  return Array.prototype.concat.apply([], arr)
}

var hasSymbol =
  typeof Symbol === 'function' &&
  typeof Symbol.toStringTag === 'symbol';

function isESModule (obj) {
  return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')
}

// in Webpack 2, require.ensure now also returns a Promise
// so the resolve/reject functions may get called an extra time
// if the user uses an arrow function shorthand that happens to
// return that Promise.
function once (fn) {
  var called = false;
  return function () {
    var args = [], len = arguments.length;
    while ( len-- ) args[ len ] = arguments[ len ];

    if (called) { return }
    called = true;
    return fn.apply(this, args)
  }
}

/*  */

var History = function History (router, base) {
  this.router = router;
  this.base = normalizeBase(base);
  // start with a route object that stands for "nowhere"
  this.current = START;
  this.pending = null;
  this.ready = false;
  this.readyCbs = [];
  this.readyErrorCbs = [];
  this.errorCbs = [];
};

History.prototype.listen = function listen (cb) {
  this.cb = cb;
};

History.prototype.onReady = function onReady (cb, errorCb) {
  if (this.ready) {
    cb();
  } else {
    this.readyCbs.push(cb);
    if (errorCb) {
      this.readyErrorCbs.push(errorCb);
    }
  }
};

History.prototype.onError = function onError (errorCb) {
  this.errorCbs.push(errorCb);
};

History.prototype.transitionTo = function transitionTo (location, onComplete, onAbort) {
    var this$1 = this;

  var route = this.router.match(location, this.current);
  this.confirmTransition(route, function () {
    this$1.updateRoute(route);
    onComplete && onComplete(route);
    this$1.ensureURL();

    // fire ready cbs once
    if (!this$1.ready) {
      this$1.ready = true;
      this$1.readyCbs.forEach(function (cb) { cb(route); });
    }
  }, function (err) {
    if (onAbort) {
      onAbort(err);
    }
    if (err && !this$1.ready) {
      this$1.ready = true;
      this$1.readyErrorCbs.forEach(function (cb) { cb(err); });
    }
  });
};

History.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {
    var this$1 = this;

  var current = this.current;
  var abort = function (err) {
    if (isError(err)) {
      if (this$1.errorCbs.length) {
        this$1.errorCbs.forEach(function (cb) { cb(err); });
      } else {
        warn(false, 'uncaught error during route navigation:');
        console.error(err);
      }
    }
    onAbort && onAbort(err);
  };
  if (
    isSameRoute(route, current) &&
    // in the case the route map has been dynamically appended to
    route.matched.length === current.matched.length
  ) {
    this.ensureURL();
    return abort()
  }

  var ref = resolveQueue(this.current.matched, route.matched);
    var updated = ref.updated;
    var deactivated = ref.deactivated;
    var activated = ref.activated;

  var queue = [].concat(
    // in-component leave guards
    extractLeaveGuards(deactivated),
    // global before hooks
    this.router.beforeHooks,
    // in-component update hooks
    extractUpdateHooks(updated),
    // in-config enter guards
    activated.map(function (m) { return m.beforeEnter; }),
    // async components
    resolveAsyncComponents(activated)
  );

  this.pending = route;
  var iterator = function (hook, next) {
    if (this$1.pending !== route) {
      return abort()
    }
    try {
      hook(route, current, function (to) {
        if (to === false || isError(to)) {
          // next(false) -> abort navigation, ensure current URL
          this$1.ensureURL(true);
          abort(to);
        } else if (
          typeof to === 'string' ||
          (typeof to === 'object' && (
            typeof to.path === 'string' ||
            typeof to.name === 'string'
          ))
        ) {
          // next('/') or next({ path: '/' }) -> redirect
          abort();
          if (typeof to === 'object' && to.replace) {
            this$1.replace(to);
          } else {
            this$1.push(to);
          }
        } else {
          // confirm transition and pass on the value
          next(to);
        }
      });
    } catch (e) {
      abort(e);
    }
  };

  runQueue(queue, iterator, function () {
    var postEnterCbs = [];
    var isValid = function () { return this$1.current === route; };
    // wait until async components are resolved before
    // extracting in-component enter guards
    var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);
    var queue = enterGuards.concat(this$1.router.resolveHooks);
    runQueue(queue, iterator, function () {
      if (this$1.pending !== route) {
        return abort()
      }
      this$1.pending = null;
      onComplete(route);
      if (this$1.router.app) {
        this$1.router.app.$nextTick(function () {
          postEnterCbs.forEach(function (cb) { cb(); });
        });
      }
    });
  });
};

History.prototype.updateRoute = function updateRoute (route) {
  var prev = this.current;
  this.current = route;
  this.cb && this.cb(route);
  this.router.afterHooks.forEach(function (hook) {
    hook && hook(route, prev);
  });
};

function normalizeBase (base) {
  if (!base) {
    if (inBrowser) {
      // respect <base> tag
      var baseEl = document.querySelector('base');
      base = (baseEl && baseEl.getAttribute('href')) || '/';
      // strip full URL origin
      base = base.replace(/^https?:\/\/[^\/]+/, '');
    } else {
      base = '/';
    }
  }
  // make sure there's the starting slash
  if (base.charAt(0) !== '/') {
    base = '/' + base;
  }
  // remove trailing slash
  return base.replace(/\/$/, '')
}

function resolveQueue (
  current,
  next
) {
  var i;
  var max = Math.max(current.length, next.length);
  for (i = 0; i < max; i++) {
    if (current[i] !== next[i]) {
      break
    }
  }
  return {
    updated: next.slice(0, i),
    activated: next.slice(i),
    deactivated: current.slice(i)
  }
}

function extractGuards (
  records,
  name,
  bind,
  reverse
) {
  var guards = flatMapComponents(records, function (def, instance, match, key) {
    var guard = extractGuard(def, name);
    if (guard) {
      return Array.isArray(guard)
        ? guard.map(function (guard) { return bind(guard, instance, match, key); })
        : bind(guard, instance, match, key)
    }
  });
  return flatten(reverse ? guards.reverse() : guards)
}

function extractGuard (
  def,
  key
) {
  if (typeof def !== 'function') {
    // extend now so that global mixins are applied.
    def = _Vue.extend(def);
  }
  return def.options[key]
}

function extractLeaveGuards (deactivated) {
  return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)
}

function extractUpdateHooks (updated) {
  return extractGuards(updated, 'beforeRouteUpdate', bindGuard)
}

function bindGuard (guard, instance) {
  if (instance) {
    return function boundRouteGuard () {
      return guard.apply(instance, arguments)
    }
  }
}

function extractEnterGuards (
  activated,
  cbs,
  isValid
) {
  return extractGuards(activated, 'beforeRouteEnter', function (guard, _, match, key) {
    return bindEnterGuard(guard, match, key, cbs, isValid)
  })
}

function bindEnterGuard (
  guard,
  match,
  key,
  cbs,
  isValid
) {
  return function routeEnterGuard (to, from, next) {
    return guard(to, from, function (cb) {
      next(cb);
      if (typeof cb === 'function') {
        cbs.push(function () {
          // #750
          // if a router-view is wrapped with an out-in transition,
          // the instance may not have been registered at this time.
          // we will need to poll for registration until current route
          // is no longer valid.
          poll(cb, match.instances, key, isValid);
        });
      }
    })
  }
}

function poll (
  cb, // somehow flow cannot infer this is a function
  instances,
  key,
  isValid
) {
  if (
    instances[key] &&
    !instances[key]._isBeingDestroyed // do not reuse being destroyed instance
  ) {
    cb(instances[key]);
  } else if (isValid()) {
    setTimeout(function () {
      poll(cb, instances, key, isValid);
    }, 16);
  }
}

/*  */

var HTML5History = /*@__PURE__*/(function (History$$1) {
  function HTML5History (router, base) {
    var this$1 = this;

    History$$1.call(this, router, base);

    var expectScroll = router.options.scrollBehavior;
    var supportsScroll = supportsPushState && expectScroll;

    if (supportsScroll) {
      setupScroll();
    }

    var initLocation = getLocation(this.base);
    window.addEventListener('popstate', function (e) {
      var current = this$1.current;

      // Avoiding first `popstate` event dispatched in some browsers but first
      // history route not updated since async guard at the same time.
      var location = getLocation(this$1.base);
      if (this$1.current === START && location === initLocation) {
        return
      }

      this$1.transitionTo(location, function (route) {
        if (supportsScroll) {
          handleScroll(router, route, current, true);
        }
      });
    });
  }

  if ( History$$1 ) HTML5History.__proto__ = History$$1;
  HTML5History.prototype = Object.create( History$$1 && History$$1.prototype );
  HTML5History.prototype.constructor = HTML5History;

  HTML5History.prototype.go = function go (n) {
    window.history.go(n);
  };

  HTML5History.prototype.push = function push (location, onComplete, onAbort) {
    var this$1 = this;

    var ref = this;
    var fromRoute = ref.current;
    this.transitionTo(location, function (route) {
      pushState(cleanPath(this$1.base + route.fullPath));
      handleScroll(this$1.router, route, fromRoute, false);
      onComplete && onComplete(route);
    }, onAbort);
  };

  HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {
    var this$1 = this;

    var ref = this;
    var fromRoute = ref.current;
    this.transitionTo(location, function (route) {
      replaceState(cleanPath(this$1.base + route.fullPath));
      handleScroll(this$1.router, route, fromRoute, false);
      onComplete && onComplete(route);
    }, onAbort);
  };

  HTML5History.prototype.ensureURL = function ensureURL (push) {
    if (getLocation(this.base) !== this.current.fullPath) {
      var current = cleanPath(this.base + this.current.fullPath);
      push ? pushState(current) : replaceState(current);
    }
  };

  HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {
    return getLocation(this.base)
  };

  return HTML5History;
}(History));

function getLocation (base) {
  var path = decodeURI(window.location.pathname);
  if (base && path.indexOf(base) === 0) {
    path = path.slice(base.length);
  }
  return (path || '/') + window.location.search + window.location.hash
}

/*  */

var HashHistory = /*@__PURE__*/(function (History$$1) {
  function HashHistory (router, base, fallback) {
    History$$1.call(this, router, base);
    // check history fallback deeplinking
    if (fallback && checkFallback(this.base)) {
      return
    }
    ensureSlash();
  }

  if ( History$$1 ) HashHistory.__proto__ = History$$1;
  HashHistory.prototype = Object.create( History$$1 && History$$1.prototype );
  HashHistory.prototype.constructor = HashHistory;

  // this is delayed until the app mounts
  // to avoid the hashchange listener being fired too early
  HashHistory.prototype.setupListeners = function setupListeners () {
    var this$1 = this;

    var router = this.router;
    var expectScroll = router.options.scrollBehavior;
    var supportsScroll = supportsPushState && expectScroll;

    if (supportsScroll) {
      setupScroll();
    }

    window.addEventListener(supportsPushState ? 'popstate' : 'hashchange', function () {
      var current = this$1.current;
      if (!ensureSlash()) {
        return
      }
      this$1.transitionTo(getHash(), function (route) {
        if (supportsScroll) {
          handleScroll(this$1.router, route, current, true);
        }
        if (!supportsPushState) {
          replaceHash(route.fullPath);
        }
      });
    });
  };

  HashHistory.prototype.push = function push (location, onComplete, onAbort) {
    var this$1 = this;

    var ref = this;
    var fromRoute = ref.current;
    this.transitionTo(location, function (route) {
      pushHash(route.fullPath);
      handleScroll(this$1.router, route, fromRoute, false);
      onComplete && onComplete(route);
    }, onAbort);
  };

  HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {
    var this$1 = this;

    var ref = this;
    var fromRoute = ref.current;
    this.transitionTo(location, function (route) {
      replaceHash(route.fullPath);
      handleScroll(this$1.router, route, fromRoute, false);
      onComplete && onComplete(route);
    }, onAbort);
  };

  HashHistory.prototype.go = function go (n) {
    window.history.go(n);
  };

  HashHistory.prototype.ensureURL = function ensureURL (push) {
    var current = this.current.fullPath;
    if (getHash() !== current) {
      push ? pushHash(current) : replaceHash(current);
    }
  };

  HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {
    return getHash()
  };

  return HashHistory;
}(History));

function checkFallback (base) {
  var location = getLocation(base);
  if (!/^\/#/.test(location)) {
    window.location.replace(
      cleanPath(base + '/#' + location)
    );
    return true
  }
}

function ensureSlash () {
  var path = getHash();
  if (path.charAt(0) === '/') {
    return true
  }
  replaceHash('/' + path);
  return false
}

function getHash () {
  // We can't use window.location.hash here because it's not
  // consistent across browsers - Firefox will pre-decode it!
  var href = window.location.href;
  var index = href.indexOf('#');
  // empty path
  if (index < 0) { return '' }

  href = href.slice(index + 1);
  // decode the hash but not the search or hash
  // as search(query) is already decoded
  // https://github.com/vuejs/vue-router/issues/2708
  var searchIndex = href.indexOf('?');
  if (searchIndex < 0) {
    var hashIndex = href.indexOf('#');
    if (hashIndex > -1) { href = decodeURI(href.slice(0, hashIndex)) + href.slice(hashIndex); }
    else { href = decodeURI(href); }
  } else {
    if (searchIndex > -1) { href = decodeURI(href.slice(0, searchIndex)) + href.slice(searchIndex); }
  }

  return href
}

function getUrl (path) {
  var href = window.location.href;
  var i = href.indexOf('#');
  var base = i >= 0 ? href.slice(0, i) : href;
  return (base + "#" + path)
}

function pushHash (path) {
  if (supportsPushState) {
    pushState(getUrl(path));
  } else {
    window.location.hash = path;
  }
}

function replaceHash (path) {
  if (supportsPushState) {
    replaceState(getUrl(path));
  } else {
    window.location.replace(getUrl(path));
  }
}

/*  */

var AbstractHistory = /*@__PURE__*/(function (History$$1) {
  function AbstractHistory (router, base) {
    History$$1.call(this, router, base);
    this.stack = [];
    this.index = -1;
  }

  if ( History$$1 ) AbstractHistory.__proto__ = History$$1;
  AbstractHistory.prototype = Object.create( History$$1 && History$$1.prototype );
  AbstractHistory.prototype.constructor = AbstractHistory;

  AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {
    var this$1 = this;

    this.transitionTo(location, function (route) {
      this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);
      this$1.index++;
      onComplete && onComplete(route);
    }, onAbort);
  };

  AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {
    var this$1 = this;

    this.transitionTo(location, function (route) {
      this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);
      onComplete && onComplete(route);
    }, onAbort);
  };

  AbstractHistory.prototype.go = function go (n) {
    var this$1 = this;

    var targetIndex = this.index + n;
    if (targetIndex < 0 || targetIndex >= this.stack.length) {
      return
    }
    var route = this.stack[targetIndex];
    this.confirmTransition(route, function () {
      this$1.index = targetIndex;
      this$1.updateRoute(route);
    });
  };

  AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {
    var current = this.stack[this.stack.length - 1];
    return current ? current.fullPath : '/'
  };

  AbstractHistory.prototype.ensureURL = function ensureURL () {
    // noop
  };

  return AbstractHistory;
}(History));

/*  */



var VueRouter = function VueRouter (options) {
  if ( options === void 0 ) options = {};

  this.app = null;
  this.apps = [];
  this.options = options;
  this.beforeHooks = [];
  this.resolveHooks = [];
  this.afterHooks = [];
  this.matcher = createMatcher(options.routes || [], this);

  var mode = options.mode || 'hash';
  this.fallback = mode === 'history' && !supportsPushState && options.fallback !== false;
  if (this.fallback) {
    mode = 'hash';
  }
  if (!inBrowser) {
    mode = 'abstract';
  }
  this.mode = mode;

  switch (mode) {
    case 'history':
      this.history = new HTML5History(this, options.base);
      break
    case 'hash':
      this.history = new HashHistory(this, options.base, this.fallback);
      break
    case 'abstract':
      this.history = new AbstractHistory(this, options.base);
      break
    default:
      if (true) {
        assert(false, ("invalid mode: " + mode));
      }
  }
};

var prototypeAccessors = { currentRoute: { configurable: true } };

VueRouter.prototype.match = function match (
  raw,
  current,
  redirectedFrom
) {
  return this.matcher.match(raw, current, redirectedFrom)
};

prototypeAccessors.currentRoute.get = function () {
  return this.history && this.history.current
};

VueRouter.prototype.init = function init (app /* Vue component instance */) {
    var this$1 = this;

   true && assert(
    install.installed,
    "not installed. Make sure to call `Vue.use(VueRouter)` " +
    "before creating root instance."
  );

  this.apps.push(app);

  // set up app destroyed handler
  // https://github.com/vuejs/vue-router/issues/2639
  app.$once('hook:destroyed', function () {
    // clean out app from this.apps array once destroyed
    var index = this$1.apps.indexOf(app);
    if (index > -1) { this$1.apps.splice(index, 1); }
    // ensure we still have a main app or null if no apps
    // we do not release the router so it can be reused
    if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }
  });

  // main app previously initialized
  // return as we don't need to set up new history listener
  if (this.app) {
    return
  }

  this.app = app;

  var history = this.history;

  if (history instanceof HTML5History) {
    history.transitionTo(history.getCurrentLocation());
  } else if (history instanceof HashHistory) {
    var setupHashListener = function () {
      history.setupListeners();
    };
    history.transitionTo(
      history.getCurrentLocation(),
      setupHashListener,
      setupHashListener
    );
  }

  history.listen(function (route) {
    this$1.apps.forEach(function (app) {
      app._route = route;
    });
  });
};

VueRouter.prototype.beforeEach = function beforeEach (fn) {
  return registerHook(this.beforeHooks, fn)
};

VueRouter.prototype.beforeResolve = function beforeResolve (fn) {
  return registerHook(this.resolveHooks, fn)
};

VueRouter.prototype.afterEach = function afterEach (fn) {
  return registerHook(this.afterHooks, fn)
};

VueRouter.prototype.onReady = function onReady (cb, errorCb) {
  this.history.onReady(cb, errorCb);
};

VueRouter.prototype.onError = function onError (errorCb) {
  this.history.onError(errorCb);
};

VueRouter.prototype.push = function push (location, onComplete, onAbort) {
  this.history.push(location, onComplete, onAbort);
};

VueRouter.prototype.replace = function replace (location, onComplete, onAbort) {
  this.history.replace(location, onComplete, onAbort);
};

VueRouter.prototype.go = function go (n) {
  this.history.go(n);
};

VueRouter.prototype.back = function back () {
  this.go(-1);
};

VueRouter.prototype.forward = function forward () {
  this.go(1);
};

VueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {
  var route = to
    ? to.matched
      ? to
      : this.resolve(to).route
    : this.currentRoute;
  if (!route) {
    return []
  }
  return [].concat.apply([], route.matched.map(function (m) {
    return Object.keys(m.components).map(function (key) {
      return m.components[key]
    })
  }))
};

VueRouter.prototype.resolve = function resolve (
  to,
  current,
  append
) {
  current = current || this.history.current;
  var location = normalizeLocation(
    to,
    current,
    append,
    this
  );
  var route = this.match(location, current);
  var fullPath = route.redirectedFrom || route.fullPath;
  var base = this.history.base;
  var href = createHref(base, fullPath, this.mode);
  return {
    location: location,
    route: route,
    href: href,
    // for backwards compat
    normalizedTo: location,
    resolved: route
  }
};

VueRouter.prototype.addRoutes = function addRoutes (routes) {
  this.matcher.addRoutes(routes);
  if (this.history.current !== START) {
    this.history.transitionTo(this.history.getCurrentLocation());
  }
};

Object.defineProperties( VueRouter.prototype, prototypeAccessors );

function registerHook (list, fn) {
  list.push(fn);
  return function () {
    var i = list.indexOf(fn);
    if (i > -1) { list.splice(i, 1); }
  }
}

function createHref (base, fullPath, mode) {
  var path = mode === 'hash' ? '#' + fullPath : fullPath;
  return base ? cleanPath(base + '/' + path) : path
}

VueRouter.install = install;
VueRouter.version = '3.0.6';

if (inBrowser && window.Vue) {
  window.Vue.use(VueRouter);
}

/* harmony default export */ __webpack_exports__["default"] = (VueRouter);


/***/ }),

/***/ "./node_modules/vue/dist/vue.common.dev.js":
/*!*************************************************!*\
  !*** ./node_modules/vue/dist/vue.common.dev.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global, setImmediate) {/*!
 * Vue.js v2.6.10
 * (c) 2014-2019 Evan You
 * Released under the MIT License.
 */


/*  */

var emptyObject = Object.freeze({});

// These helpers produce better VM code in JS engines due to their
// explicitness and function inlining.
function isUndef (v) {
  return v === undefined || v === null
}

function isDef (v) {
  return v !== undefined && v !== null
}

function isTrue (v) {
  return v === true
}

function isFalse (v) {
  return v === false
}

/**
 * Check if value is primitive.
 */
function isPrimitive (value) {
  return (
    typeof value === 'string' ||
    typeof value === 'number' ||
    // $flow-disable-line
    typeof value === 'symbol' ||
    typeof value === 'boolean'
  )
}

/**
 * Quick object check - this is primarily used to tell
 * Objects from primitive values when we know the value
 * is a JSON-compliant type.
 */
function isObject (obj) {
  return obj !== null && typeof obj === 'object'
}

/**
 * Get the raw type string of a value, e.g., [object Object].
 */
var _toString = Object.prototype.toString;

function toRawType (value) {
  return _toString.call(value).slice(8, -1)
}

/**
 * Strict object type check. Only returns true
 * for plain JavaScript objects.
 */
function isPlainObject (obj) {
  return _toString.call(obj) === '[object Object]'
}

function isRegExp (v) {
  return _toString.call(v) === '[object RegExp]'
}

/**
 * Check if val is a valid array index.
 */
function isValidArrayIndex (val) {
  var n = parseFloat(String(val));
  return n >= 0 && Math.floor(n) === n && isFinite(val)
}

function isPromise (val) {
  return (
    isDef(val) &&
    typeof val.then === 'function' &&
    typeof val.catch === 'function'
  )
}

/**
 * Convert a value to a string that is actually rendered.
 */
function toString (val) {
  return val == null
    ? ''
    : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)
      ? JSON.stringify(val, null, 2)
      : String(val)
}

/**
 * Convert an input value to a number for persistence.
 * If the conversion fails, return original string.
 */
function toNumber (val) {
  var n = parseFloat(val);
  return isNaN(n) ? val : n
}

/**
 * Make a map and return a function for checking if a key
 * is in that map.
 */
function makeMap (
  str,
  expectsLowerCase
) {
  var map = Object.create(null);
  var list = str.split(',');
  for (var i = 0; i < list.length; i++) {
    map[list[i]] = true;
  }
  return expectsLowerCase
    ? function (val) { return map[val.toLowerCase()]; }
    : function (val) { return map[val]; }
}

/**
 * Check if a tag is a built-in tag.
 */
var isBuiltInTag = makeMap('slot,component', true);

/**
 * Check if an attribute is a reserved attribute.
 */
var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');

/**
 * Remove an item from an array.
 */
function remove (arr, item) {
  if (arr.length) {
    var index = arr.indexOf(item);
    if (index > -1) {
      return arr.splice(index, 1)
    }
  }
}

/**
 * Check whether an object has the property.
 */
var hasOwnProperty = Object.prototype.hasOwnProperty;
function hasOwn (obj, key) {
  return hasOwnProperty.call(obj, key)
}

/**
 * Create a cached version of a pure function.
 */
function cached (fn) {
  var cache = Object.create(null);
  return (function cachedFn (str) {
    var hit = cache[str];
    return hit || (cache[str] = fn(str))
  })
}

/**
 * Camelize a hyphen-delimited string.
 */
var camelizeRE = /-(\w)/g;
var camelize = cached(function (str) {
  return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })
});

/**
 * Capitalize a string.
 */
var capitalize = cached(function (str) {
  return str.charAt(0).toUpperCase() + str.slice(1)
});

/**
 * Hyphenate a camelCase string.
 */
var hyphenateRE = /\B([A-Z])/g;
var hyphenate = cached(function (str) {
  return str.replace(hyphenateRE, '-$1').toLowerCase()
});

/**
 * Simple bind polyfill for environments that do not support it,
 * e.g., PhantomJS 1.x. Technically, we don't need this anymore
 * since native bind is now performant enough in most browsers.
 * But removing it would mean breaking code that was able to run in
 * PhantomJS 1.x, so this must be kept for backward compatibility.
 */

/* istanbul ignore next */
function polyfillBind (fn, ctx) {
  function boundFn (a) {
    var l = arguments.length;
    return l
      ? l > 1
        ? fn.apply(ctx, arguments)
        : fn.call(ctx, a)
      : fn.call(ctx)
  }

  boundFn._length = fn.length;
  return boundFn
}

function nativeBind (fn, ctx) {
  return fn.bind(ctx)
}

var bind = Function.prototype.bind
  ? nativeBind
  : polyfillBind;

/**
 * Convert an Array-like object to a real Array.
 */
function toArray (list, start) {
  start = start || 0;
  var i = list.length - start;
  var ret = new Array(i);
  while (i--) {
    ret[i] = list[i + start];
  }
  return ret
}

/**
 * Mix properties into target object.
 */
function extend (to, _from) {
  for (var key in _from) {
    to[key] = _from[key];
  }
  return to
}

/**
 * Merge an Array of Objects into a single Object.
 */
function toObject (arr) {
  var res = {};
  for (var i = 0; i < arr.length; i++) {
    if (arr[i]) {
      extend(res, arr[i]);
    }
  }
  return res
}

/* eslint-disable no-unused-vars */

/**
 * Perform no operation.
 * Stubbing args to make Flow happy without leaving useless transpiled code
 * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).
 */
function noop (a, b, c) {}

/**
 * Always return false.
 */
var no = function (a, b, c) { return false; };

/* eslint-enable no-unused-vars */

/**
 * Return the same value.
 */
var identity = function (_) { return _; };

/**
 * Generate a string containing static keys from compiler modules.
 */
function genStaticKeys (modules) {
  return modules.reduce(function (keys, m) {
    return keys.concat(m.staticKeys || [])
  }, []).join(',')
}

/**
 * Check if two values are loosely equal - that is,
 * if they are plain objects, do they have the same shape?
 */
function looseEqual (a, b) {
  if (a === b) { return true }
  var isObjectA = isObject(a);
  var isObjectB = isObject(b);
  if (isObjectA && isObjectB) {
    try {
      var isArrayA = Array.isArray(a);
      var isArrayB = Array.isArray(b);
      if (isArrayA && isArrayB) {
        return a.length === b.length && a.every(function (e, i) {
          return looseEqual(e, b[i])
        })
      } else if (a instanceof Date && b instanceof Date) {
        return a.getTime() === b.getTime()
      } else if (!isArrayA && !isArrayB) {
        var keysA = Object.keys(a);
        var keysB = Object.keys(b);
        return keysA.length === keysB.length && keysA.every(function (key) {
          return looseEqual(a[key], b[key])
        })
      } else {
        /* istanbul ignore next */
        return false
      }
    } catch (e) {
      /* istanbul ignore next */
      return false
    }
  } else if (!isObjectA && !isObjectB) {
    return String(a) === String(b)
  } else {
    return false
  }
}

/**
 * Return the first index at which a loosely equal value can be
 * found in the array (if value is a plain object, the array must
 * contain an object of the same shape), or -1 if it is not present.
 */
function looseIndexOf (arr, val) {
  for (var i = 0; i < arr.length; i++) {
    if (looseEqual(arr[i], val)) { return i }
  }
  return -1
}

/**
 * Ensure a function is called only once.
 */
function once (fn) {
  var called = false;
  return function () {
    if (!called) {
      called = true;
      fn.apply(this, arguments);
    }
  }
}

var SSR_ATTR = 'data-server-rendered';

var ASSET_TYPES = [
  'component',
  'directive',
  'filter'
];

var LIFECYCLE_HOOKS = [
  'beforeCreate',
  'created',
  'beforeMount',
  'mounted',
  'beforeUpdate',
  'updated',
  'beforeDestroy',
  'destroyed',
  'activated',
  'deactivated',
  'errorCaptured',
  'serverPrefetch'
];

/*  */



var config = ({
  /**
   * Option merge strategies (used in core/util/options)
   */
  // $flow-disable-line
  optionMergeStrategies: Object.create(null),

  /**
   * Whether to suppress warnings.
   */
  silent: false,

  /**
   * Show production mode tip message on boot?
   */
  productionTip: "development" !== 'production',

  /**
   * Whether to enable devtools
   */
  devtools: "development" !== 'production',

  /**
   * Whether to record perf
   */
  performance: false,

  /**
   * Error handler for watcher errors
   */
  errorHandler: null,

  /**
   * Warn handler for watcher warns
   */
  warnHandler: null,

  /**
   * Ignore certain custom elements
   */
  ignoredElements: [],

  /**
   * Custom user key aliases for v-on
   */
  // $flow-disable-line
  keyCodes: Object.create(null),

  /**
   * Check if a tag is reserved so that it cannot be registered as a
   * component. This is platform-dependent and may be overwritten.
   */
  isReservedTag: no,

  /**
   * Check if an attribute is reserved so that it cannot be used as a component
   * prop. This is platform-dependent and may be overwritten.
   */
  isReservedAttr: no,

  /**
   * Check if a tag is an unknown element.
   * Platform-dependent.
   */
  isUnknownElement: no,

  /**
   * Get the namespace of an element
   */
  getTagNamespace: noop,

  /**
   * Parse the real tag name for the specific platform.
   */
  parsePlatformTagName: identity,

  /**
   * Check if an attribute must be bound using property, e.g. value
   * Platform-dependent.
   */
  mustUseProp: no,

  /**
   * Perform updates asynchronously. Intended to be used by Vue Test Utils
   * This will significantly reduce performance if set to false.
   */
  async: true,

  /**
   * Exposed for legacy reasons
   */
  _lifecycleHooks: LIFECYCLE_HOOKS
});

/*  */

/**
 * unicode letters used for parsing html tags, component names and property paths.
 * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname
 * skipping \u10000-\uEFFFF due to it freezing up PhantomJS
 */
var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;

/**
 * Check if a string starts with $ or _
 */
function isReserved (str) {
  var c = (str + '').charCodeAt(0);
  return c === 0x24 || c === 0x5F
}

/**
 * Define a property.
 */
function def (obj, key, val, enumerable) {
  Object.defineProperty(obj, key, {
    value: val,
    enumerable: !!enumerable,
    writable: true,
    configurable: true
  });
}

/**
 * Parse simple path.
 */
var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]"));
function parsePath (path) {
  if (bailRE.test(path)) {
    return
  }
  var segments = path.split('.');
  return function (obj) {
    for (var i = 0; i < segments.length; i++) {
      if (!obj) { return }
      obj = obj[segments[i]];
    }
    return obj
  }
}

/*  */

// can we use __proto__?
var hasProto = '__proto__' in {};

// Browser environment sniffing
var inBrowser = typeof window !== 'undefined';
var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;
var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();
var UA = inBrowser && window.navigator.userAgent.toLowerCase();
var isIE = UA && /msie|trident/.test(UA);
var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
var isEdge = UA && UA.indexOf('edge/') > 0;
var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');
var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');
var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
var isPhantomJS = UA && /phantomjs/.test(UA);
var isFF = UA && UA.match(/firefox\/(\d+)/);

// Firefox has a "watch" function on Object.prototype...
var nativeWatch = ({}).watch;

var supportsPassive = false;
if (inBrowser) {
  try {
    var opts = {};
    Object.defineProperty(opts, 'passive', ({
      get: function get () {
        /* istanbul ignore next */
        supportsPassive = true;
      }
    })); // https://github.com/facebook/flow/issues/285
    window.addEventListener('test-passive', null, opts);
  } catch (e) {}
}

// this needs to be lazy-evaled because vue may be required before
// vue-server-renderer can set VUE_ENV
var _isServer;
var isServerRendering = function () {
  if (_isServer === undefined) {
    /* istanbul ignore if */
    if (!inBrowser && !inWeex && typeof global !== 'undefined') {
      // detect presence of vue-server-renderer and avoid
      // Webpack shimming the process
      _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';
    } else {
      _isServer = false;
    }
  }
  return _isServer
};

// detect devtools
var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;

/* istanbul ignore next */
function isNative (Ctor) {
  return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
}

var hasSymbol =
  typeof Symbol !== 'undefined' && isNative(Symbol) &&
  typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);

var _Set;
/* istanbul ignore if */ // $flow-disable-line
if (typeof Set !== 'undefined' && isNative(Set)) {
  // use native Set when available.
  _Set = Set;
} else {
  // a non-standard Set polyfill that only works with primitive keys.
  _Set = /*@__PURE__*/(function () {
    function Set () {
      this.set = Object.create(null);
    }
    Set.prototype.has = function has (key) {
      return this.set[key] === true
    };
    Set.prototype.add = function add (key) {
      this.set[key] = true;
    };
    Set.prototype.clear = function clear () {
      this.set = Object.create(null);
    };

    return Set;
  }());
}

/*  */

var warn = noop;
var tip = noop;
var generateComponentTrace = (noop); // work around flow check
var formatComponentName = (noop);

{
  var hasConsole = typeof console !== 'undefined';
  var classifyRE = /(?:^|[-_])(\w)/g;
  var classify = function (str) { return str
    .replace(classifyRE, function (c) { return c.toUpperCase(); })
    .replace(/[-_]/g, ''); };

  warn = function (msg, vm) {
    var trace = vm ? generateComponentTrace(vm) : '';

    if (config.warnHandler) {
      config.warnHandler.call(null, msg, vm, trace);
    } else if (hasConsole && (!config.silent)) {
      console.error(("[Vue warn]: " + msg + trace));
    }
  };

  tip = function (msg, vm) {
    if (hasConsole && (!config.silent)) {
      console.warn("[Vue tip]: " + msg + (
        vm ? generateComponentTrace(vm) : ''
      ));
    }
  };

  formatComponentName = function (vm, includeFile) {
    if (vm.$root === vm) {
      return '<Root>'
    }
    var options = typeof vm === 'function' && vm.cid != null
      ? vm.options
      : vm._isVue
        ? vm.$options || vm.constructor.options
        : vm;
    var name = options.name || options._componentTag;
    var file = options.__file;
    if (!name && file) {
      var match = file.match(/([^/\\]+)\.vue$/);
      name = match && match[1];
    }

    return (
      (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") +
      (file && includeFile !== false ? (" at " + file) : '')
    )
  };

  var repeat = function (str, n) {
    var res = '';
    while (n) {
      if (n % 2 === 1) { res += str; }
      if (n > 1) { str += str; }
      n >>= 1;
    }
    return res
  };

  generateComponentTrace = function (vm) {
    if (vm._isVue && vm.$parent) {
      var tree = [];
      var currentRecursiveSequence = 0;
      while (vm) {
        if (tree.length > 0) {
          var last = tree[tree.length - 1];
          if (last.constructor === vm.constructor) {
            currentRecursiveSequence++;
            vm = vm.$parent;
            continue
          } else if (currentRecursiveSequence > 0) {
            tree[tree.length - 1] = [last, currentRecursiveSequence];
            currentRecursiveSequence = 0;
          }
        }
        tree.push(vm);
        vm = vm.$parent;
      }
      return '\n\nfound in\n\n' + tree
        .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)
            ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)")
            : formatComponentName(vm))); })
        .join('\n')
    } else {
      return ("\n\n(found in " + (formatComponentName(vm)) + ")")
    }
  };
}

/*  */

var uid = 0;

/**
 * A dep is an observable that can have multiple
 * directives subscribing to it.
 */
var Dep = function Dep () {
  this.id = uid++;
  this.subs = [];
};

Dep.prototype.addSub = function addSub (sub) {
  this.subs.push(sub);
};

Dep.prototype.removeSub = function removeSub (sub) {
  remove(this.subs, sub);
};

Dep.prototype.depend = function depend () {
  if (Dep.target) {
    Dep.target.addDep(this);
  }
};

Dep.prototype.notify = function notify () {
  // stabilize the subscriber list first
  var subs = this.subs.slice();
  if (!config.async) {
    // subs aren't sorted in scheduler if not running async
    // we need to sort them now to make sure they fire in correct
    // order
    subs.sort(function (a, b) { return a.id - b.id; });
  }
  for (var i = 0, l = subs.length; i < l; i++) {
    subs[i].update();
  }
};

// The current target watcher being evaluated.
// This is globally unique because only one watcher
// can be evaluated at a time.
Dep.target = null;
var targetStack = [];

function pushTarget (target) {
  targetStack.push(target);
  Dep.target = target;
}

function popTarget () {
  targetStack.pop();
  Dep.target = targetStack[targetStack.length - 1];
}

/*  */

var VNode = function VNode (
  tag,
  data,
  children,
  text,
  elm,
  context,
  componentOptions,
  asyncFactory
) {
  this.tag = tag;
  this.data = data;
  this.children = children;
  this.text = text;
  this.elm = elm;
  this.ns = undefined;
  this.context = context;
  this.fnContext = undefined;
  this.fnOptions = undefined;
  this.fnScopeId = undefined;
  this.key = data && data.key;
  this.componentOptions = componentOptions;
  this.componentInstance = undefined;
  this.parent = undefined;
  this.raw = false;
  this.isStatic = false;
  this.isRootInsert = true;
  this.isComment = false;
  this.isCloned = false;
  this.isOnce = false;
  this.asyncFactory = asyncFactory;
  this.asyncMeta = undefined;
  this.isAsyncPlaceholder = false;
};

var prototypeAccessors = { child: { configurable: true } };

// DEPRECATED: alias for componentInstance for backwards compat.
/* istanbul ignore next */
prototypeAccessors.child.get = function () {
  return this.componentInstance
};

Object.defineProperties( VNode.prototype, prototypeAccessors );

var createEmptyVNode = function (text) {
  if ( text === void 0 ) text = '';

  var node = new VNode();
  node.text = text;
  node.isComment = true;
  return node
};

function createTextVNode (val) {
  return new VNode(undefined, undefined, undefined, String(val))
}

// optimized shallow clone
// used for static nodes and slot nodes because they may be reused across
// multiple renders, cloning them avoids errors when DOM manipulations rely
// on their elm reference.
function cloneVNode (vnode) {
  var cloned = new VNode(
    vnode.tag,
    vnode.data,
    // #7975
    // clone children array to avoid mutating original in case of cloning
    // a child.
    vnode.children && vnode.children.slice(),
    vnode.text,
    vnode.elm,
    vnode.context,
    vnode.componentOptions,
    vnode.asyncFactory
  );
  cloned.ns = vnode.ns;
  cloned.isStatic = vnode.isStatic;
  cloned.key = vnode.key;
  cloned.isComment = vnode.isComment;
  cloned.fnContext = vnode.fnContext;
  cloned.fnOptions = vnode.fnOptions;
  cloned.fnScopeId = vnode.fnScopeId;
  cloned.asyncMeta = vnode.asyncMeta;
  cloned.isCloned = true;
  return cloned
}

/*
 * not type checking this file because flow doesn't play well with
 * dynamically accessing methods on Array prototype
 */

var arrayProto = Array.prototype;
var arrayMethods = Object.create(arrayProto);

var methodsToPatch = [
  'push',
  'pop',
  'shift',
  'unshift',
  'splice',
  'sort',
  'reverse'
];

/**
 * Intercept mutating methods and emit events
 */
methodsToPatch.forEach(function (method) {
  // cache original method
  var original = arrayProto[method];
  def(arrayMethods, method, function mutator () {
    var args = [], len = arguments.length;
    while ( len-- ) args[ len ] = arguments[ len ];

    var result = original.apply(this, args);
    var ob = this.__ob__;
    var inserted;
    switch (method) {
      case 'push':
      case 'unshift':
        inserted = args;
        break
      case 'splice':
        inserted = args.slice(2);
        break
    }
    if (inserted) { ob.observeArray(inserted); }
    // notify change
    ob.dep.notify();
    return result
  });
});

/*  */

var arrayKeys = Object.getOwnPropertyNames(arrayMethods);

/**
 * In some cases we may want to disable observation inside a component's
 * update computation.
 */
var shouldObserve = true;

function toggleObserving (value) {
  shouldObserve = value;
}

/**
 * Observer class that is attached to each observed
 * object. Once attached, the observer converts the target
 * object's property keys into getter/setters that
 * collect dependencies and dispatch updates.
 */
var Observer = function Observer (value) {
  this.value = value;
  this.dep = new Dep();
  this.vmCount = 0;
  def(value, '__ob__', this);
  if (Array.isArray(value)) {
    if (hasProto) {
      protoAugment(value, arrayMethods);
    } else {
      copyAugment(value, arrayMethods, arrayKeys);
    }
    this.observeArray(value);
  } else {
    this.walk(value);
  }
};

/**
 * Walk through all properties and convert them into
 * getter/setters. This method should only be called when
 * value type is Object.
 */
Observer.prototype.walk = function walk (obj) {
  var keys = Object.keys(obj);
  for (var i = 0; i < keys.length; i++) {
    defineReactive$$1(obj, keys[i]);
  }
};

/**
 * Observe a list of Array items.
 */
Observer.prototype.observeArray = function observeArray (items) {
  for (var i = 0, l = items.length; i < l; i++) {
    observe(items[i]);
  }
};

// helpers

/**
 * Augment a target Object or Array by intercepting
 * the prototype chain using __proto__
 */
function protoAugment (target, src) {
  /* eslint-disable no-proto */
  target.__proto__ = src;
  /* eslint-enable no-proto */
}

/**
 * Augment a target Object or Array by defining
 * hidden properties.
 */
/* istanbul ignore next */
function copyAugment (target, src, keys) {
  for (var i = 0, l = keys.length; i < l; i++) {
    var key = keys[i];
    def(target, key, src[key]);
  }
}

/**
 * Attempt to create an observer instance for a value,
 * returns the new observer if successfully observed,
 * or the existing observer if the value already has one.
 */
function observe (value, asRootData) {
  if (!isObject(value) || value instanceof VNode) {
    return
  }
  var ob;
  if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
    ob = value.__ob__;
  } else if (
    shouldObserve &&
    !isServerRendering() &&
    (Array.isArray(value) || isPlainObject(value)) &&
    Object.isExtensible(value) &&
    !value._isVue
  ) {
    ob = new Observer(value);
  }
  if (asRootData && ob) {
    ob.vmCount++;
  }
  return ob
}

/**
 * Define a reactive property on an Object.
 */
function defineReactive$$1 (
  obj,
  key,
  val,
  customSetter,
  shallow
) {
  var dep = new Dep();

  var property = Object.getOwnPropertyDescriptor(obj, key);
  if (property && property.configurable === false) {
    return
  }

  // cater for pre-defined getter/setters
  var getter = property && property.get;
  var setter = property && property.set;
  if ((!getter || setter) && arguments.length === 2) {
    val = obj[key];
  }

  var childOb = !shallow && observe(val);
  Object.defineProperty(obj, key, {
    enumerable: true,
    configurable: true,
    get: function reactiveGetter () {
      var value = getter ? getter.call(obj) : val;
      if (Dep.target) {
        dep.depend();
        if (childOb) {
          childOb.dep.depend();
          if (Array.isArray(value)) {
            dependArray(value);
          }
        }
      }
      return value
    },
    set: function reactiveSetter (newVal) {
      var value = getter ? getter.call(obj) : val;
      /* eslint-disable no-self-compare */
      if (newVal === value || (newVal !== newVal && value !== value)) {
        return
      }
      /* eslint-enable no-self-compare */
      if (customSetter) {
        customSetter();
      }
      // #7981: for accessor properties without setter
      if (getter && !setter) { return }
      if (setter) {
        setter.call(obj, newVal);
      } else {
        val = newVal;
      }
      childOb = !shallow && observe(newVal);
      dep.notify();
    }
  });
}

/**
 * Set a property on an object. Adds the new property and
 * triggers change notification if the property doesn't
 * already exist.
 */
function set (target, key, val) {
  if (isUndef(target) || isPrimitive(target)
  ) {
    warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target))));
  }
  if (Array.isArray(target) && isValidArrayIndex(key)) {
    target.length = Math.max(target.length, key);
    target.splice(key, 1, val);
    return val
  }
  if (key in target && !(key in Object.prototype)) {
    target[key] = val;
    return val
  }
  var ob = (target).__ob__;
  if (target._isVue || (ob && ob.vmCount)) {
    warn(
      'Avoid adding reactive properties to a Vue instance or its root $data ' +
      'at runtime - declare it upfront in the data option.'
    );
    return val
  }
  if (!ob) {
    target[key] = val;
    return val
  }
  defineReactive$$1(ob.value, key, val);
  ob.dep.notify();
  return val
}

/**
 * Delete a property and trigger change if necessary.
 */
function del (target, key) {
  if (isUndef(target) || isPrimitive(target)
  ) {
    warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target))));
  }
  if (Array.isArray(target) && isValidArrayIndex(key)) {
    target.splice(key, 1);
    return
  }
  var ob = (target).__ob__;
  if (target._isVue || (ob && ob.vmCount)) {
    warn(
      'Avoid deleting properties on a Vue instance or its root $data ' +
      '- just set it to null.'
    );
    return
  }
  if (!hasOwn(target, key)) {
    return
  }
  delete target[key];
  if (!ob) {
    return
  }
  ob.dep.notify();
}

/**
 * Collect dependencies on array elements when the array is touched, since
 * we cannot intercept array element access like property getters.
 */
function dependArray (value) {
  for (var e = (void 0), i = 0, l = value.length; i < l; i++) {
    e = value[i];
    e && e.__ob__ && e.__ob__.dep.depend();
    if (Array.isArray(e)) {
      dependArray(e);
    }
  }
}

/*  */

/**
 * Option overwriting strategies are functions that handle
 * how to merge a parent option value and a child option
 * value into the final value.
 */
var strats = config.optionMergeStrategies;

/**
 * Options with restrictions
 */
{
  strats.el = strats.propsData = function (parent, child, vm, key) {
    if (!vm) {
      warn(
        "option \"" + key + "\" can only be used during instance " +
        'creation with the `new` keyword.'
      );
    }
    return defaultStrat(parent, child)
  };
}

/**
 * Helper that recursively merges two data objects together.
 */
function mergeData (to, from) {
  if (!from) { return to }
  var key, toVal, fromVal;

  var keys = hasSymbol
    ? Reflect.ownKeys(from)
    : Object.keys(from);

  for (var i = 0; i < keys.length; i++) {
    key = keys[i];
    // in case the object is already observed...
    if (key === '__ob__') { continue }
    toVal = to[key];
    fromVal = from[key];
    if (!hasOwn(to, key)) {
      set(to, key, fromVal);
    } else if (
      toVal !== fromVal &&
      isPlainObject(toVal) &&
      isPlainObject(fromVal)
    ) {
      mergeData(toVal, fromVal);
    }
  }
  return to
}

/**
 * Data
 */
function mergeDataOrFn (
  parentVal,
  childVal,
  vm
) {
  if (!vm) {
    // in a Vue.extend merge, both should be functions
    if (!childVal) {
      return parentVal
    }
    if (!parentVal) {
      return childVal
    }
    // when parentVal & childVal are both present,
    // we need to return a function that returns the
    // merged result of both functions... no need to
    // check if parentVal is a function here because
    // it has to be a function to pass previous merges.
    return function mergedDataFn () {
      return mergeData(
        typeof childVal === 'function' ? childVal.call(this, this) : childVal,
        typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal
      )
    }
  } else {
    return function mergedInstanceDataFn () {
      // instance merge
      var instanceData = typeof childVal === 'function'
        ? childVal.call(vm, vm)
        : childVal;
      var defaultData = typeof parentVal === 'function'
        ? parentVal.call(vm, vm)
        : parentVal;
      if (instanceData) {
        return mergeData(instanceData, defaultData)
      } else {
        return defaultData
      }
    }
  }
}

strats.data = function (
  parentVal,
  childVal,
  vm
) {
  if (!vm) {
    if (childVal && typeof childVal !== 'function') {
      warn(
        'The "data" option should be a function ' +
        'that returns a per-instance value in component ' +
        'definitions.',
        vm
      );

      return parentVal
    }
    return mergeDataOrFn(parentVal, childVal)
  }

  return mergeDataOrFn(parentVal, childVal, vm)
};

/**
 * Hooks and props are merged as arrays.
 */
function mergeHook (
  parentVal,
  childVal
) {
  var res = childVal
    ? parentVal
      ? parentVal.concat(childVal)
      : Array.isArray(childVal)
        ? childVal
        : [childVal]
    : parentVal;
  return res
    ? dedupeHooks(res)
    : res
}

function dedupeHooks (hooks) {
  var res = [];
  for (var i = 0; i < hooks.length; i++) {
    if (res.indexOf(hooks[i]) === -1) {
      res.push(hooks[i]);
    }
  }
  return res
}

LIFECYCLE_HOOKS.forEach(function (hook) {
  strats[hook] = mergeHook;
});

/**
 * Assets
 *
 * When a vm is present (instance creation), we need to do
 * a three-way merge between constructor options, instance
 * options and parent options.
 */
function mergeAssets (
  parentVal,
  childVal,
  vm,
  key
) {
  var res = Object.create(parentVal || null);
  if (childVal) {
    assertObjectType(key, childVal, vm);
    return extend(res, childVal)
  } else {
    return res
  }
}

ASSET_TYPES.forEach(function (type) {
  strats[type + 's'] = mergeAssets;
});

/**
 * Watchers.
 *
 * Watchers hashes should not overwrite one
 * another, so we merge them as arrays.
 */
strats.watch = function (
  parentVal,
  childVal,
  vm,
  key
) {
  // work around Firefox's Object.prototype.watch...
  if (parentVal === nativeWatch) { parentVal = undefined; }
  if (childVal === nativeWatch) { childVal = undefined; }
  /* istanbul ignore if */
  if (!childVal) { return Object.create(parentVal || null) }
  {
    assertObjectType(key, childVal, vm);
  }
  if (!parentVal) { return childVal }
  var ret = {};
  extend(ret, parentVal);
  for (var key$1 in childVal) {
    var parent = ret[key$1];
    var child = childVal[key$1];
    if (parent && !Array.isArray(parent)) {
      parent = [parent];
    }
    ret[key$1] = parent
      ? parent.concat(child)
      : Array.isArray(child) ? child : [child];
  }
  return ret
};

/**
 * Other object hashes.
 */
strats.props =
strats.methods =
strats.inject =
strats.computed = function (
  parentVal,
  childVal,
  vm,
  key
) {
  if (childVal && "development" !== 'production') {
    assertObjectType(key, childVal, vm);
  }
  if (!parentVal) { return childVal }
  var ret = Object.create(null);
  extend(ret, parentVal);
  if (childVal) { extend(ret, childVal); }
  return ret
};
strats.provide = mergeDataOrFn;

/**
 * Default strategy.
 */
var defaultStrat = function (parentVal, childVal) {
  return childVal === undefined
    ? parentVal
    : childVal
};

/**
 * Validate component names
 */
function checkComponents (options) {
  for (var key in options.components) {
    validateComponentName(key);
  }
}

function validateComponentName (name) {
  if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) {
    warn(
      'Invalid component name: "' + name + '". Component names ' +
      'should conform to valid custom element name in html5 specification.'
    );
  }
  if (isBuiltInTag(name) || config.isReservedTag(name)) {
    warn(
      'Do not use built-in or reserved HTML elements as component ' +
      'id: ' + name
    );
  }
}

/**
 * Ensure all props option syntax are normalized into the
 * Object-based format.
 */
function normalizeProps (options, vm) {
  var props = options.props;
  if (!props) { return }
  var res = {};
  var i, val, name;
  if (Array.isArray(props)) {
    i = props.length;
    while (i--) {
      val = props[i];
      if (typeof val === 'string') {
        name = camelize(val);
        res[name] = { type: null };
      } else {
        warn('props must be strings when using array syntax.');
      }
    }
  } else if (isPlainObject(props)) {
    for (var key in props) {
      val = props[key];
      name = camelize(key);
      res[name] = isPlainObject(val)
        ? val
        : { type: val };
    }
  } else {
    warn(
      "Invalid value for option \"props\": expected an Array or an Object, " +
      "but got " + (toRawType(props)) + ".",
      vm
    );
  }
  options.props = res;
}

/**
 * Normalize all injections into Object-based format
 */
function normalizeInject (options, vm) {
  var inject = options.inject;
  if (!inject) { return }
  var normalized = options.inject = {};
  if (Array.isArray(inject)) {
    for (var i = 0; i < inject.length; i++) {
      normalized[inject[i]] = { from: inject[i] };
    }
  } else if (isPlainObject(inject)) {
    for (var key in inject) {
      var val = inject[key];
      normalized[key] = isPlainObject(val)
        ? extend({ from: key }, val)
        : { from: val };
    }
  } else {
    warn(
      "Invalid value for option \"inject\": expected an Array or an Object, " +
      "but got " + (toRawType(inject)) + ".",
      vm
    );
  }
}

/**
 * Normalize raw function directives into object format.
 */
function normalizeDirectives (options) {
  var dirs = options.directives;
  if (dirs) {
    for (var key in dirs) {
      var def$$1 = dirs[key];
      if (typeof def$$1 === 'function') {
        dirs[key] = { bind: def$$1, update: def$$1 };
      }
    }
  }
}

function assertObjectType (name, value, vm) {
  if (!isPlainObject(value)) {
    warn(
      "Invalid value for option \"" + name + "\": expected an Object, " +
      "but got " + (toRawType(value)) + ".",
      vm
    );
  }
}

/**
 * Merge two option objects into a new one.
 * Core utility used in both instantiation and inheritance.
 */
function mergeOptions (
  parent,
  child,
  vm
) {
  {
    checkComponents(child);
  }

  if (typeof child === 'function') {
    child = child.options;
  }

  normalizeProps(child, vm);
  normalizeInject(child, vm);
  normalizeDirectives(child);

  // Apply extends and mixins on the child options,
  // but only if it is a raw options object that isn't
  // the result of another mergeOptions call.
  // Only merged options has the _base property.
  if (!child._base) {
    if (child.extends) {
      parent = mergeOptions(parent, child.extends, vm);
    }
    if (child.mixins) {
      for (var i = 0, l = child.mixins.length; i < l; i++) {
        parent = mergeOptions(parent, child.mixins[i], vm);
      }
    }
  }

  var options = {};
  var key;
  for (key in parent) {
    mergeField(key);
  }
  for (key in child) {
    if (!hasOwn(parent, key)) {
      mergeField(key);
    }
  }
  function mergeField (key) {
    var strat = strats[key] || defaultStrat;
    options[key] = strat(parent[key], child[key], vm, key);
  }
  return options
}

/**
 * Resolve an asset.
 * This function is used because child instances need access
 * to assets defined in its ancestor chain.
 */
function resolveAsset (
  options,
  type,
  id,
  warnMissing
) {
  /* istanbul ignore if */
  if (typeof id !== 'string') {
    return
  }
  var assets = options[type];
  // check local registration variations first
  if (hasOwn(assets, id)) { return assets[id] }
  var camelizedId = camelize(id);
  if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }
  var PascalCaseId = capitalize(camelizedId);
  if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }
  // fallback to prototype chain
  var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
  if (warnMissing && !res) {
    warn(
      'Failed to resolve ' + type.slice(0, -1) + ': ' + id,
      options
    );
  }
  return res
}

/*  */



function validateProp (
  key,
  propOptions,
  propsData,
  vm
) {
  var prop = propOptions[key];
  var absent = !hasOwn(propsData, key);
  var value = propsData[key];
  // boolean casting
  var booleanIndex = getTypeIndex(Boolean, prop.type);
  if (booleanIndex > -1) {
    if (absent && !hasOwn(prop, 'default')) {
      value = false;
    } else if (value === '' || value === hyphenate(key)) {
      // only cast empty string / same name to boolean if
      // boolean has higher priority
      var stringIndex = getTypeIndex(String, prop.type);
      if (stringIndex < 0 || booleanIndex < stringIndex) {
        value = true;
      }
    }
  }
  // check default value
  if (value === undefined) {
    value = getPropDefaultValue(vm, prop, key);
    // since the default value is a fresh copy,
    // make sure to observe it.
    var prevShouldObserve = shouldObserve;
    toggleObserving(true);
    observe(value);
    toggleObserving(prevShouldObserve);
  }
  {
    assertProp(prop, key, value, vm, absent);
  }
  return value
}

/**
 * Get the default value of a prop.
 */
function getPropDefaultValue (vm, prop, key) {
  // no default, return undefined
  if (!hasOwn(prop, 'default')) {
    return undefined
  }
  var def = prop.default;
  // warn against non-factory defaults for Object & Array
  if (isObject(def)) {
    warn(
      'Invalid default value for prop "' + key + '": ' +
      'Props with type Object/Array must use a factory function ' +
      'to return the default value.',
      vm
    );
  }
  // the raw prop value was also undefined from previous render,
  // return previous default value to avoid unnecessary watcher trigger
  if (vm && vm.$options.propsData &&
    vm.$options.propsData[key] === undefined &&
    vm._props[key] !== undefined
  ) {
    return vm._props[key]
  }
  // call factory function for non-Function types
  // a value is Function if its prototype is function even across different execution context
  return typeof def === 'function' && getType(prop.type) !== 'Function'
    ? def.call(vm)
    : def
}

/**
 * Assert whether a prop is valid.
 */
function assertProp (
  prop,
  name,
  value,
  vm,
  absent
) {
  if (prop.required && absent) {
    warn(
      'Missing required prop: "' + name + '"',
      vm
    );
    return
  }
  if (value == null && !prop.required) {
    return
  }
  var type = prop.type;
  var valid = !type || type === true;
  var expectedTypes = [];
  if (type) {
    if (!Array.isArray(type)) {
      type = [type];
    }
    for (var i = 0; i < type.length && !valid; i++) {
      var assertedType = assertType(value, type[i]);
      expectedTypes.push(assertedType.expectedType || '');
      valid = assertedType.valid;
    }
  }

  if (!valid) {
    warn(
      getInvalidTypeMessage(name, value, expectedTypes),
      vm
    );
    return
  }
  var validator = prop.validator;
  if (validator) {
    if (!validator(value)) {
      warn(
        'Invalid prop: custom validator check failed for prop "' + name + '".',
        vm
      );
    }
  }
}

var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;

function assertType (value, type) {
  var valid;
  var expectedType = getType(type);
  if (simpleCheckRE.test(expectedType)) {
    var t = typeof value;
    valid = t === expectedType.toLowerCase();
    // for primitive wrapper objects
    if (!valid && t === 'object') {
      valid = value instanceof type;
    }
  } else if (expectedType === 'Object') {
    valid = isPlainObject(value);
  } else if (expectedType === 'Array') {
    valid = Array.isArray(value);
  } else {
    valid = value instanceof type;
  }
  return {
    valid: valid,
    expectedType: expectedType
  }
}

/**
 * Use function string name to check built-in types,
 * because a simple equality check will fail when running
 * across different vms / iframes.
 */
function getType (fn) {
  var match = fn && fn.toString().match(/^\s*function (\w+)/);
  return match ? match[1] : ''
}

function isSameType (a, b) {
  return getType(a) === getType(b)
}

function getTypeIndex (type, expectedTypes) {
  if (!Array.isArray(expectedTypes)) {
    return isSameType(expectedTypes, type) ? 0 : -1
  }
  for (var i = 0, len = expectedTypes.length; i < len; i++) {
    if (isSameType(expectedTypes[i], type)) {
      return i
    }
  }
  return -1
}

function getInvalidTypeMessage (name, value, expectedTypes) {
  var message = "Invalid prop: type check failed for prop \"" + name + "\"." +
    " Expected " + (expectedTypes.map(capitalize).join(', '));
  var expectedType = expectedTypes[0];
  var receivedType = toRawType(value);
  var expectedValue = styleValue(value, expectedType);
  var receivedValue = styleValue(value, receivedType);
  // check if we need to specify expected value
  if (expectedTypes.length === 1 &&
      isExplicable(expectedType) &&
      !isBoolean(expectedType, receivedType)) {
    message += " with value " + expectedValue;
  }
  message += ", got " + receivedType + " ";
  // check if we need to specify received value
  if (isExplicable(receivedType)) {
    message += "with value " + receivedValue + ".";
  }
  return message
}

function styleValue (value, type) {
  if (type === 'String') {
    return ("\"" + value + "\"")
  } else if (type === 'Number') {
    return ("" + (Number(value)))
  } else {
    return ("" + value)
  }
}

function isExplicable (value) {
  var explicitTypes = ['string', 'number', 'boolean'];
  return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })
}

function isBoolean () {
  var args = [], len = arguments.length;
  while ( len-- ) args[ len ] = arguments[ len ];

  return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })
}

/*  */

function handleError (err, vm, info) {
  // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.
  // See: https://github.com/vuejs/vuex/issues/1505
  pushTarget();
  try {
    if (vm) {
      var cur = vm;
      while ((cur = cur.$parent)) {
        var hooks = cur.$options.errorCaptured;
        if (hooks) {
          for (var i = 0; i < hooks.length; i++) {
            try {
              var capture = hooks[i].call(cur, err, vm, info) === false;
              if (capture) { return }
            } catch (e) {
              globalHandleError(e, cur, 'errorCaptured hook');
            }
          }
        }
      }
    }
    globalHandleError(err, vm, info);
  } finally {
    popTarget();
  }
}

function invokeWithErrorHandling (
  handler,
  context,
  args,
  vm,
  info
) {
  var res;
  try {
    res = args ? handler.apply(context, args) : handler.call(context);
    if (res && !res._isVue && isPromise(res) && !res._handled) {
      res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); });
      // issue #9511
      // avoid catch triggering multiple times when nested calls
      res._handled = true;
    }
  } catch (e) {
    handleError(e, vm, info);
  }
  return res
}

function globalHandleError (err, vm, info) {
  if (config.errorHandler) {
    try {
      return config.errorHandler.call(null, err, vm, info)
    } catch (e) {
      // if the user intentionally throws the original error in the handler,
      // do not log it twice
      if (e !== err) {
        logError(e, null, 'config.errorHandler');
      }
    }
  }
  logError(err, vm, info);
}

function logError (err, vm, info) {
  {
    warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);
  }
  /* istanbul ignore else */
  if ((inBrowser || inWeex) && typeof console !== 'undefined') {
    console.error(err);
  } else {
    throw err
  }
}

/*  */

var isUsingMicroTask = false;

var callbacks = [];
var pending = false;

function flushCallbacks () {
  pending = false;
  var copies = callbacks.slice(0);
  callbacks.length = 0;
  for (var i = 0; i < copies.length; i++) {
    copies[i]();
  }
}

// Here we have async deferring wrappers using microtasks.
// In 2.5 we used (macro) tasks (in combination with microtasks).
// However, it has subtle problems when state is changed right before repaint
// (e.g. #6813, out-in transitions).
// Also, using (macro) tasks in event handler would cause some weird behaviors
// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).
// So we now use microtasks everywhere, again.
// A major drawback of this tradeoff is that there are some scenarios
// where microtasks have too high a priority and fire in between supposedly
// sequential events (e.g. #4521, #6690, which have workarounds)
// or even between bubbling of the same event (#6566).
var timerFunc;

// The nextTick behavior leverages the microtask queue, which can be accessed
// via either native Promise.then or MutationObserver.
// MutationObserver has wider support, however it is seriously bugged in
// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It
// completely stops working after triggering a few times... so, if native
// Promise is available, we will use it:
/* istanbul ignore next, $flow-disable-line */
if (typeof Promise !== 'undefined' && isNative(Promise)) {
  var p = Promise.resolve();
  timerFunc = function () {
    p.then(flushCallbacks);
    // In problematic UIWebViews, Promise.then doesn't completely break, but
    // it can get stuck in a weird state where callbacks are pushed into the
    // microtask queue but the queue isn't being flushed, until the browser
    // needs to do some other work, e.g. handle a timer. Therefore we can
    // "force" the microtask queue to be flushed by adding an empty timer.
    if (isIOS) { setTimeout(noop); }
  };
  isUsingMicroTask = true;
} else if (!isIE && typeof MutationObserver !== 'undefined' && (
  isNative(MutationObserver) ||
  // PhantomJS and iOS 7.x
  MutationObserver.toString() === '[object MutationObserverConstructor]'
)) {
  // Use MutationObserver where native Promise is not available,
  // e.g. PhantomJS, iOS7, Android 4.4
  // (#6466 MutationObserver is unreliable in IE11)
  var counter = 1;
  var observer = new MutationObserver(flushCallbacks);
  var textNode = document.createTextNode(String(counter));
  observer.observe(textNode, {
    characterData: true
  });
  timerFunc = function () {
    counter = (counter + 1) % 2;
    textNode.data = String(counter);
  };
  isUsingMicroTask = true;
} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
  // Fallback to setImmediate.
  // Techinically it leverages the (macro) task queue,
  // but it is still a better choice than setTimeout.
  timerFunc = function () {
    setImmediate(flushCallbacks);
  };
} else {
  // Fallback to setTimeout.
  timerFunc = function () {
    setTimeout(flushCallbacks, 0);
  };
}

function nextTick (cb, ctx) {
  var _resolve;
  callbacks.push(function () {
    if (cb) {
      try {
        cb.call(ctx);
      } catch (e) {
        handleError(e, ctx, 'nextTick');
      }
    } else if (_resolve) {
      _resolve(ctx);
    }
  });
  if (!pending) {
    pending = true;
    timerFunc();
  }
  // $flow-disable-line
  if (!cb && typeof Promise !== 'undefined') {
    return new Promise(function (resolve) {
      _resolve = resolve;
    })
  }
}

/*  */

var mark;
var measure;

{
  var perf = inBrowser && window.performance;
  /* istanbul ignore if */
  if (
    perf &&
    perf.mark &&
    perf.measure &&
    perf.clearMarks &&
    perf.clearMeasures
  ) {
    mark = function (tag) { return perf.mark(tag); };
    measure = function (name, startTag, endTag) {
      perf.measure(name, startTag, endTag);
      perf.clearMarks(startTag);
      perf.clearMarks(endTag);
      // perf.clearMeasures(name)
    };
  }
}

/* not type checking this file because flow doesn't play well with Proxy */

var initProxy;

{
  var allowedGlobals = makeMap(
    'Infinity,undefined,NaN,isFinite,isNaN,' +
    'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
    'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +
    'require' // for Webpack/Browserify
  );

  var warnNonPresent = function (target, key) {
    warn(
      "Property or method \"" + key + "\" is not defined on the instance but " +
      'referenced during render. Make sure that this property is reactive, ' +
      'either in the data option, or for class-based components, by ' +
      'initializing the property. ' +
      'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',
      target
    );
  };

  var warnReservedPrefix = function (target, key) {
    warn(
      "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " +
      'properties starting with "$" or "_" are not proxied in the Vue instance to ' +
      'prevent conflicts with Vue internals' +
      'See: https://vuejs.org/v2/api/#data',
      target
    );
  };

  var hasProxy =
    typeof Proxy !== 'undefined' && isNative(Proxy);

  if (hasProxy) {
    var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
    config.keyCodes = new Proxy(config.keyCodes, {
      set: function set (target, key, value) {
        if (isBuiltInModifier(key)) {
          warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));
          return false
        } else {
          target[key] = value;
          return true
        }
      }
    });
  }

  var hasHandler = {
    has: function has (target, key) {
      var has = key in target;
      var isAllowed = allowedGlobals(key) ||
        (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));
      if (!has && !isAllowed) {
        if (key in target.$data) { warnReservedPrefix(target, key); }
        else { warnNonPresent(target, key); }
      }
      return has || !isAllowed
    }
  };

  var getHandler = {
    get: function get (target, key) {
      if (typeof key === 'string' && !(key in target)) {
        if (key in target.$data) { warnReservedPrefix(target, key); }
        else { warnNonPresent(target, key); }
      }
      return target[key]
    }
  };

  initProxy = function initProxy (vm) {
    if (hasProxy) {
      // determine which proxy handler to use
      var options = vm.$options;
      var handlers = options.render && options.render._withStripped
        ? getHandler
        : hasHandler;
      vm._renderProxy = new Proxy(vm, handlers);
    } else {
      vm._renderProxy = vm;
    }
  };
}

/*  */

var seenObjects = new _Set();

/**
 * Recursively traverse an object to evoke all converted
 * getters, so that every nested property inside the object
 * is collected as a "deep" dependency.
 */
function traverse (val) {
  _traverse(val, seenObjects);
  seenObjects.clear();
}

function _traverse (val, seen) {
  var i, keys;
  var isA = Array.isArray(val);
  if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {
    return
  }
  if (val.__ob__) {
    var depId = val.__ob__.dep.id;
    if (seen.has(depId)) {
      return
    }
    seen.add(depId);
  }
  if (isA) {
    i = val.length;
    while (i--) { _traverse(val[i], seen); }
  } else {
    keys = Object.keys(val);
    i = keys.length;
    while (i--) { _traverse(val[keys[i]], seen); }
  }
}

/*  */

var normalizeEvent = cached(function (name) {
  var passive = name.charAt(0) === '&';
  name = passive ? name.slice(1) : name;
  var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first
  name = once$$1 ? name.slice(1) : name;
  var capture = name.charAt(0) === '!';
  name = capture ? name.slice(1) : name;
  return {
    name: name,
    once: once$$1,
    capture: capture,
    passive: passive
  }
});

function createFnInvoker (fns, vm) {
  function invoker () {
    var arguments$1 = arguments;

    var fns = invoker.fns;
    if (Array.isArray(fns)) {
      var cloned = fns.slice();
      for (var i = 0; i < cloned.length; i++) {
        invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler");
      }
    } else {
      // return handler return value for single handlers
      return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler")
    }
  }
  invoker.fns = fns;
  return invoker
}

function updateListeners (
  on,
  oldOn,
  add,
  remove$$1,
  createOnceHandler,
  vm
) {
  var name, def$$1, cur, old, event;
  for (name in on) {
    def$$1 = cur = on[name];
    old = oldOn[name];
    event = normalizeEvent(name);
    if (isUndef(cur)) {
      warn(
        "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),
        vm
      );
    } else if (isUndef(old)) {
      if (isUndef(cur.fns)) {
        cur = on[name] = createFnInvoker(cur, vm);
      }
      if (isTrue(event.once)) {
        cur = on[name] = createOnceHandler(event.name, cur, event.capture);
      }
      add(event.name, cur, event.capture, event.passive, event.params);
    } else if (cur !== old) {
      old.fns = cur;
      on[name] = old;
    }
  }
  for (name in oldOn) {
    if (isUndef(on[name])) {
      event = normalizeEvent(name);
      remove$$1(event.name, oldOn[name], event.capture);
    }
  }
}

/*  */

function mergeVNodeHook (def, hookKey, hook) {
  if (def instanceof VNode) {
    def = def.data.hook || (def.data.hook = {});
  }
  var invoker;
  var oldHook = def[hookKey];

  function wrappedHook () {
    hook.apply(this, arguments);
    // important: remove merged hook to ensure it's called only once
    // and prevent memory leak
    remove(invoker.fns, wrappedHook);
  }

  if (isUndef(oldHook)) {
    // no existing hook
    invoker = createFnInvoker([wrappedHook]);
  } else {
    /* istanbul ignore if */
    if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
      // already a merged invoker
      invoker = oldHook;
      invoker.fns.push(wrappedHook);
    } else {
      // existing plain hook
      invoker = createFnInvoker([oldHook, wrappedHook]);
    }
  }

  invoker.merged = true;
  def[hookKey] = invoker;
}

/*  */

function extractPropsFromVNodeData (
  data,
  Ctor,
  tag
) {
  // we are only extracting raw values here.
  // validation and default values are handled in the child
  // component itself.
  var propOptions = Ctor.options.props;
  if (isUndef(propOptions)) {
    return
  }
  var res = {};
  var attrs = data.attrs;
  var props = data.props;
  if (isDef(attrs) || isDef(props)) {
    for (var key in propOptions) {
      var altKey = hyphenate(key);
      {
        var keyInLowerCase = key.toLowerCase();
        if (
          key !== keyInLowerCase &&
          attrs && hasOwn(attrs, keyInLowerCase)
        ) {
          tip(
            "Prop \"" + keyInLowerCase + "\" is passed to component " +
            (formatComponentName(tag || Ctor)) + ", but the declared prop name is" +
            " \"" + key + "\". " +
            "Note that HTML attributes are case-insensitive and camelCased " +
            "props need to use their kebab-case equivalents when using in-DOM " +
            "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"."
          );
        }
      }
      checkProp(res, props, key, altKey, true) ||
      checkProp(res, attrs, key, altKey, false);
    }
  }
  return res
}

function checkProp (
  res,
  hash,
  key,
  altKey,
  preserve
) {
  if (isDef(hash)) {
    if (hasOwn(hash, key)) {
      res[key] = hash[key];
      if (!preserve) {
        delete hash[key];
      }
      return true
    } else if (hasOwn(hash, altKey)) {
      res[key] = hash[altKey];
      if (!preserve) {
        delete hash[altKey];
      }
      return true
    }
  }
  return false
}

/*  */

// The template compiler attempts to minimize the need for normalization by
// statically analyzing the template at compile time.
//
// For plain HTML markup, normalization can be completely skipped because the
// generated render function is guaranteed to return Array<VNode>. There are
// two cases where extra normalization is needed:

// 1. When the children contains components - because a functional component
// may return an Array instead of a single root. In this case, just a simple
// normalization is needed - if any child is an Array, we flatten the whole
// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
// because functional components already normalize their own children.
function simpleNormalizeChildren (children) {
  for (var i = 0; i < children.length; i++) {
    if (Array.isArray(children[i])) {
      return Array.prototype.concat.apply([], children)
    }
  }
  return children
}

// 2. When the children contains constructs that always generated nested Arrays,
// e.g. <template>, <slot>, v-for, or when the children is provided by user
// with hand-written render functions / JSX. In such cases a full normalization
// is needed to cater to all possible types of children values.
function normalizeChildren (children) {
  return isPrimitive(children)
    ? [createTextVNode(children)]
    : Array.isArray(children)
      ? normalizeArrayChildren(children)
      : undefined
}

function isTextNode (node) {
  return isDef(node) && isDef(node.text) && isFalse(node.isComment)
}

function normalizeArrayChildren (children, nestedIndex) {
  var res = [];
  var i, c, lastIndex, last;
  for (i = 0; i < children.length; i++) {
    c = children[i];
    if (isUndef(c) || typeof c === 'boolean') { continue }
    lastIndex = res.length - 1;
    last = res[lastIndex];
    //  nested
    if (Array.isArray(c)) {
      if (c.length > 0) {
        c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i));
        // merge adjacent text nodes
        if (isTextNode(c[0]) && isTextNode(last)) {
          res[lastIndex] = createTextVNode(last.text + (c[0]).text);
          c.shift();
        }
        res.push.apply(res, c);
      }
    } else if (isPrimitive(c)) {
      if (isTextNode(last)) {
        // merge adjacent text nodes
        // this is necessary for SSR hydration because text nodes are
        // essentially merged when rendered to HTML strings
        res[lastIndex] = createTextVNode(last.text + c);
      } else if (c !== '') {
        // convert primitive to vnode
        res.push(createTextVNode(c));
      }
    } else {
      if (isTextNode(c) && isTextNode(last)) {
        // merge adjacent text nodes
        res[lastIndex] = createTextVNode(last.text + c.text);
      } else {
        // default key for nested array children (likely generated by v-for)
        if (isTrue(children._isVList) &&
          isDef(c.tag) &&
          isUndef(c.key) &&
          isDef(nestedIndex)) {
          c.key = "__vlist" + nestedIndex + "_" + i + "__";
        }
        res.push(c);
      }
    }
  }
  return res
}

/*  */

function initProvide (vm) {
  var provide = vm.$options.provide;
  if (provide) {
    vm._provided = typeof provide === 'function'
      ? provide.call(vm)
      : provide;
  }
}

function initInjections (vm) {
  var result = resolveInject(vm.$options.inject, vm);
  if (result) {
    toggleObserving(false);
    Object.keys(result).forEach(function (key) {
      /* istanbul ignore else */
      {
        defineReactive$$1(vm, key, result[key], function () {
          warn(
            "Avoid mutating an injected value directly since the changes will be " +
            "overwritten whenever the provided component re-renders. " +
            "injection being mutated: \"" + key + "\"",
            vm
          );
        });
      }
    });
    toggleObserving(true);
  }
}

function resolveInject (inject, vm) {
  if (inject) {
    // inject is :any because flow is not smart enough to figure out cached
    var result = Object.create(null);
    var keys = hasSymbol
      ? Reflect.ownKeys(inject)
      : Object.keys(inject);

    for (var i = 0; i < keys.length; i++) {
      var key = keys[i];
      // #6574 in case the inject object is observed...
      if (key === '__ob__') { continue }
      var provideKey = inject[key].from;
      var source = vm;
      while (source) {
        if (source._provided && hasOwn(source._provided, provideKey)) {
          result[key] = source._provided[provideKey];
          break
        }
        source = source.$parent;
      }
      if (!source) {
        if ('default' in inject[key]) {
          var provideDefault = inject[key].default;
          result[key] = typeof provideDefault === 'function'
            ? provideDefault.call(vm)
            : provideDefault;
        } else {
          warn(("Injection \"" + key + "\" not found"), vm);
        }
      }
    }
    return result
  }
}

/*  */



/**
 * Runtime helper for resolving raw children VNodes into a slot object.
 */
function resolveSlots (
  children,
  context
) {
  if (!children || !children.length) {
    return {}
  }
  var slots = {};
  for (var i = 0, l = children.length; i < l; i++) {
    var child = children[i];
    var data = child.data;
    // remove slot attribute if the node is resolved as a Vue slot node
    if (data && data.attrs && data.attrs.slot) {
      delete data.attrs.slot;
    }
    // named slots should only be respected if the vnode was rendered in the
    // same context.
    if ((child.context === context || child.fnContext === context) &&
      data && data.slot != null
    ) {
      var name = data.slot;
      var slot = (slots[name] || (slots[name] = []));
      if (child.tag === 'template') {
        slot.push.apply(slot, child.children || []);
      } else {
        slot.push(child);
      }
    } else {
      (slots.default || (slots.default = [])).push(child);
    }
  }
  // ignore slots that contains only whitespace
  for (var name$1 in slots) {
    if (slots[name$1].every(isWhitespace)) {
      delete slots[name$1];
    }
  }
  return slots
}

function isWhitespace (node) {
  return (node.isComment && !node.asyncFactory) || node.text === ' '
}

/*  */

function normalizeScopedSlots (
  slots,
  normalSlots,
  prevSlots
) {
  var res;
  var hasNormalSlots = Object.keys(normalSlots).length > 0;
  var isStable = slots ? !!slots.$stable : !hasNormalSlots;
  var key = slots && slots.$key;
  if (!slots) {
    res = {};
  } else if (slots._normalized) {
    // fast path 1: child component re-render only, parent did not change
    return slots._normalized
  } else if (
    isStable &&
    prevSlots &&
    prevSlots !== emptyObject &&
    key === prevSlots.$key &&
    !hasNormalSlots &&
    !prevSlots.$hasNormal
  ) {
    // fast path 2: stable scoped slots w/ no normal slots to proxy,
    // only need to normalize once
    return prevSlots
  } else {
    res = {};
    for (var key$1 in slots) {
      if (slots[key$1] && key$1[0] !== '$') {
        res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);
      }
    }
  }
  // expose normal slots on scopedSlots
  for (var key$2 in normalSlots) {
    if (!(key$2 in res)) {
      res[key$2] = proxyNormalSlot(normalSlots, key$2);
    }
  }
  // avoriaz seems to mock a non-extensible $scopedSlots object
  // and when that is passed down this would cause an error
  if (slots && Object.isExtensible(slots)) {
    (slots)._normalized = res;
  }
  def(res, '$stable', isStable);
  def(res, '$key', key);
  def(res, '$hasNormal', hasNormalSlots);
  return res
}

function normalizeScopedSlot(normalSlots, key, fn) {
  var normalized = function () {
    var res = arguments.length ? fn.apply(null, arguments) : fn({});
    res = res && typeof res === 'object' && !Array.isArray(res)
      ? [res] // single vnode
      : normalizeChildren(res);
    return res && (
      res.length === 0 ||
      (res.length === 1 && res[0].isComment) // #9658
    ) ? undefined
      : res
  };
  // this is a slot using the new v-slot syntax without scope. although it is
  // compiled as a scoped slot, render fn users would expect it to be present
  // on this.$slots because the usage is semantically a normal slot.
  if (fn.proxy) {
    Object.defineProperty(normalSlots, key, {
      get: normalized,
      enumerable: true,
      configurable: true
    });
  }
  return normalized
}

function proxyNormalSlot(slots, key) {
  return function () { return slots[key]; }
}

/*  */

/**
 * Runtime helper for rendering v-for lists.
 */
function renderList (
  val,
  render
) {
  var ret, i, l, keys, key;
  if (Array.isArray(val) || typeof val === 'string') {
    ret = new Array(val.length);
    for (i = 0, l = val.length; i < l; i++) {
      ret[i] = render(val[i], i);
    }
  } else if (typeof val === 'number') {
    ret = new Array(val);
    for (i = 0; i < val; i++) {
      ret[i] = render(i + 1, i);
    }
  } else if (isObject(val)) {
    if (hasSymbol && val[Symbol.iterator]) {
      ret = [];
      var iterator = val[Symbol.iterator]();
      var result = iterator.next();
      while (!result.done) {
        ret.push(render(result.value, ret.length));
        result = iterator.next();
      }
    } else {
      keys = Object.keys(val);
      ret = new Array(keys.length);
      for (i = 0, l = keys.length; i < l; i++) {
        key = keys[i];
        ret[i] = render(val[key], key, i);
      }
    }
  }
  if (!isDef(ret)) {
    ret = [];
  }
  (ret)._isVList = true;
  return ret
}

/*  */

/**
 * Runtime helper for rendering <slot>
 */
function renderSlot (
  name,
  fallback,
  props,
  bindObject
) {
  var scopedSlotFn = this.$scopedSlots[name];
  var nodes;
  if (scopedSlotFn) { // scoped slot
    props = props || {};
    if (bindObject) {
      if (!isObject(bindObject)) {
        warn(
          'slot v-bind without argument expects an Object',
          this
        );
      }
      props = extend(extend({}, bindObject), props);
    }
    nodes = scopedSlotFn(props) || fallback;
  } else {
    nodes = this.$slots[name] || fallback;
  }

  var target = props && props.slot;
  if (target) {
    return this.$createElement('template', { slot: target }, nodes)
  } else {
    return nodes
  }
}

/*  */

/**
 * Runtime helper for resolving filters
 */
function resolveFilter (id) {
  return resolveAsset(this.$options, 'filters', id, true) || identity
}

/*  */

function isKeyNotMatch (expect, actual) {
  if (Array.isArray(expect)) {
    return expect.indexOf(actual) === -1
  } else {
    return expect !== actual
  }
}

/**
 * Runtime helper for checking keyCodes from config.
 * exposed as Vue.prototype._k
 * passing in eventKeyName as last argument separately for backwards compat
 */
function checkKeyCodes (
  eventKeyCode,
  key,
  builtInKeyCode,
  eventKeyName,
  builtInKeyName
) {
  var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
  if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
    return isKeyNotMatch(builtInKeyName, eventKeyName)
  } else if (mappedKeyCode) {
    return isKeyNotMatch(mappedKeyCode, eventKeyCode)
  } else if (eventKeyName) {
    return hyphenate(eventKeyName) !== key
  }
}

/*  */

/**
 * Runtime helper for merging v-bind="object" into a VNode's data.
 */
function bindObjectProps (
  data,
  tag,
  value,
  asProp,
  isSync
) {
  if (value) {
    if (!isObject(value)) {
      warn(
        'v-bind without argument expects an Object or Array value',
        this
      );
    } else {
      if (Array.isArray(value)) {
        value = toObject(value);
      }
      var hash;
      var loop = function ( key ) {
        if (
          key === 'class' ||
          key === 'style' ||
          isReservedAttribute(key)
        ) {
          hash = data;
        } else {
          var type = data.attrs && data.attrs.type;
          hash = asProp || config.mustUseProp(tag, type, key)
            ? data.domProps || (data.domProps = {})
            : data.attrs || (data.attrs = {});
        }
        var camelizedKey = camelize(key);
        var hyphenatedKey = hyphenate(key);
        if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {
          hash[key] = value[key];

          if (isSync) {
            var on = data.on || (data.on = {});
            on[("update:" + key)] = function ($event) {
              value[key] = $event;
            };
          }
        }
      };

      for (var key in value) loop( key );
    }
  }
  return data
}

/*  */

/**
 * Runtime helper for rendering static trees.
 */
function renderStatic (
  index,
  isInFor
) {
  var cached = this._staticTrees || (this._staticTrees = []);
  var tree = cached[index];
  // if has already-rendered static tree and not inside v-for,
  // we can reuse the same tree.
  if (tree && !isInFor) {
    return tree
  }
  // otherwise, render a fresh tree.
  tree = cached[index] = this.$options.staticRenderFns[index].call(
    this._renderProxy,
    null,
    this // for render fns generated for functional component templates
  );
  markStatic(tree, ("__static__" + index), false);
  return tree
}

/**
 * Runtime helper for v-once.
 * Effectively it means marking the node as static with a unique key.
 */
function markOnce (
  tree,
  index,
  key
) {
  markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
  return tree
}

function markStatic (
  tree,
  key,
  isOnce
) {
  if (Array.isArray(tree)) {
    for (var i = 0; i < tree.length; i++) {
      if (tree[i] && typeof tree[i] !== 'string') {
        markStaticNode(tree[i], (key + "_" + i), isOnce);
      }
    }
  } else {
    markStaticNode(tree, key, isOnce);
  }
}

function markStaticNode (node, key, isOnce) {
  node.isStatic = true;
  node.key = key;
  node.isOnce = isOnce;
}

/*  */

function bindObjectListeners (data, value) {
  if (value) {
    if (!isPlainObject(value)) {
      warn(
        'v-on without argument expects an Object value',
        this
      );
    } else {
      var on = data.on = data.on ? extend({}, data.on) : {};
      for (var key in value) {
        var existing = on[key];
        var ours = value[key];
        on[key] = existing ? [].concat(existing, ours) : ours;
      }
    }
  }
  return data
}

/*  */

function resolveScopedSlots (
  fns, // see flow/vnode
  res,
  // the following are added in 2.6
  hasDynamicKeys,
  contentHashKey
) {
  res = res || { $stable: !hasDynamicKeys };
  for (var i = 0; i < fns.length; i++) {
    var slot = fns[i];
    if (Array.isArray(slot)) {
      resolveScopedSlots(slot, res, hasDynamicKeys);
    } else if (slot) {
      // marker for reverse proxying v-slot without scope on this.$slots
      if (slot.proxy) {
        slot.fn.proxy = true;
      }
      res[slot.key] = slot.fn;
    }
  }
  if (contentHashKey) {
    (res).$key = contentHashKey;
  }
  return res
}

/*  */

function bindDynamicKeys (baseObj, values) {
  for (var i = 0; i < values.length; i += 2) {
    var key = values[i];
    if (typeof key === 'string' && key) {
      baseObj[values[i]] = values[i + 1];
    } else if (key !== '' && key !== null) {
      // null is a speical value for explicitly removing a binding
      warn(
        ("Invalid value for dynamic directive argument (expected string or null): " + key),
        this
      );
    }
  }
  return baseObj
}

// helper to dynamically append modifier runtime markers to event names.
// ensure only append when value is already string, otherwise it will be cast
// to string and cause the type check to miss.
function prependModifier (value, symbol) {
  return typeof value === 'string' ? symbol + value : value
}

/*  */

function installRenderHelpers (target) {
  target._o = markOnce;
  target._n = toNumber;
  target._s = toString;
  target._l = renderList;
  target._t = renderSlot;
  target._q = looseEqual;
  target._i = looseIndexOf;
  target._m = renderStatic;
  target._f = resolveFilter;
  target._k = checkKeyCodes;
  target._b = bindObjectProps;
  target._v = createTextVNode;
  target._e = createEmptyVNode;
  target._u = resolveScopedSlots;
  target._g = bindObjectListeners;
  target._d = bindDynamicKeys;
  target._p = prependModifier;
}

/*  */

function FunctionalRenderContext (
  data,
  props,
  children,
  parent,
  Ctor
) {
  var this$1 = this;

  var options = Ctor.options;
  // ensure the createElement function in functional components
  // gets a unique context - this is necessary for correct named slot check
  var contextVm;
  if (hasOwn(parent, '_uid')) {
    contextVm = Object.create(parent);
    // $flow-disable-line
    contextVm._original = parent;
  } else {
    // the context vm passed in is a functional context as well.
    // in this case we want to make sure we are able to get a hold to the
    // real context instance.
    contextVm = parent;
    // $flow-disable-line
    parent = parent._original;
  }
  var isCompiled = isTrue(options._compiled);
  var needNormalization = !isCompiled;

  this.data = data;
  this.props = props;
  this.children = children;
  this.parent = parent;
  this.listeners = data.on || emptyObject;
  this.injections = resolveInject(options.inject, parent);
  this.slots = function () {
    if (!this$1.$slots) {
      normalizeScopedSlots(
        data.scopedSlots,
        this$1.$slots = resolveSlots(children, parent)
      );
    }
    return this$1.$slots
  };

  Object.defineProperty(this, 'scopedSlots', ({
    enumerable: true,
    get: function get () {
      return normalizeScopedSlots(data.scopedSlots, this.slots())
    }
  }));

  // support for compiled functional template
  if (isCompiled) {
    // exposing $options for renderStatic()
    this.$options = options;
    // pre-resolve slots for renderSlot()
    this.$slots = this.slots();
    this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);
  }

  if (options._scopeId) {
    this._c = function (a, b, c, d) {
      var vnode = createElement(contextVm, a, b, c, d, needNormalization);
      if (vnode && !Array.isArray(vnode)) {
        vnode.fnScopeId = options._scopeId;
        vnode.fnContext = parent;
      }
      return vnode
    };
  } else {
    this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };
  }
}

installRenderHelpers(FunctionalRenderContext.prototype);

function createFunctionalComponent (
  Ctor,
  propsData,
  data,
  contextVm,
  children
) {
  var options = Ctor.options;
  var props = {};
  var propOptions = options.props;
  if (isDef(propOptions)) {
    for (var key in propOptions) {
      props[key] = validateProp(key, propOptions, propsData || emptyObject);
    }
  } else {
    if (isDef(data.attrs)) { mergeProps(props, data.attrs); }
    if (isDef(data.props)) { mergeProps(props, data.props); }
  }

  var renderContext = new FunctionalRenderContext(
    data,
    props,
    children,
    contextVm,
    Ctor
  );

  var vnode = options.render.call(null, renderContext._c, renderContext);

  if (vnode instanceof VNode) {
    return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)
  } else if (Array.isArray(vnode)) {
    var vnodes = normalizeChildren(vnode) || [];
    var res = new Array(vnodes.length);
    for (var i = 0; i < vnodes.length; i++) {
      res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);
    }
    return res
  }
}

function cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {
  // #7817 clone node before setting fnContext, otherwise if the node is reused
  // (e.g. it was from a cached normal slot) the fnContext causes named slots
  // that should not be matched to match.
  var clone = cloneVNode(vnode);
  clone.fnContext = contextVm;
  clone.fnOptions = options;
  {
    (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;
  }
  if (data.slot) {
    (clone.data || (clone.data = {})).slot = data.slot;
  }
  return clone
}

function mergeProps (to, from) {
  for (var key in from) {
    to[camelize(key)] = from[key];
  }
}

/*  */

/*  */

/*  */

/*  */

// inline hooks to be invoked on component VNodes during patch
var componentVNodeHooks = {
  init: function init (vnode, hydrating) {
    if (
      vnode.componentInstance &&
      !vnode.componentInstance._isDestroyed &&
      vnode.data.keepAlive
    ) {
      // kept-alive components, treat as a patch
      var mountedNode = vnode; // work around flow
      componentVNodeHooks.prepatch(mountedNode, mountedNode);
    } else {
      var child = vnode.componentInstance = createComponentInstanceForVnode(
        vnode,
        activeInstance
      );
      child.$mount(hydrating ? vnode.elm : undefined, hydrating);
    }
  },

  prepatch: function prepatch (oldVnode, vnode) {
    var options = vnode.componentOptions;
    var child = vnode.componentInstance = oldVnode.componentInstance;
    updateChildComponent(
      child,
      options.propsData, // updated props
      options.listeners, // updated listeners
      vnode, // new parent vnode
      options.children // new children
    );
  },

  insert: function insert (vnode) {
    var context = vnode.context;
    var componentInstance = vnode.componentInstance;
    if (!componentInstance._isMounted) {
      componentInstance._isMounted = true;
      callHook(componentInstance, 'mounted');
    }
    if (vnode.data.keepAlive) {
      if (context._isMounted) {
        // vue-router#1212
        // During updates, a kept-alive component's child components may
        // change, so directly walking the tree here may call activated hooks
        // on incorrect children. Instead we push them into a queue which will
        // be processed after the whole patch process ended.
        queueActivatedComponent(componentInstance);
      } else {
        activateChildComponent(componentInstance, true /* direct */);
      }
    }
  },

  destroy: function destroy (vnode) {
    var componentInstance = vnode.componentInstance;
    if (!componentInstance._isDestroyed) {
      if (!vnode.data.keepAlive) {
        componentInstance.$destroy();
      } else {
        deactivateChildComponent(componentInstance, true /* direct */);
      }
    }
  }
};

var hooksToMerge = Object.keys(componentVNodeHooks);

function createComponent (
  Ctor,
  data,
  context,
  children,
  tag
) {
  if (isUndef(Ctor)) {
    return
  }

  var baseCtor = context.$options._base;

  // plain options object: turn it into a constructor
  if (isObject(Ctor)) {
    Ctor = baseCtor.extend(Ctor);
  }

  // if at this stage it's not a constructor or an async component factory,
  // reject.
  if (typeof Ctor !== 'function') {
    {
      warn(("Invalid Component definition: " + (String(Ctor))), context);
    }
    return
  }

  // async component
  var asyncFactory;
  if (isUndef(Ctor.cid)) {
    asyncFactory = Ctor;
    Ctor = resolveAsyncComponent(asyncFactory, baseCtor);
    if (Ctor === undefined) {
      // return a placeholder node for async component, which is rendered
      // as a comment node but preserves all the raw information for the node.
      // the information will be used for async server-rendering and hydration.
      return createAsyncPlaceholder(
        asyncFactory,
        data,
        context,
        children,
        tag
      )
    }
  }

  data = data || {};

  // resolve constructor options in case global mixins are applied after
  // component constructor creation
  resolveConstructorOptions(Ctor);

  // transform component v-model data into props & events
  if (isDef(data.model)) {
    transformModel(Ctor.options, data);
  }

  // extract props
  var propsData = extractPropsFromVNodeData(data, Ctor, tag);

  // functional component
  if (isTrue(Ctor.options.functional)) {
    return createFunctionalComponent(Ctor, propsData, data, context, children)
  }

  // extract listeners, since these needs to be treated as
  // child component listeners instead of DOM listeners
  var listeners = data.on;
  // replace with listeners with .native modifier
  // so it gets processed during parent component patch.
  data.on = data.nativeOn;

  if (isTrue(Ctor.options.abstract)) {
    // abstract components do not keep anything
    // other than props & listeners & slot

    // work around flow
    var slot = data.slot;
    data = {};
    if (slot) {
      data.slot = slot;
    }
  }

  // install component management hooks onto the placeholder node
  installComponentHooks(data);

  // return a placeholder vnode
  var name = Ctor.options.name || tag;
  var vnode = new VNode(
    ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
    data, undefined, undefined, undefined, context,
    { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },
    asyncFactory
  );

  return vnode
}

function createComponentInstanceForVnode (
  vnode, // we know it's MountedComponentVNode but flow doesn't
  parent // activeInstance in lifecycle state
) {
  var options = {
    _isComponent: true,
    _parentVnode: vnode,
    parent: parent
  };
  // check inline-template render functions
  var inlineTemplate = vnode.data.inlineTemplate;
  if (isDef(inlineTemplate)) {
    options.render = inlineTemplate.render;
    options.staticRenderFns = inlineTemplate.staticRenderFns;
  }
  return new vnode.componentOptions.Ctor(options)
}

function installComponentHooks (data) {
  var hooks = data.hook || (data.hook = {});
  for (var i = 0; i < hooksToMerge.length; i++) {
    var key = hooksToMerge[i];
    var existing = hooks[key];
    var toMerge = componentVNodeHooks[key];
    if (existing !== toMerge && !(existing && existing._merged)) {
      hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;
    }
  }
}

function mergeHook$1 (f1, f2) {
  var merged = function (a, b) {
    // flow complains about extra args which is why we use any
    f1(a, b);
    f2(a, b);
  };
  merged._merged = true;
  return merged
}

// transform component v-model info (value and callback) into
// prop and event handler respectively.
function transformModel (options, data) {
  var prop = (options.model && options.model.prop) || 'value';
  var event = (options.model && options.model.event) || 'input'
  ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;
  var on = data.on || (data.on = {});
  var existing = on[event];
  var callback = data.model.callback;
  if (isDef(existing)) {
    if (
      Array.isArray(existing)
        ? existing.indexOf(callback) === -1
        : existing !== callback
    ) {
      on[event] = [callback].concat(existing);
    }
  } else {
    on[event] = callback;
  }
}

/*  */

var SIMPLE_NORMALIZE = 1;
var ALWAYS_NORMALIZE = 2;

// wrapper function for providing a more flexible interface
// without getting yelled at by flow
function createElement (
  context,
  tag,
  data,
  children,
  normalizationType,
  alwaysNormalize
) {
  if (Array.isArray(data) || isPrimitive(data)) {
    normalizationType = children;
    children = data;
    data = undefined;
  }
  if (isTrue(alwaysNormalize)) {
    normalizationType = ALWAYS_NORMALIZE;
  }
  return _createElement(context, tag, data, children, normalizationType)
}

function _createElement (
  context,
  tag,
  data,
  children,
  normalizationType
) {
  if (isDef(data) && isDef((data).__ob__)) {
    warn(
      "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
      'Always create fresh vnode data objects in each render!',
      context
    );
    return createEmptyVNode()
  }
  // object syntax in v-bind
  if (isDef(data) && isDef(data.is)) {
    tag = data.is;
  }
  if (!tag) {
    // in case of component :is set to falsy value
    return createEmptyVNode()
  }
  // warn against non-primitive key
  if (isDef(data) && isDef(data.key) && !isPrimitive(data.key)
  ) {
    {
      warn(
        'Avoid using non-primitive value as key, ' +
        'use string/number value instead.',
        context
      );
    }
  }
  // support single function children as default scoped slot
  if (Array.isArray(children) &&
    typeof children[0] === 'function'
  ) {
    data = data || {};
    data.scopedSlots = { default: children[0] };
    children.length = 0;
  }
  if (normalizationType === ALWAYS_NORMALIZE) {
    children = normalizeChildren(children);
  } else if (normalizationType === SIMPLE_NORMALIZE) {
    children = simpleNormalizeChildren(children);
  }
  var vnode, ns;
  if (typeof tag === 'string') {
    var Ctor;
    ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
    if (config.isReservedTag(tag)) {
      // platform built-in elements
      vnode = new VNode(
        config.parsePlatformTagName(tag), data, children,
        undefined, undefined, context
      );
    } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {
      // component
      vnode = createComponent(Ctor, data, context, children, tag);
    } else {
      // unknown or unlisted namespaced elements
      // check at runtime because it may get assigned a namespace when its
      // parent normalizes children
      vnode = new VNode(
        tag, data, children,
        undefined, undefined, context
      );
    }
  } else {
    // direct component options / constructor
    vnode = createComponent(tag, data, context, children);
  }
  if (Array.isArray(vnode)) {
    return vnode
  } else if (isDef(vnode)) {
    if (isDef(ns)) { applyNS(vnode, ns); }
    if (isDef(data)) { registerDeepBindings(data); }
    return vnode
  } else {
    return createEmptyVNode()
  }
}

function applyNS (vnode, ns, force) {
  vnode.ns = ns;
  if (vnode.tag === 'foreignObject') {
    // use default namespace inside foreignObject
    ns = undefined;
    force = true;
  }
  if (isDef(vnode.children)) {
    for (var i = 0, l = vnode.children.length; i < l; i++) {
      var child = vnode.children[i];
      if (isDef(child.tag) && (
        isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
        applyNS(child, ns, force);
      }
    }
  }
}

// ref #5318
// necessary to ensure parent re-render when deep bindings like :style and
// :class are used on slot nodes
function registerDeepBindings (data) {
  if (isObject(data.style)) {
    traverse(data.style);
  }
  if (isObject(data.class)) {
    traverse(data.class);
  }
}

/*  */

function initRender (vm) {
  vm._vnode = null; // the root of the child tree
  vm._staticTrees = null; // v-once cached trees
  var options = vm.$options;
  var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree
  var renderContext = parentVnode && parentVnode.context;
  vm.$slots = resolveSlots(options._renderChildren, renderContext);
  vm.$scopedSlots = emptyObject;
  // bind the createElement fn to this instance
  // so that we get proper render context inside it.
  // args order: tag, data, children, normalizationType, alwaysNormalize
  // internal version is used by render functions compiled from templates
  vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
  // normalization is always applied for the public version, used in
  // user-written render functions.
  vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };

  // $attrs & $listeners are exposed for easier HOC creation.
  // they need to be reactive so that HOCs using them are always updated
  var parentData = parentVnode && parentVnode.data;

  /* istanbul ignore else */
  {
    defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {
      !isUpdatingChildComponent && warn("$attrs is readonly.", vm);
    }, true);
    defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {
      !isUpdatingChildComponent && warn("$listeners is readonly.", vm);
    }, true);
  }
}

var currentRenderingInstance = null;

function renderMixin (Vue) {
  // install runtime convenience helpers
  installRenderHelpers(Vue.prototype);

  Vue.prototype.$nextTick = function (fn) {
    return nextTick(fn, this)
  };

  Vue.prototype._render = function () {
    var vm = this;
    var ref = vm.$options;
    var render = ref.render;
    var _parentVnode = ref._parentVnode;

    if (_parentVnode) {
      vm.$scopedSlots = normalizeScopedSlots(
        _parentVnode.data.scopedSlots,
        vm.$slots,
        vm.$scopedSlots
      );
    }

    // set parent vnode. this allows render functions to have access
    // to the data on the placeholder node.
    vm.$vnode = _parentVnode;
    // render self
    var vnode;
    try {
      // There's no need to maintain a stack becaues all render fns are called
      // separately from one another. Nested component's render fns are called
      // when parent component is patched.
      currentRenderingInstance = vm;
      vnode = render.call(vm._renderProxy, vm.$createElement);
    } catch (e) {
      handleError(e, vm, "render");
      // return error render result,
      // or previous vnode to prevent render error causing blank component
      /* istanbul ignore else */
      if (vm.$options.renderError) {
        try {
          vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
        } catch (e) {
          handleError(e, vm, "renderError");
          vnode = vm._vnode;
        }
      } else {
        vnode = vm._vnode;
      }
    } finally {
      currentRenderingInstance = null;
    }
    // if the returned array contains only a single node, allow it
    if (Array.isArray(vnode) && vnode.length === 1) {
      vnode = vnode[0];
    }
    // return empty vnode in case the render function errored out
    if (!(vnode instanceof VNode)) {
      if (Array.isArray(vnode)) {
        warn(
          'Multiple root nodes returned from render function. Render function ' +
          'should return a single root node.',
          vm
        );
      }
      vnode = createEmptyVNode();
    }
    // set parent
    vnode.parent = _parentVnode;
    return vnode
  };
}

/*  */

function ensureCtor (comp, base) {
  if (
    comp.__esModule ||
    (hasSymbol && comp[Symbol.toStringTag] === 'Module')
  ) {
    comp = comp.default;
  }
  return isObject(comp)
    ? base.extend(comp)
    : comp
}

function createAsyncPlaceholder (
  factory,
  data,
  context,
  children,
  tag
) {
  var node = createEmptyVNode();
  node.asyncFactory = factory;
  node.asyncMeta = { data: data, context: context, children: children, tag: tag };
  return node
}

function resolveAsyncComponent (
  factory,
  baseCtor
) {
  if (isTrue(factory.error) && isDef(factory.errorComp)) {
    return factory.errorComp
  }

  if (isDef(factory.resolved)) {
    return factory.resolved
  }

  var owner = currentRenderingInstance;
  if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {
    // already pending
    factory.owners.push(owner);
  }

  if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
    return factory.loadingComp
  }

  if (owner && !isDef(factory.owners)) {
    var owners = factory.owners = [owner];
    var sync = true;
    var timerLoading = null;
    var timerTimeout = null

    ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });

    var forceRender = function (renderCompleted) {
      for (var i = 0, l = owners.length; i < l; i++) {
        (owners[i]).$forceUpdate();
      }

      if (renderCompleted) {
        owners.length = 0;
        if (timerLoading !== null) {
          clearTimeout(timerLoading);
          timerLoading = null;
        }
        if (timerTimeout !== null) {
          clearTimeout(timerTimeout);
          timerTimeout = null;
        }
      }
    };

    var resolve = once(function (res) {
      // cache resolved
      factory.resolved = ensureCtor(res, baseCtor);
      // invoke callbacks only if this is not a synchronous resolve
      // (async resolves are shimmed as synchronous during SSR)
      if (!sync) {
        forceRender(true);
      } else {
        owners.length = 0;
      }
    });

    var reject = once(function (reason) {
      warn(
        "Failed to resolve async component: " + (String(factory)) +
        (reason ? ("\nReason: " + reason) : '')
      );
      if (isDef(factory.errorComp)) {
        factory.error = true;
        forceRender(true);
      }
    });

    var res = factory(resolve, reject);

    if (isObject(res)) {
      if (isPromise(res)) {
        // () => Promise
        if (isUndef(factory.resolved)) {
          res.then(resolve, reject);
        }
      } else if (isPromise(res.component)) {
        res.component.then(resolve, reject);

        if (isDef(res.error)) {
          factory.errorComp = ensureCtor(res.error, baseCtor);
        }

        if (isDef(res.loading)) {
          factory.loadingComp = ensureCtor(res.loading, baseCtor);
          if (res.delay === 0) {
            factory.loading = true;
          } else {
            timerLoading = setTimeout(function () {
              timerLoading = null;
              if (isUndef(factory.resolved) && isUndef(factory.error)) {
                factory.loading = true;
                forceRender(false);
              }
            }, res.delay || 200);
          }
        }

        if (isDef(res.timeout)) {
          timerTimeout = setTimeout(function () {
            timerTimeout = null;
            if (isUndef(factory.resolved)) {
              reject(
                "timeout (" + (res.timeout) + "ms)"
              );
            }
          }, res.timeout);
        }
      }
    }

    sync = false;
    // return in case resolved synchronously
    return factory.loading
      ? factory.loadingComp
      : factory.resolved
  }
}

/*  */

function isAsyncPlaceholder (node) {
  return node.isComment && node.asyncFactory
}

/*  */

function getFirstComponentChild (children) {
  if (Array.isArray(children)) {
    for (var i = 0; i < children.length; i++) {
      var c = children[i];
      if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
        return c
      }
    }
  }
}

/*  */

/*  */

function initEvents (vm) {
  vm._events = Object.create(null);
  vm._hasHookEvent = false;
  // init parent attached events
  var listeners = vm.$options._parentListeners;
  if (listeners) {
    updateComponentListeners(vm, listeners);
  }
}

var target;

function add (event, fn) {
  target.$on(event, fn);
}

function remove$1 (event, fn) {
  target.$off(event, fn);
}

function createOnceHandler (event, fn) {
  var _target = target;
  return function onceHandler () {
    var res = fn.apply(null, arguments);
    if (res !== null) {
      _target.$off(event, onceHandler);
    }
  }
}

function updateComponentListeners (
  vm,
  listeners,
  oldListeners
) {
  target = vm;
  updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);
  target = undefined;
}

function eventsMixin (Vue) {
  var hookRE = /^hook:/;
  Vue.prototype.$on = function (event, fn) {
    var vm = this;
    if (Array.isArray(event)) {
      for (var i = 0, l = event.length; i < l; i++) {
        vm.$on(event[i], fn);
      }
    } else {
      (vm._events[event] || (vm._events[event] = [])).push(fn);
      // optimize hook:event cost by using a boolean flag marked at registration
      // instead of a hash lookup
      if (hookRE.test(event)) {
        vm._hasHookEvent = true;
      }
    }
    return vm
  };

  Vue.prototype.$once = function (event, fn) {
    var vm = this;
    function on () {
      vm.$off(event, on);
      fn.apply(vm, arguments);
    }
    on.fn = fn;
    vm.$on(event, on);
    return vm
  };

  Vue.prototype.$off = function (event, fn) {
    var vm = this;
    // all
    if (!arguments.length) {
      vm._events = Object.create(null);
      return vm
    }
    // array of events
    if (Array.isArray(event)) {
      for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {
        vm.$off(event[i$1], fn);
      }
      return vm
    }
    // specific event
    var cbs = vm._events[event];
    if (!cbs) {
      return vm
    }
    if (!fn) {
      vm._events[event] = null;
      return vm
    }
    // specific handler
    var cb;
    var i = cbs.length;
    while (i--) {
      cb = cbs[i];
      if (cb === fn || cb.fn === fn) {
        cbs.splice(i, 1);
        break
      }
    }
    return vm
  };

  Vue.prototype.$emit = function (event) {
    var vm = this;
    {
      var lowerCaseEvent = event.toLowerCase();
      if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
        tip(
          "Event \"" + lowerCaseEvent + "\" is emitted in component " +
          (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " +
          "Note that HTML attributes are case-insensitive and you cannot use " +
          "v-on to listen to camelCase events when using in-DOM templates. " +
          "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"."
        );
      }
    }
    var cbs = vm._events[event];
    if (cbs) {
      cbs = cbs.length > 1 ? toArray(cbs) : cbs;
      var args = toArray(arguments, 1);
      var info = "event handler for \"" + event + "\"";
      for (var i = 0, l = cbs.length; i < l; i++) {
        invokeWithErrorHandling(cbs[i], vm, args, vm, info);
      }
    }
    return vm
  };
}

/*  */

var activeInstance = null;
var isUpdatingChildComponent = false;

function setActiveInstance(vm) {
  var prevActiveInstance = activeInstance;
  activeInstance = vm;
  return function () {
    activeInstance = prevActiveInstance;
  }
}

function initLifecycle (vm) {
  var options = vm.$options;

  // locate first non-abstract parent
  var parent = options.parent;
  if (parent && !options.abstract) {
    while (parent.$options.abstract && parent.$parent) {
      parent = parent.$parent;
    }
    parent.$children.push(vm);
  }

  vm.$parent = parent;
  vm.$root = parent ? parent.$root : vm;

  vm.$children = [];
  vm.$refs = {};

  vm._watcher = null;
  vm._inactive = null;
  vm._directInactive = false;
  vm._isMounted = false;
  vm._isDestroyed = false;
  vm._isBeingDestroyed = false;
}

function lifecycleMixin (Vue) {
  Vue.prototype._update = function (vnode, hydrating) {
    var vm = this;
    var prevEl = vm.$el;
    var prevVnode = vm._vnode;
    var restoreActiveInstance = setActiveInstance(vm);
    vm._vnode = vnode;
    // Vue.prototype.__patch__ is injected in entry points
    // based on the rendering backend used.
    if (!prevVnode) {
      // initial render
      vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);
    } else {
      // updates
      vm.$el = vm.__patch__(prevVnode, vnode);
    }
    restoreActiveInstance();
    // update __vue__ reference
    if (prevEl) {
      prevEl.__vue__ = null;
    }
    if (vm.$el) {
      vm.$el.__vue__ = vm;
    }
    // if parent is an HOC, update its $el as well
    if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
      vm.$parent.$el = vm.$el;
    }
    // updated hook is called by the scheduler to ensure that children are
    // updated in a parent's updated hook.
  };

  Vue.prototype.$forceUpdate = function () {
    var vm = this;
    if (vm._watcher) {
      vm._watcher.update();
    }
  };

  Vue.prototype.$destroy = function () {
    var vm = this;
    if (vm._isBeingDestroyed) {
      return
    }
    callHook(vm, 'beforeDestroy');
    vm._isBeingDestroyed = true;
    // remove self from parent
    var parent = vm.$parent;
    if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
      remove(parent.$children, vm);
    }
    // teardown watchers
    if (vm._watcher) {
      vm._watcher.teardown();
    }
    var i = vm._watchers.length;
    while (i--) {
      vm._watchers[i].teardown();
    }
    // remove reference from data ob
    // frozen object may not have observer.
    if (vm._data.__ob__) {
      vm._data.__ob__.vmCount--;
    }
    // call the last hook...
    vm._isDestroyed = true;
    // invoke destroy hooks on current rendered tree
    vm.__patch__(vm._vnode, null);
    // fire destroyed hook
    callHook(vm, 'destroyed');
    // turn off all instance listeners.
    vm.$off();
    // remove __vue__ reference
    if (vm.$el) {
      vm.$el.__vue__ = null;
    }
    // release circular reference (#6759)
    if (vm.$vnode) {
      vm.$vnode.parent = null;
    }
  };
}

function mountComponent (
  vm,
  el,
  hydrating
) {
  vm.$el = el;
  if (!vm.$options.render) {
    vm.$options.render = createEmptyVNode;
    {
      /* istanbul ignore if */
      if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||
        vm.$options.el || el) {
        warn(
          'You are using the runtime-only build of Vue where the template ' +
          'compiler is not available. Either pre-compile the templates into ' +
          'render functions, or use the compiler-included build.',
          vm
        );
      } else {
        warn(
          'Failed to mount component: template or render function not defined.',
          vm
        );
      }
    }
  }
  callHook(vm, 'beforeMount');

  var updateComponent;
  /* istanbul ignore if */
  if (config.performance && mark) {
    updateComponent = function () {
      var name = vm._name;
      var id = vm._uid;
      var startTag = "vue-perf-start:" + id;
      var endTag = "vue-perf-end:" + id;

      mark(startTag);
      var vnode = vm._render();
      mark(endTag);
      measure(("vue " + name + " render"), startTag, endTag);

      mark(startTag);
      vm._update(vnode, hydrating);
      mark(endTag);
      measure(("vue " + name + " patch"), startTag, endTag);
    };
  } else {
    updateComponent = function () {
      vm._update(vm._render(), hydrating);
    };
  }

  // we set this to vm._watcher inside the watcher's constructor
  // since the watcher's initial patch may call $forceUpdate (e.g. inside child
  // component's mounted hook), which relies on vm._watcher being already defined
  new Watcher(vm, updateComponent, noop, {
    before: function before () {
      if (vm._isMounted && !vm._isDestroyed) {
        callHook(vm, 'beforeUpdate');
      }
    }
  }, true /* isRenderWatcher */);
  hydrating = false;

  // manually mounted instance, call mounted on self
  // mounted is called for render-created child components in its inserted hook
  if (vm.$vnode == null) {
    vm._isMounted = true;
    callHook(vm, 'mounted');
  }
  return vm
}

function updateChildComponent (
  vm,
  propsData,
  listeners,
  parentVnode,
  renderChildren
) {
  {
    isUpdatingChildComponent = true;
  }

  // determine whether component has slot children
  // we need to do this before overwriting $options._renderChildren.

  // check if there are dynamic scopedSlots (hand-written or compiled but with
  // dynamic slot names). Static scoped slots compiled from template has the
  // "$stable" marker.
  var newScopedSlots = parentVnode.data.scopedSlots;
  var oldScopedSlots = vm.$scopedSlots;
  var hasDynamicScopedSlot = !!(
    (newScopedSlots && !newScopedSlots.$stable) ||
    (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||
    (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)
  );

  // Any static slot children from the parent may have changed during parent's
  // update. Dynamic scoped slots may also have changed. In such cases, a forced
  // update is necessary to ensure correctness.
  var needsForceUpdate = !!(
    renderChildren ||               // has new static slots
    vm.$options._renderChildren ||  // has old static slots
    hasDynamicScopedSlot
  );

  vm.$options._parentVnode = parentVnode;
  vm.$vnode = parentVnode; // update vm's placeholder node without re-render

  if (vm._vnode) { // update child tree's parent
    vm._vnode.parent = parentVnode;
  }
  vm.$options._renderChildren = renderChildren;

  // update $attrs and $listeners hash
  // these are also reactive so they may trigger child update if the child
  // used them during render
  vm.$attrs = parentVnode.data.attrs || emptyObject;
  vm.$listeners = listeners || emptyObject;

  // update props
  if (propsData && vm.$options.props) {
    toggleObserving(false);
    var props = vm._props;
    var propKeys = vm.$options._propKeys || [];
    for (var i = 0; i < propKeys.length; i++) {
      var key = propKeys[i];
      var propOptions = vm.$options.props; // wtf flow?
      props[key] = validateProp(key, propOptions, propsData, vm);
    }
    toggleObserving(true);
    // keep a copy of raw propsData
    vm.$options.propsData = propsData;
  }

  // update listeners
  listeners = listeners || emptyObject;
  var oldListeners = vm.$options._parentListeners;
  vm.$options._parentListeners = listeners;
  updateComponentListeners(vm, listeners, oldListeners);

  // resolve slots + force update if has children
  if (needsForceUpdate) {
    vm.$slots = resolveSlots(renderChildren, parentVnode.context);
    vm.$forceUpdate();
  }

  {
    isUpdatingChildComponent = false;
  }
}

function isInInactiveTree (vm) {
  while (vm && (vm = vm.$parent)) {
    if (vm._inactive) { return true }
  }
  return false
}

function activateChildComponent (vm, direct) {
  if (direct) {
    vm._directInactive = false;
    if (isInInactiveTree(vm)) {
      return
    }
  } else if (vm._directInactive) {
    return
  }
  if (vm._inactive || vm._inactive === null) {
    vm._inactive = false;
    for (var i = 0; i < vm.$children.length; i++) {
      activateChildComponent(vm.$children[i]);
    }
    callHook(vm, 'activated');
  }
}

function deactivateChildComponent (vm, direct) {
  if (direct) {
    vm._directInactive = true;
    if (isInInactiveTree(vm)) {
      return
    }
  }
  if (!vm._inactive) {
    vm._inactive = true;
    for (var i = 0; i < vm.$children.length; i++) {
      deactivateChildComponent(vm.$children[i]);
    }
    callHook(vm, 'deactivated');
  }
}

function callHook (vm, hook) {
  // #7573 disable dep collection when invoking lifecycle hooks
  pushTarget();
  var handlers = vm.$options[hook];
  var info = hook + " hook";
  if (handlers) {
    for (var i = 0, j = handlers.length; i < j; i++) {
      invokeWithErrorHandling(handlers[i], vm, null, vm, info);
    }
  }
  if (vm._hasHookEvent) {
    vm.$emit('hook:' + hook);
  }
  popTarget();
}

/*  */

var MAX_UPDATE_COUNT = 100;

var queue = [];
var activatedChildren = [];
var has = {};
var circular = {};
var waiting = false;
var flushing = false;
var index = 0;

/**
 * Reset the scheduler's state.
 */
function resetSchedulerState () {
  index = queue.length = activatedChildren.length = 0;
  has = {};
  {
    circular = {};
  }
  waiting = flushing = false;
}

// Async edge case #6566 requires saving the timestamp when event listeners are
// attached. However, calling performance.now() has a perf overhead especially
// if the page has thousands of event listeners. Instead, we take a timestamp
// every time the scheduler flushes and use that for all event listeners
// attached during that flush.
var currentFlushTimestamp = 0;

// Async edge case fix requires storing an event listener's attach timestamp.
var getNow = Date.now;

// Determine what event timestamp the browser is using. Annoyingly, the
// timestamp can either be hi-res (relative to page load) or low-res
// (relative to UNIX epoch), so in order to compare time we have to use the
// same timestamp type when saving the flush timestamp.
// All IE versions use low-res event timestamps, and have problematic clock
// implementations (#9632)
if (inBrowser && !isIE) {
  var performance = window.performance;
  if (
    performance &&
    typeof performance.now === 'function' &&
    getNow() > document.createEvent('Event').timeStamp
  ) {
    // if the event timestamp, although evaluated AFTER the Date.now(), is
    // smaller than it, it means the event is using a hi-res timestamp,
    // and we need to use the hi-res version for event listener timestamps as
    // well.
    getNow = function () { return performance.now(); };
  }
}

/**
 * Flush both queues and run the watchers.
 */
function flushSchedulerQueue () {
  currentFlushTimestamp = getNow();
  flushing = true;
  var watcher, id;

  // Sort queue before flush.
  // This ensures that:
  // 1. Components are updated from parent to child. (because parent is always
  //    created before the child)
  // 2. A component's user watchers are run before its render watcher (because
  //    user watchers are created before the render watcher)
  // 3. If a component is destroyed during a parent component's watcher run,
  //    its watchers can be skipped.
  queue.sort(function (a, b) { return a.id - b.id; });

  // do not cache length because more watchers might be pushed
  // as we run existing watchers
  for (index = 0; index < queue.length; index++) {
    watcher = queue[index];
    if (watcher.before) {
      watcher.before();
    }
    id = watcher.id;
    has[id] = null;
    watcher.run();
    // in dev build, check and stop circular updates.
    if (has[id] != null) {
      circular[id] = (circular[id] || 0) + 1;
      if (circular[id] > MAX_UPDATE_COUNT) {
        warn(
          'You may have an infinite update loop ' + (
            watcher.user
              ? ("in watcher with expression \"" + (watcher.expression) + "\"")
              : "in a component render function."
          ),
          watcher.vm
        );
        break
      }
    }
  }

  // keep copies of post queues before resetting state
  var activatedQueue = activatedChildren.slice();
  var updatedQueue = queue.slice();

  resetSchedulerState();

  // call component updated and activated hooks
  callActivatedHooks(activatedQueue);
  callUpdatedHooks(updatedQueue);

  // devtool hook
  /* istanbul ignore if */
  if (devtools && config.devtools) {
    devtools.emit('flush');
  }
}

function callUpdatedHooks (queue) {
  var i = queue.length;
  while (i--) {
    var watcher = queue[i];
    var vm = watcher.vm;
    if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {
      callHook(vm, 'updated');
    }
  }
}

/**
 * Queue a kept-alive component that was activated during patch.
 * The queue will be processed after the entire tree has been patched.
 */
function queueActivatedComponent (vm) {
  // setting _inactive to false here so that a render function can
  // rely on checking whether it's in an inactive tree (e.g. router-view)
  vm._inactive = false;
  activatedChildren.push(vm);
}

function callActivatedHooks (queue) {
  for (var i = 0; i < queue.length; i++) {
    queue[i]._inactive = true;
    activateChildComponent(queue[i], true /* true */);
  }
}

/**
 * Push a watcher into the watcher queue.
 * Jobs with duplicate IDs will be skipped unless it's
 * pushed when the queue is being flushed.
 */
function queueWatcher (watcher) {
  var id = watcher.id;
  if (has[id] == null) {
    has[id] = true;
    if (!flushing) {
      queue.push(watcher);
    } else {
      // if already flushing, splice the watcher based on its id
      // if already past its id, it will be run next immediately.
      var i = queue.length - 1;
      while (i > index && queue[i].id > watcher.id) {
        i--;
      }
      queue.splice(i + 1, 0, watcher);
    }
    // queue the flush
    if (!waiting) {
      waiting = true;

      if (!config.async) {
        flushSchedulerQueue();
        return
      }
      nextTick(flushSchedulerQueue);
    }
  }
}

/*  */



var uid$2 = 0;

/**
 * A watcher parses an expression, collects dependencies,
 * and fires callback when the expression value changes.
 * This is used for both the $watch() api and directives.
 */
var Watcher = function Watcher (
  vm,
  expOrFn,
  cb,
  options,
  isRenderWatcher
) {
  this.vm = vm;
  if (isRenderWatcher) {
    vm._watcher = this;
  }
  vm._watchers.push(this);
  // options
  if (options) {
    this.deep = !!options.deep;
    this.user = !!options.user;
    this.lazy = !!options.lazy;
    this.sync = !!options.sync;
    this.before = options.before;
  } else {
    this.deep = this.user = this.lazy = this.sync = false;
  }
  this.cb = cb;
  this.id = ++uid$2; // uid for batching
  this.active = true;
  this.dirty = this.lazy; // for lazy watchers
  this.deps = [];
  this.newDeps = [];
  this.depIds = new _Set();
  this.newDepIds = new _Set();
  this.expression = expOrFn.toString();
  // parse expression for getter
  if (typeof expOrFn === 'function') {
    this.getter = expOrFn;
  } else {
    this.getter = parsePath(expOrFn);
    if (!this.getter) {
      this.getter = noop;
      warn(
        "Failed watching path: \"" + expOrFn + "\" " +
        'Watcher only accepts simple dot-delimited paths. ' +
        'For full control, use a function instead.',
        vm
      );
    }
  }
  this.value = this.lazy
    ? undefined
    : this.get();
};

/**
 * Evaluate the getter, and re-collect dependencies.
 */
Watcher.prototype.get = function get () {
  pushTarget(this);
  var value;
  var vm = this.vm;
  try {
    value = this.getter.call(vm, vm);
  } catch (e) {
    if (this.user) {
      handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));
    } else {
      throw e
    }
  } finally {
    // "touch" every property so they are all tracked as
    // dependencies for deep watching
    if (this.deep) {
      traverse(value);
    }
    popTarget();
    this.cleanupDeps();
  }
  return value
};

/**
 * Add a dependency to this directive.
 */
Watcher.prototype.addDep = function addDep (dep) {
  var id = dep.id;
  if (!this.newDepIds.has(id)) {
    this.newDepIds.add(id);
    this.newDeps.push(dep);
    if (!this.depIds.has(id)) {
      dep.addSub(this);
    }
  }
};

/**
 * Clean up for dependency collection.
 */
Watcher.prototype.cleanupDeps = function cleanupDeps () {
  var i = this.deps.length;
  while (i--) {
    var dep = this.deps[i];
    if (!this.newDepIds.has(dep.id)) {
      dep.removeSub(this);
    }
  }
  var tmp = this.depIds;
  this.depIds = this.newDepIds;
  this.newDepIds = tmp;
  this.newDepIds.clear();
  tmp = this.deps;
  this.deps = this.newDeps;
  this.newDeps = tmp;
  this.newDeps.length = 0;
};

/**
 * Subscriber interface.
 * Will be called when a dependency changes.
 */
Watcher.prototype.update = function update () {
  /* istanbul ignore else */
  if (this.lazy) {
    this.dirty = true;
  } else if (this.sync) {
    this.run();
  } else {
    queueWatcher(this);
  }
};

/**
 * Scheduler job interface.
 * Will be called by the scheduler.
 */
Watcher.prototype.run = function run () {
  if (this.active) {
    var value = this.get();
    if (
      value !== this.value ||
      // Deep watchers and watchers on Object/Arrays should fire even
      // when the value is the same, because the value may
      // have mutated.
      isObject(value) ||
      this.deep
    ) {
      // set new value
      var oldValue = this.value;
      this.value = value;
      if (this.user) {
        try {
          this.cb.call(this.vm, value, oldValue);
        } catch (e) {
          handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\""));
        }
      } else {
        this.cb.call(this.vm, value, oldValue);
      }
    }
  }
};

/**
 * Evaluate the value of the watcher.
 * This only gets called for lazy watchers.
 */
Watcher.prototype.evaluate = function evaluate () {
  this.value = this.get();
  this.dirty = false;
};

/**
 * Depend on all deps collected by this watcher.
 */
Watcher.prototype.depend = function depend () {
  var i = this.deps.length;
  while (i--) {
    this.deps[i].depend();
  }
};

/**
 * Remove self from all dependencies' subscriber list.
 */
Watcher.prototype.teardown = function teardown () {
  if (this.active) {
    // remove self from vm's watcher list
    // this is a somewhat expensive operation so we skip it
    // if the vm is being destroyed.
    if (!this.vm._isBeingDestroyed) {
      remove(this.vm._watchers, this);
    }
    var i = this.deps.length;
    while (i--) {
      this.deps[i].removeSub(this);
    }
    this.active = false;
  }
};

/*  */

var sharedPropertyDefinition = {
  enumerable: true,
  configurable: true,
  get: noop,
  set: noop
};

function proxy (target, sourceKey, key) {
  sharedPropertyDefinition.get = function proxyGetter () {
    return this[sourceKey][key]
  };
  sharedPropertyDefinition.set = function proxySetter (val) {
    this[sourceKey][key] = val;
  };
  Object.defineProperty(target, key, sharedPropertyDefinition);
}

function initState (vm) {
  vm._watchers = [];
  var opts = vm.$options;
  if (opts.props) { initProps(vm, opts.props); }
  if (opts.methods) { initMethods(vm, opts.methods); }
  if (opts.data) {
    initData(vm);
  } else {
    observe(vm._data = {}, true /* asRootData */);
  }
  if (opts.computed) { initComputed(vm, opts.computed); }
  if (opts.watch && opts.watch !== nativeWatch) {
    initWatch(vm, opts.watch);
  }
}

function initProps (vm, propsOptions) {
  var propsData = vm.$options.propsData || {};
  var props = vm._props = {};
  // cache prop keys so that future props updates can iterate using Array
  // instead of dynamic object key enumeration.
  var keys = vm.$options._propKeys = [];
  var isRoot = !vm.$parent;
  // root instance props should be converted
  if (!isRoot) {
    toggleObserving(false);
  }
  var loop = function ( key ) {
    keys.push(key);
    var value = validateProp(key, propsOptions, propsData, vm);
    /* istanbul ignore else */
    {
      var hyphenatedKey = hyphenate(key);
      if (isReservedAttribute(hyphenatedKey) ||
          config.isReservedAttr(hyphenatedKey)) {
        warn(
          ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."),
          vm
        );
      }
      defineReactive$$1(props, key, value, function () {
        if (!isRoot && !isUpdatingChildComponent) {
          warn(
            "Avoid mutating a prop directly since the value will be " +
            "overwritten whenever the parent component re-renders. " +
            "Instead, use a data or computed property based on the prop's " +
            "value. Prop being mutated: \"" + key + "\"",
            vm
          );
        }
      });
    }
    // static props are already proxied on the component's prototype
    // during Vue.extend(). We only need to proxy props defined at
    // instantiation here.
    if (!(key in vm)) {
      proxy(vm, "_props", key);
    }
  };

  for (var key in propsOptions) loop( key );
  toggleObserving(true);
}

function initData (vm) {
  var data = vm.$options.data;
  data = vm._data = typeof data === 'function'
    ? getData(data, vm)
    : data || {};
  if (!isPlainObject(data)) {
    data = {};
    warn(
      'data functions should return an object:\n' +
      'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
      vm
    );
  }
  // proxy data on instance
  var keys = Object.keys(data);
  var props = vm.$options.props;
  var methods = vm.$options.methods;
  var i = keys.length;
  while (i--) {
    var key = keys[i];
    {
      if (methods && hasOwn(methods, key)) {
        warn(
          ("Method \"" + key + "\" has already been defined as a data property."),
          vm
        );
      }
    }
    if (props && hasOwn(props, key)) {
      warn(
        "The data property \"" + key + "\" is already declared as a prop. " +
        "Use prop default value instead.",
        vm
      );
    } else if (!isReserved(key)) {
      proxy(vm, "_data", key);
    }
  }
  // observe data
  observe(data, true /* asRootData */);
}

function getData (data, vm) {
  // #7573 disable dep collection when invoking data getters
  pushTarget();
  try {
    return data.call(vm, vm)
  } catch (e) {
    handleError(e, vm, "data()");
    return {}
  } finally {
    popTarget();
  }
}

var computedWatcherOptions = { lazy: true };

function initComputed (vm, computed) {
  // $flow-disable-line
  var watchers = vm._computedWatchers = Object.create(null);
  // computed properties are just getters during SSR
  var isSSR = isServerRendering();

  for (var key in computed) {
    var userDef = computed[key];
    var getter = typeof userDef === 'function' ? userDef : userDef.get;
    if (getter == null) {
      warn(
        ("Getter is missing for computed property \"" + key + "\"."),
        vm
      );
    }

    if (!isSSR) {
      // create internal watcher for the computed property.
      watchers[key] = new Watcher(
        vm,
        getter || noop,
        noop,
        computedWatcherOptions
      );
    }

    // component-defined computed properties are already defined on the
    // component prototype. We only need to define computed properties defined
    // at instantiation here.
    if (!(key in vm)) {
      defineComputed(vm, key, userDef);
    } else {
      if (key in vm.$data) {
        warn(("The computed property \"" + key + "\" is already defined in data."), vm);
      } else if (vm.$options.props && key in vm.$options.props) {
        warn(("The computed property \"" + key + "\" is already defined as a prop."), vm);
      }
    }
  }
}

function defineComputed (
  target,
  key,
  userDef
) {
  var shouldCache = !isServerRendering();
  if (typeof userDef === 'function') {
    sharedPropertyDefinition.get = shouldCache
      ? createComputedGetter(key)
      : createGetterInvoker(userDef);
    sharedPropertyDefinition.set = noop;
  } else {
    sharedPropertyDefinition.get = userDef.get
      ? shouldCache && userDef.cache !== false
        ? createComputedGetter(key)
        : createGetterInvoker(userDef.get)
      : noop;
    sharedPropertyDefinition.set = userDef.set || noop;
  }
  if (sharedPropertyDefinition.set === noop) {
    sharedPropertyDefinition.set = function () {
      warn(
        ("Computed property \"" + key + "\" was assigned to but it has no setter."),
        this
      );
    };
  }
  Object.defineProperty(target, key, sharedPropertyDefinition);
}

function createComputedGetter (key) {
  return function computedGetter () {
    var watcher = this._computedWatchers && this._computedWatchers[key];
    if (watcher) {
      if (watcher.dirty) {
        watcher.evaluate();
      }
      if (Dep.target) {
        watcher.depend();
      }
      return watcher.value
    }
  }
}

function createGetterInvoker(fn) {
  return function computedGetter () {
    return fn.call(this, this)
  }
}

function initMethods (vm, methods) {
  var props = vm.$options.props;
  for (var key in methods) {
    {
      if (typeof methods[key] !== 'function') {
        warn(
          "Method \"" + key + "\" has type \"" + (typeof methods[key]) + "\" in the component definition. " +
          "Did you reference the function correctly?",
          vm
        );
      }
      if (props && hasOwn(props, key)) {
        warn(
          ("Method \"" + key + "\" has already been defined as a prop."),
          vm
        );
      }
      if ((key in vm) && isReserved(key)) {
        warn(
          "Method \"" + key + "\" conflicts with an existing Vue instance method. " +
          "Avoid defining component methods that start with _ or $."
        );
      }
    }
    vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);
  }
}

function initWatch (vm, watch) {
  for (var key in watch) {
    var handler = watch[key];
    if (Array.isArray(handler)) {
      for (var i = 0; i < handler.length; i++) {
        createWatcher(vm, key, handler[i]);
      }
    } else {
      createWatcher(vm, key, handler);
    }
  }
}

function createWatcher (
  vm,
  expOrFn,
  handler,
  options
) {
  if (isPlainObject(handler)) {
    options = handler;
    handler = handler.handler;
  }
  if (typeof handler === 'string') {
    handler = vm[handler];
  }
  return vm.$watch(expOrFn, handler, options)
}

function stateMixin (Vue) {
  // flow somehow has problems with directly declared definition object
  // when using Object.defineProperty, so we have to procedurally build up
  // the object here.
  var dataDef = {};
  dataDef.get = function () { return this._data };
  var propsDef = {};
  propsDef.get = function () { return this._props };
  {
    dataDef.set = function () {
      warn(
        'Avoid replacing instance root $data. ' +
        'Use nested data properties instead.',
        this
      );
    };
    propsDef.set = function () {
      warn("$props is readonly.", this);
    };
  }
  Object.defineProperty(Vue.prototype, '$data', dataDef);
  Object.defineProperty(Vue.prototype, '$props', propsDef);

  Vue.prototype.$set = set;
  Vue.prototype.$delete = del;

  Vue.prototype.$watch = function (
    expOrFn,
    cb,
    options
  ) {
    var vm = this;
    if (isPlainObject(cb)) {
      return createWatcher(vm, expOrFn, cb, options)
    }
    options = options || {};
    options.user = true;
    var watcher = new Watcher(vm, expOrFn, cb, options);
    if (options.immediate) {
      try {
        cb.call(vm, watcher.value);
      } catch (error) {
        handleError(error, vm, ("callback for immediate watcher \"" + (watcher.expression) + "\""));
      }
    }
    return function unwatchFn () {
      watcher.teardown();
    }
  };
}

/*  */

var uid$3 = 0;

function initMixin (Vue) {
  Vue.prototype._init = function (options) {
    var vm = this;
    // a uid
    vm._uid = uid$3++;

    var startTag, endTag;
    /* istanbul ignore if */
    if (config.performance && mark) {
      startTag = "vue-perf-start:" + (vm._uid);
      endTag = "vue-perf-end:" + (vm._uid);
      mark(startTag);
    }

    // a flag to avoid this being observed
    vm._isVue = true;
    // merge options
    if (options && options._isComponent) {
      // optimize internal component instantiation
      // since dynamic options merging is pretty slow, and none of the
      // internal component options needs special treatment.
      initInternalComponent(vm, options);
    } else {
      vm.$options = mergeOptions(
        resolveConstructorOptions(vm.constructor),
        options || {},
        vm
      );
    }
    /* istanbul ignore else */
    {
      initProxy(vm);
    }
    // expose real self
    vm._self = vm;
    initLifecycle(vm);
    initEvents(vm);
    initRender(vm);
    callHook(vm, 'beforeCreate');
    initInjections(vm); // resolve injections before data/props
    initState(vm);
    initProvide(vm); // resolve provide after data/props
    callHook(vm, 'created');

    /* istanbul ignore if */
    if (config.performance && mark) {
      vm._name = formatComponentName(vm, false);
      mark(endTag);
      measure(("vue " + (vm._name) + " init"), startTag, endTag);
    }

    if (vm.$options.el) {
      vm.$mount(vm.$options.el);
    }
  };
}

function initInternalComponent (vm, options) {
  var opts = vm.$options = Object.create(vm.constructor.options);
  // doing this because it's faster than dynamic enumeration.
  var parentVnode = options._parentVnode;
  opts.parent = options.parent;
  opts._parentVnode = parentVnode;

  var vnodeComponentOptions = parentVnode.componentOptions;
  opts.propsData = vnodeComponentOptions.propsData;
  opts._parentListeners = vnodeComponentOptions.listeners;
  opts._renderChildren = vnodeComponentOptions.children;
  opts._componentTag = vnodeComponentOptions.tag;

  if (options.render) {
    opts.render = options.render;
    opts.staticRenderFns = options.staticRenderFns;
  }
}

function resolveConstructorOptions (Ctor) {
  var options = Ctor.options;
  if (Ctor.super) {
    var superOptions = resolveConstructorOptions(Ctor.super);
    var cachedSuperOptions = Ctor.superOptions;
    if (superOptions !== cachedSuperOptions) {
      // super option changed,
      // need to resolve new options.
      Ctor.superOptions = superOptions;
      // check if there are any late-modified/attached options (#4976)
      var modifiedOptions = resolveModifiedOptions(Ctor);
      // update base extend options
      if (modifiedOptions) {
        extend(Ctor.extendOptions, modifiedOptions);
      }
      options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
      if (options.name) {
        options.components[options.name] = Ctor;
      }
    }
  }
  return options
}

function resolveModifiedOptions (Ctor) {
  var modified;
  var latest = Ctor.options;
  var sealed = Ctor.sealedOptions;
  for (var key in latest) {
    if (latest[key] !== sealed[key]) {
      if (!modified) { modified = {}; }
      modified[key] = latest[key];
    }
  }
  return modified
}

function Vue (options) {
  if (!(this instanceof Vue)
  ) {
    warn('Vue is a constructor and should be called with the `new` keyword');
  }
  this._init(options);
}

initMixin(Vue);
stateMixin(Vue);
eventsMixin(Vue);
lifecycleMixin(Vue);
renderMixin(Vue);

/*  */

function initUse (Vue) {
  Vue.use = function (plugin) {
    var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
    if (installedPlugins.indexOf(plugin) > -1) {
      return this
    }

    // additional parameters
    var args = toArray(arguments, 1);
    args.unshift(this);
    if (typeof plugin.install === 'function') {
      plugin.install.apply(plugin, args);
    } else if (typeof plugin === 'function') {
      plugin.apply(null, args);
    }
    installedPlugins.push(plugin);
    return this
  };
}

/*  */

function initMixin$1 (Vue) {
  Vue.mixin = function (mixin) {
    this.options = mergeOptions(this.options, mixin);
    return this
  };
}

/*  */

function initExtend (Vue) {
  /**
   * Each instance constructor, including Vue, has a unique
   * cid. This enables us to create wrapped "child
   * constructors" for prototypal inheritance and cache them.
   */
  Vue.cid = 0;
  var cid = 1;

  /**
   * Class inheritance
   */
  Vue.extend = function (extendOptions) {
    extendOptions = extendOptions || {};
    var Super = this;
    var SuperId = Super.cid;
    var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
    if (cachedCtors[SuperId]) {
      return cachedCtors[SuperId]
    }

    var name = extendOptions.name || Super.options.name;
    if (name) {
      validateComponentName(name);
    }

    var Sub = function VueComponent (options) {
      this._init(options);
    };
    Sub.prototype = Object.create(Super.prototype);
    Sub.prototype.constructor = Sub;
    Sub.cid = cid++;
    Sub.options = mergeOptions(
      Super.options,
      extendOptions
    );
    Sub['super'] = Super;

    // For props and computed properties, we define the proxy getters on
    // the Vue instances at extension time, on the extended prototype. This
    // avoids Object.defineProperty calls for each instance created.
    if (Sub.options.props) {
      initProps$1(Sub);
    }
    if (Sub.options.computed) {
      initComputed$1(Sub);
    }

    // allow further extension/mixin/plugin usage
    Sub.extend = Super.extend;
    Sub.mixin = Super.mixin;
    Sub.use = Super.use;

    // create asset registers, so extended classes
    // can have their private assets too.
    ASSET_TYPES.forEach(function (type) {
      Sub[type] = Super[type];
    });
    // enable recursive self-lookup
    if (name) {
      Sub.options.components[name] = Sub;
    }

    // keep a reference to the super options at extension time.
    // later at instantiation we can check if Super's options have
    // been updated.
    Sub.superOptions = Super.options;
    Sub.extendOptions = extendOptions;
    Sub.sealedOptions = extend({}, Sub.options);

    // cache constructor
    cachedCtors[SuperId] = Sub;
    return Sub
  };
}

function initProps$1 (Comp) {
  var props = Comp.options.props;
  for (var key in props) {
    proxy(Comp.prototype, "_props", key);
  }
}

function initComputed$1 (Comp) {
  var computed = Comp.options.computed;
  for (var key in computed) {
    defineComputed(Comp.prototype, key, computed[key]);
  }
}

/*  */

function initAssetRegisters (Vue) {
  /**
   * Create asset registration methods.
   */
  ASSET_TYPES.forEach(function (type) {
    Vue[type] = function (
      id,
      definition
    ) {
      if (!definition) {
        return this.options[type + 's'][id]
      } else {
        /* istanbul ignore if */
        if (type === 'component') {
          validateComponentName(id);
        }
        if (type === 'component' && isPlainObject(definition)) {
          definition.name = definition.name || id;
          definition = this.options._base.extend(definition);
        }
        if (type === 'directive' && typeof definition === 'function') {
          definition = { bind: definition, update: definition };
        }
        this.options[type + 's'][id] = definition;
        return definition
      }
    };
  });
}

/*  */



function getComponentName (opts) {
  return opts && (opts.Ctor.options.name || opts.tag)
}

function matches (pattern, name) {
  if (Array.isArray(pattern)) {
    return pattern.indexOf(name) > -1
  } else if (typeof pattern === 'string') {
    return pattern.split(',').indexOf(name) > -1
  } else if (isRegExp(pattern)) {
    return pattern.test(name)
  }
  /* istanbul ignore next */
  return false
}

function pruneCache (keepAliveInstance, filter) {
  var cache = keepAliveInstance.cache;
  var keys = keepAliveInstance.keys;
  var _vnode = keepAliveInstance._vnode;
  for (var key in cache) {
    var cachedNode = cache[key];
    if (cachedNode) {
      var name = getComponentName(cachedNode.componentOptions);
      if (name && !filter(name)) {
        pruneCacheEntry(cache, key, keys, _vnode);
      }
    }
  }
}

function pruneCacheEntry (
  cache,
  key,
  keys,
  current
) {
  var cached$$1 = cache[key];
  if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {
    cached$$1.componentInstance.$destroy();
  }
  cache[key] = null;
  remove(keys, key);
}

var patternTypes = [String, RegExp, Array];

var KeepAlive = {
  name: 'keep-alive',
  abstract: true,

  props: {
    include: patternTypes,
    exclude: patternTypes,
    max: [String, Number]
  },

  created: function created () {
    this.cache = Object.create(null);
    this.keys = [];
  },

  destroyed: function destroyed () {
    for (var key in this.cache) {
      pruneCacheEntry(this.cache, key, this.keys);
    }
  },

  mounted: function mounted () {
    var this$1 = this;

    this.$watch('include', function (val) {
      pruneCache(this$1, function (name) { return matches(val, name); });
    });
    this.$watch('exclude', function (val) {
      pruneCache(this$1, function (name) { return !matches(val, name); });
    });
  },

  render: function render () {
    var slot = this.$slots.default;
    var vnode = getFirstComponentChild(slot);
    var componentOptions = vnode && vnode.componentOptions;
    if (componentOptions) {
      // check pattern
      var name = getComponentName(componentOptions);
      var ref = this;
      var include = ref.include;
      var exclude = ref.exclude;
      if (
        // not included
        (include && (!name || !matches(include, name))) ||
        // excluded
        (exclude && name && matches(exclude, name))
      ) {
        return vnode
      }

      var ref$1 = this;
      var cache = ref$1.cache;
      var keys = ref$1.keys;
      var key = vnode.key == null
        // same constructor may get registered as different local components
        // so cid alone is not enough (#3269)
        ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')
        : vnode.key;
      if (cache[key]) {
        vnode.componentInstance = cache[key].componentInstance;
        // make current key freshest
        remove(keys, key);
        keys.push(key);
      } else {
        cache[key] = vnode;
        keys.push(key);
        // prune oldest entry
        if (this.max && keys.length > parseInt(this.max)) {
          pruneCacheEntry(cache, keys[0], keys, this._vnode);
        }
      }

      vnode.data.keepAlive = true;
    }
    return vnode || (slot && slot[0])
  }
};

var builtInComponents = {
  KeepAlive: KeepAlive
};

/*  */

function initGlobalAPI (Vue) {
  // config
  var configDef = {};
  configDef.get = function () { return config; };
  {
    configDef.set = function () {
      warn(
        'Do not replace the Vue.config object, set individual fields instead.'
      );
    };
  }
  Object.defineProperty(Vue, 'config', configDef);

  // exposed util methods.
  // NOTE: these are not considered part of the public API - avoid relying on
  // them unless you are aware of the risk.
  Vue.util = {
    warn: warn,
    extend: extend,
    mergeOptions: mergeOptions,
    defineReactive: defineReactive$$1
  };

  Vue.set = set;
  Vue.delete = del;
  Vue.nextTick = nextTick;

  // 2.6 explicit observable API
  Vue.observable = function (obj) {
    observe(obj);
    return obj
  };

  Vue.options = Object.create(null);
  ASSET_TYPES.forEach(function (type) {
    Vue.options[type + 's'] = Object.create(null);
  });

  // this is used to identify the "base" constructor to extend all plain-object
  // components with in Weex's multi-instance scenarios.
  Vue.options._base = Vue;

  extend(Vue.options.components, builtInComponents);

  initUse(Vue);
  initMixin$1(Vue);
  initExtend(Vue);
  initAssetRegisters(Vue);
}

initGlobalAPI(Vue);

Object.defineProperty(Vue.prototype, '$isServer', {
  get: isServerRendering
});

Object.defineProperty(Vue.prototype, '$ssrContext', {
  get: function get () {
    /* istanbul ignore next */
    return this.$vnode && this.$vnode.ssrContext
  }
});

// expose FunctionalRenderContext for ssr runtime helper installation
Object.defineProperty(Vue, 'FunctionalRenderContext', {
  value: FunctionalRenderContext
});

Vue.version = '2.6.10';

/*  */

// these are reserved for web because they are directly compiled away
// during template compilation
var isReservedAttr = makeMap('style,class');

// attributes that should be using props for binding
var acceptValue = makeMap('input,textarea,option,select,progress');
var mustUseProp = function (tag, type, attr) {
  return (
    (attr === 'value' && acceptValue(tag)) && type !== 'button' ||
    (attr === 'selected' && tag === 'option') ||
    (attr === 'checked' && tag === 'input') ||
    (attr === 'muted' && tag === 'video')
  )
};

var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');

var isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');

var convertEnumeratedValue = function (key, value) {
  return isFalsyAttrValue(value) || value === 'false'
    ? 'false'
    // allow arbitrary string value for contenteditable
    : key === 'contenteditable' && isValidContentEditableValue(value)
      ? value
      : 'true'
};

var isBooleanAttr = makeMap(
  'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +
  'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +
  'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +
  'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +
  'required,reversed,scoped,seamless,selected,sortable,translate,' +
  'truespeed,typemustmatch,visible'
);

var xlinkNS = 'http://www.w3.org/1999/xlink';

var isXlink = function (name) {
  return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'
};

var getXlinkProp = function (name) {
  return isXlink(name) ? name.slice(6, name.length) : ''
};

var isFalsyAttrValue = function (val) {
  return val == null || val === false
};

/*  */

function genClassForVnode (vnode) {
  var data = vnode.data;
  var parentNode = vnode;
  var childNode = vnode;
  while (isDef(childNode.componentInstance)) {
    childNode = childNode.componentInstance._vnode;
    if (childNode && childNode.data) {
      data = mergeClassData(childNode.data, data);
    }
  }
  while (isDef(parentNode = parentNode.parent)) {
    if (parentNode && parentNode.data) {
      data = mergeClassData(data, parentNode.data);
    }
  }
  return renderClass(data.staticClass, data.class)
}

function mergeClassData (child, parent) {
  return {
    staticClass: concat(child.staticClass, parent.staticClass),
    class: isDef(child.class)
      ? [child.class, parent.class]
      : parent.class
  }
}

function renderClass (
  staticClass,
  dynamicClass
) {
  if (isDef(staticClass) || isDef(dynamicClass)) {
    return concat(staticClass, stringifyClass(dynamicClass))
  }
  /* istanbul ignore next */
  return ''
}

function concat (a, b) {
  return a ? b ? (a + ' ' + b) : a : (b || '')
}

function stringifyClass (value) {
  if (Array.isArray(value)) {
    return stringifyArray(value)
  }
  if (isObject(value)) {
    return stringifyObject(value)
  }
  if (typeof value === 'string') {
    return value
  }
  /* istanbul ignore next */
  return ''
}

function stringifyArray (value) {
  var res = '';
  var stringified;
  for (var i = 0, l = value.length; i < l; i++) {
    if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {
      if (res) { res += ' '; }
      res += stringified;
    }
  }
  return res
}

function stringifyObject (value) {
  var res = '';
  for (var key in value) {
    if (value[key]) {
      if (res) { res += ' '; }
      res += key;
    }
  }
  return res
}

/*  */

var namespaceMap = {
  svg: 'http://www.w3.org/2000/svg',
  math: 'http://www.w3.org/1998/Math/MathML'
};

var isHTMLTag = makeMap(
  'html,body,base,head,link,meta,style,title,' +
  'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +
  'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +
  'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +
  's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +
  'embed,object,param,source,canvas,script,noscript,del,ins,' +
  'caption,col,colgroup,table,thead,tbody,td,th,tr,' +
  'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +
  'output,progress,select,textarea,' +
  'details,dialog,menu,menuitem,summary,' +
  'content,element,shadow,template,blockquote,iframe,tfoot'
);

// this map is intentionally selective, only covering SVG elements that may
// contain child elements.
var isSVG = makeMap(
  'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +
  'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +
  'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',
  true
);

var isPreTag = function (tag) { return tag === 'pre'; };

var isReservedTag = function (tag) {
  return isHTMLTag(tag) || isSVG(tag)
};

function getTagNamespace (tag) {
  if (isSVG(tag)) {
    return 'svg'
  }
  // basic support for MathML
  // note it doesn't support other MathML elements being component roots
  if (tag === 'math') {
    return 'math'
  }
}

var unknownElementCache = Object.create(null);
function isUnknownElement (tag) {
  /* istanbul ignore if */
  if (!inBrowser) {
    return true
  }
  if (isReservedTag(tag)) {
    return false
  }
  tag = tag.toLowerCase();
  /* istanbul ignore if */
  if (unknownElementCache[tag] != null) {
    return unknownElementCache[tag]
  }
  var el = document.createElement(tag);
  if (tag.indexOf('-') > -1) {
    // http://stackoverflow.com/a/28210364/1070244
    return (unknownElementCache[tag] = (
      el.constructor === window.HTMLUnknownElement ||
      el.constructor === window.HTMLElement
    ))
  } else {
    return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))
  }
}

var isTextInputType = makeMap('text,number,password,search,email,tel,url');

/*  */

/**
 * Query an element selector if it's not an element already.
 */
function query (el) {
  if (typeof el === 'string') {
    var selected = document.querySelector(el);
    if (!selected) {
      warn(
        'Cannot find element: ' + el
      );
      return document.createElement('div')
    }
    return selected
  } else {
    return el
  }
}

/*  */

function createElement$1 (tagName, vnode) {
  var elm = document.createElement(tagName);
  if (tagName !== 'select') {
    return elm
  }
  // false or null will remove the attribute but undefined will not
  if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {
    elm.setAttribute('multiple', 'multiple');
  }
  return elm
}

function createElementNS (namespace, tagName) {
  return document.createElementNS(namespaceMap[namespace], tagName)
}

function createTextNode (text) {
  return document.createTextNode(text)
}

function createComment (text) {
  return document.createComment(text)
}

function insertBefore (parentNode, newNode, referenceNode) {
  parentNode.insertBefore(newNode, referenceNode);
}

function removeChild (node, child) {
  node.removeChild(child);
}

function appendChild (node, child) {
  node.appendChild(child);
}

function parentNode (node) {
  return node.parentNode
}

function nextSibling (node) {
  return node.nextSibling
}

function tagName (node) {
  return node.tagName
}

function setTextContent (node, text) {
  node.textContent = text;
}

function setStyleScope (node, scopeId) {
  node.setAttribute(scopeId, '');
}

var nodeOps = /*#__PURE__*/Object.freeze({
  createElement: createElement$1,
  createElementNS: createElementNS,
  createTextNode: createTextNode,
  createComment: createComment,
  insertBefore: insertBefore,
  removeChild: removeChild,
  appendChild: appendChild,
  parentNode: parentNode,
  nextSibling: nextSibling,
  tagName: tagName,
  setTextContent: setTextContent,
  setStyleScope: setStyleScope
});

/*  */

var ref = {
  create: function create (_, vnode) {
    registerRef(vnode);
  },
  update: function update (oldVnode, vnode) {
    if (oldVnode.data.ref !== vnode.data.ref) {
      registerRef(oldVnode, true);
      registerRef(vnode);
    }
  },
  destroy: function destroy (vnode) {
    registerRef(vnode, true);
  }
};

function registerRef (vnode, isRemoval) {
  var key = vnode.data.ref;
  if (!isDef(key)) { return }

  var vm = vnode.context;
  var ref = vnode.componentInstance || vnode.elm;
  var refs = vm.$refs;
  if (isRemoval) {
    if (Array.isArray(refs[key])) {
      remove(refs[key], ref);
    } else if (refs[key] === ref) {
      refs[key] = undefined;
    }
  } else {
    if (vnode.data.refInFor) {
      if (!Array.isArray(refs[key])) {
        refs[key] = [ref];
      } else if (refs[key].indexOf(ref) < 0) {
        // $flow-disable-line
        refs[key].push(ref);
      }
    } else {
      refs[key] = ref;
    }
  }
}

/**
 * Virtual DOM patching algorithm based on Snabbdom by
 * Simon Friis Vindum (@paldepind)
 * Licensed under the MIT License
 * https://github.com/paldepind/snabbdom/blob/master/LICENSE
 *
 * modified by Evan You (@yyx990803)
 *
 * Not type-checking this because this file is perf-critical and the cost
 * of making flow understand it is not worth it.
 */

var emptyNode = new VNode('', {}, []);

var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];

function sameVnode (a, b) {
  return (
    a.key === b.key && (
      (
        a.tag === b.tag &&
        a.isComment === b.isComment &&
        isDef(a.data) === isDef(b.data) &&
        sameInputType(a, b)
      ) || (
        isTrue(a.isAsyncPlaceholder) &&
        a.asyncFactory === b.asyncFactory &&
        isUndef(b.asyncFactory.error)
      )
    )
  )
}

function sameInputType (a, b) {
  if (a.tag !== 'input') { return true }
  var i;
  var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;
  var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;
  return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)
}

function createKeyToOldIdx (children, beginIdx, endIdx) {
  var i, key;
  var map = {};
  for (i = beginIdx; i <= endIdx; ++i) {
    key = children[i].key;
    if (isDef(key)) { map[key] = i; }
  }
  return map
}

function createPatchFunction (backend) {
  var i, j;
  var cbs = {};

  var modules = backend.modules;
  var nodeOps = backend.nodeOps;

  for (i = 0; i < hooks.length; ++i) {
    cbs[hooks[i]] = [];
    for (j = 0; j < modules.length; ++j) {
      if (isDef(modules[j][hooks[i]])) {
        cbs[hooks[i]].push(modules[j][hooks[i]]);
      }
    }
  }

  function emptyNodeAt (elm) {
    return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)
  }

  function createRmCb (childElm, listeners) {
    function remove$$1 () {
      if (--remove$$1.listeners === 0) {
        removeNode(childElm);
      }
    }
    remove$$1.listeners = listeners;
    return remove$$1
  }

  function removeNode (el) {
    var parent = nodeOps.parentNode(el);
    // element may have already been removed due to v-html / v-text
    if (isDef(parent)) {
      nodeOps.removeChild(parent, el);
    }
  }

  function isUnknownElement$$1 (vnode, inVPre) {
    return (
      !inVPre &&
      !vnode.ns &&
      !(
        config.ignoredElements.length &&
        config.ignoredElements.some(function (ignore) {
          return isRegExp(ignore)
            ? ignore.test(vnode.tag)
            : ignore === vnode.tag
        })
      ) &&
      config.isUnknownElement(vnode.tag)
    )
  }

  var creatingElmInVPre = 0;

  function createElm (
    vnode,
    insertedVnodeQueue,
    parentElm,
    refElm,
    nested,
    ownerArray,
    index
  ) {
    if (isDef(vnode.elm) && isDef(ownerArray)) {
      // This vnode was used in a previous render!
      // now it's used as a new node, overwriting its elm would cause
      // potential patch errors down the road when it's used as an insertion
      // reference node. Instead, we clone the node on-demand before creating
      // associated DOM element for it.
      vnode = ownerArray[index] = cloneVNode(vnode);
    }

    vnode.isRootInsert = !nested; // for transition enter check
    if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {
      return
    }

    var data = vnode.data;
    var children = vnode.children;
    var tag = vnode.tag;
    if (isDef(tag)) {
      {
        if (data && data.pre) {
          creatingElmInVPre++;
        }
        if (isUnknownElement$$1(vnode, creatingElmInVPre)) {
          warn(
            'Unknown custom element: <' + tag + '> - did you ' +
            'register the component correctly? For recursive components, ' +
            'make sure to provide the "name" option.',
            vnode.context
          );
        }
      }

      vnode.elm = vnode.ns
        ? nodeOps.createElementNS(vnode.ns, tag)
        : nodeOps.createElement(tag, vnode);
      setScope(vnode);

      /* istanbul ignore if */
      {
        createChildren(vnode, children, insertedVnodeQueue);
        if (isDef(data)) {
          invokeCreateHooks(vnode, insertedVnodeQueue);
        }
        insert(parentElm, vnode.elm, refElm);
      }

      if (data && data.pre) {
        creatingElmInVPre--;
      }
    } else if (isTrue(vnode.isComment)) {
      vnode.elm = nodeOps.createComment(vnode.text);
      insert(parentElm, vnode.elm, refElm);
    } else {
      vnode.elm = nodeOps.createTextNode(vnode.text);
      insert(parentElm, vnode.elm, refElm);
    }
  }

  function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
    var i = vnode.data;
    if (isDef(i)) {
      var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;
      if (isDef(i = i.hook) && isDef(i = i.init)) {
        i(vnode, false /* hydrating */);
      }
      // after calling the init hook, if the vnode is a child component
      // it should've created a child instance and mounted it. the child
      // component also has set the placeholder vnode's elm.
      // in that case we can just return the element and be done.
      if (isDef(vnode.componentInstance)) {
        initComponent(vnode, insertedVnodeQueue);
        insert(parentElm, vnode.elm, refElm);
        if (isTrue(isReactivated)) {
          reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);
        }
        return true
      }
    }
  }

  function initComponent (vnode, insertedVnodeQueue) {
    if (isDef(vnode.data.pendingInsert)) {
      insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
      vnode.data.pendingInsert = null;
    }
    vnode.elm = vnode.componentInstance.$el;
    if (isPatchable(vnode)) {
      invokeCreateHooks(vnode, insertedVnodeQueue);
      setScope(vnode);
    } else {
      // empty component root.
      // skip all element-related modules except for ref (#3455)
      registerRef(vnode);
      // make sure to invoke the insert hook
      insertedVnodeQueue.push(vnode);
    }
  }

  function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
    var i;
    // hack for #4339: a reactivated component with inner transition
    // does not trigger because the inner node's created hooks are not called
    // again. It's not ideal to involve module-specific logic in here but
    // there doesn't seem to be a better way to do it.
    var innerNode = vnode;
    while (innerNode.componentInstance) {
      innerNode = innerNode.componentInstance._vnode;
      if (isDef(i = innerNode.data) && isDef(i = i.transition)) {
        for (i = 0; i < cbs.activate.length; ++i) {
          cbs.activate[i](emptyNode, innerNode);
        }
        insertedVnodeQueue.push(innerNode);
        break
      }
    }
    // unlike a newly created component,
    // a reactivated keep-alive component doesn't insert itself
    insert(parentElm, vnode.elm, refElm);
  }

  function insert (parent, elm, ref$$1) {
    if (isDef(parent)) {
      if (isDef(ref$$1)) {
        if (nodeOps.parentNode(ref$$1) === parent) {
          nodeOps.insertBefore(parent, elm, ref$$1);
        }
      } else {
        nodeOps.appendChild(parent, elm);
      }
    }
  }

  function createChildren (vnode, children, insertedVnodeQueue) {
    if (Array.isArray(children)) {
      {
        checkDuplicateKeys(children);
      }
      for (var i = 0; i < children.length; ++i) {
        createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);
      }
    } else if (isPrimitive(vnode.text)) {
      nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));
    }
  }

  function isPatchable (vnode) {
    while (vnode.componentInstance) {
      vnode = vnode.componentInstance._vnode;
    }
    return isDef(vnode.tag)
  }

  function invokeCreateHooks (vnode, insertedVnodeQueue) {
    for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
      cbs.create[i$1](emptyNode, vnode);
    }
    i = vnode.data.hook; // Reuse variable
    if (isDef(i)) {
      if (isDef(i.create)) { i.create(emptyNode, vnode); }
      if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }
    }
  }

  // set scope id attribute for scoped CSS.
  // this is implemented as a special case to avoid the overhead
  // of going through the normal attribute patching process.
  function setScope (vnode) {
    var i;
    if (isDef(i = vnode.fnScopeId)) {
      nodeOps.setStyleScope(vnode.elm, i);
    } else {
      var ancestor = vnode;
      while (ancestor) {
        if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {
          nodeOps.setStyleScope(vnode.elm, i);
        }
        ancestor = ancestor.parent;
      }
    }
    // for slot content they should also get the scopeId from the host instance.
    if (isDef(i = activeInstance) &&
      i !== vnode.context &&
      i !== vnode.fnContext &&
      isDef(i = i.$options._scopeId)
    ) {
      nodeOps.setStyleScope(vnode.elm, i);
    }
  }

  function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {
    for (; startIdx <= endIdx; ++startIdx) {
      createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);
    }
  }

  function invokeDestroyHook (vnode) {
    var i, j;
    var data = vnode.data;
    if (isDef(data)) {
      if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }
      for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }
    }
    if (isDef(i = vnode.children)) {
      for (j = 0; j < vnode.children.length; ++j) {
        invokeDestroyHook(vnode.children[j]);
      }
    }
  }

  function removeVnodes (parentElm, vnodes, startIdx, endIdx) {
    for (; startIdx <= endIdx; ++startIdx) {
      var ch = vnodes[startIdx];
      if (isDef(ch)) {
        if (isDef(ch.tag)) {
          removeAndInvokeRemoveHook(ch);
          invokeDestroyHook(ch);
        } else { // Text node
          removeNode(ch.elm);
        }
      }
    }
  }

  function removeAndInvokeRemoveHook (vnode, rm) {
    if (isDef(rm) || isDef(vnode.data)) {
      var i;
      var listeners = cbs.remove.length + 1;
      if (isDef(rm)) {
        // we have a recursively passed down rm callback
        // increase the listeners count
        rm.listeners += listeners;
      } else {
        // directly removing
        rm = createRmCb(vnode.elm, listeners);
      }
      // recursively invoke hooks on child component root node
      if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
        removeAndInvokeRemoveHook(i, rm);
      }
      for (i = 0; i < cbs.remove.length; ++i) {
        cbs.remove[i](vnode, rm);
      }
      if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {
        i(vnode, rm);
      } else {
        rm();
      }
    } else {
      removeNode(vnode.elm);
    }
  }

  function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {
    var oldStartIdx = 0;
    var newStartIdx = 0;
    var oldEndIdx = oldCh.length - 1;
    var oldStartVnode = oldCh[0];
    var oldEndVnode = oldCh[oldEndIdx];
    var newEndIdx = newCh.length - 1;
    var newStartVnode = newCh[0];
    var newEndVnode = newCh[newEndIdx];
    var oldKeyToIdx, idxInOld, vnodeToMove, refElm;

    // removeOnly is a special flag used only by <transition-group>
    // to ensure removed elements stay in correct relative positions
    // during leaving transitions
    var canMove = !removeOnly;

    {
      checkDuplicateKeys(newCh);
    }

    while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
      if (isUndef(oldStartVnode)) {
        oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left
      } else if (isUndef(oldEndVnode)) {
        oldEndVnode = oldCh[--oldEndIdx];
      } else if (sameVnode(oldStartVnode, newStartVnode)) {
        patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
        oldStartVnode = oldCh[++oldStartIdx];
        newStartVnode = newCh[++newStartIdx];
      } else if (sameVnode(oldEndVnode, newEndVnode)) {
        patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
        oldEndVnode = oldCh[--oldEndIdx];
        newEndVnode = newCh[--newEndIdx];
      } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right
        patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
        canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));
        oldStartVnode = oldCh[++oldStartIdx];
        newEndVnode = newCh[--newEndIdx];
      } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left
        patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
        canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);
        oldEndVnode = oldCh[--oldEndIdx];
        newStartVnode = newCh[++newStartIdx];
      } else {
        if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }
        idxInOld = isDef(newStartVnode.key)
          ? oldKeyToIdx[newStartVnode.key]
          : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);
        if (isUndef(idxInOld)) { // New element
          createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
        } else {
          vnodeToMove = oldCh[idxInOld];
          if (sameVnode(vnodeToMove, newStartVnode)) {
            patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
            oldCh[idxInOld] = undefined;
            canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);
          } else {
            // same key but different element. treat as new element
            createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
          }
        }
        newStartVnode = newCh[++newStartIdx];
      }
    }
    if (oldStartIdx > oldEndIdx) {
      refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
      addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
    } else if (newStartIdx > newEndIdx) {
      removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);
    }
  }

  function checkDuplicateKeys (children) {
    var seenKeys = {};
    for (var i = 0; i < children.length; i++) {
      var vnode = children[i];
      var key = vnode.key;
      if (isDef(key)) {
        if (seenKeys[key]) {
          warn(
            ("Duplicate keys detected: '" + key + "'. This may cause an update error."),
            vnode.context
          );
        } else {
          seenKeys[key] = true;
        }
      }
    }
  }

  function findIdxInOld (node, oldCh, start, end) {
    for (var i = start; i < end; i++) {
      var c = oldCh[i];
      if (isDef(c) && sameVnode(node, c)) { return i }
    }
  }

  function patchVnode (
    oldVnode,
    vnode,
    insertedVnodeQueue,
    ownerArray,
    index,
    removeOnly
  ) {
    if (oldVnode === vnode) {
      return
    }

    if (isDef(vnode.elm) && isDef(ownerArray)) {
      // clone reused vnode
      vnode = ownerArray[index] = cloneVNode(vnode);
    }

    var elm = vnode.elm = oldVnode.elm;

    if (isTrue(oldVnode.isAsyncPlaceholder)) {
      if (isDef(vnode.asyncFactory.resolved)) {
        hydrate(oldVnode.elm, vnode, insertedVnodeQueue);
      } else {
        vnode.isAsyncPlaceholder = true;
      }
      return
    }

    // reuse element for static trees.
    // note we only do this if the vnode is cloned -
    // if the new node is not cloned it means the render functions have been
    // reset by the hot-reload-api and we need to do a proper re-render.
    if (isTrue(vnode.isStatic) &&
      isTrue(oldVnode.isStatic) &&
      vnode.key === oldVnode.key &&
      (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))
    ) {
      vnode.componentInstance = oldVnode.componentInstance;
      return
    }

    var i;
    var data = vnode.data;
    if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {
      i(oldVnode, vnode);
    }

    var oldCh = oldVnode.children;
    var ch = vnode.children;
    if (isDef(data) && isPatchable(vnode)) {
      for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }
      if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }
    }
    if (isUndef(vnode.text)) {
      if (isDef(oldCh) && isDef(ch)) {
        if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }
      } else if (isDef(ch)) {
        {
          checkDuplicateKeys(ch);
        }
        if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }
        addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
      } else if (isDef(oldCh)) {
        removeVnodes(elm, oldCh, 0, oldCh.length - 1);
      } else if (isDef(oldVnode.text)) {
        nodeOps.setTextContent(elm, '');
      }
    } else if (oldVnode.text !== vnode.text) {
      nodeOps.setTextContent(elm, vnode.text);
    }
    if (isDef(data)) {
      if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }
    }
  }

  function invokeInsertHook (vnode, queue, initial) {
    // delay insert hooks for component root nodes, invoke them after the
    // element is really inserted
    if (isTrue(initial) && isDef(vnode.parent)) {
      vnode.parent.data.pendingInsert = queue;
    } else {
      for (var i = 0; i < queue.length; ++i) {
        queue[i].data.hook.insert(queue[i]);
      }
    }
  }

  var hydrationBailed = false;
  // list of modules that can skip create hook during hydration because they
  // are already rendered on the client or has no need for initialization
  // Note: style is excluded because it relies on initial clone for future
  // deep updates (#7063).
  var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');

  // Note: this is a browser-only function so we can assume elms are DOM nodes.
  function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {
    var i;
    var tag = vnode.tag;
    var data = vnode.data;
    var children = vnode.children;
    inVPre = inVPre || (data && data.pre);
    vnode.elm = elm;

    if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {
      vnode.isAsyncPlaceholder = true;
      return true
    }
    // assert node match
    {
      if (!assertNodeMatch(elm, vnode, inVPre)) {
        return false
      }
    }
    if (isDef(data)) {
      if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }
      if (isDef(i = vnode.componentInstance)) {
        // child component. it should have hydrated its own tree.
        initComponent(vnode, insertedVnodeQueue);
        return true
      }
    }
    if (isDef(tag)) {
      if (isDef(children)) {
        // empty element, allow client to pick up and populate children
        if (!elm.hasChildNodes()) {
          createChildren(vnode, children, insertedVnodeQueue);
        } else {
          // v-html and domProps: innerHTML
          if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {
            if (i !== elm.innerHTML) {
              /* istanbul ignore if */
              if (typeof console !== 'undefined' &&
                !hydrationBailed
              ) {
                hydrationBailed = true;
                console.warn('Parent: ', elm);
                console.warn('server innerHTML: ', i);
                console.warn('client innerHTML: ', elm.innerHTML);
              }
              return false
            }
          } else {
            // iterate and compare children lists
            var childrenMatch = true;
            var childNode = elm.firstChild;
            for (var i$1 = 0; i$1 < children.length; i$1++) {
              if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {
                childrenMatch = false;
                break
              }
              childNode = childNode.nextSibling;
            }
            // if childNode is not null, it means the actual childNodes list is
            // longer than the virtual children list.
            if (!childrenMatch || childNode) {
              /* istanbul ignore if */
              if (typeof console !== 'undefined' &&
                !hydrationBailed
              ) {
                hydrationBailed = true;
                console.warn('Parent: ', elm);
                console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);
              }
              return false
            }
          }
        }
      }
      if (isDef(data)) {
        var fullInvoke = false;
        for (var key in data) {
          if (!isRenderedModule(key)) {
            fullInvoke = true;
            invokeCreateHooks(vnode, insertedVnodeQueue);
            break
          }
        }
        if (!fullInvoke && data['class']) {
          // ensure collecting deps for deep class bindings for future updates
          traverse(data['class']);
        }
      }
    } else if (elm.data !== vnode.text) {
      elm.data = vnode.text;
    }
    return true
  }

  function assertNodeMatch (node, vnode, inVPre) {
    if (isDef(vnode.tag)) {
      return vnode.tag.indexOf('vue-component') === 0 || (
        !isUnknownElement$$1(vnode, inVPre) &&
        vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())
      )
    } else {
      return node.nodeType === (vnode.isComment ? 8 : 3)
    }
  }

  return function patch (oldVnode, vnode, hydrating, removeOnly) {
    if (isUndef(vnode)) {
      if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }
      return
    }

    var isInitialPatch = false;
    var insertedVnodeQueue = [];

    if (isUndef(oldVnode)) {
      // empty mount (likely as component), create new root element
      isInitialPatch = true;
      createElm(vnode, insertedVnodeQueue);
    } else {
      var isRealElement = isDef(oldVnode.nodeType);
      if (!isRealElement && sameVnode(oldVnode, vnode)) {
        // patch existing root node
        patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);
      } else {
        if (isRealElement) {
          // mounting to a real element
          // check if this is server-rendered content and if we can perform
          // a successful hydration.
          if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {
            oldVnode.removeAttribute(SSR_ATTR);
            hydrating = true;
          }
          if (isTrue(hydrating)) {
            if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {
              invokeInsertHook(vnode, insertedVnodeQueue, true);
              return oldVnode
            } else {
              warn(
                'The client-side rendered virtual DOM tree is not matching ' +
                'server-rendered content. This is likely caused by incorrect ' +
                'HTML markup, for example nesting block-level elements inside ' +
                '<p>, or missing <tbody>. Bailing hydration and performing ' +
                'full client-side render.'
              );
            }
          }
          // either not server-rendered, or hydration failed.
          // create an empty node and replace it
          oldVnode = emptyNodeAt(oldVnode);
        }

        // replacing existing element
        var oldElm = oldVnode.elm;
        var parentElm = nodeOps.parentNode(oldElm);

        // create new node
        createElm(
          vnode,
          insertedVnodeQueue,
          // extremely rare edge case: do not insert if old element is in a
          // leaving transition. Only happens when combining transition +
          // keep-alive + HOCs. (#4590)
          oldElm._leaveCb ? null : parentElm,
          nodeOps.nextSibling(oldElm)
        );

        // update parent placeholder node element, recursively
        if (isDef(vnode.parent)) {
          var ancestor = vnode.parent;
          var patchable = isPatchable(vnode);
          while (ancestor) {
            for (var i = 0; i < cbs.destroy.length; ++i) {
              cbs.destroy[i](ancestor);
            }
            ancestor.elm = vnode.elm;
            if (patchable) {
              for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
                cbs.create[i$1](emptyNode, ancestor);
              }
              // #6513
              // invoke insert hooks that may have been merged by create hooks.
              // e.g. for directives that uses the "inserted" hook.
              var insert = ancestor.data.hook.insert;
              if (insert.merged) {
                // start at index 1 to avoid re-invoking component mounted hook
                for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {
                  insert.fns[i$2]();
                }
              }
            } else {
              registerRef(ancestor);
            }
            ancestor = ancestor.parent;
          }
        }

        // destroy old node
        if (isDef(parentElm)) {
          removeVnodes(parentElm, [oldVnode], 0, 0);
        } else if (isDef(oldVnode.tag)) {
          invokeDestroyHook(oldVnode);
        }
      }
    }

    invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);
    return vnode.elm
  }
}

/*  */

var directives = {
  create: updateDirectives,
  update: updateDirectives,
  destroy: function unbindDirectives (vnode) {
    updateDirectives(vnode, emptyNode);
  }
};

function updateDirectives (oldVnode, vnode) {
  if (oldVnode.data.directives || vnode.data.directives) {
    _update(oldVnode, vnode);
  }
}

function _update (oldVnode, vnode) {
  var isCreate = oldVnode === emptyNode;
  var isDestroy = vnode === emptyNode;
  var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);
  var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);

  var dirsWithInsert = [];
  var dirsWithPostpatch = [];

  var key, oldDir, dir;
  for (key in newDirs) {
    oldDir = oldDirs[key];
    dir = newDirs[key];
    if (!oldDir) {
      // new directive, bind
      callHook$1(dir, 'bind', vnode, oldVnode);
      if (dir.def && dir.def.inserted) {
        dirsWithInsert.push(dir);
      }
    } else {
      // existing directive, update
      dir.oldValue = oldDir.value;
      dir.oldArg = oldDir.arg;
      callHook$1(dir, 'update', vnode, oldVnode);
      if (dir.def && dir.def.componentUpdated) {
        dirsWithPostpatch.push(dir);
      }
    }
  }

  if (dirsWithInsert.length) {
    var callInsert = function () {
      for (var i = 0; i < dirsWithInsert.length; i++) {
        callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);
      }
    };
    if (isCreate) {
      mergeVNodeHook(vnode, 'insert', callInsert);
    } else {
      callInsert();
    }
  }

  if (dirsWithPostpatch.length) {
    mergeVNodeHook(vnode, 'postpatch', function () {
      for (var i = 0; i < dirsWithPostpatch.length; i++) {
        callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);
      }
    });
  }

  if (!isCreate) {
    for (key in oldDirs) {
      if (!newDirs[key]) {
        // no longer present, unbind
        callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);
      }
    }
  }
}

var emptyModifiers = Object.create(null);

function normalizeDirectives$1 (
  dirs,
  vm
) {
  var res = Object.create(null);
  if (!dirs) {
    // $flow-disable-line
    return res
  }
  var i, dir;
  for (i = 0; i < dirs.length; i++) {
    dir = dirs[i];
    if (!dir.modifiers) {
      // $flow-disable-line
      dir.modifiers = emptyModifiers;
    }
    res[getRawDirName(dir)] = dir;
    dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);
  }
  // $flow-disable-line
  return res
}

function getRawDirName (dir) {
  return dir.rawName || ((dir.name) + "." + (Object.keys(dir.modifiers || {}).join('.')))
}

function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {
  var fn = dir.def && dir.def[hook];
  if (fn) {
    try {
      fn(vnode.elm, dir, vnode, oldVnode, isDestroy);
    } catch (e) {
      handleError(e, vnode.context, ("directive " + (dir.name) + " " + hook + " hook"));
    }
  }
}

var baseModules = [
  ref,
  directives
];

/*  */

function updateAttrs (oldVnode, vnode) {
  var opts = vnode.componentOptions;
  if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {
    return
  }
  if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {
    return
  }
  var key, cur, old;
  var elm = vnode.elm;
  var oldAttrs = oldVnode.data.attrs || {};
  var attrs = vnode.data.attrs || {};
  // clone observed objects, as the user probably wants to mutate it
  if (isDef(attrs.__ob__)) {
    attrs = vnode.data.attrs = extend({}, attrs);
  }

  for (key in attrs) {
    cur = attrs[key];
    old = oldAttrs[key];
    if (old !== cur) {
      setAttr(elm, key, cur);
    }
  }
  // #4391: in IE9, setting type can reset value for input[type=radio]
  // #6666: IE/Edge forces progress value down to 1 before setting a max
  /* istanbul ignore if */
  if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {
    setAttr(elm, 'value', attrs.value);
  }
  for (key in oldAttrs) {
    if (isUndef(attrs[key])) {
      if (isXlink(key)) {
        elm.removeAttributeNS(xlinkNS, getXlinkProp(key));
      } else if (!isEnumeratedAttr(key)) {
        elm.removeAttribute(key);
      }
    }
  }
}

function setAttr (el, key, value) {
  if (el.tagName.indexOf('-') > -1) {
    baseSetAttr(el, key, value);
  } else if (isBooleanAttr(key)) {
    // set attribute for blank value
    // e.g. <option disabled>Select one</option>
    if (isFalsyAttrValue(value)) {
      el.removeAttribute(key);
    } else {
      // technically allowfullscreen is a boolean attribute for <iframe>,
      // but Flash expects a value of "true" when used on <embed> tag
      value = key === 'allowfullscreen' && el.tagName === 'EMBED'
        ? 'true'
        : key;
      el.setAttribute(key, value);
    }
  } else if (isEnumeratedAttr(key)) {
    el.setAttribute(key, convertEnumeratedValue(key, value));
  } else if (isXlink(key)) {
    if (isFalsyAttrValue(value)) {
      el.removeAttributeNS(xlinkNS, getXlinkProp(key));
    } else {
      el.setAttributeNS(xlinkNS, key, value);
    }
  } else {
    baseSetAttr(el, key, value);
  }
}

function baseSetAttr (el, key, value) {
  if (isFalsyAttrValue(value)) {
    el.removeAttribute(key);
  } else {
    // #7138: IE10 & 11 fires input event when setting placeholder on
    // <textarea>... block the first input event and remove the blocker
    // immediately.
    /* istanbul ignore if */
    if (
      isIE && !isIE9 &&
      el.tagName === 'TEXTAREA' &&
      key === 'placeholder' && value !== '' && !el.__ieph
    ) {
      var blocker = function (e) {
        e.stopImmediatePropagation();
        el.removeEventListener('input', blocker);
      };
      el.addEventListener('input', blocker);
      // $flow-disable-line
      el.__ieph = true; /* IE placeholder patched */
    }
    el.setAttribute(key, value);
  }
}

var attrs = {
  create: updateAttrs,
  update: updateAttrs
};

/*  */

function updateClass (oldVnode, vnode) {
  var el = vnode.elm;
  var data = vnode.data;
  var oldData = oldVnode.data;
  if (
    isUndef(data.staticClass) &&
    isUndef(data.class) && (
      isUndef(oldData) || (
        isUndef(oldData.staticClass) &&
        isUndef(oldData.class)
      )
    )
  ) {
    return
  }

  var cls = genClassForVnode(vnode);

  // handle transition classes
  var transitionClass = el._transitionClasses;
  if (isDef(transitionClass)) {
    cls = concat(cls, stringifyClass(transitionClass));
  }

  // set the class
  if (cls !== el._prevClass) {
    el.setAttribute('class', cls);
    el._prevClass = cls;
  }
}

var klass = {
  create: updateClass,
  update: updateClass
};

/*  */

var validDivisionCharRE = /[\w).+\-_$\]]/;

function parseFilters (exp) {
  var inSingle = false;
  var inDouble = false;
  var inTemplateString = false;
  var inRegex = false;
  var curly = 0;
  var square = 0;
  var paren = 0;
  var lastFilterIndex = 0;
  var c, prev, i, expression, filters;

  for (i = 0; i < exp.length; i++) {
    prev = c;
    c = exp.charCodeAt(i);
    if (inSingle) {
      if (c === 0x27 && prev !== 0x5C) { inSingle = false; }
    } else if (inDouble) {
      if (c === 0x22 && prev !== 0x5C) { inDouble = false; }
    } else if (inTemplateString) {
      if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }
    } else if (inRegex) {
      if (c === 0x2f && prev !== 0x5C) { inRegex = false; }
    } else if (
      c === 0x7C && // pipe
      exp.charCodeAt(i + 1) !== 0x7C &&
      exp.charCodeAt(i - 1) !== 0x7C &&
      !curly && !square && !paren
    ) {
      if (expression === undefined) {
        // first filter, end of expression
        lastFilterIndex = i + 1;
        expression = exp.slice(0, i).trim();
      } else {
        pushFilter();
      }
    } else {
      switch (c) {
        case 0x22: inDouble = true; break         // "
        case 0x27: inSingle = true; break         // '
        case 0x60: inTemplateString = true; break // `
        case 0x28: paren++; break                 // (
        case 0x29: paren--; break                 // )
        case 0x5B: square++; break                // [
        case 0x5D: square--; break                // ]
        case 0x7B: curly++; break                 // {
        case 0x7D: curly--; break                 // }
      }
      if (c === 0x2f) { // /
        var j = i - 1;
        var p = (void 0);
        // find first non-whitespace prev char
        for (; j >= 0; j--) {
          p = exp.charAt(j);
          if (p !== ' ') { break }
        }
        if (!p || !validDivisionCharRE.test(p)) {
          inRegex = true;
        }
      }
    }
  }

  if (expression === undefined) {
    expression = exp.slice(0, i).trim();
  } else if (lastFilterIndex !== 0) {
    pushFilter();
  }

  function pushFilter () {
    (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());
    lastFilterIndex = i + 1;
  }

  if (filters) {
    for (i = 0; i < filters.length; i++) {
      expression = wrapFilter(expression, filters[i]);
    }
  }

  return expression
}

function wrapFilter (exp, filter) {
  var i = filter.indexOf('(');
  if (i < 0) {
    // _f: resolveFilter
    return ("_f(\"" + filter + "\")(" + exp + ")")
  } else {
    var name = filter.slice(0, i);
    var args = filter.slice(i + 1);
    return ("_f(\"" + name + "\")(" + exp + (args !== ')' ? ',' + args : args))
  }
}

/*  */



/* eslint-disable no-unused-vars */
function baseWarn (msg, range) {
  console.error(("[Vue compiler]: " + msg));
}
/* eslint-enable no-unused-vars */

function pluckModuleFunction (
  modules,
  key
) {
  return modules
    ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })
    : []
}

function addProp (el, name, value, range, dynamic) {
  (el.props || (el.props = [])).push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));
  el.plain = false;
}

function addAttr (el, name, value, range, dynamic) {
  var attrs = dynamic
    ? (el.dynamicAttrs || (el.dynamicAttrs = []))
    : (el.attrs || (el.attrs = []));
  attrs.push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));
  el.plain = false;
}

// add a raw attr (use this in preTransforms)
function addRawAttr (el, name, value, range) {
  el.attrsMap[name] = value;
  el.attrsList.push(rangeSetItem({ name: name, value: value }, range));
}

function addDirective (
  el,
  name,
  rawName,
  value,
  arg,
  isDynamicArg,
  modifiers,
  range
) {
  (el.directives || (el.directives = [])).push(rangeSetItem({
    name: name,
    rawName: rawName,
    value: value,
    arg: arg,
    isDynamicArg: isDynamicArg,
    modifiers: modifiers
  }, range));
  el.plain = false;
}

function prependModifierMarker (symbol, name, dynamic) {
  return dynamic
    ? ("_p(" + name + ",\"" + symbol + "\")")
    : symbol + name // mark the event as captured
}

function addHandler (
  el,
  name,
  value,
  modifiers,
  important,
  warn,
  range,
  dynamic
) {
  modifiers = modifiers || emptyObject;
  // warn prevent and passive modifier
  /* istanbul ignore if */
  if (
    warn &&
    modifiers.prevent && modifiers.passive
  ) {
    warn(
      'passive and prevent can\'t be used together. ' +
      'Passive handler can\'t prevent default event.',
      range
    );
  }

  // normalize click.right and click.middle since they don't actually fire
  // this is technically browser-specific, but at least for now browsers are
  // the only target envs that have right/middle clicks.
  if (modifiers.right) {
    if (dynamic) {
      name = "(" + name + ")==='click'?'contextmenu':(" + name + ")";
    } else if (name === 'click') {
      name = 'contextmenu';
      delete modifiers.right;
    }
  } else if (modifiers.middle) {
    if (dynamic) {
      name = "(" + name + ")==='click'?'mouseup':(" + name + ")";
    } else if (name === 'click') {
      name = 'mouseup';
    }
  }

  // check capture modifier
  if (modifiers.capture) {
    delete modifiers.capture;
    name = prependModifierMarker('!', name, dynamic);
  }
  if (modifiers.once) {
    delete modifiers.once;
    name = prependModifierMarker('~', name, dynamic);
  }
  /* istanbul ignore if */
  if (modifiers.passive) {
    delete modifiers.passive;
    name = prependModifierMarker('&', name, dynamic);
  }

  var events;
  if (modifiers.native) {
    delete modifiers.native;
    events = el.nativeEvents || (el.nativeEvents = {});
  } else {
    events = el.events || (el.events = {});
  }

  var newHandler = rangeSetItem({ value: value.trim(), dynamic: dynamic }, range);
  if (modifiers !== emptyObject) {
    newHandler.modifiers = modifiers;
  }

  var handlers = events[name];
  /* istanbul ignore if */
  if (Array.isArray(handlers)) {
    important ? handlers.unshift(newHandler) : handlers.push(newHandler);
  } else if (handlers) {
    events[name] = important ? [newHandler, handlers] : [handlers, newHandler];
  } else {
    events[name] = newHandler;
  }

  el.plain = false;
}

function getRawBindingAttr (
  el,
  name
) {
  return el.rawAttrsMap[':' + name] ||
    el.rawAttrsMap['v-bind:' + name] ||
    el.rawAttrsMap[name]
}

function getBindingAttr (
  el,
  name,
  getStatic
) {
  var dynamicValue =
    getAndRemoveAttr(el, ':' + name) ||
    getAndRemoveAttr(el, 'v-bind:' + name);
  if (dynamicValue != null) {
    return parseFilters(dynamicValue)
  } else if (getStatic !== false) {
    var staticValue = getAndRemoveAttr(el, name);
    if (staticValue != null) {
      return JSON.stringify(staticValue)
    }
  }
}

// note: this only removes the attr from the Array (attrsList) so that it
// doesn't get processed by processAttrs.
// By default it does NOT remove it from the map (attrsMap) because the map is
// needed during codegen.
function getAndRemoveAttr (
  el,
  name,
  removeFromMap
) {
  var val;
  if ((val = el.attrsMap[name]) != null) {
    var list = el.attrsList;
    for (var i = 0, l = list.length; i < l; i++) {
      if (list[i].name === name) {
        list.splice(i, 1);
        break
      }
    }
  }
  if (removeFromMap) {
    delete el.attrsMap[name];
  }
  return val
}

function getAndRemoveAttrByRegex (
  el,
  name
) {
  var list = el.attrsList;
  for (var i = 0, l = list.length; i < l; i++) {
    var attr = list[i];
    if (name.test(attr.name)) {
      list.splice(i, 1);
      return attr
    }
  }
}

function rangeSetItem (
  item,
  range
) {
  if (range) {
    if (range.start != null) {
      item.start = range.start;
    }
    if (range.end != null) {
      item.end = range.end;
    }
  }
  return item
}

/*  */

/**
 * Cross-platform code generation for component v-model
 */
function genComponentModel (
  el,
  value,
  modifiers
) {
  var ref = modifiers || {};
  var number = ref.number;
  var trim = ref.trim;

  var baseValueExpression = '$$v';
  var valueExpression = baseValueExpression;
  if (trim) {
    valueExpression =
      "(typeof " + baseValueExpression + " === 'string'" +
      "? " + baseValueExpression + ".trim()" +
      ": " + baseValueExpression + ")";
  }
  if (number) {
    valueExpression = "_n(" + valueExpression + ")";
  }
  var assignment = genAssignmentCode(value, valueExpression);

  el.model = {
    value: ("(" + value + ")"),
    expression: JSON.stringify(value),
    callback: ("function (" + baseValueExpression + ") {" + assignment + "}")
  };
}

/**
 * Cross-platform codegen helper for generating v-model value assignment code.
 */
function genAssignmentCode (
  value,
  assignment
) {
  var res = parseModel(value);
  if (res.key === null) {
    return (value + "=" + assignment)
  } else {
    return ("$set(" + (res.exp) + ", " + (res.key) + ", " + assignment + ")")
  }
}

/**
 * Parse a v-model expression into a base path and a final key segment.
 * Handles both dot-path and possible square brackets.
 *
 * Possible cases:
 *
 * - test
 * - test[key]
 * - test[test1[key]]
 * - test["a"][key]
 * - xxx.test[a[a].test1[key]]
 * - test.xxx.a["asa"][test1[key]]
 *
 */

var len, str, chr, index$1, expressionPos, expressionEndPos;



function parseModel (val) {
  // Fix https://github.com/vuejs/vue/pull/7730
  // allow v-model="obj.val " (trailing whitespace)
  val = val.trim();
  len = val.length;

  if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {
    index$1 = val.lastIndexOf('.');
    if (index$1 > -1) {
      return {
        exp: val.slice(0, index$1),
        key: '"' + val.slice(index$1 + 1) + '"'
      }
    } else {
      return {
        exp: val,
        key: null
      }
    }
  }

  str = val;
  index$1 = expressionPos = expressionEndPos = 0;

  while (!eof()) {
    chr = next();
    /* istanbul ignore if */
    if (isStringStart(chr)) {
      parseString(chr);
    } else if (chr === 0x5B) {
      parseBracket(chr);
    }
  }

  return {
    exp: val.slice(0, expressionPos),
    key: val.slice(expressionPos + 1, expressionEndPos)
  }
}

function next () {
  return str.charCodeAt(++index$1)
}

function eof () {
  return index$1 >= len
}

function isStringStart (chr) {
  return chr === 0x22 || chr === 0x27
}

function parseBracket (chr) {
  var inBracket = 1;
  expressionPos = index$1;
  while (!eof()) {
    chr = next();
    if (isStringStart(chr)) {
      parseString(chr);
      continue
    }
    if (chr === 0x5B) { inBracket++; }
    if (chr === 0x5D) { inBracket--; }
    if (inBracket === 0) {
      expressionEndPos = index$1;
      break
    }
  }
}

function parseString (chr) {
  var stringQuote = chr;
  while (!eof()) {
    chr = next();
    if (chr === stringQuote) {
      break
    }
  }
}

/*  */

var warn$1;

// in some cases, the event used has to be determined at runtime
// so we used some reserved tokens during compile.
var RANGE_TOKEN = '__r';
var CHECKBOX_RADIO_TOKEN = '__c';

function model (
  el,
  dir,
  _warn
) {
  warn$1 = _warn;
  var value = dir.value;
  var modifiers = dir.modifiers;
  var tag = el.tag;
  var type = el.attrsMap.type;

  {
    // inputs with type="file" are read only and setting the input's
    // value will throw an error.
    if (tag === 'input' && type === 'file') {
      warn$1(
        "<" + (el.tag) + " v-model=\"" + value + "\" type=\"file\">:\n" +
        "File inputs are read only. Use a v-on:change listener instead.",
        el.rawAttrsMap['v-model']
      );
    }
  }

  if (el.component) {
    genComponentModel(el, value, modifiers);
    // component v-model doesn't need extra runtime
    return false
  } else if (tag === 'select') {
    genSelect(el, value, modifiers);
  } else if (tag === 'input' && type === 'checkbox') {
    genCheckboxModel(el, value, modifiers);
  } else if (tag === 'input' && type === 'radio') {
    genRadioModel(el, value, modifiers);
  } else if (tag === 'input' || tag === 'textarea') {
    genDefaultModel(el, value, modifiers);
  } else if (!config.isReservedTag(tag)) {
    genComponentModel(el, value, modifiers);
    // component v-model doesn't need extra runtime
    return false
  } else {
    warn$1(
      "<" + (el.tag) + " v-model=\"" + value + "\">: " +
      "v-model is not supported on this element type. " +
      'If you are working with contenteditable, it\'s recommended to ' +
      'wrap a library dedicated for that purpose inside a custom component.',
      el.rawAttrsMap['v-model']
    );
  }

  // ensure runtime directive metadata
  return true
}

function genCheckboxModel (
  el,
  value,
  modifiers
) {
  var number = modifiers && modifiers.number;
  var valueBinding = getBindingAttr(el, 'value') || 'null';
  var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';
  var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';
  addProp(el, 'checked',
    "Array.isArray(" + value + ")" +
    "?_i(" + value + "," + valueBinding + ")>-1" + (
      trueValueBinding === 'true'
        ? (":(" + value + ")")
        : (":_q(" + value + "," + trueValueBinding + ")")
    )
  );
  addHandler(el, 'change',
    "var $$a=" + value + "," +
        '$$el=$event.target,' +
        "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" +
    'if(Array.isArray($$a)){' +
      "var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," +
          '$$i=_i($$a,$$v);' +
      "if($$el.checked){$$i<0&&(" + (genAssignmentCode(value, '$$a.concat([$$v])')) + ")}" +
      "else{$$i>-1&&(" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + ")}" +
    "}else{" + (genAssignmentCode(value, '$$c')) + "}",
    null, true
  );
}

function genRadioModel (
  el,
  value,
  modifiers
) {
  var number = modifiers && modifiers.number;
  var valueBinding = getBindingAttr(el, 'value') || 'null';
  valueBinding = number ? ("_n(" + valueBinding + ")") : valueBinding;
  addProp(el, 'checked', ("_q(" + value + "," + valueBinding + ")"));
  addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);
}

function genSelect (
  el,
  value,
  modifiers
) {
  var number = modifiers && modifiers.number;
  var selectedVal = "Array.prototype.filter" +
    ".call($event.target.options,function(o){return o.selected})" +
    ".map(function(o){var val = \"_value\" in o ? o._value : o.value;" +
    "return " + (number ? '_n(val)' : 'val') + "})";

  var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';
  var code = "var $$selectedVal = " + selectedVal + ";";
  code = code + " " + (genAssignmentCode(value, assignment));
  addHandler(el, 'change', code, null, true);
}

function genDefaultModel (
  el,
  value,
  modifiers
) {
  var type = el.attrsMap.type;

  // warn if v-bind:value conflicts with v-model
  // except for inputs with v-bind:type
  {
    var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];
    var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];
    if (value$1 && !typeBinding) {
      var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';
      warn$1(
        binding + "=\"" + value$1 + "\" conflicts with v-model on the same element " +
        'because the latter already expands to a value binding internally',
        el.rawAttrsMap[binding]
      );
    }
  }

  var ref = modifiers || {};
  var lazy = ref.lazy;
  var number = ref.number;
  var trim = ref.trim;
  var needCompositionGuard = !lazy && type !== 'range';
  var event = lazy
    ? 'change'
    : type === 'range'
      ? RANGE_TOKEN
      : 'input';

  var valueExpression = '$event.target.value';
  if (trim) {
    valueExpression = "$event.target.value.trim()";
  }
  if (number) {
    valueExpression = "_n(" + valueExpression + ")";
  }

  var code = genAssignmentCode(value, valueExpression);
  if (needCompositionGuard) {
    code = "if($event.target.composing)return;" + code;
  }

  addProp(el, 'value', ("(" + value + ")"));
  addHandler(el, event, code, null, true);
  if (trim || number) {
    addHandler(el, 'blur', '$forceUpdate()');
  }
}

/*  */

// normalize v-model event tokens that can only be determined at runtime.
// it's important to place the event as the first in the array because
// the whole point is ensuring the v-model callback gets called before
// user-attached handlers.
function normalizeEvents (on) {
  /* istanbul ignore if */
  if (isDef(on[RANGE_TOKEN])) {
    // IE input[type=range] only supports `change` event
    var event = isIE ? 'change' : 'input';
    on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);
    delete on[RANGE_TOKEN];
  }
  // This was originally intended to fix #4521 but no longer necessary
  // after 2.5. Keeping it for backwards compat with generated code from < 2.4
  /* istanbul ignore if */
  if (isDef(on[CHECKBOX_RADIO_TOKEN])) {
    on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);
    delete on[CHECKBOX_RADIO_TOKEN];
  }
}

var target$1;

function createOnceHandler$1 (event, handler, capture) {
  var _target = target$1; // save current target element in closure
  return function onceHandler () {
    var res = handler.apply(null, arguments);
    if (res !== null) {
      remove$2(event, onceHandler, capture, _target);
    }
  }
}

// #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp
// implementation and does not fire microtasks in between event propagation, so
// safe to exclude.
var useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);

function add$1 (
  name,
  handler,
  capture,
  passive
) {
  // async edge case #6566: inner click event triggers patch, event handler
  // attached to outer element during patch, and triggered again. This
  // happens because browsers fire microtask ticks between event propagation.
  // the solution is simple: we save the timestamp when a handler is attached,
  // and the handler would only fire if the event passed to it was fired
  // AFTER it was attached.
  if (useMicrotaskFix) {
    var attachedTimestamp = currentFlushTimestamp;
    var original = handler;
    handler = original._wrapper = function (e) {
      if (
        // no bubbling, should always fire.
        // this is just a safety net in case event.timeStamp is unreliable in
        // certain weird environments...
        e.target === e.currentTarget ||
        // event is fired after handler attachment
        e.timeStamp >= attachedTimestamp ||
        // bail for environments that have buggy event.timeStamp implementations
        // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState
        // #9681 QtWebEngine event.timeStamp is negative value
        e.timeStamp <= 0 ||
        // #9448 bail if event is fired in another document in a multi-page
        // electron/nw.js app, since event.timeStamp will be using a different
        // starting reference
        e.target.ownerDocument !== document
      ) {
        return original.apply(this, arguments)
      }
    };
  }
  target$1.addEventListener(
    name,
    handler,
    supportsPassive
      ? { capture: capture, passive: passive }
      : capture
  );
}

function remove$2 (
  name,
  handler,
  capture,
  _target
) {
  (_target || target$1).removeEventListener(
    name,
    handler._wrapper || handler,
    capture
  );
}

function updateDOMListeners (oldVnode, vnode) {
  if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {
    return
  }
  var on = vnode.data.on || {};
  var oldOn = oldVnode.data.on || {};
  target$1 = vnode.elm;
  normalizeEvents(on);
  updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);
  target$1 = undefined;
}

var events = {
  create: updateDOMListeners,
  update: updateDOMListeners
};

/*  */

var svgContainer;

function updateDOMProps (oldVnode, vnode) {
  if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {
    return
  }
  var key, cur;
  var elm = vnode.elm;
  var oldProps = oldVnode.data.domProps || {};
  var props = vnode.data.domProps || {};
  // clone observed objects, as the user probably wants to mutate it
  if (isDef(props.__ob__)) {
    props = vnode.data.domProps = extend({}, props);
  }

  for (key in oldProps) {
    if (!(key in props)) {
      elm[key] = '';
    }
  }

  for (key in props) {
    cur = props[key];
    // ignore children if the node has textContent or innerHTML,
    // as these will throw away existing DOM nodes and cause removal errors
    // on subsequent patches (#3360)
    if (key === 'textContent' || key === 'innerHTML') {
      if (vnode.children) { vnode.children.length = 0; }
      if (cur === oldProps[key]) { continue }
      // #6601 work around Chrome version <= 55 bug where single textNode
      // replaced by innerHTML/textContent retains its parentNode property
      if (elm.childNodes.length === 1) {
        elm.removeChild(elm.childNodes[0]);
      }
    }

    if (key === 'value' && elm.tagName !== 'PROGRESS') {
      // store value as _value as well since
      // non-string values will be stringified
      elm._value = cur;
      // avoid resetting cursor position when value is the same
      var strCur = isUndef(cur) ? '' : String(cur);
      if (shouldUpdateValue(elm, strCur)) {
        elm.value = strCur;
      }
    } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {
      // IE doesn't support innerHTML for SVG elements
      svgContainer = svgContainer || document.createElement('div');
      svgContainer.innerHTML = "<svg>" + cur + "</svg>";
      var svg = svgContainer.firstChild;
      while (elm.firstChild) {
        elm.removeChild(elm.firstChild);
      }
      while (svg.firstChild) {
        elm.appendChild(svg.firstChild);
      }
    } else if (
      // skip the update if old and new VDOM state is the same.
      // `value` is handled separately because the DOM value may be temporarily
      // out of sync with VDOM state due to focus, composition and modifiers.
      // This  #4521 by skipping the unnecesarry `checked` update.
      cur !== oldProps[key]
    ) {
      // some property updates can throw
      // e.g. `value` on <progress> w/ non-finite value
      try {
        elm[key] = cur;
      } catch (e) {}
    }
  }
}

// check platforms/web/util/attrs.js acceptValue


function shouldUpdateValue (elm, checkVal) {
  return (!elm.composing && (
    elm.tagName === 'OPTION' ||
    isNotInFocusAndDirty(elm, checkVal) ||
    isDirtyWithModifiers(elm, checkVal)
  ))
}

function isNotInFocusAndDirty (elm, checkVal) {
  // return true when textbox (.number and .trim) loses focus and its value is
  // not equal to the updated value
  var notInFocus = true;
  // #6157
  // work around IE bug when accessing document.activeElement in an iframe
  try { notInFocus = document.activeElement !== elm; } catch (e) {}
  return notInFocus && elm.value !== checkVal
}

function isDirtyWithModifiers (elm, newVal) {
  var value = elm.value;
  var modifiers = elm._vModifiers; // injected by v-model runtime
  if (isDef(modifiers)) {
    if (modifiers.number) {
      return toNumber(value) !== toNumber(newVal)
    }
    if (modifiers.trim) {
      return value.trim() !== newVal.trim()
    }
  }
  return value !== newVal
}

var domProps = {
  create: updateDOMProps,
  update: updateDOMProps
};

/*  */

var parseStyleText = cached(function (cssText) {
  var res = {};
  var listDelimiter = /;(?![^(]*\))/g;
  var propertyDelimiter = /:(.+)/;
  cssText.split(listDelimiter).forEach(function (item) {
    if (item) {
      var tmp = item.split(propertyDelimiter);
      tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
    }
  });
  return res
});

// merge static and dynamic style data on the same vnode
function normalizeStyleData (data) {
  var style = normalizeStyleBinding(data.style);
  // static style is pre-processed into an object during compilation
  // and is always a fresh object, so it's safe to merge into it
  return data.staticStyle
    ? extend(data.staticStyle, style)
    : style
}

// normalize possible array / string values into Object
function normalizeStyleBinding (bindingStyle) {
  if (Array.isArray(bindingStyle)) {
    return toObject(bindingStyle)
  }
  if (typeof bindingStyle === 'string') {
    return parseStyleText(bindingStyle)
  }
  return bindingStyle
}

/**
 * parent component style should be after child's
 * so that parent component's style could override it
 */
function getStyle (vnode, checkChild) {
  var res = {};
  var styleData;

  if (checkChild) {
    var childNode = vnode;
    while (childNode.componentInstance) {
      childNode = childNode.componentInstance._vnode;
      if (
        childNode && childNode.data &&
        (styleData = normalizeStyleData(childNode.data))
      ) {
        extend(res, styleData);
      }
    }
  }

  if ((styleData = normalizeStyleData(vnode.data))) {
    extend(res, styleData);
  }

  var parentNode = vnode;
  while ((parentNode = parentNode.parent)) {
    if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {
      extend(res, styleData);
    }
  }
  return res
}

/*  */

var cssVarRE = /^--/;
var importantRE = /\s*!important$/;
var setProp = function (el, name, val) {
  /* istanbul ignore if */
  if (cssVarRE.test(name)) {
    el.style.setProperty(name, val);
  } else if (importantRE.test(val)) {
    el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');
  } else {
    var normalizedName = normalize(name);
    if (Array.isArray(val)) {
      // Support values array created by autoprefixer, e.g.
      // {display: ["-webkit-box", "-ms-flexbox", "flex"]}
      // Set them one by one, and the browser will only set those it can recognize
      for (var i = 0, len = val.length; i < len; i++) {
        el.style[normalizedName] = val[i];
      }
    } else {
      el.style[normalizedName] = val;
    }
  }
};

var vendorNames = ['Webkit', 'Moz', 'ms'];

var emptyStyle;
var normalize = cached(function (prop) {
  emptyStyle = emptyStyle || document.createElement('div').style;
  prop = camelize(prop);
  if (prop !== 'filter' && (prop in emptyStyle)) {
    return prop
  }
  var capName = prop.charAt(0).toUpperCase() + prop.slice(1);
  for (var i = 0; i < vendorNames.length; i++) {
    var name = vendorNames[i] + capName;
    if (name in emptyStyle) {
      return name
    }
  }
});

function updateStyle (oldVnode, vnode) {
  var data = vnode.data;
  var oldData = oldVnode.data;

  if (isUndef(data.staticStyle) && isUndef(data.style) &&
    isUndef(oldData.staticStyle) && isUndef(oldData.style)
  ) {
    return
  }

  var cur, name;
  var el = vnode.elm;
  var oldStaticStyle = oldData.staticStyle;
  var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};

  // if static style exists, stylebinding already merged into it when doing normalizeStyleData
  var oldStyle = oldStaticStyle || oldStyleBinding;

  var style = normalizeStyleBinding(vnode.data.style) || {};

  // store normalized style under a different key for next diff
  // make sure to clone it if it's reactive, since the user likely wants
  // to mutate it.
  vnode.data.normalizedStyle = isDef(style.__ob__)
    ? extend({}, style)
    : style;

  var newStyle = getStyle(vnode, true);

  for (name in oldStyle) {
    if (isUndef(newStyle[name])) {
      setProp(el, name, '');
    }
  }
  for (name in newStyle) {
    cur = newStyle[name];
    if (cur !== oldStyle[name]) {
      // ie9 setting to null has no effect, must use empty string
      setProp(el, name, cur == null ? '' : cur);
    }
  }
}

var style = {
  create: updateStyle,
  update: updateStyle
};

/*  */

var whitespaceRE = /\s+/;

/**
 * Add class with compatibility for SVG since classList is not supported on
 * SVG elements in IE
 */
function addClass (el, cls) {
  /* istanbul ignore if */
  if (!cls || !(cls = cls.trim())) {
    return
  }

  /* istanbul ignore else */
  if (el.classList) {
    if (cls.indexOf(' ') > -1) {
      cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });
    } else {
      el.classList.add(cls);
    }
  } else {
    var cur = " " + (el.getAttribute('class') || '') + " ";
    if (cur.indexOf(' ' + cls + ' ') < 0) {
      el.setAttribute('class', (cur + cls).trim());
    }
  }
}

/**
 * Remove class with compatibility for SVG since classList is not supported on
 * SVG elements in IE
 */
function removeClass (el, cls) {
  /* istanbul ignore if */
  if (!cls || !(cls = cls.trim())) {
    return
  }

  /* istanbul ignore else */
  if (el.classList) {
    if (cls.indexOf(' ') > -1) {
      cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });
    } else {
      el.classList.remove(cls);
    }
    if (!el.classList.length) {
      el.removeAttribute('class');
    }
  } else {
    var cur = " " + (el.getAttribute('class') || '') + " ";
    var tar = ' ' + cls + ' ';
    while (cur.indexOf(tar) >= 0) {
      cur = cur.replace(tar, ' ');
    }
    cur = cur.trim();
    if (cur) {
      el.setAttribute('class', cur);
    } else {
      el.removeAttribute('class');
    }
  }
}

/*  */

function resolveTransition (def$$1) {
  if (!def$$1) {
    return
  }
  /* istanbul ignore else */
  if (typeof def$$1 === 'object') {
    var res = {};
    if (def$$1.css !== false) {
      extend(res, autoCssTransition(def$$1.name || 'v'));
    }
    extend(res, def$$1);
    return res
  } else if (typeof def$$1 === 'string') {
    return autoCssTransition(def$$1)
  }
}

var autoCssTransition = cached(function (name) {
  return {
    enterClass: (name + "-enter"),
    enterToClass: (name + "-enter-to"),
    enterActiveClass: (name + "-enter-active"),
    leaveClass: (name + "-leave"),
    leaveToClass: (name + "-leave-to"),
    leaveActiveClass: (name + "-leave-active")
  }
});

var hasTransition = inBrowser && !isIE9;
var TRANSITION = 'transition';
var ANIMATION = 'animation';

// Transition property/event sniffing
var transitionProp = 'transition';
var transitionEndEvent = 'transitionend';
var animationProp = 'animation';
var animationEndEvent = 'animationend';
if (hasTransition) {
  /* istanbul ignore if */
  if (window.ontransitionend === undefined &&
    window.onwebkittransitionend !== undefined
  ) {
    transitionProp = 'WebkitTransition';
    transitionEndEvent = 'webkitTransitionEnd';
  }
  if (window.onanimationend === undefined &&
    window.onwebkitanimationend !== undefined
  ) {
    animationProp = 'WebkitAnimation';
    animationEndEvent = 'webkitAnimationEnd';
  }
}

// binding to window is necessary to make hot reload work in IE in strict mode
var raf = inBrowser
  ? window.requestAnimationFrame
    ? window.requestAnimationFrame.bind(window)
    : setTimeout
  : /* istanbul ignore next */ function (fn) { return fn(); };

function nextFrame (fn) {
  raf(function () {
    raf(fn);
  });
}

function addTransitionClass (el, cls) {
  var transitionClasses = el._transitionClasses || (el._transitionClasses = []);
  if (transitionClasses.indexOf(cls) < 0) {
    transitionClasses.push(cls);
    addClass(el, cls);
  }
}

function removeTransitionClass (el, cls) {
  if (el._transitionClasses) {
    remove(el._transitionClasses, cls);
  }
  removeClass(el, cls);
}

function whenTransitionEnds (
  el,
  expectedType,
  cb
) {
  var ref = getTransitionInfo(el, expectedType);
  var type = ref.type;
  var timeout = ref.timeout;
  var propCount = ref.propCount;
  if (!type) { return cb() }
  var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;
  var ended = 0;
  var end = function () {
    el.removeEventListener(event, onEnd);
    cb();
  };
  var onEnd = function (e) {
    if (e.target === el) {
      if (++ended >= propCount) {
        end();
      }
    }
  };
  setTimeout(function () {
    if (ended < propCount) {
      end();
    }
  }, timeout + 1);
  el.addEventListener(event, onEnd);
}

var transformRE = /\b(transform|all)(,|$)/;

function getTransitionInfo (el, expectedType) {
  var styles = window.getComputedStyle(el);
  // JSDOM may return undefined for transition properties
  var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');
  var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');
  var transitionTimeout = getTimeout(transitionDelays, transitionDurations);
  var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');
  var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');
  var animationTimeout = getTimeout(animationDelays, animationDurations);

  var type;
  var timeout = 0;
  var propCount = 0;
  /* istanbul ignore if */
  if (expectedType === TRANSITION) {
    if (transitionTimeout > 0) {
      type = TRANSITION;
      timeout = transitionTimeout;
      propCount = transitionDurations.length;
    }
  } else if (expectedType === ANIMATION) {
    if (animationTimeout > 0) {
      type = ANIMATION;
      timeout = animationTimeout;
      propCount = animationDurations.length;
    }
  } else {
    timeout = Math.max(transitionTimeout, animationTimeout);
    type = timeout > 0
      ? transitionTimeout > animationTimeout
        ? TRANSITION
        : ANIMATION
      : null;
    propCount = type
      ? type === TRANSITION
        ? transitionDurations.length
        : animationDurations.length
      : 0;
  }
  var hasTransform =
    type === TRANSITION &&
    transformRE.test(styles[transitionProp + 'Property']);
  return {
    type: type,
    timeout: timeout,
    propCount: propCount,
    hasTransform: hasTransform
  }
}

function getTimeout (delays, durations) {
  /* istanbul ignore next */
  while (delays.length < durations.length) {
    delays = delays.concat(delays);
  }

  return Math.max.apply(null, durations.map(function (d, i) {
    return toMs(d) + toMs(delays[i])
  }))
}

// Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers
// in a locale-dependent way, using a comma instead of a dot.
// If comma is not replaced with a dot, the input will be rounded down (i.e. acting
// as a floor function) causing unexpected behaviors
function toMs (s) {
  return Number(s.slice(0, -1).replace(',', '.')) * 1000
}

/*  */

function enter (vnode, toggleDisplay) {
  var el = vnode.elm;

  // call leave callback now
  if (isDef(el._leaveCb)) {
    el._leaveCb.cancelled = true;
    el._leaveCb();
  }

  var data = resolveTransition(vnode.data.transition);
  if (isUndef(data)) {
    return
  }

  /* istanbul ignore if */
  if (isDef(el._enterCb) || el.nodeType !== 1) {
    return
  }

  var css = data.css;
  var type = data.type;
  var enterClass = data.enterClass;
  var enterToClass = data.enterToClass;
  var enterActiveClass = data.enterActiveClass;
  var appearClass = data.appearClass;
  var appearToClass = data.appearToClass;
  var appearActiveClass = data.appearActiveClass;
  var beforeEnter = data.beforeEnter;
  var enter = data.enter;
  var afterEnter = data.afterEnter;
  var enterCancelled = data.enterCancelled;
  var beforeAppear = data.beforeAppear;
  var appear = data.appear;
  var afterAppear = data.afterAppear;
  var appearCancelled = data.appearCancelled;
  var duration = data.duration;

  // activeInstance will always be the <transition> component managing this
  // transition. One edge case to check is when the <transition> is placed
  // as the root node of a child component. In that case we need to check
  // <transition>'s parent for appear check.
  var context = activeInstance;
  var transitionNode = activeInstance.$vnode;
  while (transitionNode && transitionNode.parent) {
    context = transitionNode.context;
    transitionNode = transitionNode.parent;
  }

  var isAppear = !context._isMounted || !vnode.isRootInsert;

  if (isAppear && !appear && appear !== '') {
    return
  }

  var startClass = isAppear && appearClass
    ? appearClass
    : enterClass;
  var activeClass = isAppear && appearActiveClass
    ? appearActiveClass
    : enterActiveClass;
  var toClass = isAppear && appearToClass
    ? appearToClass
    : enterToClass;

  var beforeEnterHook = isAppear
    ? (beforeAppear || beforeEnter)
    : beforeEnter;
  var enterHook = isAppear
    ? (typeof appear === 'function' ? appear : enter)
    : enter;
  var afterEnterHook = isAppear
    ? (afterAppear || afterEnter)
    : afterEnter;
  var enterCancelledHook = isAppear
    ? (appearCancelled || enterCancelled)
    : enterCancelled;

  var explicitEnterDuration = toNumber(
    isObject(duration)
      ? duration.enter
      : duration
  );

  if (explicitEnterDuration != null) {
    checkDuration(explicitEnterDuration, 'enter', vnode);
  }

  var expectsCSS = css !== false && !isIE9;
  var userWantsControl = getHookArgumentsLength(enterHook);

  var cb = el._enterCb = once(function () {
    if (expectsCSS) {
      removeTransitionClass(el, toClass);
      removeTransitionClass(el, activeClass);
    }
    if (cb.cancelled) {
      if (expectsCSS) {
        removeTransitionClass(el, startClass);
      }
      enterCancelledHook && enterCancelledHook(el);
    } else {
      afterEnterHook && afterEnterHook(el);
    }
    el._enterCb = null;
  });

  if (!vnode.data.show) {
    // remove pending leave element on enter by injecting an insert hook
    mergeVNodeHook(vnode, 'insert', function () {
      var parent = el.parentNode;
      var pendingNode = parent && parent._pending && parent._pending[vnode.key];
      if (pendingNode &&
        pendingNode.tag === vnode.tag &&
        pendingNode.elm._leaveCb
      ) {
        pendingNode.elm._leaveCb();
      }
      enterHook && enterHook(el, cb);
    });
  }

  // start enter transition
  beforeEnterHook && beforeEnterHook(el);
  if (expectsCSS) {
    addTransitionClass(el, startClass);
    addTransitionClass(el, activeClass);
    nextFrame(function () {
      removeTransitionClass(el, startClass);
      if (!cb.cancelled) {
        addTransitionClass(el, toClass);
        if (!userWantsControl) {
          if (isValidDuration(explicitEnterDuration)) {
            setTimeout(cb, explicitEnterDuration);
          } else {
            whenTransitionEnds(el, type, cb);
          }
        }
      }
    });
  }

  if (vnode.data.show) {
    toggleDisplay && toggleDisplay();
    enterHook && enterHook(el, cb);
  }

  if (!expectsCSS && !userWantsControl) {
    cb();
  }
}

function leave (vnode, rm) {
  var el = vnode.elm;

  // call enter callback now
  if (isDef(el._enterCb)) {
    el._enterCb.cancelled = true;
    el._enterCb();
  }

  var data = resolveTransition(vnode.data.transition);
  if (isUndef(data) || el.nodeType !== 1) {
    return rm()
  }

  /* istanbul ignore if */
  if (isDef(el._leaveCb)) {
    return
  }

  var css = data.css;
  var type = data.type;
  var leaveClass = data.leaveClass;
  var leaveToClass = data.leaveToClass;
  var leaveActiveClass = data.leaveActiveClass;
  var beforeLeave = data.beforeLeave;
  var leave = data.leave;
  var afterLeave = data.afterLeave;
  var leaveCancelled = data.leaveCancelled;
  var delayLeave = data.delayLeave;
  var duration = data.duration;

  var expectsCSS = css !== false && !isIE9;
  var userWantsControl = getHookArgumentsLength(leave);

  var explicitLeaveDuration = toNumber(
    isObject(duration)
      ? duration.leave
      : duration
  );

  if (isDef(explicitLeaveDuration)) {
    checkDuration(explicitLeaveDuration, 'leave', vnode);
  }

  var cb = el._leaveCb = once(function () {
    if (el.parentNode && el.parentNode._pending) {
      el.parentNode._pending[vnode.key] = null;
    }
    if (expectsCSS) {
      removeTransitionClass(el, leaveToClass);
      removeTransitionClass(el, leaveActiveClass);
    }
    if (cb.cancelled) {
      if (expectsCSS) {
        removeTransitionClass(el, leaveClass);
      }
      leaveCancelled && leaveCancelled(el);
    } else {
      rm();
      afterLeave && afterLeave(el);
    }
    el._leaveCb = null;
  });

  if (delayLeave) {
    delayLeave(performLeave);
  } else {
    performLeave();
  }

  function performLeave () {
    // the delayed leave may have already been cancelled
    if (cb.cancelled) {
      return
    }
    // record leaving element
    if (!vnode.data.show && el.parentNode) {
      (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;
    }
    beforeLeave && beforeLeave(el);
    if (expectsCSS) {
      addTransitionClass(el, leaveClass);
      addTransitionClass(el, leaveActiveClass);
      nextFrame(function () {
        removeTransitionClass(el, leaveClass);
        if (!cb.cancelled) {
          addTransitionClass(el, leaveToClass);
          if (!userWantsControl) {
            if (isValidDuration(explicitLeaveDuration)) {
              setTimeout(cb, explicitLeaveDuration);
            } else {
              whenTransitionEnds(el, type, cb);
            }
          }
        }
      });
    }
    leave && leave(el, cb);
    if (!expectsCSS && !userWantsControl) {
      cb();
    }
  }
}

// only used in dev mode
function checkDuration (val, name, vnode) {
  if (typeof val !== 'number') {
    warn(
      "<transition> explicit " + name + " duration is not a valid number - " +
      "got " + (JSON.stringify(val)) + ".",
      vnode.context
    );
  } else if (isNaN(val)) {
    warn(
      "<transition> explicit " + name + " duration is NaN - " +
      'the duration expression might be incorrect.',
      vnode.context
    );
  }
}

function isValidDuration (val) {
  return typeof val === 'number' && !isNaN(val)
}

/**
 * Normalize a transition hook's argument length. The hook may be:
 * - a merged hook (invoker) with the original in .fns
 * - a wrapped component method (check ._length)
 * - a plain function (.length)
 */
function getHookArgumentsLength (fn) {
  if (isUndef(fn)) {
    return false
  }
  var invokerFns = fn.fns;
  if (isDef(invokerFns)) {
    // invoker
    return getHookArgumentsLength(
      Array.isArray(invokerFns)
        ? invokerFns[0]
        : invokerFns
    )
  } else {
    return (fn._length || fn.length) > 1
  }
}

function _enter (_, vnode) {
  if (vnode.data.show !== true) {
    enter(vnode);
  }
}

var transition = inBrowser ? {
  create: _enter,
  activate: _enter,
  remove: function remove$$1 (vnode, rm) {
    /* istanbul ignore else */
    if (vnode.data.show !== true) {
      leave(vnode, rm);
    } else {
      rm();
    }
  }
} : {};

var platformModules = [
  attrs,
  klass,
  events,
  domProps,
  style,
  transition
];

/*  */

// the directive module should be applied last, after all
// built-in modules have been applied.
var modules = platformModules.concat(baseModules);

var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });

/**
 * Not type checking this file because flow doesn't like attaching
 * properties to Elements.
 */

/* istanbul ignore if */
if (isIE9) {
  // http://www.matts411.com/post/internet-explorer-9-oninput/
  document.addEventListener('selectionchange', function () {
    var el = document.activeElement;
    if (el && el.vmodel) {
      trigger(el, 'input');
    }
  });
}

var directive = {
  inserted: function inserted (el, binding, vnode, oldVnode) {
    if (vnode.tag === 'select') {
      // #6903
      if (oldVnode.elm && !oldVnode.elm._vOptions) {
        mergeVNodeHook(vnode, 'postpatch', function () {
          directive.componentUpdated(el, binding, vnode);
        });
      } else {
        setSelected(el, binding, vnode.context);
      }
      el._vOptions = [].map.call(el.options, getValue);
    } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {
      el._vModifiers = binding.modifiers;
      if (!binding.modifiers.lazy) {
        el.addEventListener('compositionstart', onCompositionStart);
        el.addEventListener('compositionend', onCompositionEnd);
        // Safari < 10.2 & UIWebView doesn't fire compositionend when
        // switching focus before confirming composition choice
        // this also fixes the issue where some browsers e.g. iOS Chrome
        // fires "change" instead of "input" on autocomplete.
        el.addEventListener('change', onCompositionEnd);
        /* istanbul ignore if */
        if (isIE9) {
          el.vmodel = true;
        }
      }
    }
  },

  componentUpdated: function componentUpdated (el, binding, vnode) {
    if (vnode.tag === 'select') {
      setSelected(el, binding, vnode.context);
      // in case the options rendered by v-for have changed,
      // it's possible that the value is out-of-sync with the rendered options.
      // detect such cases and filter out values that no longer has a matching
      // option in the DOM.
      var prevOptions = el._vOptions;
      var curOptions = el._vOptions = [].map.call(el.options, getValue);
      if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {
        // trigger change event if
        // no matching option found for at least one value
        var needReset = el.multiple
          ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })
          : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);
        if (needReset) {
          trigger(el, 'change');
        }
      }
    }
  }
};

function setSelected (el, binding, vm) {
  actuallySetSelected(el, binding, vm);
  /* istanbul ignore if */
  if (isIE || isEdge) {
    setTimeout(function () {
      actuallySetSelected(el, binding, vm);
    }, 0);
  }
}

function actuallySetSelected (el, binding, vm) {
  var value = binding.value;
  var isMultiple = el.multiple;
  if (isMultiple && !Array.isArray(value)) {
    warn(
      "<select multiple v-model=\"" + (binding.expression) + "\"> " +
      "expects an Array value for its binding, but got " + (Object.prototype.toString.call(value).slice(8, -1)),
      vm
    );
    return
  }
  var selected, option;
  for (var i = 0, l = el.options.length; i < l; i++) {
    option = el.options[i];
    if (isMultiple) {
      selected = looseIndexOf(value, getValue(option)) > -1;
      if (option.selected !== selected) {
        option.selected = selected;
      }
    } else {
      if (looseEqual(getValue(option), value)) {
        if (el.selectedIndex !== i) {
          el.selectedIndex = i;
        }
        return
      }
    }
  }
  if (!isMultiple) {
    el.selectedIndex = -1;
  }
}

function hasNoMatchingOption (value, options) {
  return options.every(function (o) { return !looseEqual(o, value); })
}

function getValue (option) {
  return '_value' in option
    ? option._value
    : option.value
}

function onCompositionStart (e) {
  e.target.composing = true;
}

function onCompositionEnd (e) {
  // prevent triggering an input event for no reason
  if (!e.target.composing) { return }
  e.target.composing = false;
  trigger(e.target, 'input');
}

function trigger (el, type) {
  var e = document.createEvent('HTMLEvents');
  e.initEvent(type, true, true);
  el.dispatchEvent(e);
}

/*  */

// recursively search for possible transition defined inside the component root
function locateNode (vnode) {
  return vnode.componentInstance && (!vnode.data || !vnode.data.transition)
    ? locateNode(vnode.componentInstance._vnode)
    : vnode
}

var show = {
  bind: function bind (el, ref, vnode) {
    var value = ref.value;

    vnode = locateNode(vnode);
    var transition$$1 = vnode.data && vnode.data.transition;
    var originalDisplay = el.__vOriginalDisplay =
      el.style.display === 'none' ? '' : el.style.display;
    if (value && transition$$1) {
      vnode.data.show = true;
      enter(vnode, function () {
        el.style.display = originalDisplay;
      });
    } else {
      el.style.display = value ? originalDisplay : 'none';
    }
  },

  update: function update (el, ref, vnode) {
    var value = ref.value;
    var oldValue = ref.oldValue;

    /* istanbul ignore if */
    if (!value === !oldValue) { return }
    vnode = locateNode(vnode);
    var transition$$1 = vnode.data && vnode.data.transition;
    if (transition$$1) {
      vnode.data.show = true;
      if (value) {
        enter(vnode, function () {
          el.style.display = el.__vOriginalDisplay;
        });
      } else {
        leave(vnode, function () {
          el.style.display = 'none';
        });
      }
    } else {
      el.style.display = value ? el.__vOriginalDisplay : 'none';
    }
  },

  unbind: function unbind (
    el,
    binding,
    vnode,
    oldVnode,
    isDestroy
  ) {
    if (!isDestroy) {
      el.style.display = el.__vOriginalDisplay;
    }
  }
};

var platformDirectives = {
  model: directive,
  show: show
};

/*  */

var transitionProps = {
  name: String,
  appear: Boolean,
  css: Boolean,
  mode: String,
  type: String,
  enterClass: String,
  leaveClass: String,
  enterToClass: String,
  leaveToClass: String,
  enterActiveClass: String,
  leaveActiveClass: String,
  appearClass: String,
  appearActiveClass: String,
  appearToClass: String,
  duration: [Number, String, Object]
};

// in case the child is also an abstract component, e.g. <keep-alive>
// we want to recursively retrieve the real component to be rendered
function getRealChild (vnode) {
  var compOptions = vnode && vnode.componentOptions;
  if (compOptions && compOptions.Ctor.options.abstract) {
    return getRealChild(getFirstComponentChild(compOptions.children))
  } else {
    return vnode
  }
}

function extractTransitionData (comp) {
  var data = {};
  var options = comp.$options;
  // props
  for (var key in options.propsData) {
    data[key] = comp[key];
  }
  // events.
  // extract listeners and pass them directly to the transition methods
  var listeners = options._parentListeners;
  for (var key$1 in listeners) {
    data[camelize(key$1)] = listeners[key$1];
  }
  return data
}

function placeholder (h, rawChild) {
  if (/\d-keep-alive$/.test(rawChild.tag)) {
    return h('keep-alive', {
      props: rawChild.componentOptions.propsData
    })
  }
}

function hasParentTransition (vnode) {
  while ((vnode = vnode.parent)) {
    if (vnode.data.transition) {
      return true
    }
  }
}

function isSameChild (child, oldChild) {
  return oldChild.key === child.key && oldChild.tag === child.tag
}

var isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };

var isVShowDirective = function (d) { return d.name === 'show'; };

var Transition = {
  name: 'transition',
  props: transitionProps,
  abstract: true,

  render: function render (h) {
    var this$1 = this;

    var children = this.$slots.default;
    if (!children) {
      return
    }

    // filter out text nodes (possible whitespaces)
    children = children.filter(isNotTextNode);
    /* istanbul ignore if */
    if (!children.length) {
      return
    }

    // warn multiple elements
    if (children.length > 1) {
      warn(
        '<transition> can only be used on a single element. Use ' +
        '<transition-group> for lists.',
        this.$parent
      );
    }

    var mode = this.mode;

    // warn invalid mode
    if (mode && mode !== 'in-out' && mode !== 'out-in'
    ) {
      warn(
        'invalid <transition> mode: ' + mode,
        this.$parent
      );
    }

    var rawChild = children[0];

    // if this is a component root node and the component's
    // parent container node also has transition, skip.
    if (hasParentTransition(this.$vnode)) {
      return rawChild
    }

    // apply transition data to child
    // use getRealChild() to ignore abstract components e.g. keep-alive
    var child = getRealChild(rawChild);
    /* istanbul ignore if */
    if (!child) {
      return rawChild
    }

    if (this._leaving) {
      return placeholder(h, rawChild)
    }

    // ensure a key that is unique to the vnode type and to this transition
    // component instance. This key will be used to remove pending leaving nodes
    // during entering.
    var id = "__transition-" + (this._uid) + "-";
    child.key = child.key == null
      ? child.isComment
        ? id + 'comment'
        : id + child.tag
      : isPrimitive(child.key)
        ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)
        : child.key;

    var data = (child.data || (child.data = {})).transition = extractTransitionData(this);
    var oldRawChild = this._vnode;
    var oldChild = getRealChild(oldRawChild);

    // mark v-show
    // so that the transition module can hand over the control to the directive
    if (child.data.directives && child.data.directives.some(isVShowDirective)) {
      child.data.show = true;
    }

    if (
      oldChild &&
      oldChild.data &&
      !isSameChild(child, oldChild) &&
      !isAsyncPlaceholder(oldChild) &&
      // #6687 component root is a comment node
      !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)
    ) {
      // replace old child transition data with fresh one
      // important for dynamic transitions!
      var oldData = oldChild.data.transition = extend({}, data);
      // handle transition mode
      if (mode === 'out-in') {
        // return placeholder node and queue update when leave finishes
        this._leaving = true;
        mergeVNodeHook(oldData, 'afterLeave', function () {
          this$1._leaving = false;
          this$1.$forceUpdate();
        });
        return placeholder(h, rawChild)
      } else if (mode === 'in-out') {
        if (isAsyncPlaceholder(child)) {
          return oldRawChild
        }
        var delayedLeave;
        var performLeave = function () { delayedLeave(); };
        mergeVNodeHook(data, 'afterEnter', performLeave);
        mergeVNodeHook(data, 'enterCancelled', performLeave);
        mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });
      }
    }

    return rawChild
  }
};

/*  */

var props = extend({
  tag: String,
  moveClass: String
}, transitionProps);

delete props.mode;

var TransitionGroup = {
  props: props,

  beforeMount: function beforeMount () {
    var this$1 = this;

    var update = this._update;
    this._update = function (vnode, hydrating) {
      var restoreActiveInstance = setActiveInstance(this$1);
      // force removing pass
      this$1.__patch__(
        this$1._vnode,
        this$1.kept,
        false, // hydrating
        true // removeOnly (!important, avoids unnecessary moves)
      );
      this$1._vnode = this$1.kept;
      restoreActiveInstance();
      update.call(this$1, vnode, hydrating);
    };
  },

  render: function render (h) {
    var tag = this.tag || this.$vnode.data.tag || 'span';
    var map = Object.create(null);
    var prevChildren = this.prevChildren = this.children;
    var rawChildren = this.$slots.default || [];
    var children = this.children = [];
    var transitionData = extractTransitionData(this);

    for (var i = 0; i < rawChildren.length; i++) {
      var c = rawChildren[i];
      if (c.tag) {
        if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {
          children.push(c);
          map[c.key] = c
          ;(c.data || (c.data = {})).transition = transitionData;
        } else {
          var opts = c.componentOptions;
          var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;
          warn(("<transition-group> children must be keyed: <" + name + ">"));
        }
      }
    }

    if (prevChildren) {
      var kept = [];
      var removed = [];
      for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {
        var c$1 = prevChildren[i$1];
        c$1.data.transition = transitionData;
        c$1.data.pos = c$1.elm.getBoundingClientRect();
        if (map[c$1.key]) {
          kept.push(c$1);
        } else {
          removed.push(c$1);
        }
      }
      this.kept = h(tag, null, kept);
      this.removed = removed;
    }

    return h(tag, null, children)
  },

  updated: function updated () {
    var children = this.prevChildren;
    var moveClass = this.moveClass || ((this.name || 'v') + '-move');
    if (!children.length || !this.hasMove(children[0].elm, moveClass)) {
      return
    }

    // we divide the work into three loops to avoid mixing DOM reads and writes
    // in each iteration - which helps prevent layout thrashing.
    children.forEach(callPendingCbs);
    children.forEach(recordPosition);
    children.forEach(applyTranslation);

    // force reflow to put everything in position
    // assign to this to avoid being removed in tree-shaking
    // $flow-disable-line
    this._reflow = document.body.offsetHeight;

    children.forEach(function (c) {
      if (c.data.moved) {
        var el = c.elm;
        var s = el.style;
        addTransitionClass(el, moveClass);
        s.transform = s.WebkitTransform = s.transitionDuration = '';
        el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {
          if (e && e.target !== el) {
            return
          }
          if (!e || /transform$/.test(e.propertyName)) {
            el.removeEventListener(transitionEndEvent, cb);
            el._moveCb = null;
            removeTransitionClass(el, moveClass);
          }
        });
      }
    });
  },

  methods: {
    hasMove: function hasMove (el, moveClass) {
      /* istanbul ignore if */
      if (!hasTransition) {
        return false
      }
      /* istanbul ignore if */
      if (this._hasMove) {
        return this._hasMove
      }
      // Detect whether an element with the move class applied has
      // CSS transitions. Since the element may be inside an entering
      // transition at this very moment, we make a clone of it and remove
      // all other transition classes applied to ensure only the move class
      // is applied.
      var clone = el.cloneNode();
      if (el._transitionClasses) {
        el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });
      }
      addClass(clone, moveClass);
      clone.style.display = 'none';
      this.$el.appendChild(clone);
      var info = getTransitionInfo(clone);
      this.$el.removeChild(clone);
      return (this._hasMove = info.hasTransform)
    }
  }
};

function callPendingCbs (c) {
  /* istanbul ignore if */
  if (c.elm._moveCb) {
    c.elm._moveCb();
  }
  /* istanbul ignore if */
  if (c.elm._enterCb) {
    c.elm._enterCb();
  }
}

function recordPosition (c) {
  c.data.newPos = c.elm.getBoundingClientRect();
}

function applyTranslation (c) {
  var oldPos = c.data.pos;
  var newPos = c.data.newPos;
  var dx = oldPos.left - newPos.left;
  var dy = oldPos.top - newPos.top;
  if (dx || dy) {
    c.data.moved = true;
    var s = c.elm.style;
    s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)";
    s.transitionDuration = '0s';
  }
}

var platformComponents = {
  Transition: Transition,
  TransitionGroup: TransitionGroup
};

/*  */

// install platform specific utils
Vue.config.mustUseProp = mustUseProp;
Vue.config.isReservedTag = isReservedTag;
Vue.config.isReservedAttr = isReservedAttr;
Vue.config.getTagNamespace = getTagNamespace;
Vue.config.isUnknownElement = isUnknownElement;

// install platform runtime directives & components
extend(Vue.options.directives, platformDirectives);
extend(Vue.options.components, platformComponents);

// install platform patch function
Vue.prototype.__patch__ = inBrowser ? patch : noop;

// public mount method
Vue.prototype.$mount = function (
  el,
  hydrating
) {
  el = el && inBrowser ? query(el) : undefined;
  return mountComponent(this, el, hydrating)
};

// devtools global hook
/* istanbul ignore next */
if (inBrowser) {
  setTimeout(function () {
    if (config.devtools) {
      if (devtools) {
        devtools.emit('init', Vue);
      } else {
        console[console.info ? 'info' : 'log'](
          'Download the Vue Devtools extension for a better development experience:\n' +
          'https://github.com/vuejs/vue-devtools'
        );
      }
    }
    if (config.productionTip !== false &&
      typeof console !== 'undefined'
    ) {
      console[console.info ? 'info' : 'log'](
        "You are running Vue in development mode.\n" +
        "Make sure to turn on production mode when deploying for production.\n" +
        "See more tips at https://vuejs.org/guide/deployment.html"
      );
    }
  }, 0);
}

/*  */

var defaultTagRE = /\{\{((?:.|\r?\n)+?)\}\}/g;
var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;

var buildRegex = cached(function (delimiters) {
  var open = delimiters[0].replace(regexEscapeRE, '\\$&');
  var close = delimiters[1].replace(regexEscapeRE, '\\$&');
  return new RegExp(open + '((?:.|\\n)+?)' + close, 'g')
});



function parseText (
  text,
  delimiters
) {
  var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;
  if (!tagRE.test(text)) {
    return
  }
  var tokens = [];
  var rawTokens = [];
  var lastIndex = tagRE.lastIndex = 0;
  var match, index, tokenValue;
  while ((match = tagRE.exec(text))) {
    index = match.index;
    // push text token
    if (index > lastIndex) {
      rawTokens.push(tokenValue = text.slice(lastIndex, index));
      tokens.push(JSON.stringify(tokenValue));
    }
    // tag token
    var exp = parseFilters(match[1].trim());
    tokens.push(("_s(" + exp + ")"));
    rawTokens.push({ '@binding': exp });
    lastIndex = index + match[0].length;
  }
  if (lastIndex < text.length) {
    rawTokens.push(tokenValue = text.slice(lastIndex));
    tokens.push(JSON.stringify(tokenValue));
  }
  return {
    expression: tokens.join('+'),
    tokens: rawTokens
  }
}

/*  */

function transformNode (el, options) {
  var warn = options.warn || baseWarn;
  var staticClass = getAndRemoveAttr(el, 'class');
  if (staticClass) {
    var res = parseText(staticClass, options.delimiters);
    if (res) {
      warn(
        "class=\"" + staticClass + "\": " +
        'Interpolation inside attributes has been removed. ' +
        'Use v-bind or the colon shorthand instead. For example, ' +
        'instead of <div class="{{ val }}">, use <div :class="val">.',
        el.rawAttrsMap['class']
      );
    }
  }
  if (staticClass) {
    el.staticClass = JSON.stringify(staticClass);
  }
  var classBinding = getBindingAttr(el, 'class', false /* getStatic */);
  if (classBinding) {
    el.classBinding = classBinding;
  }
}

function genData (el) {
  var data = '';
  if (el.staticClass) {
    data += "staticClass:" + (el.staticClass) + ",";
  }
  if (el.classBinding) {
    data += "class:" + (el.classBinding) + ",";
  }
  return data
}

var klass$1 = {
  staticKeys: ['staticClass'],
  transformNode: transformNode,
  genData: genData
};

/*  */

function transformNode$1 (el, options) {
  var warn = options.warn || baseWarn;
  var staticStyle = getAndRemoveAttr(el, 'style');
  if (staticStyle) {
    /* istanbul ignore if */
    {
      var res = parseText(staticStyle, options.delimiters);
      if (res) {
        warn(
          "style=\"" + staticStyle + "\": " +
          'Interpolation inside attributes has been removed. ' +
          'Use v-bind or the colon shorthand instead. For example, ' +
          'instead of <div style="{{ val }}">, use <div :style="val">.',
          el.rawAttrsMap['style']
        );
      }
    }
    el.staticStyle = JSON.stringify(parseStyleText(staticStyle));
  }

  var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);
  if (styleBinding) {
    el.styleBinding = styleBinding;
  }
}

function genData$1 (el) {
  var data = '';
  if (el.staticStyle) {
    data += "staticStyle:" + (el.staticStyle) + ",";
  }
  if (el.styleBinding) {
    data += "style:(" + (el.styleBinding) + "),";
  }
  return data
}

var style$1 = {
  staticKeys: ['staticStyle'],
  transformNode: transformNode$1,
  genData: genData$1
};

/*  */

var decoder;

var he = {
  decode: function decode (html) {
    decoder = decoder || document.createElement('div');
    decoder.innerHTML = html;
    return decoder.textContent
  }
};

/*  */

var isUnaryTag = makeMap(
  'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +
  'link,meta,param,source,track,wbr'
);

// Elements that you can, intentionally, leave open
// (and which close themselves)
var canBeLeftOpenTag = makeMap(
  'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'
);

// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3
// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content
var isNonPhrasingTag = makeMap(
  'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +
  'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +
  'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +
  'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +
  'title,tr,track'
);

/**
 * Not type-checking this file because it's mostly vendor code.
 */

// Regular Expressions for parsing tags and attributes
var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
var dynamicArgAttribute = /^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
var ncname = "[a-zA-Z_][\\-\\.0-9_a-zA-Z" + (unicodeRegExp.source) + "]*";
var qnameCapture = "((?:" + ncname + "\\:)?" + ncname + ")";
var startTagOpen = new RegExp(("^<" + qnameCapture));
var startTagClose = /^\s*(\/?)>/;
var endTag = new RegExp(("^<\\/" + qnameCapture + "[^>]*>"));
var doctype = /^<!DOCTYPE [^>]+>/i;
// #7298: escape - to avoid being pased as HTML comment when inlined in page
var comment = /^<!\--/;
var conditionalComment = /^<!\[/;

// Special Elements (can contain anything)
var isPlainTextElement = makeMap('script,style,textarea', true);
var reCache = {};

var decodingMap = {
  '&lt;': '<',
  '&gt;': '>',
  '&quot;': '"',
  '&amp;': '&',
  '&#10;': '\n',
  '&#9;': '\t',
  '&#39;': "'"
};
var encodedAttr = /&(?:lt|gt|quot|amp|#39);/g;
var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g;

// #5992
var isIgnoreNewlineTag = makeMap('pre,textarea', true);
var shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\n'; };

function decodeAttr (value, shouldDecodeNewlines) {
  var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;
  return value.replace(re, function (match) { return decodingMap[match]; })
}

function parseHTML (html, options) {
  var stack = [];
  var expectHTML = options.expectHTML;
  var isUnaryTag$$1 = options.isUnaryTag || no;
  var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;
  var index = 0;
  var last, lastTag;
  while (html) {
    last = html;
    // Make sure we're not in a plaintext content element like script/style
    if (!lastTag || !isPlainTextElement(lastTag)) {
      var textEnd = html.indexOf('<');
      if (textEnd === 0) {
        // Comment:
        if (comment.test(html)) {
          var commentEnd = html.indexOf('-->');

          if (commentEnd >= 0) {
            if (options.shouldKeepComment) {
              options.comment(html.substring(4, commentEnd), index, index + commentEnd + 3);
            }
            advance(commentEnd + 3);
            continue
          }
        }

        // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
        if (conditionalComment.test(html)) {
          var conditionalEnd = html.indexOf(']>');

          if (conditionalEnd >= 0) {
            advance(conditionalEnd + 2);
            continue
          }
        }

        // Doctype:
        var doctypeMatch = html.match(doctype);
        if (doctypeMatch) {
          advance(doctypeMatch[0].length);
          continue
        }

        // End tag:
        var endTagMatch = html.match(endTag);
        if (endTagMatch) {
          var curIndex = index;
          advance(endTagMatch[0].length);
          parseEndTag(endTagMatch[1], curIndex, index);
          continue
        }

        // Start tag:
        var startTagMatch = parseStartTag();
        if (startTagMatch) {
          handleStartTag(startTagMatch);
          if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {
            advance(1);
          }
          continue
        }
      }

      var text = (void 0), rest = (void 0), next = (void 0);
      if (textEnd >= 0) {
        rest = html.slice(textEnd);
        while (
          !endTag.test(rest) &&
          !startTagOpen.test(rest) &&
          !comment.test(rest) &&
          !conditionalComment.test(rest)
        ) {
          // < in plain text, be forgiving and treat it as text
          next = rest.indexOf('<', 1);
          if (next < 0) { break }
          textEnd += next;
          rest = html.slice(textEnd);
        }
        text = html.substring(0, textEnd);
      }

      if (textEnd < 0) {
        text = html;
      }

      if (text) {
        advance(text.length);
      }

      if (options.chars && text) {
        options.chars(text, index - text.length, index);
      }
    } else {
      var endTagLength = 0;
      var stackedTag = lastTag.toLowerCase();
      var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));
      var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {
        endTagLength = endTag.length;
        if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {
          text = text
            .replace(/<!\--([\s\S]*?)-->/g, '$1') // #7298
            .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');
        }
        if (shouldIgnoreFirstNewline(stackedTag, text)) {
          text = text.slice(1);
        }
        if (options.chars) {
          options.chars(text);
        }
        return ''
      });
      index += html.length - rest$1.length;
      html = rest$1;
      parseEndTag(stackedTag, index - endTagLength, index);
    }

    if (html === last) {
      options.chars && options.chars(html);
      if (!stack.length && options.warn) {
        options.warn(("Mal-formatted tag at end of template: \"" + html + "\""), { start: index + html.length });
      }
      break
    }
  }

  // Clean up any remaining tags
  parseEndTag();

  function advance (n) {
    index += n;
    html = html.substring(n);
  }

  function parseStartTag () {
    var start = html.match(startTagOpen);
    if (start) {
      var match = {
        tagName: start[1],
        attrs: [],
        start: index
      };
      advance(start[0].length);
      var end, attr;
      while (!(end = html.match(startTagClose)) && (attr = html.match(dynamicArgAttribute) || html.match(attribute))) {
        attr.start = index;
        advance(attr[0].length);
        attr.end = index;
        match.attrs.push(attr);
      }
      if (end) {
        match.unarySlash = end[1];
        advance(end[0].length);
        match.end = index;
        return match
      }
    }
  }

  function handleStartTag (match) {
    var tagName = match.tagName;
    var unarySlash = match.unarySlash;

    if (expectHTML) {
      if (lastTag === 'p' && isNonPhrasingTag(tagName)) {
        parseEndTag(lastTag);
      }
      if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {
        parseEndTag(tagName);
      }
    }

    var unary = isUnaryTag$$1(tagName) || !!unarySlash;

    var l = match.attrs.length;
    var attrs = new Array(l);
    for (var i = 0; i < l; i++) {
      var args = match.attrs[i];
      var value = args[3] || args[4] || args[5] || '';
      var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'
        ? options.shouldDecodeNewlinesForHref
        : options.shouldDecodeNewlines;
      attrs[i] = {
        name: args[1],
        value: decodeAttr(value, shouldDecodeNewlines)
      };
      if (options.outputSourceRange) {
        attrs[i].start = args.start + args[0].match(/^\s*/).length;
        attrs[i].end = args.end;
      }
    }

    if (!unary) {
      stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs, start: match.start, end: match.end });
      lastTag = tagName;
    }

    if (options.start) {
      options.start(tagName, attrs, unary, match.start, match.end);
    }
  }

  function parseEndTag (tagName, start, end) {
    var pos, lowerCasedTagName;
    if (start == null) { start = index; }
    if (end == null) { end = index; }

    // Find the closest opened tag of the same type
    if (tagName) {
      lowerCasedTagName = tagName.toLowerCase();
      for (pos = stack.length - 1; pos >= 0; pos--) {
        if (stack[pos].lowerCasedTag === lowerCasedTagName) {
          break
        }
      }
    } else {
      // If no tag name is provided, clean shop
      pos = 0;
    }

    if (pos >= 0) {
      // Close all the open elements, up the stack
      for (var i = stack.length - 1; i >= pos; i--) {
        if (i > pos || !tagName &&
          options.warn
        ) {
          options.warn(
            ("tag <" + (stack[i].tag) + "> has no matching end tag."),
            { start: stack[i].start, end: stack[i].end }
          );
        }
        if (options.end) {
          options.end(stack[i].tag, start, end);
        }
      }

      // Remove the open elements from the stack
      stack.length = pos;
      lastTag = pos && stack[pos - 1].tag;
    } else if (lowerCasedTagName === 'br') {
      if (options.start) {
        options.start(tagName, [], true, start, end);
      }
    } else if (lowerCasedTagName === 'p') {
      if (options.start) {
        options.start(tagName, [], false, start, end);
      }
      if (options.end) {
        options.end(tagName, start, end);
      }
    }
  }
}

/*  */

var onRE = /^@|^v-on:/;
var dirRE = /^v-|^@|^:/;
var forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/;
var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
var stripParensRE = /^\(|\)$/g;
var dynamicArgRE = /^\[.*\]$/;

var argRE = /:(.*)$/;
var bindRE = /^:|^\.|^v-bind:/;
var modifierRE = /\.[^.\]]+(?=[^\]]*$)/g;

var slotRE = /^v-slot(:|$)|^#/;

var lineBreakRE = /[\r\n]/;
var whitespaceRE$1 = /\s+/g;

var invalidAttributeRE = /[\s"'<>\/=]/;

var decodeHTMLCached = cached(he.decode);

var emptySlotScopeToken = "_empty_";

// configurable state
var warn$2;
var delimiters;
var transforms;
var preTransforms;
var postTransforms;
var platformIsPreTag;
var platformMustUseProp;
var platformGetTagNamespace;
var maybeComponent;

function createASTElement (
  tag,
  attrs,
  parent
) {
  return {
    type: 1,
    tag: tag,
    attrsList: attrs,
    attrsMap: makeAttrsMap(attrs),
    rawAttrsMap: {},
    parent: parent,
    children: []
  }
}

/**
 * Convert HTML string to AST.
 */
function parse (
  template,
  options
) {
  warn$2 = options.warn || baseWarn;

  platformIsPreTag = options.isPreTag || no;
  platformMustUseProp = options.mustUseProp || no;
  platformGetTagNamespace = options.getTagNamespace || no;
  var isReservedTag = options.isReservedTag || no;
  maybeComponent = function (el) { return !!el.component || !isReservedTag(el.tag); };

  transforms = pluckModuleFunction(options.modules, 'transformNode');
  preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');
  postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');

  delimiters = options.delimiters;

  var stack = [];
  var preserveWhitespace = options.preserveWhitespace !== false;
  var whitespaceOption = options.whitespace;
  var root;
  var currentParent;
  var inVPre = false;
  var inPre = false;
  var warned = false;

  function warnOnce (msg, range) {
    if (!warned) {
      warned = true;
      warn$2(msg, range);
    }
  }

  function closeElement (element) {
    trimEndingWhitespace(element);
    if (!inVPre && !element.processed) {
      element = processElement(element, options);
    }
    // tree management
    if (!stack.length && element !== root) {
      // allow root elements with v-if, v-else-if and v-else
      if (root.if && (element.elseif || element.else)) {
        {
          checkRootConstraints(element);
        }
        addIfCondition(root, {
          exp: element.elseif,
          block: element
        });
      } else {
        warnOnce(
          "Component template should contain exactly one root element. " +
          "If you are using v-if on multiple elements, " +
          "use v-else-if to chain them instead.",
          { start: element.start }
        );
      }
    }
    if (currentParent && !element.forbidden) {
      if (element.elseif || element.else) {
        processIfConditions(element, currentParent);
      } else {
        if (element.slotScope) {
          // scoped slot
          // keep it in the children list so that v-else(-if) conditions can
          // find it as the prev node.
          var name = element.slotTarget || '"default"'
          ;(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;
        }
        currentParent.children.push(element);
        element.parent = currentParent;
      }
    }

    // final children cleanup
    // filter out scoped slots
    element.children = element.children.filter(function (c) { return !(c).slotScope; });
    // remove trailing whitespace node again
    trimEndingWhitespace(element);

    // check pre state
    if (element.pre) {
      inVPre = false;
    }
    if (platformIsPreTag(element.tag)) {
      inPre = false;
    }
    // apply post-transforms
    for (var i = 0; i < postTransforms.length; i++) {
      postTransforms[i](element, options);
    }
  }

  function trimEndingWhitespace (el) {
    // remove trailing whitespace node
    if (!inPre) {
      var lastNode;
      while (
        (lastNode = el.children[el.children.length - 1]) &&
        lastNode.type === 3 &&
        lastNode.text === ' '
      ) {
        el.children.pop();
      }
    }
  }

  function checkRootConstraints (el) {
    if (el.tag === 'slot' || el.tag === 'template') {
      warnOnce(
        "Cannot use <" + (el.tag) + "> as component root element because it may " +
        'contain multiple nodes.',
        { start: el.start }
      );
    }
    if (el.attrsMap.hasOwnProperty('v-for')) {
      warnOnce(
        'Cannot use v-for on stateful component root element because ' +
        'it renders multiple elements.',
        el.rawAttrsMap['v-for']
      );
    }
  }

  parseHTML(template, {
    warn: warn$2,
    expectHTML: options.expectHTML,
    isUnaryTag: options.isUnaryTag,
    canBeLeftOpenTag: options.canBeLeftOpenTag,
    shouldDecodeNewlines: options.shouldDecodeNewlines,
    shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,
    shouldKeepComment: options.comments,
    outputSourceRange: options.outputSourceRange,
    start: function start (tag, attrs, unary, start$1, end) {
      // check namespace.
      // inherit parent ns if there is one
      var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);

      // handle IE svg bug
      /* istanbul ignore if */
      if (isIE && ns === 'svg') {
        attrs = guardIESVGBug(attrs);
      }

      var element = createASTElement(tag, attrs, currentParent);
      if (ns) {
        element.ns = ns;
      }

      {
        if (options.outputSourceRange) {
          element.start = start$1;
          element.end = end;
          element.rawAttrsMap = element.attrsList.reduce(function (cumulated, attr) {
            cumulated[attr.name] = attr;
            return cumulated
          }, {});
        }
        attrs.forEach(function (attr) {
          if (invalidAttributeRE.test(attr.name)) {
            warn$2(
              "Invalid dynamic argument expression: attribute names cannot contain " +
              "spaces, quotes, <, >, / or =.",
              {
                start: attr.start + attr.name.indexOf("["),
                end: attr.start + attr.name.length
              }
            );
          }
        });
      }

      if (isForbiddenTag(element) && !isServerRendering()) {
        element.forbidden = true;
        warn$2(
          'Templates should only be responsible for mapping the state to the ' +
          'UI. Avoid placing tags with side-effects in your templates, such as ' +
          "<" + tag + ">" + ', as they will not be parsed.',
          { start: element.start }
        );
      }

      // apply pre-transforms
      for (var i = 0; i < preTransforms.length; i++) {
        element = preTransforms[i](element, options) || element;
      }

      if (!inVPre) {
        processPre(element);
        if (element.pre) {
          inVPre = true;
        }
      }
      if (platformIsPreTag(element.tag)) {
        inPre = true;
      }
      if (inVPre) {
        processRawAttrs(element);
      } else if (!element.processed) {
        // structural directives
        processFor(element);
        processIf(element);
        processOnce(element);
      }

      if (!root) {
        root = element;
        {
          checkRootConstraints(root);
        }
      }

      if (!unary) {
        currentParent = element;
        stack.push(element);
      } else {
        closeElement(element);
      }
    },

    end: function end (tag, start, end$1) {
      var element = stack[stack.length - 1];
      // pop stack
      stack.length -= 1;
      currentParent = stack[stack.length - 1];
      if (options.outputSourceRange) {
        element.end = end$1;
      }
      closeElement(element);
    },

    chars: function chars (text, start, end) {
      if (!currentParent) {
        {
          if (text === template) {
            warnOnce(
              'Component template requires a root element, rather than just text.',
              { start: start }
            );
          } else if ((text = text.trim())) {
            warnOnce(
              ("text \"" + text + "\" outside root element will be ignored."),
              { start: start }
            );
          }
        }
        return
      }
      // IE textarea placeholder bug
      /* istanbul ignore if */
      if (isIE &&
        currentParent.tag === 'textarea' &&
        currentParent.attrsMap.placeholder === text
      ) {
        return
      }
      var children = currentParent.children;
      if (inPre || text.trim()) {
        text = isTextTag(currentParent) ? text : decodeHTMLCached(text);
      } else if (!children.length) {
        // remove the whitespace-only node right after an opening tag
        text = '';
      } else if (whitespaceOption) {
        if (whitespaceOption === 'condense') {
          // in condense mode, remove the whitespace node if it contains
          // line break, otherwise condense to a single space
          text = lineBreakRE.test(text) ? '' : ' ';
        } else {
          text = ' ';
        }
      } else {
        text = preserveWhitespace ? ' ' : '';
      }
      if (text) {
        if (!inPre && whitespaceOption === 'condense') {
          // condense consecutive whitespaces into single space
          text = text.replace(whitespaceRE$1, ' ');
        }
        var res;
        var child;
        if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {
          child = {
            type: 2,
            expression: res.expression,
            tokens: res.tokens,
            text: text
          };
        } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {
          child = {
            type: 3,
            text: text
          };
        }
        if (child) {
          if (options.outputSourceRange) {
            child.start = start;
            child.end = end;
          }
          children.push(child);
        }
      }
    },
    comment: function comment (text, start, end) {
      // adding anyting as a sibling to the root node is forbidden
      // comments should still be allowed, but ignored
      if (currentParent) {
        var child = {
          type: 3,
          text: text,
          isComment: true
        };
        if (options.outputSourceRange) {
          child.start = start;
          child.end = end;
        }
        currentParent.children.push(child);
      }
    }
  });
  return root
}

function processPre (el) {
  if (getAndRemoveAttr(el, 'v-pre') != null) {
    el.pre = true;
  }
}

function processRawAttrs (el) {
  var list = el.attrsList;
  var len = list.length;
  if (len) {
    var attrs = el.attrs = new Array(len);
    for (var i = 0; i < len; i++) {
      attrs[i] = {
        name: list[i].name,
        value: JSON.stringify(list[i].value)
      };
      if (list[i].start != null) {
        attrs[i].start = list[i].start;
        attrs[i].end = list[i].end;
      }
    }
  } else if (!el.pre) {
    // non root node in pre blocks with no attributes
    el.plain = true;
  }
}

function processElement (
  element,
  options
) {
  processKey(element);

  // determine whether this is a plain element after
  // removing structural attributes
  element.plain = (
    !element.key &&
    !element.scopedSlots &&
    !element.attrsList.length
  );

  processRef(element);
  processSlotContent(element);
  processSlotOutlet(element);
  processComponent(element);
  for (var i = 0; i < transforms.length; i++) {
    element = transforms[i](element, options) || element;
  }
  processAttrs(element);
  return element
}

function processKey (el) {
  var exp = getBindingAttr(el, 'key');
  if (exp) {
    {
      if (el.tag === 'template') {
        warn$2(
          "<template> cannot be keyed. Place the key on real elements instead.",
          getRawBindingAttr(el, 'key')
        );
      }
      if (el.for) {
        var iterator = el.iterator2 || el.iterator1;
        var parent = el.parent;
        if (iterator && iterator === exp && parent && parent.tag === 'transition-group') {
          warn$2(
            "Do not use v-for index as key on <transition-group> children, " +
            "this is the same as not using keys.",
            getRawBindingAttr(el, 'key'),
            true /* tip */
          );
        }
      }
    }
    el.key = exp;
  }
}

function processRef (el) {
  var ref = getBindingAttr(el, 'ref');
  if (ref) {
    el.ref = ref;
    el.refInFor = checkInFor(el);
  }
}

function processFor (el) {
  var exp;
  if ((exp = getAndRemoveAttr(el, 'v-for'))) {
    var res = parseFor(exp);
    if (res) {
      extend(el, res);
    } else {
      warn$2(
        ("Invalid v-for expression: " + exp),
        el.rawAttrsMap['v-for']
      );
    }
  }
}



function parseFor (exp) {
  var inMatch = exp.match(forAliasRE);
  if (!inMatch) { return }
  var res = {};
  res.for = inMatch[2].trim();
  var alias = inMatch[1].trim().replace(stripParensRE, '');
  var iteratorMatch = alias.match(forIteratorRE);
  if (iteratorMatch) {
    res.alias = alias.replace(forIteratorRE, '').trim();
    res.iterator1 = iteratorMatch[1].trim();
    if (iteratorMatch[2]) {
      res.iterator2 = iteratorMatch[2].trim();
    }
  } else {
    res.alias = alias;
  }
  return res
}

function processIf (el) {
  var exp = getAndRemoveAttr(el, 'v-if');
  if (exp) {
    el.if = exp;
    addIfCondition(el, {
      exp: exp,
      block: el
    });
  } else {
    if (getAndRemoveAttr(el, 'v-else') != null) {
      el.else = true;
    }
    var elseif = getAndRemoveAttr(el, 'v-else-if');
    if (elseif) {
      el.elseif = elseif;
    }
  }
}

function processIfConditions (el, parent) {
  var prev = findPrevElement(parent.children);
  if (prev && prev.if) {
    addIfCondition(prev, {
      exp: el.elseif,
      block: el
    });
  } else {
    warn$2(
      "v-" + (el.elseif ? ('else-if="' + el.elseif + '"') : 'else') + " " +
      "used on element <" + (el.tag) + "> without corresponding v-if.",
      el.rawAttrsMap[el.elseif ? 'v-else-if' : 'v-else']
    );
  }
}

function findPrevElement (children) {
  var i = children.length;
  while (i--) {
    if (children[i].type === 1) {
      return children[i]
    } else {
      if (children[i].text !== ' ') {
        warn$2(
          "text \"" + (children[i].text.trim()) + "\" between v-if and v-else(-if) " +
          "will be ignored.",
          children[i]
        );
      }
      children.pop();
    }
  }
}

function addIfCondition (el, condition) {
  if (!el.ifConditions) {
    el.ifConditions = [];
  }
  el.ifConditions.push(condition);
}

function processOnce (el) {
  var once$$1 = getAndRemoveAttr(el, 'v-once');
  if (once$$1 != null) {
    el.once = true;
  }
}

// handle content being passed to a component as slot,
// e.g. <template slot="xxx">, <div slot-scope="xxx">
function processSlotContent (el) {
  var slotScope;
  if (el.tag === 'template') {
    slotScope = getAndRemoveAttr(el, 'scope');
    /* istanbul ignore if */
    if (slotScope) {
      warn$2(
        "the \"scope\" attribute for scoped slots have been deprecated and " +
        "replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute " +
        "can also be used on plain elements in addition to <template> to " +
        "denote scoped slots.",
        el.rawAttrsMap['scope'],
        true
      );
    }
    el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');
  } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {
    /* istanbul ignore if */
    if (el.attrsMap['v-for']) {
      warn$2(
        "Ambiguous combined usage of slot-scope and v-for on <" + (el.tag) + "> " +
        "(v-for takes higher priority). Use a wrapper <template> for the " +
        "scoped slot to make it clearer.",
        el.rawAttrsMap['slot-scope'],
        true
      );
    }
    el.slotScope = slotScope;
  }

  // slot="xxx"
  var slotTarget = getBindingAttr(el, 'slot');
  if (slotTarget) {
    el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget;
    el.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']);
    // preserve slot as an attribute for native shadow DOM compat
    // only for non-scoped slots.
    if (el.tag !== 'template' && !el.slotScope) {
      addAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot'));
    }
  }

  // 2.6 v-slot syntax
  {
    if (el.tag === 'template') {
      // v-slot on <template>
      var slotBinding = getAndRemoveAttrByRegex(el, slotRE);
      if (slotBinding) {
        {
          if (el.slotTarget || el.slotScope) {
            warn$2(
              "Unexpected mixed usage of different slot syntaxes.",
              el
            );
          }
          if (el.parent && !maybeComponent(el.parent)) {
            warn$2(
              "<template v-slot> can only appear at the root level inside " +
              "the receiving the component",
              el
            );
          }
        }
        var ref = getSlotName(slotBinding);
        var name = ref.name;
        var dynamic = ref.dynamic;
        el.slotTarget = name;
        el.slotTargetDynamic = dynamic;
        el.slotScope = slotBinding.value || emptySlotScopeToken; // force it into a scoped slot for perf
      }
    } else {
      // v-slot on component, denotes default slot
      var slotBinding$1 = getAndRemoveAttrByRegex(el, slotRE);
      if (slotBinding$1) {
        {
          if (!maybeComponent(el)) {
            warn$2(
              "v-slot can only be used on components or <template>.",
              slotBinding$1
            );
          }
          if (el.slotScope || el.slotTarget) {
            warn$2(
              "Unexpected mixed usage of different slot syntaxes.",
              el
            );
          }
          if (el.scopedSlots) {
            warn$2(
              "To avoid scope ambiguity, the default slot should also use " +
              "<template> syntax when there are other named slots.",
              slotBinding$1
            );
          }
        }
        // add the component's children to its default slot
        var slots = el.scopedSlots || (el.scopedSlots = {});
        var ref$1 = getSlotName(slotBinding$1);
        var name$1 = ref$1.name;
        var dynamic$1 = ref$1.dynamic;
        var slotContainer = slots[name$1] = createASTElement('template', [], el);
        slotContainer.slotTarget = name$1;
        slotContainer.slotTargetDynamic = dynamic$1;
        slotContainer.children = el.children.filter(function (c) {
          if (!c.slotScope) {
            c.parent = slotContainer;
            return true
          }
        });
        slotContainer.slotScope = slotBinding$1.value || emptySlotScopeToken;
        // remove children as they are returned from scopedSlots now
        el.children = [];
        // mark el non-plain so data gets generated
        el.plain = false;
      }
    }
  }
}

function getSlotName (binding) {
  var name = binding.name.replace(slotRE, '');
  if (!name) {
    if (binding.name[0] !== '#') {
      name = 'default';
    } else {
      warn$2(
        "v-slot shorthand syntax requires a slot name.",
        binding
      );
    }
  }
  return dynamicArgRE.test(name)
    // dynamic [name]
    ? { name: name.slice(1, -1), dynamic: true }
    // static name
    : { name: ("\"" + name + "\""), dynamic: false }
}

// handle <slot/> outlets
function processSlotOutlet (el) {
  if (el.tag === 'slot') {
    el.slotName = getBindingAttr(el, 'name');
    if (el.key) {
      warn$2(
        "`key` does not work on <slot> because slots are abstract outlets " +
        "and can possibly expand into multiple elements. " +
        "Use the key on a wrapping element instead.",
        getRawBindingAttr(el, 'key')
      );
    }
  }
}

function processComponent (el) {
  var binding;
  if ((binding = getBindingAttr(el, 'is'))) {
    el.component = binding;
  }
  if (getAndRemoveAttr(el, 'inline-template') != null) {
    el.inlineTemplate = true;
  }
}

function processAttrs (el) {
  var list = el.attrsList;
  var i, l, name, rawName, value, modifiers, syncGen, isDynamic;
  for (i = 0, l = list.length; i < l; i++) {
    name = rawName = list[i].name;
    value = list[i].value;
    if (dirRE.test(name)) {
      // mark element as dynamic
      el.hasBindings = true;
      // modifiers
      modifiers = parseModifiers(name.replace(dirRE, ''));
      // support .foo shorthand syntax for the .prop modifier
      if (modifiers) {
        name = name.replace(modifierRE, '');
      }
      if (bindRE.test(name)) { // v-bind
        name = name.replace(bindRE, '');
        value = parseFilters(value);
        isDynamic = dynamicArgRE.test(name);
        if (isDynamic) {
          name = name.slice(1, -1);
        }
        if (
          value.trim().length === 0
        ) {
          warn$2(
            ("The value for a v-bind expression cannot be empty. Found in \"v-bind:" + name + "\"")
          );
        }
        if (modifiers) {
          if (modifiers.prop && !isDynamic) {
            name = camelize(name);
            if (name === 'innerHtml') { name = 'innerHTML'; }
          }
          if (modifiers.camel && !isDynamic) {
            name = camelize(name);
          }
          if (modifiers.sync) {
            syncGen = genAssignmentCode(value, "$event");
            if (!isDynamic) {
              addHandler(
                el,
                ("update:" + (camelize(name))),
                syncGen,
                null,
                false,
                warn$2,
                list[i]
              );
              if (hyphenate(name) !== camelize(name)) {
                addHandler(
                  el,
                  ("update:" + (hyphenate(name))),
                  syncGen,
                  null,
                  false,
                  warn$2,
                  list[i]
                );
              }
            } else {
              // handler w/ dynamic event name
              addHandler(
                el,
                ("\"update:\"+(" + name + ")"),
                syncGen,
                null,
                false,
                warn$2,
                list[i],
                true // dynamic
              );
            }
          }
        }
        if ((modifiers && modifiers.prop) || (
          !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)
        )) {
          addProp(el, name, value, list[i], isDynamic);
        } else {
          addAttr(el, name, value, list[i], isDynamic);
        }
      } else if (onRE.test(name)) { // v-on
        name = name.replace(onRE, '');
        isDynamic = dynamicArgRE.test(name);
        if (isDynamic) {
          name = name.slice(1, -1);
        }
        addHandler(el, name, value, modifiers, false, warn$2, list[i], isDynamic);
      } else { // normal directives
        name = name.replace(dirRE, '');
        // parse arg
        var argMatch = name.match(argRE);
        var arg = argMatch && argMatch[1];
        isDynamic = false;
        if (arg) {
          name = name.slice(0, -(arg.length + 1));
          if (dynamicArgRE.test(arg)) {
            arg = arg.slice(1, -1);
            isDynamic = true;
          }
        }
        addDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]);
        if (name === 'model') {
          checkForAliasModel(el, value);
        }
      }
    } else {
      // literal attribute
      {
        var res = parseText(value, delimiters);
        if (res) {
          warn$2(
            name + "=\"" + value + "\": " +
            'Interpolation inside attributes has been removed. ' +
            'Use v-bind or the colon shorthand instead. For example, ' +
            'instead of <div id="{{ val }}">, use <div :id="val">.',
            list[i]
          );
        }
      }
      addAttr(el, name, JSON.stringify(value), list[i]);
      // #6887 firefox doesn't update muted state if set via attribute
      // even immediately after element creation
      if (!el.component &&
          name === 'muted' &&
          platformMustUseProp(el.tag, el.attrsMap.type, name)) {
        addProp(el, name, 'true', list[i]);
      }
    }
  }
}

function checkInFor (el) {
  var parent = el;
  while (parent) {
    if (parent.for !== undefined) {
      return true
    }
    parent = parent.parent;
  }
  return false
}

function parseModifiers (name) {
  var match = name.match(modifierRE);
  if (match) {
    var ret = {};
    match.forEach(function (m) { ret[m.slice(1)] = true; });
    return ret
  }
}

function makeAttrsMap (attrs) {
  var map = {};
  for (var i = 0, l = attrs.length; i < l; i++) {
    if (
      map[attrs[i].name] && !isIE && !isEdge
    ) {
      warn$2('duplicate attribute: ' + attrs[i].name, attrs[i]);
    }
    map[attrs[i].name] = attrs[i].value;
  }
  return map
}

// for script (e.g. type="x/template") or style, do not decode content
function isTextTag (el) {
  return el.tag === 'script' || el.tag === 'style'
}

function isForbiddenTag (el) {
  return (
    el.tag === 'style' ||
    (el.tag === 'script' && (
      !el.attrsMap.type ||
      el.attrsMap.type === 'text/javascript'
    ))
  )
}

var ieNSBug = /^xmlns:NS\d+/;
var ieNSPrefix = /^NS\d+:/;

/* istanbul ignore next */
function guardIESVGBug (attrs) {
  var res = [];
  for (var i = 0; i < attrs.length; i++) {
    var attr = attrs[i];
    if (!ieNSBug.test(attr.name)) {
      attr.name = attr.name.replace(ieNSPrefix, '');
      res.push(attr);
    }
  }
  return res
}

function checkForAliasModel (el, value) {
  var _el = el;
  while (_el) {
    if (_el.for && _el.alias === value) {
      warn$2(
        "<" + (el.tag) + " v-model=\"" + value + "\">: " +
        "You are binding v-model directly to a v-for iteration alias. " +
        "This will not be able to modify the v-for source array because " +
        "writing to the alias is like modifying a function local variable. " +
        "Consider using an array of objects and use v-model on an object property instead.",
        el.rawAttrsMap['v-model']
      );
    }
    _el = _el.parent;
  }
}

/*  */

function preTransformNode (el, options) {
  if (el.tag === 'input') {
    var map = el.attrsMap;
    if (!map['v-model']) {
      return
    }

    var typeBinding;
    if (map[':type'] || map['v-bind:type']) {
      typeBinding = getBindingAttr(el, 'type');
    }
    if (!map.type && !typeBinding && map['v-bind']) {
      typeBinding = "(" + (map['v-bind']) + ").type";
    }

    if (typeBinding) {
      var ifCondition = getAndRemoveAttr(el, 'v-if', true);
      var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : "";
      var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;
      var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);
      // 1. checkbox
      var branch0 = cloneASTElement(el);
      // process for on the main node
      processFor(branch0);
      addRawAttr(branch0, 'type', 'checkbox');
      processElement(branch0, options);
      branch0.processed = true; // prevent it from double-processed
      branch0.if = "(" + typeBinding + ")==='checkbox'" + ifConditionExtra;
      addIfCondition(branch0, {
        exp: branch0.if,
        block: branch0
      });
      // 2. add radio else-if condition
      var branch1 = cloneASTElement(el);
      getAndRemoveAttr(branch1, 'v-for', true);
      addRawAttr(branch1, 'type', 'radio');
      processElement(branch1, options);
      addIfCondition(branch0, {
        exp: "(" + typeBinding + ")==='radio'" + ifConditionExtra,
        block: branch1
      });
      // 3. other
      var branch2 = cloneASTElement(el);
      getAndRemoveAttr(branch2, 'v-for', true);
      addRawAttr(branch2, ':type', typeBinding);
      processElement(branch2, options);
      addIfCondition(branch0, {
        exp: ifCondition,
        block: branch2
      });

      if (hasElse) {
        branch0.else = true;
      } else if (elseIfCondition) {
        branch0.elseif = elseIfCondition;
      }

      return branch0
    }
  }
}

function cloneASTElement (el) {
  return createASTElement(el.tag, el.attrsList.slice(), el.parent)
}

var model$1 = {
  preTransformNode: preTransformNode
};

var modules$1 = [
  klass$1,
  style$1,
  model$1
];

/*  */

function text (el, dir) {
  if (dir.value) {
    addProp(el, 'textContent', ("_s(" + (dir.value) + ")"), dir);
  }
}

/*  */

function html (el, dir) {
  if (dir.value) {
    addProp(el, 'innerHTML', ("_s(" + (dir.value) + ")"), dir);
  }
}

var directives$1 = {
  model: model,
  text: text,
  html: html
};

/*  */

var baseOptions = {
  expectHTML: true,
  modules: modules$1,
  directives: directives$1,
  isPreTag: isPreTag,
  isUnaryTag: isUnaryTag,
  mustUseProp: mustUseProp,
  canBeLeftOpenTag: canBeLeftOpenTag,
  isReservedTag: isReservedTag,
  getTagNamespace: getTagNamespace,
  staticKeys: genStaticKeys(modules$1)
};

/*  */

var isStaticKey;
var isPlatformReservedTag;

var genStaticKeysCached = cached(genStaticKeys$1);

/**
 * Goal of the optimizer: walk the generated template AST tree
 * and detect sub-trees that are purely static, i.e. parts of
 * the DOM that never needs to change.
 *
 * Once we detect these sub-trees, we can:
 *
 * 1. Hoist them into constants, so that we no longer need to
 *    create fresh nodes for them on each re-render;
 * 2. Completely skip them in the patching process.
 */
function optimize (root, options) {
  if (!root) { return }
  isStaticKey = genStaticKeysCached(options.staticKeys || '');
  isPlatformReservedTag = options.isReservedTag || no;
  // first pass: mark all non-static nodes.
  markStatic$1(root);
  // second pass: mark static roots.
  markStaticRoots(root, false);
}

function genStaticKeys$1 (keys) {
  return makeMap(
    'type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' +
    (keys ? ',' + keys : '')
  )
}

function markStatic$1 (node) {
  node.static = isStatic(node);
  if (node.type === 1) {
    // do not make component slot content static. this avoids
    // 1. components not able to mutate slot nodes
    // 2. static slot content fails for hot-reloading
    if (
      !isPlatformReservedTag(node.tag) &&
      node.tag !== 'slot' &&
      node.attrsMap['inline-template'] == null
    ) {
      return
    }
    for (var i = 0, l = node.children.length; i < l; i++) {
      var child = node.children[i];
      markStatic$1(child);
      if (!child.static) {
        node.static = false;
      }
    }
    if (node.ifConditions) {
      for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
        var block = node.ifConditions[i$1].block;
        markStatic$1(block);
        if (!block.static) {
          node.static = false;
        }
      }
    }
  }
}

function markStaticRoots (node, isInFor) {
  if (node.type === 1) {
    if (node.static || node.once) {
      node.staticInFor = isInFor;
    }
    // For a node to qualify as a static root, it should have children that
    // are not just static text. Otherwise the cost of hoisting out will
    // outweigh the benefits and it's better off to just always render it fresh.
    if (node.static && node.children.length && !(
      node.children.length === 1 &&
      node.children[0].type === 3
    )) {
      node.staticRoot = true;
      return
    } else {
      node.staticRoot = false;
    }
    if (node.children) {
      for (var i = 0, l = node.children.length; i < l; i++) {
        markStaticRoots(node.children[i], isInFor || !!node.for);
      }
    }
    if (node.ifConditions) {
      for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
        markStaticRoots(node.ifConditions[i$1].block, isInFor);
      }
    }
  }
}

function isStatic (node) {
  if (node.type === 2) { // expression
    return false
  }
  if (node.type === 3) { // text
    return true
  }
  return !!(node.pre || (
    !node.hasBindings && // no dynamic bindings
    !node.if && !node.for && // not v-if or v-for or v-else
    !isBuiltInTag(node.tag) && // not a built-in
    isPlatformReservedTag(node.tag) && // not a component
    !isDirectChildOfTemplateFor(node) &&
    Object.keys(node).every(isStaticKey)
  ))
}

function isDirectChildOfTemplateFor (node) {
  while (node.parent) {
    node = node.parent;
    if (node.tag !== 'template') {
      return false
    }
    if (node.for) {
      return true
    }
  }
  return false
}

/*  */

var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function\s*(?:[\w$]+)?\s*\(/;
var fnInvokeRE = /\([^)]*?\);*$/;
var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;

// KeyboardEvent.keyCode aliases
var keyCodes = {
  esc: 27,
  tab: 9,
  enter: 13,
  space: 32,
  up: 38,
  left: 37,
  right: 39,
  down: 40,
  'delete': [8, 46]
};

// KeyboardEvent.key aliases
var keyNames = {
  // #7880: IE11 and Edge use `Esc` for Escape key name.
  esc: ['Esc', 'Escape'],
  tab: 'Tab',
  enter: 'Enter',
  // #9112: IE11 uses `Spacebar` for Space key name.
  space: [' ', 'Spacebar'],
  // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.
  up: ['Up', 'ArrowUp'],
  left: ['Left', 'ArrowLeft'],
  right: ['Right', 'ArrowRight'],
  down: ['Down', 'ArrowDown'],
  // #9112: IE11 uses `Del` for Delete key name.
  'delete': ['Backspace', 'Delete', 'Del']
};

// #4868: modifiers that prevent the execution of the listener
// need to explicitly return null so that we can determine whether to remove
// the listener for .once
var genGuard = function (condition) { return ("if(" + condition + ")return null;"); };

var modifierCode = {
  stop: '$event.stopPropagation();',
  prevent: '$event.preventDefault();',
  self: genGuard("$event.target !== $event.currentTarget"),
  ctrl: genGuard("!$event.ctrlKey"),
  shift: genGuard("!$event.shiftKey"),
  alt: genGuard("!$event.altKey"),
  meta: genGuard("!$event.metaKey"),
  left: genGuard("'button' in $event && $event.button !== 0"),
  middle: genGuard("'button' in $event && $event.button !== 1"),
  right: genGuard("'button' in $event && $event.button !== 2")
};

function genHandlers (
  events,
  isNative
) {
  var prefix = isNative ? 'nativeOn:' : 'on:';
  var staticHandlers = "";
  var dynamicHandlers = "";
  for (var name in events) {
    var handlerCode = genHandler(events[name]);
    if (events[name] && events[name].dynamic) {
      dynamicHandlers += name + "," + handlerCode + ",";
    } else {
      staticHandlers += "\"" + name + "\":" + handlerCode + ",";
    }
  }
  staticHandlers = "{" + (staticHandlers.slice(0, -1)) + "}";
  if (dynamicHandlers) {
    return prefix + "_d(" + staticHandlers + ",[" + (dynamicHandlers.slice(0, -1)) + "])"
  } else {
    return prefix + staticHandlers
  }
}

function genHandler (handler) {
  if (!handler) {
    return 'function(){}'
  }

  if (Array.isArray(handler)) {
    return ("[" + (handler.map(function (handler) { return genHandler(handler); }).join(',')) + "]")
  }

  var isMethodPath = simplePathRE.test(handler.value);
  var isFunctionExpression = fnExpRE.test(handler.value);
  var isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, ''));

  if (!handler.modifiers) {
    if (isMethodPath || isFunctionExpression) {
      return handler.value
    }
    return ("function($event){" + (isFunctionInvocation ? ("return " + (handler.value)) : handler.value) + "}") // inline statement
  } else {
    var code = '';
    var genModifierCode = '';
    var keys = [];
    for (var key in handler.modifiers) {
      if (modifierCode[key]) {
        genModifierCode += modifierCode[key];
        // left/right
        if (keyCodes[key]) {
          keys.push(key);
        }
      } else if (key === 'exact') {
        var modifiers = (handler.modifiers);
        genModifierCode += genGuard(
          ['ctrl', 'shift', 'alt', 'meta']
            .filter(function (keyModifier) { return !modifiers[keyModifier]; })
            .map(function (keyModifier) { return ("$event." + keyModifier + "Key"); })
            .join('||')
        );
      } else {
        keys.push(key);
      }
    }
    if (keys.length) {
      code += genKeyFilter(keys);
    }
    // Make sure modifiers like prevent and stop get executed after key filtering
    if (genModifierCode) {
      code += genModifierCode;
    }
    var handlerCode = isMethodPath
      ? ("return " + (handler.value) + "($event)")
      : isFunctionExpression
        ? ("return (" + (handler.value) + ")($event)")
        : isFunctionInvocation
          ? ("return " + (handler.value))
          : handler.value;
    return ("function($event){" + code + handlerCode + "}")
  }
}

function genKeyFilter (keys) {
  return (
    // make sure the key filters only apply to KeyboardEvents
    // #9441: can't use 'keyCode' in $event because Chrome autofill fires fake
    // key events that do not have keyCode property...
    "if(!$event.type.indexOf('key')&&" +
    (keys.map(genFilterCode).join('&&')) + ")return null;"
  )
}

function genFilterCode (key) {
  var keyVal = parseInt(key, 10);
  if (keyVal) {
    return ("$event.keyCode!==" + keyVal)
  }
  var keyCode = keyCodes[key];
  var keyName = keyNames[key];
  return (
    "_k($event.keyCode," +
    (JSON.stringify(key)) + "," +
    (JSON.stringify(keyCode)) + "," +
    "$event.key," +
    "" + (JSON.stringify(keyName)) +
    ")"
  )
}

/*  */

function on (el, dir) {
  if (dir.modifiers) {
    warn("v-on without argument does not support modifiers.");
  }
  el.wrapListeners = function (code) { return ("_g(" + code + "," + (dir.value) + ")"); };
}

/*  */

function bind$1 (el, dir) {
  el.wrapData = function (code) {
    return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + "," + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + ")")
  };
}

/*  */

var baseDirectives = {
  on: on,
  bind: bind$1,
  cloak: noop
};

/*  */





var CodegenState = function CodegenState (options) {
  this.options = options;
  this.warn = options.warn || baseWarn;
  this.transforms = pluckModuleFunction(options.modules, 'transformCode');
  this.dataGenFns = pluckModuleFunction(options.modules, 'genData');
  this.directives = extend(extend({}, baseDirectives), options.directives);
  var isReservedTag = options.isReservedTag || no;
  this.maybeComponent = function (el) { return !!el.component || !isReservedTag(el.tag); };
  this.onceId = 0;
  this.staticRenderFns = [];
  this.pre = false;
};



function generate (
  ast,
  options
) {
  var state = new CodegenState(options);
  var code = ast ? genElement(ast, state) : '_c("div")';
  return {
    render: ("with(this){return " + code + "}"),
    staticRenderFns: state.staticRenderFns
  }
}

function genElement (el, state) {
  if (el.parent) {
    el.pre = el.pre || el.parent.pre;
  }

  if (el.staticRoot && !el.staticProcessed) {
    return genStatic(el, state)
  } else if (el.once && !el.onceProcessed) {
    return genOnce(el, state)
  } else if (el.for && !el.forProcessed) {
    return genFor(el, state)
  } else if (el.if && !el.ifProcessed) {
    return genIf(el, state)
  } else if (el.tag === 'template' && !el.slotTarget && !state.pre) {
    return genChildren(el, state) || 'void 0'
  } else if (el.tag === 'slot') {
    return genSlot(el, state)
  } else {
    // component or element
    var code;
    if (el.component) {
      code = genComponent(el.component, el, state);
    } else {
      var data;
      if (!el.plain || (el.pre && state.maybeComponent(el))) {
        data = genData$2(el, state);
      }

      var children = el.inlineTemplate ? null : genChildren(el, state, true);
      code = "_c('" + (el.tag) + "'" + (data ? ("," + data) : '') + (children ? ("," + children) : '') + ")";
    }
    // module transforms
    for (var i = 0; i < state.transforms.length; i++) {
      code = state.transforms[i](el, code);
    }
    return code
  }
}

// hoist static sub-trees out
function genStatic (el, state) {
  el.staticProcessed = true;
  // Some elements (templates) need to behave differently inside of a v-pre
  // node.  All pre nodes are static roots, so we can use this as a location to
  // wrap a state change and reset it upon exiting the pre node.
  var originalPreState = state.pre;
  if (el.pre) {
    state.pre = el.pre;
  }
  state.staticRenderFns.push(("with(this){return " + (genElement(el, state)) + "}"));
  state.pre = originalPreState;
  return ("_m(" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")")
}

// v-once
function genOnce (el, state) {
  el.onceProcessed = true;
  if (el.if && !el.ifProcessed) {
    return genIf(el, state)
  } else if (el.staticInFor) {
    var key = '';
    var parent = el.parent;
    while (parent) {
      if (parent.for) {
        key = parent.key;
        break
      }
      parent = parent.parent;
    }
    if (!key) {
      state.warn(
        "v-once can only be used inside v-for that is keyed. ",
        el.rawAttrsMap['v-once']
      );
      return genElement(el, state)
    }
    return ("_o(" + (genElement(el, state)) + "," + (state.onceId++) + "," + key + ")")
  } else {
    return genStatic(el, state)
  }
}

function genIf (
  el,
  state,
  altGen,
  altEmpty
) {
  el.ifProcessed = true; // avoid recursion
  return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)
}

function genIfConditions (
  conditions,
  state,
  altGen,
  altEmpty
) {
  if (!conditions.length) {
    return altEmpty || '_e()'
  }

  var condition = conditions.shift();
  if (condition.exp) {
    return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions, state, altGen, altEmpty)))
  } else {
    return ("" + (genTernaryExp(condition.block)))
  }

  // v-if with v-once should generate code like (a)?_m(0):_m(1)
  function genTernaryExp (el) {
    return altGen
      ? altGen(el, state)
      : el.once
        ? genOnce(el, state)
        : genElement(el, state)
  }
}

function genFor (
  el,
  state,
  altGen,
  altHelper
) {
  var exp = el.for;
  var alias = el.alias;
  var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
  var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';

  if (state.maybeComponent(el) &&
    el.tag !== 'slot' &&
    el.tag !== 'template' &&
    !el.key
  ) {
    state.warn(
      "<" + (el.tag) + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " +
      "v-for should have explicit keys. " +
      "See https://vuejs.org/guide/list.html#key for more info.",
      el.rawAttrsMap['v-for'],
      true /* tip */
    );
  }

  el.forProcessed = true; // avoid recursion
  return (altHelper || '_l') + "((" + exp + ")," +
    "function(" + alias + iterator1 + iterator2 + "){" +
      "return " + ((altGen || genElement)(el, state)) +
    '})'
}

function genData$2 (el, state) {
  var data = '{';

  // directives first.
  // directives may mutate the el's other properties before they are generated.
  var dirs = genDirectives(el, state);
  if (dirs) { data += dirs + ','; }

  // key
  if (el.key) {
    data += "key:" + (el.key) + ",";
  }
  // ref
  if (el.ref) {
    data += "ref:" + (el.ref) + ",";
  }
  if (el.refInFor) {
    data += "refInFor:true,";
  }
  // pre
  if (el.pre) {
    data += "pre:true,";
  }
  // record original tag name for components using "is" attribute
  if (el.component) {
    data += "tag:\"" + (el.tag) + "\",";
  }
  // module data generation functions
  for (var i = 0; i < state.dataGenFns.length; i++) {
    data += state.dataGenFns[i](el);
  }
  // attributes
  if (el.attrs) {
    data += "attrs:" + (genProps(el.attrs)) + ",";
  }
  // DOM props
  if (el.props) {
    data += "domProps:" + (genProps(el.props)) + ",";
  }
  // event handlers
  if (el.events) {
    data += (genHandlers(el.events, false)) + ",";
  }
  if (el.nativeEvents) {
    data += (genHandlers(el.nativeEvents, true)) + ",";
  }
  // slot target
  // only for non-scoped slots
  if (el.slotTarget && !el.slotScope) {
    data += "slot:" + (el.slotTarget) + ",";
  }
  // scoped slots
  if (el.scopedSlots) {
    data += (genScopedSlots(el, el.scopedSlots, state)) + ",";
  }
  // component v-model
  if (el.model) {
    data += "model:{value:" + (el.model.value) + ",callback:" + (el.model.callback) + ",expression:" + (el.model.expression) + "},";
  }
  // inline-template
  if (el.inlineTemplate) {
    var inlineTemplate = genInlineTemplate(el, state);
    if (inlineTemplate) {
      data += inlineTemplate + ",";
    }
  }
  data = data.replace(/,$/, '') + '}';
  // v-bind dynamic argument wrap
  // v-bind with dynamic arguments must be applied using the same v-bind object
  // merge helper so that class/style/mustUseProp attrs are handled correctly.
  if (el.dynamicAttrs) {
    data = "_b(" + data + ",\"" + (el.tag) + "\"," + (genProps(el.dynamicAttrs)) + ")";
  }
  // v-bind data wrap
  if (el.wrapData) {
    data = el.wrapData(data);
  }
  // v-on data wrap
  if (el.wrapListeners) {
    data = el.wrapListeners(data);
  }
  return data
}

function genDirectives (el, state) {
  var dirs = el.directives;
  if (!dirs) { return }
  var res = 'directives:[';
  var hasRuntime = false;
  var i, l, dir, needRuntime;
  for (i = 0, l = dirs.length; i < l; i++) {
    dir = dirs[i];
    needRuntime = true;
    var gen = state.directives[dir.name];
    if (gen) {
      // compile-time directive that manipulates AST.
      // returns true if it also needs a runtime counterpart.
      needRuntime = !!gen(el, dir, state.warn);
    }
    if (needRuntime) {
      hasRuntime = true;
      res += "{name:\"" + (dir.name) + "\",rawName:\"" + (dir.rawName) + "\"" + (dir.value ? (",value:(" + (dir.value) + "),expression:" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (",arg:" + (dir.isDynamicArg ? dir.arg : ("\"" + (dir.arg) + "\""))) : '') + (dir.modifiers ? (",modifiers:" + (JSON.stringify(dir.modifiers))) : '') + "},";
    }
  }
  if (hasRuntime) {
    return res.slice(0, -1) + ']'
  }
}

function genInlineTemplate (el, state) {
  var ast = el.children[0];
  if (el.children.length !== 1 || ast.type !== 1) {
    state.warn(
      'Inline-template components must have exactly one child element.',
      { start: el.start }
    );
  }
  if (ast && ast.type === 1) {
    var inlineRenderFns = generate(ast, state.options);
    return ("inlineTemplate:{render:function(){" + (inlineRenderFns.render) + "},staticRenderFns:[" + (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){" + code + "}"); }).join(',')) + "]}")
  }
}

function genScopedSlots (
  el,
  slots,
  state
) {
  // by default scoped slots are considered "stable", this allows child
  // components with only scoped slots to skip forced updates from parent.
  // but in some cases we have to bail-out of this optimization
  // for example if the slot contains dynamic names, has v-if or v-for on them...
  var needsForceUpdate = el.for || Object.keys(slots).some(function (key) {
    var slot = slots[key];
    return (
      slot.slotTargetDynamic ||
      slot.if ||
      slot.for ||
      containsSlotChild(slot) // is passing down slot from parent which may be dynamic
    )
  });

  // #9534: if a component with scoped slots is inside a conditional branch,
  // it's possible for the same component to be reused but with different
  // compiled slot content. To avoid that, we generate a unique key based on
  // the generated code of all the slot contents.
  var needsKey = !!el.if;

  // OR when it is inside another scoped slot or v-for (the reactivity may be
  // disconnected due to the intermediate scope variable)
  // #9438, #9506
  // TODO: this can be further optimized by properly analyzing in-scope bindings
  // and skip force updating ones that do not actually use scope variables.
  if (!needsForceUpdate) {
    var parent = el.parent;
    while (parent) {
      if (
        (parent.slotScope && parent.slotScope !== emptySlotScopeToken) ||
        parent.for
      ) {
        needsForceUpdate = true;
        break
      }
      if (parent.if) {
        needsKey = true;
      }
      parent = parent.parent;
    }
  }

  var generatedSlots = Object.keys(slots)
    .map(function (key) { return genScopedSlot(slots[key], state); })
    .join(',');

  return ("scopedSlots:_u([" + generatedSlots + "]" + (needsForceUpdate ? ",null,true" : "") + (!needsForceUpdate && needsKey ? (",null,false," + (hash(generatedSlots))) : "") + ")")
}

function hash(str) {
  var hash = 5381;
  var i = str.length;
  while(i) {
    hash = (hash * 33) ^ str.charCodeAt(--i);
  }
  return hash >>> 0
}

function containsSlotChild (el) {
  if (el.type === 1) {
    if (el.tag === 'slot') {
      return true
    }
    return el.children.some(containsSlotChild)
  }
  return false
}

function genScopedSlot (
  el,
  state
) {
  var isLegacySyntax = el.attrsMap['slot-scope'];
  if (el.if && !el.ifProcessed && !isLegacySyntax) {
    return genIf(el, state, genScopedSlot, "null")
  }
  if (el.for && !el.forProcessed) {
    return genFor(el, state, genScopedSlot)
  }
  var slotScope = el.slotScope === emptySlotScopeToken
    ? ""
    : String(el.slotScope);
  var fn = "function(" + slotScope + "){" +
    "return " + (el.tag === 'template'
      ? el.if && isLegacySyntax
        ? ("(" + (el.if) + ")?" + (genChildren(el, state) || 'undefined') + ":undefined")
        : genChildren(el, state) || 'undefined'
      : genElement(el, state)) + "}";
  // reverse proxy v-slot without scope on this.$slots
  var reverseProxy = slotScope ? "" : ",proxy:true";
  return ("{key:" + (el.slotTarget || "\"default\"") + ",fn:" + fn + reverseProxy + "}")
}

function genChildren (
  el,
  state,
  checkSkip,
  altGenElement,
  altGenNode
) {
  var children = el.children;
  if (children.length) {
    var el$1 = children[0];
    // optimize single v-for
    if (children.length === 1 &&
      el$1.for &&
      el$1.tag !== 'template' &&
      el$1.tag !== 'slot'
    ) {
      var normalizationType = checkSkip
        ? state.maybeComponent(el$1) ? ",1" : ",0"
        : "";
      return ("" + ((altGenElement || genElement)(el$1, state)) + normalizationType)
    }
    var normalizationType$1 = checkSkip
      ? getNormalizationType(children, state.maybeComponent)
      : 0;
    var gen = altGenNode || genNode;
    return ("[" + (children.map(function (c) { return gen(c, state); }).join(',')) + "]" + (normalizationType$1 ? ("," + normalizationType$1) : ''))
  }
}

// determine the normalization needed for the children array.
// 0: no normalization needed
// 1: simple normalization needed (possible 1-level deep nested array)
// 2: full normalization needed
function getNormalizationType (
  children,
  maybeComponent
) {
  var res = 0;
  for (var i = 0; i < children.length; i++) {
    var el = children[i];
    if (el.type !== 1) {
      continue
    }
    if (needsNormalization(el) ||
        (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {
      res = 2;
      break
    }
    if (maybeComponent(el) ||
        (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {
      res = 1;
    }
  }
  return res
}

function needsNormalization (el) {
  return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'
}

function genNode (node, state) {
  if (node.type === 1) {
    return genElement(node, state)
  } else if (node.type === 3 && node.isComment) {
    return genComment(node)
  } else {
    return genText(node)
  }
}

function genText (text) {
  return ("_v(" + (text.type === 2
    ? text.expression // no need for () because already wrapped in _s()
    : transformSpecialNewlines(JSON.stringify(text.text))) + ")")
}

function genComment (comment) {
  return ("_e(" + (JSON.stringify(comment.text)) + ")")
}

function genSlot (el, state) {
  var slotName = el.slotName || '"default"';
  var children = genChildren(el, state);
  var res = "_t(" + slotName + (children ? ("," + children) : '');
  var attrs = el.attrs || el.dynamicAttrs
    ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(function (attr) { return ({
        // slot props are camelized
        name: camelize(attr.name),
        value: attr.value,
        dynamic: attr.dynamic
      }); }))
    : null;
  var bind$$1 = el.attrsMap['v-bind'];
  if ((attrs || bind$$1) && !children) {
    res += ",null";
  }
  if (attrs) {
    res += "," + attrs;
  }
  if (bind$$1) {
    res += (attrs ? '' : ',null') + "," + bind$$1;
  }
  return res + ')'
}

// componentName is el.component, take it as argument to shun flow's pessimistic refinement
function genComponent (
  componentName,
  el,
  state
) {
  var children = el.inlineTemplate ? null : genChildren(el, state, true);
  return ("_c(" + componentName + "," + (genData$2(el, state)) + (children ? ("," + children) : '') + ")")
}

function genProps (props) {
  var staticProps = "";
  var dynamicProps = "";
  for (var i = 0; i < props.length; i++) {
    var prop = props[i];
    var value = transformSpecialNewlines(prop.value);
    if (prop.dynamic) {
      dynamicProps += (prop.name) + "," + value + ",";
    } else {
      staticProps += "\"" + (prop.name) + "\":" + value + ",";
    }
  }
  staticProps = "{" + (staticProps.slice(0, -1)) + "}";
  if (dynamicProps) {
    return ("_d(" + staticProps + ",[" + (dynamicProps.slice(0, -1)) + "])")
  } else {
    return staticProps
  }
}

// #3895, #4268
function transformSpecialNewlines (text) {
  return text
    .replace(/\u2028/g, '\\u2028')
    .replace(/\u2029/g, '\\u2029')
}

/*  */



// these keywords should not appear inside expressions, but operators like
// typeof, instanceof and in are allowed
var prohibitedKeywordRE = new RegExp('\\b' + (
  'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +
  'super,throw,while,yield,delete,export,import,return,switch,default,' +
  'extends,finally,continue,debugger,function,arguments'
).split(',').join('\\b|\\b') + '\\b');

// these unary operators should not be used as property/method names
var unaryOperatorsRE = new RegExp('\\b' + (
  'delete,typeof,void'
).split(',').join('\\s*\\([^\\)]*\\)|\\b') + '\\s*\\([^\\)]*\\)');

// strip strings in expressions
var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;

// detect problematic expressions in a template
function detectErrors (ast, warn) {
  if (ast) {
    checkNode(ast, warn);
  }
}

function checkNode (node, warn) {
  if (node.type === 1) {
    for (var name in node.attrsMap) {
      if (dirRE.test(name)) {
        var value = node.attrsMap[name];
        if (value) {
          var range = node.rawAttrsMap[name];
          if (name === 'v-for') {
            checkFor(node, ("v-for=\"" + value + "\""), warn, range);
          } else if (onRE.test(name)) {
            checkEvent(value, (name + "=\"" + value + "\""), warn, range);
          } else {
            checkExpression(value, (name + "=\"" + value + "\""), warn, range);
          }
        }
      }
    }
    if (node.children) {
      for (var i = 0; i < node.children.length; i++) {
        checkNode(node.children[i], warn);
      }
    }
  } else if (node.type === 2) {
    checkExpression(node.expression, node.text, warn, node);
  }
}

function checkEvent (exp, text, warn, range) {
  var stipped = exp.replace(stripStringRE, '');
  var keywordMatch = stipped.match(unaryOperatorsRE);
  if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {
    warn(
      "avoid using JavaScript unary operator as property name: " +
      "\"" + (keywordMatch[0]) + "\" in expression " + (text.trim()),
      range
    );
  }
  checkExpression(exp, text, warn, range);
}

function checkFor (node, text, warn, range) {
  checkExpression(node.for || '', text, warn, range);
  checkIdentifier(node.alias, 'v-for alias', text, warn, range);
  checkIdentifier(node.iterator1, 'v-for iterator', text, warn, range);
  checkIdentifier(node.iterator2, 'v-for iterator', text, warn, range);
}

function checkIdentifier (
  ident,
  type,
  text,
  warn,
  range
) {
  if (typeof ident === 'string') {
    try {
      new Function(("var " + ident + "=_"));
    } catch (e) {
      warn(("invalid " + type + " \"" + ident + "\" in expression: " + (text.trim())), range);
    }
  }
}

function checkExpression (exp, text, warn, range) {
  try {
    new Function(("return " + exp));
  } catch (e) {
    var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);
    if (keywordMatch) {
      warn(
        "avoid using JavaScript keyword as property name: " +
        "\"" + (keywordMatch[0]) + "\"\n  Raw expression: " + (text.trim()),
        range
      );
    } else {
      warn(
        "invalid expression: " + (e.message) + " in\n\n" +
        "    " + exp + "\n\n" +
        "  Raw expression: " + (text.trim()) + "\n",
        range
      );
    }
  }
}

/*  */

var range = 2;

function generateCodeFrame (
  source,
  start,
  end
) {
  if ( start === void 0 ) start = 0;
  if ( end === void 0 ) end = source.length;

  var lines = source.split(/\r?\n/);
  var count = 0;
  var res = [];
  for (var i = 0; i < lines.length; i++) {
    count += lines[i].length + 1;
    if (count >= start) {
      for (var j = i - range; j <= i + range || end > count; j++) {
        if (j < 0 || j >= lines.length) { continue }
        res.push(("" + (j + 1) + (repeat$1(" ", 3 - String(j + 1).length)) + "|  " + (lines[j])));
        var lineLength = lines[j].length;
        if (j === i) {
          // push underline
          var pad = start - (count - lineLength) + 1;
          var length = end > count ? lineLength - pad : end - start;
          res.push("   |  " + repeat$1(" ", pad) + repeat$1("^", length));
        } else if (j > i) {
          if (end > count) {
            var length$1 = Math.min(end - count, lineLength);
            res.push("   |  " + repeat$1("^", length$1));
          }
          count += lineLength + 1;
        }
      }
      break
    }
  }
  return res.join('\n')
}

function repeat$1 (str, n) {
  var result = '';
  if (n > 0) {
    while (true) { // eslint-disable-line
      if (n & 1) { result += str; }
      n >>>= 1;
      if (n <= 0) { break }
      str += str;
    }
  }
  return result
}

/*  */



function createFunction (code, errors) {
  try {
    return new Function(code)
  } catch (err) {
    errors.push({ err: err, code: code });
    return noop
  }
}

function createCompileToFunctionFn (compile) {
  var cache = Object.create(null);

  return function compileToFunctions (
    template,
    options,
    vm
  ) {
    options = extend({}, options);
    var warn$$1 = options.warn || warn;
    delete options.warn;

    /* istanbul ignore if */
    {
      // detect possible CSP restriction
      try {
        new Function('return 1');
      } catch (e) {
        if (e.toString().match(/unsafe-eval|CSP/)) {
          warn$$1(
            'It seems you are using the standalone build of Vue.js in an ' +
            'environment with Content Security Policy that prohibits unsafe-eval. ' +
            'The template compiler cannot work in this environment. Consider ' +
            'relaxing the policy to allow unsafe-eval or pre-compiling your ' +
            'templates into render functions.'
          );
        }
      }
    }

    // check cache
    var key = options.delimiters
      ? String(options.delimiters) + template
      : template;
    if (cache[key]) {
      return cache[key]
    }

    // compile
    var compiled = compile(template, options);

    // check compilation errors/tips
    {
      if (compiled.errors && compiled.errors.length) {
        if (options.outputSourceRange) {
          compiled.errors.forEach(function (e) {
            warn$$1(
              "Error compiling template:\n\n" + (e.msg) + "\n\n" +
              generateCodeFrame(template, e.start, e.end),
              vm
            );
          });
        } else {
          warn$$1(
            "Error compiling template:\n\n" + template + "\n\n" +
            compiled.errors.map(function (e) { return ("- " + e); }).join('\n') + '\n',
            vm
          );
        }
      }
      if (compiled.tips && compiled.tips.length) {
        if (options.outputSourceRange) {
          compiled.tips.forEach(function (e) { return tip(e.msg, vm); });
        } else {
          compiled.tips.forEach(function (msg) { return tip(msg, vm); });
        }
      }
    }

    // turn code into functions
    var res = {};
    var fnGenErrors = [];
    res.render = createFunction(compiled.render, fnGenErrors);
    res.staticRenderFns = compiled.staticRenderFns.map(function (code) {
      return createFunction(code, fnGenErrors)
    });

    // check function generation errors.
    // this should only happen if there is a bug in the compiler itself.
    // mostly for codegen development use
    /* istanbul ignore if */
    {
      if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {
        warn$$1(
          "Failed to generate render function:\n\n" +
          fnGenErrors.map(function (ref) {
            var err = ref.err;
            var code = ref.code;

            return ((err.toString()) + " in\n\n" + code + "\n");
        }).join('\n'),
          vm
        );
      }
    }

    return (cache[key] = res)
  }
}

/*  */

function createCompilerCreator (baseCompile) {
  return function createCompiler (baseOptions) {
    function compile (
      template,
      options
    ) {
      var finalOptions = Object.create(baseOptions);
      var errors = [];
      var tips = [];

      var warn = function (msg, range, tip) {
        (tip ? tips : errors).push(msg);
      };

      if (options) {
        if (options.outputSourceRange) {
          // $flow-disable-line
          var leadingSpaceLength = template.match(/^\s*/)[0].length;

          warn = function (msg, range, tip) {
            var data = { msg: msg };
            if (range) {
              if (range.start != null) {
                data.start = range.start + leadingSpaceLength;
              }
              if (range.end != null) {
                data.end = range.end + leadingSpaceLength;
              }
            }
            (tip ? tips : errors).push(data);
          };
        }
        // merge custom modules
        if (options.modules) {
          finalOptions.modules =
            (baseOptions.modules || []).concat(options.modules);
        }
        // merge custom directives
        if (options.directives) {
          finalOptions.directives = extend(
            Object.create(baseOptions.directives || null),
            options.directives
          );
        }
        // copy other options
        for (var key in options) {
          if (key !== 'modules' && key !== 'directives') {
            finalOptions[key] = options[key];
          }
        }
      }

      finalOptions.warn = warn;

      var compiled = baseCompile(template.trim(), finalOptions);
      {
        detectErrors(compiled.ast, warn);
      }
      compiled.errors = errors;
      compiled.tips = tips;
      return compiled
    }

    return {
      compile: compile,
      compileToFunctions: createCompileToFunctionFn(compile)
    }
  }
}

/*  */

// `createCompilerCreator` allows creating compilers that use alternative
// parser/optimizer/codegen, e.g the SSR optimizing compiler.
// Here we just export a default compiler using the default parts.
var createCompiler = createCompilerCreator(function baseCompile (
  template,
  options
) {
  var ast = parse(template.trim(), options);
  if (options.optimize !== false) {
    optimize(ast, options);
  }
  var code = generate(ast, options);
  return {
    ast: ast,
    render: code.render,
    staticRenderFns: code.staticRenderFns
  }
});

/*  */

var ref$1 = createCompiler(baseOptions);
var compile = ref$1.compile;
var compileToFunctions = ref$1.compileToFunctions;

/*  */

// check whether current browser encodes a char inside attribute values
var div;
function getShouldDecode (href) {
  div = div || document.createElement('div');
  div.innerHTML = href ? "<a href=\"\n\"/>" : "<div a=\"\n\"/>";
  return div.innerHTML.indexOf('&#10;') > 0
}

// #3663: IE encodes newlines inside attribute values while other browsers don't
var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;
// #6828: chrome encodes content in a[href]
var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;

/*  */

var idToTemplate = cached(function (id) {
  var el = query(id);
  return el && el.innerHTML
});

var mount = Vue.prototype.$mount;
Vue.prototype.$mount = function (
  el,
  hydrating
) {
  el = el && query(el);

  /* istanbul ignore if */
  if (el === document.body || el === document.documentElement) {
    warn(
      "Do not mount Vue to <html> or <body> - mount to normal elements instead."
    );
    return this
  }

  var options = this.$options;
  // resolve template/el and convert to render function
  if (!options.render) {
    var template = options.template;
    if (template) {
      if (typeof template === 'string') {
        if (template.charAt(0) === '#') {
          template = idToTemplate(template);
          /* istanbul ignore if */
          if (!template) {
            warn(
              ("Template element not found or is empty: " + (options.template)),
              this
            );
          }
        }
      } else if (template.nodeType) {
        template = template.innerHTML;
      } else {
        {
          warn('invalid template option:' + template, this);
        }
        return this
      }
    } else if (el) {
      template = getOuterHTML(el);
    }
    if (template) {
      /* istanbul ignore if */
      if (config.performance && mark) {
        mark('compile');
      }

      var ref = compileToFunctions(template, {
        outputSourceRange: "development" !== 'production',
        shouldDecodeNewlines: shouldDecodeNewlines,
        shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,
        delimiters: options.delimiters,
        comments: options.comments
      }, this);
      var render = ref.render;
      var staticRenderFns = ref.staticRenderFns;
      options.render = render;
      options.staticRenderFns = staticRenderFns;

      /* istanbul ignore if */
      if (config.performance && mark) {
        mark('compile end');
        measure(("vue " + (this._name) + " compile"), 'compile', 'compile end');
      }
    }
  }
  return mount.call(this, el, hydrating)
};

/**
 * Get outerHTML of elements, taking care
 * of SVG elements in IE as well.
 */
function getOuterHTML (el) {
  if (el.outerHTML) {
    return el.outerHTML
  } else {
    var container = document.createElement('div');
    container.appendChild(el.cloneNode(true));
    return container.innerHTML
  }
}

Vue.compile = compileToFunctions;

module.exports = Vue;

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../../timers-browserify/main.js */ "./node_modules/timers-browserify/main.js").setImmediate))

/***/ }),

/***/ "./node_modules/vue/dist/vue.common.js":
/*!*********************************************!*\
  !*** ./node_modules/vue/dist/vue.common.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

if (false) {} else {
  module.exports = __webpack_require__(/*! ./vue.common.dev.js */ "./node_modules/vue/dist/vue.common.dev.js")
}


/***/ }),

/***/ "./node_modules/vuejs-datepicker/dist/vuejs-datepicker.esm.js":
/*!********************************************************************!*\
  !*** ./node_modules/vuejs-datepicker/dist/vuejs-datepicker.esm.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
function _typeof(obj) {
  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
    _typeof = function (obj) {
      return typeof obj;
    };
  } else {
    _typeof = function (obj) {
      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    };
  }

  return _typeof(obj);
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a 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);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}

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;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};
    var ownKeys = Object.keys(source);

    if (typeof Object.getOwnPropertySymbols === 'function') {
      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
        return Object.getOwnPropertyDescriptor(source, sym).enumerable;
      }));
    }

    ownKeys.forEach(function (key) {
      _defineProperty(target, key, source[key]);
    });
  }

  return target;
}

var Language =
/*#__PURE__*/
function () {
  function Language(language, months, monthsAbbr, days) {
    _classCallCheck(this, Language);

    this.language = language;
    this.months = months;
    this.monthsAbbr = monthsAbbr;
    this.days = days;
    this.rtl = false;
    this.ymd = false;
    this.yearSuffix = '';
  }

  _createClass(Language, [{
    key: "language",
    get: function get() {
      return this._language;
    },
    set: function set(language) {
      if (typeof language !== 'string') {
        throw new TypeError('Language must be a string');
      }

      this._language = language;
    }
  }, {
    key: "months",
    get: function get() {
      return this._months;
    },
    set: function set(months) {
      if (months.length !== 12) {
        throw new RangeError("There must be 12 months for ".concat(this.language, " language"));
      }

      this._months = months;
    }
  }, {
    key: "monthsAbbr",
    get: function get() {
      return this._monthsAbbr;
    },
    set: function set(monthsAbbr) {
      if (monthsAbbr.length !== 12) {
        throw new RangeError("There must be 12 abbreviated months for ".concat(this.language, " language"));
      }

      this._monthsAbbr = monthsAbbr;
    }
  }, {
    key: "days",
    get: function get() {
      return this._days;
    },
    set: function set(days) {
      if (days.length !== 7) {
        throw new RangeError("There must be 7 days for ".concat(this.language, " language"));
      }

      this._days = days;
    }
  }]);

  return Language;
}(); // eslint-disable-next-line

var en = new Language('English', ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']) // eslint-disable-next-line
;

var utils = {
  /**
   * @type {Boolean}
   */
  useUtc: false,

  /**
   * Returns the full year, using UTC or not
   * @param {Date} date
   */
  getFullYear: function getFullYear(date) {
    return this.useUtc ? date.getUTCFullYear() : date.getFullYear();
  },

  /**
   * Returns the month, using UTC or not
   * @param {Date} date
   */
  getMonth: function getMonth(date) {
    return this.useUtc ? date.getUTCMonth() : date.getMonth();
  },

  /**
   * Returns the date, using UTC or not
   * @param {Date} date
   */
  getDate: function getDate(date) {
    return this.useUtc ? date.getUTCDate() : date.getDate();
  },

  /**
   * Returns the day, using UTC or not
   * @param {Date} date
   */
  getDay: function getDay(date) {
    return this.useUtc ? date.getUTCDay() : date.getDay();
  },

  /**
   * Returns the hours, using UTC or not
   * @param {Date} date
   */
  getHours: function getHours(date) {
    return this.useUtc ? date.getUTCHours() : date.getHours();
  },

  /**
   * Returns the minutes, using UTC or not
   * @param {Date} date
   */
  getMinutes: function getMinutes(date) {
    return this.useUtc ? date.getUTCMinutes() : date.getMinutes();
  },

  /**
   * Sets the full year, using UTC or not
   * @param {Date} date
   */
  setFullYear: function setFullYear(date, value, useUtc) {
    return this.useUtc ? date.setUTCFullYear(value) : date.setFullYear(value);
  },

  /**
   * Sets the month, using UTC or not
   * @param {Date} date
   */
  setMonth: function setMonth(date, value, useUtc) {
    return this.useUtc ? date.setUTCMonth(value) : date.setMonth(value);
  },

  /**
   * Sets the date, using UTC or not
   * @param {Date} date
   * @param {Number} value
   */
  setDate: function setDate(date, value, useUtc) {
    return this.useUtc ? date.setUTCDate(value) : date.setDate(value);
  },

  /**
   * Check if date1 is equivalent to date2, without comparing the time
   * @see https://stackoverflow.com/a/6202196/4455925
   * @param {Date} date1
   * @param {Date} date2
   */
  compareDates: function compareDates(date1, date2) {
    var d1 = new Date(date1.getTime());
    var d2 = new Date(date2.getTime());

    if (this.useUtc) {
      d1.setUTCHours(0, 0, 0, 0);
      d2.setUTCHours(0, 0, 0, 0);
    } else {
      d1.setHours(0, 0, 0, 0);
      d2.setHours(0, 0, 0, 0);
    }

    return d1.getTime() === d2.getTime();
  },

  /**
   * Validates a date object
   * @param {Date} date - an object instantiated with the new Date constructor
   * @return {Boolean}
   */
  isValidDate: function isValidDate(date) {
    if (Object.prototype.toString.call(date) !== '[object Date]') {
      return false;
    }

    return !isNaN(date.getTime());
  },

  /**
   * Return abbreviated week day name
   * @param {Date}
   * @param {Array}
   * @return {String}
   */
  getDayNameAbbr: function getDayNameAbbr(date, days) {
    if (_typeof(date) !== 'object') {
      throw TypeError('Invalid Type');
    }

    return days[this.getDay(date)];
  },

  /**
   * Return name of the month
   * @param {Number|Date}
   * @param {Array}
   * @return {String}
   */
  getMonthName: function getMonthName(month, months) {
    if (!months) {
      throw Error('missing 2nd parameter Months array');
    }

    if (_typeof(month) === 'object') {
      return months[this.getMonth(month)];
    }

    if (typeof month === 'number') {
      return months[month];
    }

    throw TypeError('Invalid type');
  },

  /**
   * Return an abbreviated version of the month
   * @param {Number|Date}
   * @return {String}
   */
  getMonthNameAbbr: function getMonthNameAbbr(month, monthsAbbr) {
    if (!monthsAbbr) {
      throw Error('missing 2nd paramter Months array');
    }

    if (_typeof(month) === 'object') {
      return monthsAbbr[this.getMonth(month)];
    }

    if (typeof month === 'number') {
      return monthsAbbr[month];
    }

    throw TypeError('Invalid type');
  },

  /**
   * Alternative get total number of days in month
   * @param {Number} year
   * @param {Number} m
   * @return {Number}
   */
  daysInMonth: function daysInMonth(year, month) {
    return /8|3|5|10/.test(month) ? 30 : month === 1 ? !(year % 4) && year % 100 || !(year % 400) ? 29 : 28 : 31;
  },

  /**
   * Get nth suffix for date
   * @param {Number} day
   * @return {String}
   */
  getNthSuffix: function getNthSuffix(day) {
    switch (day) {
      case 1:
      case 21:
      case 31:
        return 'st';

      case 2:
      case 22:
        return 'nd';

      case 3:
      case 23:
        return 'rd';

      default:
        return 'th';
    }
  },

  /**
   * Formats date object
   * @param {Date}
   * @param {String}
   * @param {Object}
   * @return {String}
   */
  formatDate: function formatDate(date, format, translation) {
    translation = !translation ? en : translation;
    var year = this.getFullYear(date);
    var month = this.getMonth(date) + 1;
    var day = this.getDate(date);
    var str = format.replace(/dd/, ('0' + day).slice(-2)).replace(/d/, day).replace(/yyyy/, year).replace(/yy/, String(year).slice(2)).replace(/MMMM/, this.getMonthName(this.getMonth(date), translation.months)).replace(/MMM/, this.getMonthNameAbbr(this.getMonth(date), translation.monthsAbbr)).replace(/MM/, ('0' + month).slice(-2)).replace(/M(?!a|ä|e)/, month).replace(/su/, this.getNthSuffix(this.getDate(date))).replace(/D(?!e|é|i)/, this.getDayNameAbbr(date, translation.days));
    return str;
  },

  /**
   * Creates an array of dates for each day in between two dates.
   * @param {Date} start
   * @param {Date} end
   * @return {Array}
   */
  createDateArray: function createDateArray(start, end) {
    var dates = [];

    while (start <= end) {
      dates.push(new Date(start));
      start = this.setDate(new Date(start), this.getDate(new Date(start)) + 1);
    }

    return dates;
  },

  /**
   * method used as a prop validator for input values
   * @param {*} val
   * @return {Boolean}
   */
  validateDateInput: function validateDateInput(val) {
    return val === null || val instanceof Date || typeof val === 'string' || typeof val === 'number';
  }
};
var makeDateUtils = function makeDateUtils(useUtc) {
  return _objectSpread({}, utils, {
    useUtc: useUtc
  });
};
var utils$1 = _objectSpread({}, utils) // eslint-disable-next-line
;

var script = {
  props: {
    selectedDate: Date,
    resetTypedDate: [Date],
    format: [String, Function],
    translation: Object,
    inline: Boolean,
    id: String,
    name: String,
    refName: String,
    openDate: Date,
    placeholder: String,
    inputClass: [String, Object, Array],
    clearButton: Boolean,
    clearButtonIcon: String,
    calendarButton: Boolean,
    calendarButtonIcon: String,
    calendarButtonIconContent: String,
    disabled: Boolean,
    required: Boolean,
    typeable: Boolean,
    bootstrapStyling: Boolean,
    useUtc: Boolean
  },
  data: function data() {
    var constructedDateUtils = makeDateUtils(this.useUtc);
    return {
      input: null,
      typedDate: false,
      utils: constructedDateUtils
    };
  },
  computed: {
    formattedValue: function formattedValue() {
      if (!this.selectedDate) {
        return null;
      }

      if (this.typedDate) {
        return this.typedDate;
      }

      return typeof this.format === 'function' ? this.format(this.selectedDate) : this.utils.formatDate(new Date(this.selectedDate), this.format, this.translation);
    },
    computedInputClass: function computedInputClass() {
      if (this.bootstrapStyling) {
        if (typeof this.inputClass === 'string') {
          return [this.inputClass, 'form-control'].join(' ');
        }

        return _objectSpread({
          'form-control': true
        }, this.inputClass);
      }

      return this.inputClass;
    }
  },
  watch: {
    resetTypedDate: function resetTypedDate() {
      this.typedDate = false;
    }
  },
  methods: {
    showCalendar: function showCalendar() {
      this.$emit('showCalendar');
    },

    /**
     * Attempt to parse a typed date
     * @param {Event} event
     */
    parseTypedDate: function parseTypedDate(event) {
      // close calendar if escape or enter are pressed
      if ([27, // escape
      13 // enter
      ].includes(event.keyCode)) {
        this.input.blur();
      }

      if (this.typeable) {
        var typedDate = Date.parse(this.input.value);

        if (!isNaN(typedDate)) {
          this.typedDate = this.input.value;
          this.$emit('typedDate', new Date(this.typedDate));
        }
      }
    },

    /**
     * nullify the typed date to defer to regular formatting
     * called once the input is blurred
     */
    inputBlurred: function inputBlurred() {
      if (this.typeable && isNaN(Date.parse(this.input.value))) {
        this.clearDate();
        this.input.value = null;
        this.typedDate = null;
      }

      this.$emit('closeCalendar');
    },

    /**
     * emit a clearDate event
     */
    clearDate: function clearDate() {
      this.$emit('clearDate');
    }
  },
  mounted: function mounted() {
    this.input = this.$el.querySelector('input');
  }
} // eslint-disable-next-line
;

function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier
/* server only */
, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
  if (typeof shadowMode !== 'boolean') {
    createInjectorSSR = createInjector;
    createInjector = shadowMode;
    shadowMode = false;
  } // Vue.extend constructor export interop.


  var options = typeof script === 'function' ? script.options : script; // render functions

  if (template && template.render) {
    options.render = template.render;
    options.staticRenderFns = template.staticRenderFns;
    options._compiled = true; // functional template

    if (isFunctionalTemplate) {
      options.functional = true;
    }
  } // scopedId


  if (scopeId) {
    options._scopeId = scopeId;
  }

  var hook;

  if (moduleIdentifier) {
    // server build
    hook = function hook(context) {
      // 2.3 injection
      context = context || // cached call
      this.$vnode && this.$vnode.ssrContext || // stateful
      this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
      // 2.2 with runInNewContext: true

      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
        context = __VUE_SSR_CONTEXT__;
      } // inject component styles


      if (style) {
        style.call(this, createInjectorSSR(context));
      } // register component module identifier for async chunk inference


      if (context && context._registeredComponents) {
        context._registeredComponents.add(moduleIdentifier);
      }
    }; // used by ssr in case component is cached and beforeCreate
    // never gets called


    options._ssrRegister = hook;
  } else if (style) {
    hook = shadowMode ? function () {
      style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));
    } : function (context) {
      style.call(this, createInjector(context));
    };
  }

  if (hook) {
    if (options.functional) {
      // register for functional component in vue file
      var originalRender = options.render;

      options.render = function renderWithStyleInjection(h, context) {
        hook.call(context);
        return originalRender(h, context);
      };
    } else {
      // inject component registration as beforeCreate hook
      var existing = options.beforeCreate;
      options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
    }
  }

  return script;
}

var normalizeComponent_1 = normalizeComponent;

/* script */
const __vue_script__ = script;

/* template */
var __vue_render__ = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { class: { "input-group": _vm.bootstrapStyling } },
    [
      _vm.calendarButton
        ? _c(
            "span",
            {
              staticClass: "vdp-datepicker__calendar-button",
              class: { "input-group-prepend": _vm.bootstrapStyling },
              style: { "cursor:not-allowed;": _vm.disabled },
              on: { click: _vm.showCalendar }
            },
            [
              _c(
                "span",
                { class: { "input-group-text": _vm.bootstrapStyling } },
                [
                  _c("i", { class: _vm.calendarButtonIcon }, [
                    _vm._v(
                      "\n        " +
                        _vm._s(_vm.calendarButtonIconContent) +
                        "\n        "
                    ),
                    !_vm.calendarButtonIcon
                      ? _c("span", [_vm._v("…")])
                      : _vm._e()
                  ])
                ]
              )
            ]
          )
        : _vm._e(),
      _vm._v(" "),
      _c("input", {
        ref: _vm.refName,
        class: _vm.computedInputClass,
        attrs: {
          type: _vm.inline ? "hidden" : "text",
          name: _vm.name,
          id: _vm.id,
          "open-date": _vm.openDate,
          placeholder: _vm.placeholder,
          "clear-button": _vm.clearButton,
          disabled: _vm.disabled,
          required: _vm.required,
          readonly: !_vm.typeable,
          autocomplete: "off"
        },
        domProps: { value: _vm.formattedValue },
        on: {
          click: _vm.showCalendar,
          keyup: _vm.parseTypedDate,
          blur: _vm.inputBlurred
        }
      }),
      _vm._v(" "),
      _vm.clearButton && _vm.selectedDate
        ? _c(
            "span",
            {
              staticClass: "vdp-datepicker__clear-button",
              class: { "input-group-append": _vm.bootstrapStyling },
              on: {
                click: function($event) {
                  return _vm.clearDate()
                }
              }
            },
            [
              _c(
                "span",
                { class: { "input-group-text": _vm.bootstrapStyling } },
                [
                  _c("i", { class: _vm.clearButtonIcon }, [
                    !_vm.clearButtonIcon ? _c("span", [_vm._v("×")]) : _vm._e()
                  ])
                ]
              )
            ]
          )
        : _vm._e(),
      _vm._v(" "),
      _vm._t("afterDateInput")
    ],
    2
  )
};
var __vue_staticRenderFns__ = [];
__vue_render__._withStripped = true;

  /* style */
  const __vue_inject_styles__ = undefined;
  /* scoped */
  const __vue_scope_id__ = undefined;
  /* module identifier */
  const __vue_module_identifier__ = undefined;
  /* functional template */
  const __vue_is_functional_template__ = false;
  /* style inject */
  
  /* style inject SSR */
  

  
  var DateInput = normalizeComponent_1(
    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
    __vue_inject_styles__,
    __vue_script__,
    __vue_scope_id__,
    __vue_is_functional_template__,
    __vue_module_identifier__,
    undefined,
    undefined
  );

//
var script$1 = {
  props: {
    showDayView: Boolean,
    selectedDate: Date,
    pageDate: Date,
    pageTimestamp: Number,
    fullMonthName: Boolean,
    allowedToShowView: Function,
    dayCellContent: {
      type: Function,
      "default": function _default(day) {
        return day.date;
      }
    },
    disabledDates: Object,
    highlighted: Object,
    calendarClass: [String, Object, Array],
    calendarStyle: Object,
    translation: Object,
    isRtl: Boolean,
    mondayFirst: Boolean,
    useUtc: Boolean
  },
  data: function data() {
    var constructedDateUtils = makeDateUtils(this.useUtc);
    return {
      utils: constructedDateUtils
    };
  },
  computed: {
    /**
     * Returns an array of day names
     * @return {String[]}
     */
    daysOfWeek: function daysOfWeek() {
      if (this.mondayFirst) {
        var tempDays = this.translation.days.slice();
        tempDays.push(tempDays.shift());
        return tempDays;
      }

      return this.translation.days;
    },

    /**
     * Returns the day number of the week less one for the first of the current month
     * Used to show amount of empty cells before the first in the day calendar layout
     * @return {Number}
     */
    blankDays: function blankDays() {
      var d = this.pageDate;
      var dObj = this.useUtc ? new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), 1)) : new Date(d.getFullYear(), d.getMonth(), 1, d.getHours(), d.getMinutes());

      if (this.mondayFirst) {
        return this.utils.getDay(dObj) > 0 ? this.utils.getDay(dObj) - 1 : 6;
      }

      return this.utils.getDay(dObj);
    },

    /**
     * @return {Object[]}
     */
    days: function days() {
      var d = this.pageDate;
      var days = []; // set up a new date object to the beginning of the current 'page'

      var dObj = this.useUtc ? new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), 1)) : new Date(d.getFullYear(), d.getMonth(), 1, d.getHours(), d.getMinutes());
      var daysInMonth = this.utils.daysInMonth(this.utils.getFullYear(dObj), this.utils.getMonth(dObj));

      for (var i = 0; i < daysInMonth; i++) {
        days.push({
          date: this.utils.getDate(dObj),
          timestamp: dObj.getTime(),
          isSelected: this.isSelectedDate(dObj),
          isDisabled: this.isDisabledDate(dObj),
          isHighlighted: this.isHighlightedDate(dObj),
          isHighlightStart: this.isHighlightStart(dObj),
          isHighlightEnd: this.isHighlightEnd(dObj),
          isToday: this.utils.compareDates(dObj, new Date()),
          isWeekend: this.utils.getDay(dObj) === 0 || this.utils.getDay(dObj) === 6,
          isSaturday: this.utils.getDay(dObj) === 6,
          isSunday: this.utils.getDay(dObj) === 0
        });
        this.utils.setDate(dObj, this.utils.getDate(dObj) + 1);
      }

      return days;
    },

    /**
     * Gets the name of the month the current page is on
     * @return {String}
     */
    currMonthName: function currMonthName() {
      var monthName = this.fullMonthName ? this.translation.months : this.translation.monthsAbbr;
      return this.utils.getMonthNameAbbr(this.utils.getMonth(this.pageDate), monthName);
    },

    /**
     * Gets the name of the year that current page is on
     * @return {Number}
     */
    currYearName: function currYearName() {
      var yearSuffix = this.translation.yearSuffix;
      return "".concat(this.utils.getFullYear(this.pageDate)).concat(yearSuffix);
    },

    /**
     * Is this translation using year/month/day format?
     * @return {Boolean}
     */
    isYmd: function isYmd() {
      return this.translation.ymd && this.translation.ymd === true;
    },

    /**
     * Is the left hand navigation button disabled?
     * @return {Boolean}
     */
    isLeftNavDisabled: function isLeftNavDisabled() {
      return this.isRtl ? this.isNextMonthDisabled(this.pageTimestamp) : this.isPreviousMonthDisabled(this.pageTimestamp);
    },

    /**
     * Is the right hand navigation button disabled?
     * @return {Boolean}
     */
    isRightNavDisabled: function isRightNavDisabled() {
      return this.isRtl ? this.isPreviousMonthDisabled(this.pageTimestamp) : this.isNextMonthDisabled(this.pageTimestamp);
    }
  },
  methods: {
    selectDate: function selectDate(date) {
      if (date.isDisabled) {
        this.$emit('selectedDisabled', date);
        return false;
      }

      this.$emit('selectDate', date);
    },

    /**
     * @return {Number}
     */
    getPageMonth: function getPageMonth() {
      return this.utils.getMonth(this.pageDate);
    },

    /**
     * Emit an event to show the month picker
     */
    showMonthCalendar: function showMonthCalendar() {
      this.$emit('showMonthCalendar');
    },

    /**
     * Change the page month
     * @param {Number} incrementBy
     */
    changeMonth: function changeMonth(incrementBy) {
      var date = this.pageDate;
      this.utils.setMonth(date, this.utils.getMonth(date) + incrementBy);
      this.$emit('changedMonth', date);
    },

    /**
     * Decrement the page month
     */
    previousMonth: function previousMonth() {
      if (!this.isPreviousMonthDisabled()) {
        this.changeMonth(-1);
      }
    },

    /**
     * Is the previous month disabled?
     * @return {Boolean}
     */
    isPreviousMonthDisabled: function isPreviousMonthDisabled() {
      if (!this.disabledDates || !this.disabledDates.to) {
        return false;
      }

      var d = this.pageDate;
      return this.utils.getMonth(this.disabledDates.to) >= this.utils.getMonth(d) && this.utils.getFullYear(this.disabledDates.to) >= this.utils.getFullYear(d);
    },

    /**
     * Increment the current page month
     */
    nextMonth: function nextMonth() {
      if (!this.isNextMonthDisabled()) {
        this.changeMonth(+1);
      }
    },

    /**
     * Is the next month disabled?
     * @return {Boolean}
     */
    isNextMonthDisabled: function isNextMonthDisabled() {
      if (!this.disabledDates || !this.disabledDates.from) {
        return false;
      }

      var d = this.pageDate;
      return this.utils.getMonth(this.disabledDates.from) <= this.utils.getMonth(d) && this.utils.getFullYear(this.disabledDates.from) <= this.utils.getFullYear(d);
    },

    /**
     * Whether a day is selected
     * @param {Date}
     * @return {Boolean}
     */
    isSelectedDate: function isSelectedDate(dObj) {
      return this.selectedDate && this.utils.compareDates(this.selectedDate, dObj);
    },

    /**
     * Whether a day is disabled
     * @param {Date}
     * @return {Boolean}
     */
    isDisabledDate: function isDisabledDate(date) {
      var _this = this;

      var disabledDates = false;

      if (typeof this.disabledDates === 'undefined') {
        return false;
      }

      if (typeof this.disabledDates.dates !== 'undefined') {
        this.disabledDates.dates.forEach(function (d) {
          if (_this.utils.compareDates(date, d)) {
            disabledDates = true;
            return true;
          }
        });
      }

      if (typeof this.disabledDates.to !== 'undefined' && this.disabledDates.to && date < this.disabledDates.to) {
        disabledDates = true;
      }

      if (typeof this.disabledDates.from !== 'undefined' && this.disabledDates.from && date > this.disabledDates.from) {
        disabledDates = true;
      }

      if (typeof this.disabledDates.ranges !== 'undefined') {
        this.disabledDates.ranges.forEach(function (range) {
          if (typeof range.from !== 'undefined' && range.from && typeof range.to !== 'undefined' && range.to) {
            if (date < range.to && date > range.from) {
              disabledDates = true;
              return true;
            }
          }
        });
      }

      if (typeof this.disabledDates.days !== 'undefined' && this.disabledDates.days.indexOf(this.utils.getDay(date)) !== -1) {
        disabledDates = true;
      }

      if (typeof this.disabledDates.daysOfMonth !== 'undefined' && this.disabledDates.daysOfMonth.indexOf(this.utils.getDate(date)) !== -1) {
        disabledDates = true;
      }

      if (typeof this.disabledDates.customPredictor === 'function' && this.disabledDates.customPredictor(date)) {
        disabledDates = true;
      }

      return disabledDates;
    },

    /**
     * Whether a day is highlighted (only if it is not disabled already except when highlighted.includeDisabled is true)
     * @param {Date}
     * @return {Boolean}
     */
    isHighlightedDate: function isHighlightedDate(date) {
      var _this2 = this;

      if (!(this.highlighted && this.highlighted.includeDisabled) && this.isDisabledDate(date)) {
        return false;
      }

      var highlighted = false;

      if (typeof this.highlighted === 'undefined') {
        return false;
      }

      if (typeof this.highlighted.dates !== 'undefined') {
        this.highlighted.dates.forEach(function (d) {
          if (_this2.utils.compareDates(date, d)) {
            highlighted = true;
            return true;
          }
        });
      }

      if (this.isDefined(this.highlighted.from) && this.isDefined(this.highlighted.to)) {
        highlighted = date >= this.highlighted.from && date <= this.highlighted.to;
      }

      if (typeof this.highlighted.days !== 'undefined' && this.highlighted.days.indexOf(this.utils.getDay(date)) !== -1) {
        highlighted = true;
      }

      if (typeof this.highlighted.daysOfMonth !== 'undefined' && this.highlighted.daysOfMonth.indexOf(this.utils.getDate(date)) !== -1) {
        highlighted = true;
      }

      if (typeof this.highlighted.customPredictor === 'function' && this.highlighted.customPredictor(date)) {
        highlighted = true;
      }

      return highlighted;
    },
    dayClasses: function dayClasses(day) {
      return {
        'selected': day.isSelected,
        'disabled': day.isDisabled,
        'highlighted': day.isHighlighted,
        'today': day.isToday,
        'weekend': day.isWeekend,
        'sat': day.isSaturday,
        'sun': day.isSunday,
        'highlight-start': day.isHighlightStart,
        'highlight-end': day.isHighlightEnd
      };
    },

    /**
     * Whether a day is highlighted and it is the first date
     * in the highlighted range of dates
     * @param {Date}
     * @return {Boolean}
     */
    isHighlightStart: function isHighlightStart(date) {
      return this.isHighlightedDate(date) && this.highlighted.from instanceof Date && this.utils.getFullYear(this.highlighted.from) === this.utils.getFullYear(date) && this.utils.getMonth(this.highlighted.from) === this.utils.getMonth(date) && this.utils.getDate(this.highlighted.from) === this.utils.getDate(date);
    },

    /**
     * Whether a day is highlighted and it is the first date
     * in the highlighted range of dates
     * @param {Date}
     * @return {Boolean}
     */
    isHighlightEnd: function isHighlightEnd(date) {
      return this.isHighlightedDate(date) && this.highlighted.to instanceof Date && this.utils.getFullYear(this.highlighted.to) === this.utils.getFullYear(date) && this.utils.getMonth(this.highlighted.to) === this.utils.getMonth(date) && this.utils.getDate(this.highlighted.to) === this.utils.getDate(date);
    },

    /**
     * Helper
     * @param  {mixed}  prop
     * @return {Boolean}
     */
    isDefined: function isDefined(prop) {
      return typeof prop !== 'undefined' && prop;
    }
  } // eslint-disable-next-line

};

/* script */
const __vue_script__$1 = script$1;

/* template */
var __vue_render__$1 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    {
      directives: [
        {
          name: "show",
          rawName: "v-show",
          value: _vm.showDayView,
          expression: "showDayView"
        }
      ],
      class: [_vm.calendarClass, "vdp-datepicker__calendar"],
      style: _vm.calendarStyle,
      on: {
        mousedown: function($event) {
          $event.preventDefault();
        }
      }
    },
    [
      _vm._t("beforeCalendarHeader"),
      _vm._v(" "),
      _c("header", [
        _c(
          "span",
          {
            staticClass: "prev",
            class: { disabled: _vm.isLeftNavDisabled },
            on: {
              click: function($event) {
                _vm.isRtl ? _vm.nextMonth() : _vm.previousMonth();
              }
            }
          },
          [_vm._v("<")]
        ),
        _vm._v(" "),
        _c(
          "span",
          {
            staticClass: "day__month_btn",
            class: _vm.allowedToShowView("month") ? "up" : "",
            on: { click: _vm.showMonthCalendar }
          },
          [
            _vm._v(
              _vm._s(_vm.isYmd ? _vm.currYearName : _vm.currMonthName) +
                " " +
                _vm._s(_vm.isYmd ? _vm.currMonthName : _vm.currYearName)
            )
          ]
        ),
        _vm._v(" "),
        _c(
          "span",
          {
            staticClass: "next",
            class: { disabled: _vm.isRightNavDisabled },
            on: {
              click: function($event) {
                _vm.isRtl ? _vm.previousMonth() : _vm.nextMonth();
              }
            }
          },
          [_vm._v(">")]
        )
      ]),
      _vm._v(" "),
      _c(
        "div",
        { class: _vm.isRtl ? "flex-rtl" : "" },
        [
          _vm._l(_vm.daysOfWeek, function(d) {
            return _c(
              "span",
              { key: d.timestamp, staticClass: "cell day-header" },
              [_vm._v(_vm._s(d))]
            )
          }),
          _vm._v(" "),
          _vm.blankDays > 0
            ? _vm._l(_vm.blankDays, function(d) {
                return _c("span", {
                  key: d.timestamp,
                  staticClass: "cell day blank"
                })
              })
            : _vm._e(),
          _vm._l(_vm.days, function(day) {
            return _c("span", {
              key: day.timestamp,
              staticClass: "cell day",
              class: _vm.dayClasses(day),
              domProps: { innerHTML: _vm._s(_vm.dayCellContent(day)) },
              on: {
                click: function($event) {
                  return _vm.selectDate(day)
                }
              }
            })
          })
        ],
        2
      )
    ],
    2
  )
};
var __vue_staticRenderFns__$1 = [];
__vue_render__$1._withStripped = true;

  /* style */
  const __vue_inject_styles__$1 = undefined;
  /* scoped */
  const __vue_scope_id__$1 = undefined;
  /* module identifier */
  const __vue_module_identifier__$1 = undefined;
  /* functional template */
  const __vue_is_functional_template__$1 = false;
  /* style inject */
  
  /* style inject SSR */
  

  
  var PickerDay = normalizeComponent_1(
    { render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
    __vue_inject_styles__$1,
    __vue_script__$1,
    __vue_scope_id__$1,
    __vue_is_functional_template__$1,
    __vue_module_identifier__$1,
    undefined,
    undefined
  );

//
var script$2 = {
  props: {
    showMonthView: Boolean,
    selectedDate: Date,
    pageDate: Date,
    pageTimestamp: Number,
    disabledDates: Object,
    calendarClass: [String, Object, Array],
    calendarStyle: Object,
    translation: Object,
    isRtl: Boolean,
    allowedToShowView: Function,
    useUtc: Boolean
  },
  data: function data() {
    var constructedDateUtils = makeDateUtils(this.useUtc);
    return {
      utils: constructedDateUtils
    };
  },
  computed: {
    months: function months() {
      var d = this.pageDate;
      var months = []; // set up a new date object to the beginning of the current 'page'

      var dObj = this.useUtc ? new Date(Date.UTC(d.getUTCFullYear(), 0, d.getUTCDate())) : new Date(d.getFullYear(), 0, d.getDate(), d.getHours(), d.getMinutes());

      for (var i = 0; i < 12; i++) {
        months.push({
          month: this.utils.getMonthName(i, this.translation.months),
          timestamp: dObj.getTime(),
          isSelected: this.isSelectedMonth(dObj),
          isDisabled: this.isDisabledMonth(dObj)
        });
        this.utils.setMonth(dObj, this.utils.getMonth(dObj) + 1);
      }

      return months;
    },

    /**
     * Get year name on current page.
     * @return {String}
     */
    pageYearName: function pageYearName() {
      var yearSuffix = this.translation.yearSuffix;
      return "".concat(this.utils.getFullYear(this.pageDate)).concat(yearSuffix);
    },

    /**
     * Is the left hand navigation disabled
     * @return {Boolean}
     */
    isLeftNavDisabled: function isLeftNavDisabled() {
      return this.isRtl ? this.isNextYearDisabled(this.pageTimestamp) : this.isPreviousYearDisabled(this.pageTimestamp);
    },

    /**
     * Is the right hand navigation disabled
     * @return {Boolean}
     */
    isRightNavDisabled: function isRightNavDisabled() {
      return this.isRtl ? this.isPreviousYearDisabled(this.pageTimestamp) : this.isNextYearDisabled(this.pageTimestamp);
    }
  },
  methods: {
    /**
     * Emits a selectMonth event
     * @param {Object} month
     */
    selectMonth: function selectMonth(month) {
      if (month.isDisabled) {
        return false;
      }

      this.$emit('selectMonth', month);
    },

    /**
     * Changes the year up or down
     * @param {Number} incrementBy
     */
    changeYear: function changeYear(incrementBy) {
      var date = this.pageDate;
      this.utils.setFullYear(date, this.utils.getFullYear(date) + incrementBy);
      this.$emit('changedYear', date);
    },

    /**
     * Decrements the year
     */
    previousYear: function previousYear() {
      if (!this.isPreviousYearDisabled()) {
        this.changeYear(-1);
      }
    },

    /**
     * Checks if the previous year is disabled or not
     * @return {Boolean}
     */
    isPreviousYearDisabled: function isPreviousYearDisabled() {
      if (!this.disabledDates || !this.disabledDates.to) {
        return false;
      }

      return this.utils.getFullYear(this.disabledDates.to) >= this.utils.getFullYear(this.pageDate);
    },

    /**
     * Increments the year
     */
    nextYear: function nextYear() {
      if (!this.isNextYearDisabled()) {
        this.changeYear(1);
      }
    },

    /**
     * Checks if the next year is disabled or not
     * @return {Boolean}
     */
    isNextYearDisabled: function isNextYearDisabled() {
      if (!this.disabledDates || !this.disabledDates.from) {
        return false;
      }

      return this.utils.getFullYear(this.disabledDates.from) <= this.utils.getFullYear(this.pageDate);
    },

    /**
     * Emits an event that shows the year calendar
     */
    showYearCalendar: function showYearCalendar() {
      this.$emit('showYearCalendar');
    },

    /**
     * Whether the selected date is in this month
     * @param {Date}
     * @return {Boolean}
     */
    isSelectedMonth: function isSelectedMonth(date) {
      return this.selectedDate && this.utils.getFullYear(this.selectedDate) === this.utils.getFullYear(date) && this.utils.getMonth(this.selectedDate) === this.utils.getMonth(date);
    },

    /**
     * Whether a month is disabled
     * @param {Date}
     * @return {Boolean}
     */
    isDisabledMonth: function isDisabledMonth(date) {
      var disabledDates = false;

      if (typeof this.disabledDates === 'undefined') {
        return false;
      }

      if (typeof this.disabledDates.to !== 'undefined' && this.disabledDates.to) {
        if (this.utils.getMonth(date) < this.utils.getMonth(this.disabledDates.to) && this.utils.getFullYear(date) <= this.utils.getFullYear(this.disabledDates.to) || this.utils.getFullYear(date) < this.utils.getFullYear(this.disabledDates.to)) {
          disabledDates = true;
        }
      }

      if (typeof this.disabledDates.from !== 'undefined' && this.disabledDates.from) {
        if (this.utils.getMonth(date) > this.utils.getMonth(this.disabledDates.from) && this.utils.getFullYear(date) >= this.utils.getFullYear(this.disabledDates.from) || this.utils.getFullYear(date) > this.utils.getFullYear(this.disabledDates.from)) {
          disabledDates = true;
        }
      }

      if (typeof this.disabledDates.customPredictor === 'function' && this.disabledDates.customPredictor(date)) {
        disabledDates = true;
      }

      return disabledDates;
    }
  } // eslint-disable-next-line

};

/* script */
const __vue_script__$2 = script$2;

/* template */
var __vue_render__$2 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    {
      directives: [
        {
          name: "show",
          rawName: "v-show",
          value: _vm.showMonthView,
          expression: "showMonthView"
        }
      ],
      class: [_vm.calendarClass, "vdp-datepicker__calendar"],
      style: _vm.calendarStyle,
      on: {
        mousedown: function($event) {
          $event.preventDefault();
        }
      }
    },
    [
      _vm._t("beforeCalendarHeader"),
      _vm._v(" "),
      _c("header", [
        _c(
          "span",
          {
            staticClass: "prev",
            class: { disabled: _vm.isLeftNavDisabled },
            on: {
              click: function($event) {
                _vm.isRtl ? _vm.nextYear() : _vm.previousYear();
              }
            }
          },
          [_vm._v("<")]
        ),
        _vm._v(" "),
        _c(
          "span",
          {
            staticClass: "month__year_btn",
            class: _vm.allowedToShowView("year") ? "up" : "",
            on: { click: _vm.showYearCalendar }
          },
          [_vm._v(_vm._s(_vm.pageYearName))]
        ),
        _vm._v(" "),
        _c(
          "span",
          {
            staticClass: "next",
            class: { disabled: _vm.isRightNavDisabled },
            on: {
              click: function($event) {
                _vm.isRtl ? _vm.previousYear() : _vm.nextYear();
              }
            }
          },
          [_vm._v(">")]
        )
      ]),
      _vm._v(" "),
      _vm._l(_vm.months, function(month) {
        return _c(
          "span",
          {
            key: month.timestamp,
            staticClass: "cell month",
            class: { selected: month.isSelected, disabled: month.isDisabled },
            on: {
              click: function($event) {
                $event.stopPropagation();
                return _vm.selectMonth(month)
              }
            }
          },
          [_vm._v(_vm._s(month.month))]
        )
      })
    ],
    2
  )
};
var __vue_staticRenderFns__$2 = [];
__vue_render__$2._withStripped = true;

  /* style */
  const __vue_inject_styles__$2 = undefined;
  /* scoped */
  const __vue_scope_id__$2 = undefined;
  /* module identifier */
  const __vue_module_identifier__$2 = undefined;
  /* functional template */
  const __vue_is_functional_template__$2 = false;
  /* style inject */
  
  /* style inject SSR */
  

  
  var PickerMonth = normalizeComponent_1(
    { render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
    __vue_inject_styles__$2,
    __vue_script__$2,
    __vue_scope_id__$2,
    __vue_is_functional_template__$2,
    __vue_module_identifier__$2,
    undefined,
    undefined
  );

//
var script$3 = {
  props: {
    showYearView: Boolean,
    selectedDate: Date,
    pageDate: Date,
    pageTimestamp: Number,
    disabledDates: Object,
    highlighted: Object,
    calendarClass: [String, Object, Array],
    calendarStyle: Object,
    translation: Object,
    isRtl: Boolean,
    allowedToShowView: Function,
    useUtc: Boolean
  },
  computed: {
    years: function years() {
      var d = this.pageDate;
      var years = []; // set up a new date object to the beginning of the current 'page'7

      var dObj = this.useUtc ? new Date(Date.UTC(Math.floor(d.getUTCFullYear() / 10) * 10, d.getUTCMonth(), d.getUTCDate())) : new Date(Math.floor(d.getFullYear() / 10) * 10, d.getMonth(), d.getDate(), d.getHours(), d.getMinutes());

      for (var i = 0; i < 10; i++) {
        years.push({
          year: this.utils.getFullYear(dObj),
          timestamp: dObj.getTime(),
          isSelected: this.isSelectedYear(dObj),
          isDisabled: this.isDisabledYear(dObj)
        });
        this.utils.setFullYear(dObj, this.utils.getFullYear(dObj) + 1);
      }

      return years;
    },

    /**
     * @return {String}
     */
    getPageDecade: function getPageDecade() {
      var decadeStart = Math.floor(this.utils.getFullYear(this.pageDate) / 10) * 10;
      var decadeEnd = decadeStart + 9;
      var yearSuffix = this.translation.yearSuffix;
      return "".concat(decadeStart, " - ").concat(decadeEnd).concat(yearSuffix);
    },

    /**
     * Is the left hand navigation button disabled?
     * @return {Boolean}
     */
    isLeftNavDisabled: function isLeftNavDisabled() {
      return this.isRtl ? this.isNextDecadeDisabled(this.pageTimestamp) : this.isPreviousDecadeDisabled(this.pageTimestamp);
    },

    /**
     * Is the right hand navigation button disabled?
     * @return {Boolean}
     */
    isRightNavDisabled: function isRightNavDisabled() {
      return this.isRtl ? this.isPreviousDecadeDisabled(this.pageTimestamp) : this.isNextDecadeDisabled(this.pageTimestamp);
    }
  },
  data: function data() {
    var constructedDateUtils = makeDateUtils(this.useUtc);
    return {
      utils: constructedDateUtils
    };
  },
  methods: {
    selectYear: function selectYear(year) {
      if (year.isDisabled) {
        return false;
      }

      this.$emit('selectYear', year);
    },
    changeYear: function changeYear(incrementBy) {
      var date = this.pageDate;
      this.utils.setFullYear(date, this.utils.getFullYear(date) + incrementBy);
      this.$emit('changedDecade', date);
    },
    previousDecade: function previousDecade() {
      if (this.isPreviousDecadeDisabled()) {
        return false;
      }

      this.changeYear(-10);
    },
    isPreviousDecadeDisabled: function isPreviousDecadeDisabled() {
      if (!this.disabledDates || !this.disabledDates.to) {
        return false;
      }

      var disabledYear = this.utils.getFullYear(this.disabledDates.to);
      var lastYearInPreviousPage = Math.floor(this.utils.getFullYear(this.pageDate) / 10) * 10 - 1;
      return disabledYear > lastYearInPreviousPage;
    },
    nextDecade: function nextDecade() {
      if (this.isNextDecadeDisabled()) {
        return false;
      }

      this.changeYear(10);
    },
    isNextDecadeDisabled: function isNextDecadeDisabled() {
      if (!this.disabledDates || !this.disabledDates.from) {
        return false;
      }

      var disabledYear = this.utils.getFullYear(this.disabledDates.from);
      var firstYearInNextPage = Math.ceil(this.utils.getFullYear(this.pageDate) / 10) * 10;
      return disabledYear < firstYearInNextPage;
    },

    /**
     * Whether the selected date is in this year
     * @param {Date}
     * @return {Boolean}
     */
    isSelectedYear: function isSelectedYear(date) {
      return this.selectedDate && this.utils.getFullYear(this.selectedDate) === this.utils.getFullYear(date);
    },

    /**
     * Whether a year is disabled
     * @param {Date}
     * @return {Boolean}
     */
    isDisabledYear: function isDisabledYear(date) {
      var disabledDates = false;

      if (typeof this.disabledDates === 'undefined' || !this.disabledDates) {
        return false;
      }

      if (typeof this.disabledDates.to !== 'undefined' && this.disabledDates.to) {
        if (this.utils.getFullYear(date) < this.utils.getFullYear(this.disabledDates.to)) {
          disabledDates = true;
        }
      }

      if (typeof this.disabledDates.from !== 'undefined' && this.disabledDates.from) {
        if (this.utils.getFullYear(date) > this.utils.getFullYear(this.disabledDates.from)) {
          disabledDates = true;
        }
      }

      if (typeof this.disabledDates.customPredictor === 'function' && this.disabledDates.customPredictor(date)) {
        disabledDates = true;
      }

      return disabledDates;
    }
  } // eslint-disable-next-line

};

/* script */
const __vue_script__$3 = script$3;

/* template */
var __vue_render__$3 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    {
      directives: [
        {
          name: "show",
          rawName: "v-show",
          value: _vm.showYearView,
          expression: "showYearView"
        }
      ],
      class: [_vm.calendarClass, "vdp-datepicker__calendar"],
      style: _vm.calendarStyle,
      on: {
        mousedown: function($event) {
          $event.preventDefault();
        }
      }
    },
    [
      _vm._t("beforeCalendarHeader"),
      _vm._v(" "),
      _c("header", [
        _c(
          "span",
          {
            staticClass: "prev",
            class: { disabled: _vm.isLeftNavDisabled },
            on: {
              click: function($event) {
                _vm.isRtl ? _vm.nextDecade() : _vm.previousDecade();
              }
            }
          },
          [_vm._v("<")]
        ),
        _vm._v(" "),
        _c("span", [_vm._v(_vm._s(_vm.getPageDecade))]),
        _vm._v(" "),
        _c(
          "span",
          {
            staticClass: "next",
            class: { disabled: _vm.isRightNavDisabled },
            on: {
              click: function($event) {
                _vm.isRtl ? _vm.previousDecade() : _vm.nextDecade();
              }
            }
          },
          [_vm._v(">")]
        )
      ]),
      _vm._v(" "),
      _vm._l(_vm.years, function(year) {
        return _c(
          "span",
          {
            key: year.timestamp,
            staticClass: "cell year",
            class: { selected: year.isSelected, disabled: year.isDisabled },
            on: {
              click: function($event) {
                $event.stopPropagation();
                return _vm.selectYear(year)
              }
            }
          },
          [_vm._v(_vm._s(year.year))]
        )
      })
    ],
    2
  )
};
var __vue_staticRenderFns__$3 = [];
__vue_render__$3._withStripped = true;

  /* style */
  const __vue_inject_styles__$3 = undefined;
  /* scoped */
  const __vue_scope_id__$3 = undefined;
  /* module identifier */
  const __vue_module_identifier__$3 = undefined;
  /* functional template */
  const __vue_is_functional_template__$3 = false;
  /* style inject */
  
  /* style inject SSR */
  

  
  var PickerYear = normalizeComponent_1(
    { render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
    __vue_inject_styles__$3,
    __vue_script__$3,
    __vue_scope_id__$3,
    __vue_is_functional_template__$3,
    __vue_module_identifier__$3,
    undefined,
    undefined
  );

//
var script$4 = {
  components: {
    DateInput: DateInput,
    PickerDay: PickerDay,
    PickerMonth: PickerMonth,
    PickerYear: PickerYear
  },
  props: {
    value: {
      validator: function validator(val) {
        return utils$1.validateDateInput(val);
      }
    },
    name: String,
    refName: String,
    id: String,
    format: {
      type: [String, Function],
      "default": 'dd MMM yyyy'
    },
    language: {
      type: Object,
      "default": function _default() {
        return en;
      }
    },
    openDate: {
      validator: function validator(val) {
        return utils$1.validateDateInput(val);
      }
    },
    dayCellContent: Function,
    fullMonthName: Boolean,
    disabledDates: Object,
    highlighted: Object,
    placeholder: String,
    inline: Boolean,
    calendarClass: [String, Object, Array],
    inputClass: [String, Object, Array],
    wrapperClass: [String, Object, Array],
    mondayFirst: Boolean,
    clearButton: Boolean,
    clearButtonIcon: String,
    calendarButton: Boolean,
    calendarButtonIcon: String,
    calendarButtonIconContent: String,
    bootstrapStyling: Boolean,
    initialView: String,
    disabled: Boolean,
    required: Boolean,
    typeable: Boolean,
    useUtc: Boolean,
    minimumView: {
      type: String,
      "default": 'day'
    },
    maximumView: {
      type: String,
      "default": 'year'
    }
  },
  data: function data() {
    var startDate = this.openDate ? new Date(this.openDate) : new Date();
    var constructedDateUtils = makeDateUtils(this.useUtc);
    var pageTimestamp = constructedDateUtils.setDate(startDate, 1);
    return {
      /*
       * Vue cannot observe changes to a Date Object so date must be stored as a timestamp
       * This represents the first day of the current viewing month
       * {Number}
       */
      pageTimestamp: pageTimestamp,

      /*
       * Selected Date
       * {Date}
       */
      selectedDate: null,

      /*
       * Flags to show calendar views
       * {Boolean}
       */
      showDayView: false,
      showMonthView: false,
      showYearView: false,

      /*
       * Positioning
       */
      calendarHeight: 0,
      resetTypedDate: new Date(),
      utils: constructedDateUtils
    };
  },
  watch: {
    value: function value(_value) {
      this.setValue(_value);
    },
    openDate: function openDate() {
      this.setPageDate();
    },
    initialView: function initialView() {
      this.setInitialView();
    }
  },
  computed: {
    computedInitialView: function computedInitialView() {
      if (!this.initialView) {
        return this.minimumView;
      }

      return this.initialView;
    },
    pageDate: function pageDate() {
      return new Date(this.pageTimestamp);
    },
    translation: function translation() {
      return this.language;
    },
    calendarStyle: function calendarStyle() {
      return {
        position: this.isInline ? 'static' : undefined
      };
    },
    isOpen: function isOpen() {
      return this.showDayView || this.showMonthView || this.showYearView;
    },
    isInline: function isInline() {
      return !!this.inline;
    },
    isRtl: function isRtl() {
      return this.translation.rtl === true;
    }
  },
  methods: {
    /**
     * Called in the event that the user navigates to date pages and
     * closes the picker without selecting a date.
     */
    resetDefaultPageDate: function resetDefaultPageDate() {
      if (this.selectedDate === null) {
        this.setPageDate();
        return;
      }

      this.setPageDate(this.selectedDate);
    },

    /**
     * Effectively a toggle to show/hide the calendar
     * @return {mixed}
     */
    showCalendar: function showCalendar() {
      if (this.disabled || this.isInline) {
        return false;
      }

      if (this.isOpen) {
        return this.close(true);
      }

      this.setInitialView();
    },

    /**
     * Sets the initial picker page view: day, month or year
     */
    setInitialView: function setInitialView() {
      var initialView = this.computedInitialView;

      if (!this.allowedToShowView(initialView)) {
        throw new Error("initialView '".concat(this.initialView, "' cannot be rendered based on minimum '").concat(this.minimumView, "' and maximum '").concat(this.maximumView, "'"));
      }

      switch (initialView) {
        case 'year':
          this.showYearCalendar();
          break;

        case 'month':
          this.showMonthCalendar();
          break;

        default:
          this.showDayCalendar();
          break;
      }
    },

    /**
     * Are we allowed to show a specific picker view?
     * @param {String} view
     * @return {Boolean}
     */
    allowedToShowView: function allowedToShowView(view) {
      var views = ['day', 'month', 'year'];
      var minimumViewIndex = views.indexOf(this.minimumView);
      var maximumViewIndex = views.indexOf(this.maximumView);
      var viewIndex = views.indexOf(view);
      return viewIndex >= minimumViewIndex && viewIndex <= maximumViewIndex;
    },

    /**
     * Show the day picker
     * @return {Boolean}
     */
    showDayCalendar: function showDayCalendar() {
      if (!this.allowedToShowView('day')) {
        return false;
      }

      this.close();
      this.showDayView = true;
      return true;
    },

    /**
     * Show the month picker
     * @return {Boolean}
     */
    showMonthCalendar: function showMonthCalendar() {
      if (!this.allowedToShowView('month')) {
        return false;
      }

      this.close();
      this.showMonthView = true;
      return true;
    },

    /**
     * Show the year picker
     * @return {Boolean}
     */
    showYearCalendar: function showYearCalendar() {
      if (!this.allowedToShowView('year')) {
        return false;
      }

      this.close();
      this.showYearView = true;
      return true;
    },

    /**
     * Set the selected date
     * @param {Number} timestamp
     */
    setDate: function setDate(timestamp) {
      var date = new Date(timestamp);
      this.selectedDate = date;
      this.setPageDate(date);
      this.$emit('selected', date);
      this.$emit('input', date);
    },

    /**
     * Clear the selected date
     */
    clearDate: function clearDate() {
      this.selectedDate = null;
      this.setPageDate();
      this.$emit('selected', null);
      this.$emit('input', null);
      this.$emit('cleared');
    },

    /**
     * @param {Object} date
     */
    selectDate: function selectDate(date) {
      this.setDate(date.timestamp);

      if (!this.isInline) {
        this.close(true);
      }

      this.resetTypedDate = new Date();
    },

    /**
     * @param {Object} date
     */
    selectDisabledDate: function selectDisabledDate(date) {
      this.$emit('selectedDisabled', date);
    },

    /**
     * @param {Object} month
     */
    selectMonth: function selectMonth(month) {
      var date = new Date(month.timestamp);

      if (this.allowedToShowView('day')) {
        this.setPageDate(date);
        this.$emit('changedMonth', month);
        this.showDayCalendar();
      } else {
        this.selectDate(month);
      }
    },

    /**
     * @param {Object} year
     */
    selectYear: function selectYear(year) {
      var date = new Date(year.timestamp);

      if (this.allowedToShowView('month')) {
        this.setPageDate(date);
        this.$emit('changedYear', year);
        this.showMonthCalendar();
      } else {
        this.selectDate(year);
      }
    },

    /**
     * Set the datepicker value
     * @param {Date|String|Number|null} date
     */
    setValue: function setValue(date) {
      if (typeof date === 'string' || typeof date === 'number') {
        var parsed = new Date(date);
        date = isNaN(parsed.valueOf()) ? null : parsed;
      }

      if (!date) {
        this.setPageDate();
        this.selectedDate = null;
        return;
      }

      this.selectedDate = date;
      this.setPageDate(date);
    },

    /**
     * Sets the date that the calendar should open on
     */
    setPageDate: function setPageDate(date) {
      if (!date) {
        if (this.openDate) {
          date = new Date(this.openDate);
        } else {
          date = new Date();
        }
      }

      this.pageTimestamp = this.utils.setDate(new Date(date), 1);
    },

    /**
     * Handles a month change from the day picker
     */
    handleChangedMonthFromDayPicker: function handleChangedMonthFromDayPicker(date) {
      this.setPageDate(date);
      this.$emit('changedMonth', date);
    },

    /**
     * Set the date from a typedDate event
     */
    setTypedDate: function setTypedDate(date) {
      this.setDate(date.getTime());
    },

    /**
     * Close all calendar layers
     * @param {Boolean} emitEvent - emit close event
     */
    close: function close(emitEvent) {
      this.showDayView = this.showMonthView = this.showYearView = false;

      if (!this.isInline) {
        if (emitEvent) {
          this.$emit('closed');
        }

        document.removeEventListener('click', this.clickOutside, false);
      }
    },

    /**
     * Initiate the component
     */
    init: function init() {
      if (this.value) {
        this.setValue(this.value);
      }

      if (this.isInline) {
        this.setInitialView();
      }
    }
  },
  mounted: function mounted() {
    this.init();
  }
} // eslint-disable-next-line
;

var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());
function createInjector(context) {
  return function (id, style) {
    return addStyle(id, style);
  };
}
var HEAD = document.head || document.getElementsByTagName('head')[0];
var styles = {};

function addStyle(id, css) {
  var group = isOldIE ? css.media || 'default' : id;
  var style = styles[group] || (styles[group] = {
    ids: new Set(),
    styles: []
  });

  if (!style.ids.has(id)) {
    style.ids.add(id);
    var code = css.source;

    if (css.map) {
      // https://developer.chrome.com/devtools/docs/javascript-debugging
      // this makes source maps inside style tags work properly in Chrome
      code += '\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875

      code += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';
    }

    if (!style.element) {
      style.element = document.createElement('style');
      style.element.type = 'text/css';
      if (css.media) style.element.setAttribute('media', css.media);
      HEAD.appendChild(style.element);
    }

    if ('styleSheet' in style.element) {
      style.styles.push(code);
      style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\n');
    } else {
      var index = style.ids.size - 1;
      var textNode = document.createTextNode(code);
      var nodes = style.element.childNodes;
      if (nodes[index]) style.element.removeChild(nodes[index]);
      if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);
    }
  }
}

var browser = createInjector;

/* script */
const __vue_script__$4 = script$4;

/* template */
var __vue_render__$4 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    {
      staticClass: "vdp-datepicker",
      class: [_vm.wrapperClass, _vm.isRtl ? "rtl" : ""]
    },
    [
      _c(
        "date-input",
        {
          attrs: {
            selectedDate: _vm.selectedDate,
            resetTypedDate: _vm.resetTypedDate,
            format: _vm.format,
            translation: _vm.translation,
            inline: _vm.inline,
            id: _vm.id,
            name: _vm.name,
            refName: _vm.refName,
            openDate: _vm.openDate,
            placeholder: _vm.placeholder,
            inputClass: _vm.inputClass,
            typeable: _vm.typeable,
            clearButton: _vm.clearButton,
            clearButtonIcon: _vm.clearButtonIcon,
            calendarButton: _vm.calendarButton,
            calendarButtonIcon: _vm.calendarButtonIcon,
            calendarButtonIconContent: _vm.calendarButtonIconContent,
            disabled: _vm.disabled,
            required: _vm.required,
            bootstrapStyling: _vm.bootstrapStyling,
            "use-utc": _vm.useUtc
          },
          on: {
            showCalendar: _vm.showCalendar,
            closeCalendar: _vm.close,
            typedDate: _vm.setTypedDate,
            clearDate: _vm.clearDate
          }
        },
        [_vm._t("afterDateInput", null, { slot: "afterDateInput" })],
        2
      ),
      _vm._v(" "),
      _vm.allowedToShowView("day")
        ? _c(
            "picker-day",
            {
              attrs: {
                pageDate: _vm.pageDate,
                selectedDate: _vm.selectedDate,
                showDayView: _vm.showDayView,
                fullMonthName: _vm.fullMonthName,
                allowedToShowView: _vm.allowedToShowView,
                disabledDates: _vm.disabledDates,
                highlighted: _vm.highlighted,
                calendarClass: _vm.calendarClass,
                calendarStyle: _vm.calendarStyle,
                translation: _vm.translation,
                pageTimestamp: _vm.pageTimestamp,
                isRtl: _vm.isRtl,
                mondayFirst: _vm.mondayFirst,
                dayCellContent: _vm.dayCellContent,
                "use-utc": _vm.useUtc
              },
              on: {
                changedMonth: _vm.handleChangedMonthFromDayPicker,
                selectDate: _vm.selectDate,
                showMonthCalendar: _vm.showMonthCalendar,
                selectedDisabled: _vm.selectDisabledDate
              }
            },
            [
              _vm._t("beforeCalendarHeader", null, {
                slot: "beforeCalendarHeader"
              })
            ],
            2
          )
        : _vm._e(),
      _vm._v(" "),
      _vm.allowedToShowView("month")
        ? _c(
            "picker-month",
            {
              attrs: {
                pageDate: _vm.pageDate,
                selectedDate: _vm.selectedDate,
                showMonthView: _vm.showMonthView,
                allowedToShowView: _vm.allowedToShowView,
                disabledDates: _vm.disabledDates,
                calendarClass: _vm.calendarClass,
                calendarStyle: _vm.calendarStyle,
                translation: _vm.translation,
                isRtl: _vm.isRtl,
                "use-utc": _vm.useUtc
              },
              on: {
                selectMonth: _vm.selectMonth,
                showYearCalendar: _vm.showYearCalendar,
                changedYear: _vm.setPageDate
              }
            },
            [
              _vm._t("beforeCalendarHeader", null, {
                slot: "beforeCalendarHeader"
              })
            ],
            2
          )
        : _vm._e(),
      _vm._v(" "),
      _vm.allowedToShowView("year")
        ? _c(
            "picker-year",
            {
              attrs: {
                pageDate: _vm.pageDate,
                selectedDate: _vm.selectedDate,
                showYearView: _vm.showYearView,
                allowedToShowView: _vm.allowedToShowView,
                disabledDates: _vm.disabledDates,
                calendarClass: _vm.calendarClass,
                calendarStyle: _vm.calendarStyle,
                translation: _vm.translation,
                isRtl: _vm.isRtl,
                "use-utc": _vm.useUtc
              },
              on: { selectYear: _vm.selectYear, changedDecade: _vm.setPageDate }
            },
            [
              _vm._t("beforeCalendarHeader", null, {
                slot: "beforeCalendarHeader"
              })
            ],
            2
          )
        : _vm._e()
    ],
    1
  )
};
var __vue_staticRenderFns__$4 = [];
__vue_render__$4._withStripped = true;

  /* style */
  const __vue_inject_styles__$4 = function (inject) {
    if (!inject) return
    inject("data-v-64ca2bb5_0", { source: ".rtl {\n  direction: rtl;\n}\n.vdp-datepicker {\n  position: relative;\n  text-align: left;\n}\n.vdp-datepicker * {\n  box-sizing: border-box;\n}\n.vdp-datepicker__calendar {\n  position: absolute;\n  z-index: 100;\n  background: #fff;\n  width: 300px;\n  border: 1px solid #ccc;\n}\n.vdp-datepicker__calendar header {\n  display: block;\n  line-height: 40px;\n}\n.vdp-datepicker__calendar header span {\n  display: inline-block;\n  text-align: center;\n  width: 71.42857142857143%;\n  float: left;\n}\n.vdp-datepicker__calendar header .prev,\n.vdp-datepicker__calendar header .next {\n  width: 14.285714285714286%;\n  float: left;\n  text-indent: -10000px;\n  position: relative;\n}\n.vdp-datepicker__calendar header .prev:after,\n.vdp-datepicker__calendar header .next:after {\n  content: '';\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  transform: translateX(-50%) translateY(-50%);\n  border: 6px solid transparent;\n}\n.vdp-datepicker__calendar header .prev:after {\n  border-right: 10px solid #000;\n  margin-left: -5px;\n}\n.vdp-datepicker__calendar header .prev.disabled:after {\n  border-right: 10px solid #ddd;\n}\n.vdp-datepicker__calendar header .next:after {\n  border-left: 10px solid #000;\n  margin-left: 5px;\n}\n.vdp-datepicker__calendar header .next.disabled:after {\n  border-left: 10px solid #ddd;\n}\n.vdp-datepicker__calendar header .prev:not(.disabled),\n.vdp-datepicker__calendar header .next:not(.disabled),\n.vdp-datepicker__calendar header .up:not(.disabled) {\n  cursor: pointer;\n}\n.vdp-datepicker__calendar header .prev:not(.disabled):hover,\n.vdp-datepicker__calendar header .next:not(.disabled):hover,\n.vdp-datepicker__calendar header .up:not(.disabled):hover {\n  background: #eee;\n}\n.vdp-datepicker__calendar .disabled {\n  color: #ddd;\n  cursor: default;\n}\n.vdp-datepicker__calendar .flex-rtl {\n  display: flex;\n  width: inherit;\n  flex-wrap: wrap;\n}\n.vdp-datepicker__calendar .cell {\n  display: inline-block;\n  padding: 0 5px;\n  width: 14.285714285714286%;\n  height: 40px;\n  line-height: 40px;\n  text-align: center;\n  vertical-align: middle;\n  border: 1px solid transparent;\n}\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year {\n  cursor: pointer;\n}\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day:hover,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month:hover,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year:hover {\n  border: 1px solid #4bd;\n}\n.vdp-datepicker__calendar .cell.selected {\n  background: #4bd;\n}\n.vdp-datepicker__calendar .cell.selected:hover {\n  background: #4bd;\n}\n.vdp-datepicker__calendar .cell.selected.highlighted {\n  background: #4bd;\n}\n.vdp-datepicker__calendar .cell.highlighted {\n  background: #cae5ed;\n}\n.vdp-datepicker__calendar .cell.highlighted.disabled {\n  color: #a3a3a3;\n}\n.vdp-datepicker__calendar .cell.grey {\n  color: #888;\n}\n.vdp-datepicker__calendar .cell.grey:hover {\n  background: inherit;\n}\n.vdp-datepicker__calendar .cell.day-header {\n  font-size: 75%;\n  white-space: nowrap;\n  cursor: inherit;\n}\n.vdp-datepicker__calendar .cell.day-header:hover {\n  background: inherit;\n}\n.vdp-datepicker__calendar .month,\n.vdp-datepicker__calendar .year {\n  width: 33.333%;\n}\n.vdp-datepicker__clear-button,\n.vdp-datepicker__calendar-button {\n  cursor: pointer;\n  font-style: normal;\n}\n.vdp-datepicker__clear-button.disabled,\n.vdp-datepicker__calendar-button.disabled {\n  color: #999;\n  cursor: default;\n}\n", map: {"version":3,"sources":["Datepicker.vue"],"names":[],"mappings":"AAAA;EACE,cAAc;AAChB;AACA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,kBAAkB;EAClB,YAAY;EACZ,gBAAgB;EAChB,YAAY;EACZ,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,iBAAiB;AACnB;AACA;EACE,qBAAqB;EACrB,kBAAkB;EAClB,yBAAyB;EACzB,WAAW;AACb;AACA;;EAEE,0BAA0B;EAC1B,WAAW;EACX,qBAAqB;EACrB,kBAAkB;AACpB;AACA;;EAEE,WAAW;EACX,kBAAkB;EAClB,SAAS;EACT,QAAQ;EACR,4CAA4C;EAC5C,6BAA6B;AAC/B;AACA;EACE,6BAA6B;EAC7B,iBAAiB;AACnB;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,4BAA4B;EAC5B,gBAAgB;AAClB;AACA;EACE,4BAA4B;AAC9B;AACA;;;EAGE,eAAe;AACjB;AACA;;;EAGE,gBAAgB;AAClB;AACA;EACE,WAAW;EACX,eAAe;AACjB;AACA;EACE,aAAa;EACb,cAAc;EACd,eAAe;AACjB;AACA;EACE,qBAAqB;EACrB,cAAc;EACd,0BAA0B;EAC1B,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EAClB,sBAAsB;EACtB,6BAA6B;AAC/B;AACA;;;EAGE,eAAe;AACjB;AACA;;;EAGE,sBAAsB;AACxB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,cAAc;AAChB;AACA;EACE,WAAW;AACb;AACA;EACE,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,mBAAmB;EACnB,eAAe;AACjB;AACA;EACE,mBAAmB;AACrB;AACA;;EAEE,cAAc;AAChB;AACA;;EAEE,eAAe;EACf,kBAAkB;AACpB;AACA;;EAEE,WAAW;EACX,eAAe;AACjB","file":"Datepicker.vue","sourcesContent":[".rtl {\n  direction: rtl;\n}\n.vdp-datepicker {\n  position: relative;\n  text-align: left;\n}\n.vdp-datepicker * {\n  box-sizing: border-box;\n}\n.vdp-datepicker__calendar {\n  position: absolute;\n  z-index: 100;\n  background: #fff;\n  width: 300px;\n  border: 1px solid #ccc;\n}\n.vdp-datepicker__calendar header {\n  display: block;\n  line-height: 40px;\n}\n.vdp-datepicker__calendar header span {\n  display: inline-block;\n  text-align: center;\n  width: 71.42857142857143%;\n  float: left;\n}\n.vdp-datepicker__calendar header .prev,\n.vdp-datepicker__calendar header .next {\n  width: 14.285714285714286%;\n  float: left;\n  text-indent: -10000px;\n  position: relative;\n}\n.vdp-datepicker__calendar header .prev:after,\n.vdp-datepicker__calendar header .next:after {\n  content: '';\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  transform: translateX(-50%) translateY(-50%);\n  border: 6px solid transparent;\n}\n.vdp-datepicker__calendar header .prev:after {\n  border-right: 10px solid #000;\n  margin-left: -5px;\n}\n.vdp-datepicker__calendar header .prev.disabled:after {\n  border-right: 10px solid #ddd;\n}\n.vdp-datepicker__calendar header .next:after {\n  border-left: 10px solid #000;\n  margin-left: 5px;\n}\n.vdp-datepicker__calendar header .next.disabled:after {\n  border-left: 10px solid #ddd;\n}\n.vdp-datepicker__calendar header .prev:not(.disabled),\n.vdp-datepicker__calendar header .next:not(.disabled),\n.vdp-datepicker__calendar header .up:not(.disabled) {\n  cursor: pointer;\n}\n.vdp-datepicker__calendar header .prev:not(.disabled):hover,\n.vdp-datepicker__calendar header .next:not(.disabled):hover,\n.vdp-datepicker__calendar header .up:not(.disabled):hover {\n  background: #eee;\n}\n.vdp-datepicker__calendar .disabled {\n  color: #ddd;\n  cursor: default;\n}\n.vdp-datepicker__calendar .flex-rtl {\n  display: flex;\n  width: inherit;\n  flex-wrap: wrap;\n}\n.vdp-datepicker__calendar .cell {\n  display: inline-block;\n  padding: 0 5px;\n  width: 14.285714285714286%;\n  height: 40px;\n  line-height: 40px;\n  text-align: center;\n  vertical-align: middle;\n  border: 1px solid transparent;\n}\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year {\n  cursor: pointer;\n}\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day:hover,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month:hover,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year:hover {\n  border: 1px solid #4bd;\n}\n.vdp-datepicker__calendar .cell.selected {\n  background: #4bd;\n}\n.vdp-datepicker__calendar .cell.selected:hover {\n  background: #4bd;\n}\n.vdp-datepicker__calendar .cell.selected.highlighted {\n  background: #4bd;\n}\n.vdp-datepicker__calendar .cell.highlighted {\n  background: #cae5ed;\n}\n.vdp-datepicker__calendar .cell.highlighted.disabled {\n  color: #a3a3a3;\n}\n.vdp-datepicker__calendar .cell.grey {\n  color: #888;\n}\n.vdp-datepicker__calendar .cell.grey:hover {\n  background: inherit;\n}\n.vdp-datepicker__calendar .cell.day-header {\n  font-size: 75%;\n  white-space: nowrap;\n  cursor: inherit;\n}\n.vdp-datepicker__calendar .cell.day-header:hover {\n  background: inherit;\n}\n.vdp-datepicker__calendar .month,\n.vdp-datepicker__calendar .year {\n  width: 33.333%;\n}\n.vdp-datepicker__clear-button,\n.vdp-datepicker__calendar-button {\n  cursor: pointer;\n  font-style: normal;\n}\n.vdp-datepicker__clear-button.disabled,\n.vdp-datepicker__calendar-button.disabled {\n  color: #999;\n  cursor: default;\n}\n"]}, media: undefined });

  };
  /* scoped */
  const __vue_scope_id__$4 = undefined;
  /* module identifier */
  const __vue_module_identifier__$4 = undefined;
  /* functional template */
  const __vue_is_functional_template__$4 = false;
  /* style inject SSR */
  

  
  var Datepicker = normalizeComponent_1(
    { render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },
    __vue_inject_styles__$4,
    __vue_script__$4,
    __vue_scope_id__$4,
    __vue_is_functional_template__$4,
    __vue_module_identifier__$4,
    browser,
    undefined
  );

/* harmony default export */ __webpack_exports__["default"] = (Datepicker);


/***/ }),

/***/ "./node_modules/webpack/buildin/global.js":
/*!***********************************!*\
  !*** (webpack)/buildin/global.js ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

var g;

// This works in non-strict mode
g = (function() {
	return this;
})();

try {
	// This works if eval is allowed (see CSP)
	g = g || new Function("return this")();
} catch (e) {
	// This works if the window reference is available
	if (typeof window === "object") g = window;
}

// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}

module.exports = g;


/***/ }),

/***/ "./resources/assets/js/app.js":
/*!************************************!*\
  !*** ./resources/assets/js/app.js ***!
  \************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.common.js");
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-router */ "./node_modules/vue-router/dist/vue-router.esm.js");
/* harmony import */ var vue_beautiful_chat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue-beautiful-chat */ "./node_modules/vue-beautiful-chat/dist/vue-beautiful-chat.umd.min.js");
/* harmony import */ var vue_beautiful_chat__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue_beautiful_chat__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var emoji_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! emoji-vue */ "./node_modules/emoji-vue/index.js");
/* harmony import */ var vue_multiselect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue-multiselect */ "./node_modules/vue-multiselect/dist/vue-multiselect.min.js");
/* harmony import */ var vue_multiselect__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue_multiselect__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var vuejs_datepicker__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuejs-datepicker */ "./node_modules/vuejs-datepicker/dist/vuejs-datepicker.esm.js");
/* harmony import */ var _views_App__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./views/App */ "./resources/assets/js/views/App.vue");
/* harmony import */ var _views_Home__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./views/Home */ "./resources/assets/js/views/Home.vue");
/* harmony import */ var _views_BuyTip__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./views/BuyTip */ "./resources/assets/js/views/BuyTip.vue");
/* harmony import */ var _views_Login__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./views/Login */ "./resources/assets/js/views/Login.vue");
/* harmony import */ var _views_Register__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./views/Register */ "./resources/assets/js/views/Register.vue");
/* harmony import */ var _views_Front_Login__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./views/Front-Login */ "./resources/assets/js/views/Front-Login.vue");
/* harmony import */ var _views_SingleProduct__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./views/SingleProduct */ "./resources/assets/js/views/SingleProduct.vue");
/* harmony import */ var _views_Checkout__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./views/Checkout */ "./resources/assets/js/views/Checkout.vue");
/* harmony import */ var _views_Confirmation__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./views/Confirmation */ "./resources/assets/js/views/Confirmation.vue");
/* harmony import */ var _views_UserBoard__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./views/UserBoard */ "./resources/assets/js/views/UserBoard.vue");
/* harmony import */ var _views_Admin_Dashboard__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./views/Admin/Dashboard */ "./resources/assets/js/views/Admin/Dashboard.vue");
/* harmony import */ var _views_AccountSetting__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./views/AccountSetting */ "./resources/assets/js/views/AccountSetting.vue");
/* harmony import */ var _views_ChangePassword__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./views/ChangePassword */ "./resources/assets/js/views/ChangePassword.vue");
/* harmony import */ var _views_PurchaseHistory__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./views/PurchaseHistory */ "./resources/assets/js/views/PurchaseHistory.vue");
/* harmony import */ var _views_TransactionHistory__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./views/TransactionHistory */ "./resources/assets/js/views/TransactionHistory.vue");
/* harmony import */ var _views_DetailView__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./views/DetailView */ "./resources/assets/js/views/DetailView.vue");
/* harmony import */ var _views_SendResetPasswordLink__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./views/SendResetPasswordLink */ "./resources/assets/js/views/SendResetPasswordLink.vue");
/* harmony import */ var _views_ResetPasswordForm__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./views/ResetPasswordForm */ "./resources/assets/js/views/ResetPasswordForm.vue");
/* harmony import */ var _views_About__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./views/About */ "./resources/assets/js/views/About.vue");
/* harmony import */ var _views_MessagePurchaseHistory__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./views/MessagePurchaseHistory */ "./resources/assets/js/views/MessagePurchaseHistory.vue");
/* harmony import */ var _views_Chat__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./views/Chat */ "./resources/assets/js/views/Chat.vue");
/* harmony import */ var _views_PayPalCheckout_PayPalCheckout__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./views/PayPalCheckout/PayPalCheckout */ "./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue");



vue__WEBPACK_IMPORTED_MODULE_0___default.a.use(vue_beautiful_chat__WEBPACK_IMPORTED_MODULE_2___default.a);
vue__WEBPACK_IMPORTED_MODULE_0___default.a.use(vue_router__WEBPACK_IMPORTED_MODULE_1__["default"]);
vue__WEBPACK_IMPORTED_MODULE_0___default.a.component('pagination', __webpack_require__(/*! laravel-vue-pagination */ "./node_modules/laravel-vue-pagination/dist/laravel-vue-pagination.common.js"));

vue__WEBPACK_IMPORTED_MODULE_0___default.a.component('VueEmoji', emoji_vue__WEBPACK_IMPORTED_MODULE_3__["default"]);

vue__WEBPACK_IMPORTED_MODULE_0___default.a.component('multiselect', vue_multiselect__WEBPACK_IMPORTED_MODULE_4___default.a);

vue__WEBPACK_IMPORTED_MODULE_0___default.a.component('datepicker', vuejs_datepicker__WEBPACK_IMPORTED_MODULE_5__["default"]);


 // import ProductDetailView from './views/ProductDetailView'


















 //------------- PayPal Component Add --------------// 


vue__WEBPACK_IMPORTED_MODULE_0___default.a.component('paypal-checkout', _views_PayPalCheckout_PayPalCheckout__WEBPACK_IMPORTED_MODULE_27__["default"]); //------------- PayPal Component End --------------//

vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isloggedin = true;
var router = new vue_router__WEBPACK_IMPORTED_MODULE_1__["default"]({
  mode: 'history',
  routes: [{
    path: '/',
    name: 'home',
    component: _views_Home__WEBPACK_IMPORTED_MODULE_7__["default"]
  }, {
    path: '/admin/login',
    name: 'login',
    component: _views_Login__WEBPACK_IMPORTED_MODULE_9__["default"]
  }, {
    path: '/login',
    name: 'login',
    component: _views_Front_Login__WEBPACK_IMPORTED_MODULE_11__["default"]
  }, {
    path: '/register',
    name: 'register',
    component: _views_Register__WEBPACK_IMPORTED_MODULE_10__["default"]
  }, {
    path: '/products/:id',
    name: 'single-products',
    component: _views_SingleProduct__WEBPACK_IMPORTED_MODULE_12__["default"]
  }, {
    path: '/confirmation',
    name: 'confirmation',
    component: _views_Confirmation__WEBPACK_IMPORTED_MODULE_14__["default"]
  }, {
    path: '/checkout',
    name: 'checkout',
    component: _views_Checkout__WEBPACK_IMPORTED_MODULE_13__["default"],
    props: function props(route) {
      return {
        pid: route.query.pid
      };
    }
  }, {
    path: '/dashboard',
    name: 'userboard',
    component: _views_UserBoard__WEBPACK_IMPORTED_MODULE_15__["default"],
    meta: {
      requiresAuth: true,
      is_user: true
    }
  }, {
    path: '/account-setting',
    name: 'account-setting',
    component: _views_AccountSetting__WEBPACK_IMPORTED_MODULE_17__["default"],
    meta: {
      requiresAuth: true,
      is_user: true
    }
  }, {
    path: '/change-password',
    name: 'change-password',
    component: _views_ChangePassword__WEBPACK_IMPORTED_MODULE_18__["default"]
    /* meta: {
         requiresAuth: true,
         is_user: true
     }*/

  }, {
    path: '/password/reset',
    name: 'password/reset',
    component: _views_SendResetPasswordLink__WEBPACK_IMPORTED_MODULE_22__["default"]
  }, {
    path: '/password/reset/:token',
    name: 'password/reset',
    component: _views_ResetPasswordForm__WEBPACK_IMPORTED_MODULE_23__["default"]
  }, {
    path: '/send-tip',
    name: 'send-tip',
    component: _views_BuyTip__WEBPACK_IMPORTED_MODULE_8__["default"]
    /* meta: {
         requiresAuth: true,
         is_user: true
     }*/

  }, {
    path: '/tips-history',
    name: 'tips-history',
    component: _views_PurchaseHistory__WEBPACK_IMPORTED_MODULE_19__["default"],
    meta: {
      requiresAuth: true,
      is_user: true
    }
  }, {
    path: '/transaction-history',
    name: 'transaction-history',
    component: _views_TransactionHistory__WEBPACK_IMPORTED_MODULE_20__["default"],
    meta: {
      requiresAuth: true,
      is_user: true
    }
  }, {
    path: '/detail-view/:id',
    name: 'detail-view',
    component: _views_DetailView__WEBPACK_IMPORTED_MODULE_21__["default"]
    /* meta: {
         requiresAuth: true,
         is_user: true
     }*/

  }, {
    path: '/message-purchase-history',
    name: 'message-purchase-history',
    component: _views_MessagePurchaseHistory__WEBPACK_IMPORTED_MODULE_25__["default"],
    meta: {
      requiresAuth: true,
      is_user: true
    }
  }, {
    path: '/about',
    name: 'about',
    component: _views_About__WEBPACK_IMPORTED_MODULE_24__["default"]
    /* meta: {
         requiresAuth: true,
         is_user: true
     }*/

  }, {
    path: '/user_chat',
    name: 'chat',
    component: _views_Chat__WEBPACK_IMPORTED_MODULE_26__["default"]
    /* meta: {
         requiresAuth: true,
         is_user: true
     }*/

  }, {
    path: '/admin/:page',
    name: 'admin-pages',
    component: _views_Admin_Dashboard__WEBPACK_IMPORTED_MODULE_16__["default"],
    meta: {
      requiresAuth: true,
      is_admin: true
    }
  }, {
    path: '/admin',
    name: 'admin',
    component: _views_Admin_Dashboard__WEBPACK_IMPORTED_MODULE_16__["default"],
    meta: {
      requiresAuth: true,
      is_admin: true
    }
  }]
});
router.beforeEach(function (to, from, next) {
  if (localStorage.getItem('bigStore.jwt') == null) {
    vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isloggedin = false;
  }

  if (to.matched.some(function (record) {
    return record.meta.requiresAuth;
  })) {
    if (localStorage.getItem('bigStore.jwt') == null) {
      next({
        path: '/admin/login',
        params: {
          nextUrl: to.fullPath
        }
      });
    } else {
      var user = JSON.parse(localStorage.getItem('bigStore.user'));

      if (to.matched.some(function (record) {
        return record.meta.is_admin;
      })) {
        if (user.is_admin == 1) {
          next();
        } else {
          next({
            name: 'userboard'
          });
        }
      } else if (to.matched.some(function (record) {
        return record.meta.is_user;
      })) {
        if (user.is_admin == 0) {
          next();
        } else {
          next({
            name: 'admin'
          });
        }
      }

      next();
    }
  } else {
    next();
  }
});
var app = new vue__WEBPACK_IMPORTED_MODULE_0___default.a({
  el: '#app',
  components: {
    App: _views_App__WEBPACK_IMPORTED_MODULE_6__["default"]
  },
  router: router
});

/***/ }),

/***/ "./resources/assets/js/components/admin/Main.vue":
/*!*******************************************************!*\
  !*** ./resources/assets/js/components/admin/Main.vue ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Main_vue_vue_type_template_id_63080d70_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Main.vue?vue&type=template&id=63080d70&scoped=true& */ "./resources/assets/js/components/admin/Main.vue?vue&type=template&id=63080d70&scoped=true&");
/* harmony import */ var _Main_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Main.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/Main.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _Main_vue_vue_type_style_index_0_id_63080d70_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Main.vue?vue&type=style&index=0&id=63080d70&scoped=true&lang=css& */ "./resources/assets/js/components/admin/Main.vue?vue&type=style&index=0&id=63080d70&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _Main_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Main_vue_vue_type_template_id_63080d70_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Main_vue_vue_type_template_id_63080d70_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "63080d70",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/Main.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/Main.vue?vue&type=script&lang=js&":
/*!********************************************************************************!*\
  !*** ./resources/assets/js/components/admin/Main.vue?vue&type=script&lang=js& ***!
  \********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Main_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./Main.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Main.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Main_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/Main.vue?vue&type=style&index=0&id=63080d70&scoped=true&lang=css&":
/*!****************************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/Main.vue?vue&type=style&index=0&id=63080d70&scoped=true&lang=css& ***!
  \****************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Main_vue_vue_type_style_index_0_id_63080d70_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader!../../../../../node_modules/css-loader??ref--6-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../node_modules/vue-loader/lib??vue-loader-options!./Main.vue?vue&type=style&index=0&id=63080d70&scoped=true&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Main.vue?vue&type=style&index=0&id=63080d70&scoped=true&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Main_vue_vue_type_style_index_0_id_63080d70_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Main_vue_vue_type_style_index_0_id_63080d70_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Main_vue_vue_type_style_index_0_id_63080d70_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Main_vue_vue_type_style_index_0_id_63080d70_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Main_vue_vue_type_style_index_0_id_63080d70_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/components/admin/Main.vue?vue&type=template&id=63080d70&scoped=true&":
/*!**************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/Main.vue?vue&type=template&id=63080d70&scoped=true& ***!
  \**************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Main_vue_vue_type_template_id_63080d70_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../node_modules/vue-loader/lib??vue-loader-options!./Main.vue?vue&type=template&id=63080d70&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Main.vue?vue&type=template&id=63080d70&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Main_vue_vue_type_template_id_63080d70_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Main_vue_vue_type_template_id_63080d70_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/Orders.vue":
/*!*********************************************************!*\
  !*** ./resources/assets/js/components/admin/Orders.vue ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Orders_vue_vue_type_template_id_129a08dc___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Orders.vue?vue&type=template&id=129a08dc& */ "./resources/assets/js/components/admin/Orders.vue?vue&type=template&id=129a08dc&");
/* harmony import */ var _Orders_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Orders.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/Orders.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Orders_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Orders_vue_vue_type_template_id_129a08dc___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Orders_vue_vue_type_template_id_129a08dc___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/Orders.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/Orders.vue?vue&type=script&lang=js&":
/*!**********************************************************************************!*\
  !*** ./resources/assets/js/components/admin/Orders.vue?vue&type=script&lang=js& ***!
  \**********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Orders_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./Orders.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Orders.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Orders_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/Orders.vue?vue&type=template&id=129a08dc&":
/*!****************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/Orders.vue?vue&type=template&id=129a08dc& ***!
  \****************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Orders_vue_vue_type_template_id_129a08dc___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../node_modules/vue-loader/lib??vue-loader-options!./Orders.vue?vue&type=template&id=129a08dc& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Orders.vue?vue&type=template&id=129a08dc&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Orders_vue_vue_type_template_id_129a08dc___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Orders_vue_vue_type_template_id_129a08dc___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/ProductModal.vue":
/*!***************************************************************!*\
  !*** ./resources/assets/js/components/admin/ProductModal.vue ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ProductModal_vue_vue_type_template_id_63afc935_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ProductModal.vue?vue&type=template&id=63afc935&scoped=true& */ "./resources/assets/js/components/admin/ProductModal.vue?vue&type=template&id=63afc935&scoped=true&");
/* harmony import */ var _ProductModal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ProductModal.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/ProductModal.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var vue_multiselect_dist_vue_multiselect_min_css_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue-multiselect/dist/vue-multiselect.min.css?vue&type=style&index=0&lang=css& */ "./node_modules/vue-multiselect/dist/vue-multiselect.min.css?vue&type=style&index=0&lang=css&");
/* harmony import */ var _ProductModal_vue_vue_type_style_index_1_id_63afc935_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ProductModal.vue?vue&type=style&index=1&id=63afc935&scoped=true&lang=css& */ "./resources/assets/js/components/admin/ProductModal.vue?vue&type=style&index=1&id=63afc935&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");







/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__["default"])(
  _ProductModal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _ProductModal_vue_vue_type_template_id_63afc935_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _ProductModal_vue_vue_type_template_id_63afc935_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "63afc935",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/ProductModal.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/ProductModal.vue?vue&type=script&lang=js&":
/*!****************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/ProductModal.vue?vue&type=script&lang=js& ***!
  \****************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ProductModal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./ProductModal.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/ProductModal.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ProductModal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/ProductModal.vue?vue&type=style&index=1&id=63afc935&scoped=true&lang=css&":
/*!************************************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/ProductModal.vue?vue&type=style&index=1&id=63afc935&scoped=true&lang=css& ***!
  \************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_ProductModal_vue_vue_type_style_index_1_id_63afc935_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader!../../../../../node_modules/css-loader??ref--6-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../node_modules/vue-loader/lib??vue-loader-options!./ProductModal.vue?vue&type=style&index=1&id=63afc935&scoped=true&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/ProductModal.vue?vue&type=style&index=1&id=63afc935&scoped=true&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_ProductModal_vue_vue_type_style_index_1_id_63afc935_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_ProductModal_vue_vue_type_style_index_1_id_63afc935_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_ProductModal_vue_vue_type_style_index_1_id_63afc935_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_ProductModal_vue_vue_type_style_index_1_id_63afc935_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_ProductModal_vue_vue_type_style_index_1_id_63afc935_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/components/admin/ProductModal.vue?vue&type=template&id=63afc935&scoped=true&":
/*!**********************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/ProductModal.vue?vue&type=template&id=63afc935&scoped=true& ***!
  \**********************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_ProductModal_vue_vue_type_template_id_63afc935_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../node_modules/vue-loader/lib??vue-loader-options!./ProductModal.vue?vue&type=template&id=63afc935&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/ProductModal.vue?vue&type=template&id=63afc935&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_ProductModal_vue_vue_type_template_id_63afc935_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_ProductModal_vue_vue_type_template_id_63afc935_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/Products.vue":
/*!***********************************************************!*\
  !*** ./resources/assets/js/components/admin/Products.vue ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Products_vue_vue_type_template_id_2739241b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Products.vue?vue&type=template&id=2739241b& */ "./resources/assets/js/components/admin/Products.vue?vue&type=template&id=2739241b&");
/* harmony import */ var _Products_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Products.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/Products.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Products_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Products_vue_vue_type_template_id_2739241b___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Products_vue_vue_type_template_id_2739241b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/Products.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/Products.vue?vue&type=script&lang=js&":
/*!************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/Products.vue?vue&type=script&lang=js& ***!
  \************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Products_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./Products.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Products.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Products_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/Products.vue?vue&type=template&id=2739241b&":
/*!******************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/Products.vue?vue&type=template&id=2739241b& ***!
  \******************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Products_vue_vue_type_template_id_2739241b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../node_modules/vue-loader/lib??vue-loader-options!./Products.vue?vue&type=template&id=2739241b& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Products.vue?vue&type=template&id=2739241b&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Products_vue_vue_type_template_id_2739241b___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Products_vue_vue_type_template_id_2739241b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/Users.vue":
/*!********************************************************!*\
  !*** ./resources/assets/js/components/admin/Users.vue ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Users_vue_vue_type_template_id_24d856e1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Users.vue?vue&type=template&id=24d856e1& */ "./resources/assets/js/components/admin/Users.vue?vue&type=template&id=24d856e1&");
/* harmony import */ var _Users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Users.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/Users.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Users_vue_vue_type_template_id_24d856e1___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Users_vue_vue_type_template_id_24d856e1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/Users.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/Users.vue?vue&type=script&lang=js&":
/*!*********************************************************************************!*\
  !*** ./resources/assets/js/components/admin/Users.vue?vue&type=script&lang=js& ***!
  \*********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./Users.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Users.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/Users.vue?vue&type=template&id=24d856e1&":
/*!***************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/Users.vue?vue&type=template&id=24d856e1& ***!
  \***************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_template_id_24d856e1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../node_modules/vue-loader/lib??vue-loader-options!./Users.vue?vue&type=template&id=24d856e1& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/Users.vue?vue&type=template&id=24d856e1&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_template_id_24d856e1___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_template_id_24d856e1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/about-us/About_us.vue":
/*!********************************************************************!*\
  !*** ./resources/assets/js/components/admin/about-us/About_us.vue ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _About_us_vue_vue_type_template_id_0faf948c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./About_us.vue?vue&type=template&id=0faf948c& */ "./resources/assets/js/components/admin/about-us/About_us.vue?vue&type=template&id=0faf948c&");
/* harmony import */ var _About_us_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./About_us.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/about-us/About_us.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _About_us_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _About_us_vue_vue_type_template_id_0faf948c___WEBPACK_IMPORTED_MODULE_0__["render"],
  _About_us_vue_vue_type_template_id_0faf948c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/about-us/About_us.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/about-us/About_us.vue?vue&type=script&lang=js&":
/*!*********************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/about-us/About_us.vue?vue&type=script&lang=js& ***!
  \*********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_About_us_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./About_us.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/about-us/About_us.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_About_us_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/about-us/About_us.vue?vue&type=template&id=0faf948c&":
/*!***************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/about-us/About_us.vue?vue&type=template&id=0faf948c& ***!
  \***************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_About_us_vue_vue_type_template_id_0faf948c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./About_us.vue?vue&type=template&id=0faf948c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/about-us/About_us.vue?vue&type=template&id=0faf948c&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_About_us_vue_vue_type_template_id_0faf948c___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_About_us_vue_vue_type_template_id_0faf948c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/account/Change_password.vue":
/*!**************************************************************************!*\
  !*** ./resources/assets/js/components/admin/account/Change_password.vue ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Change_password_vue_vue_type_template_id_2b1dd5fe___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Change_password.vue?vue&type=template&id=2b1dd5fe& */ "./resources/assets/js/components/admin/account/Change_password.vue?vue&type=template&id=2b1dd5fe&");
/* harmony import */ var _Change_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Change_password.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/account/Change_password.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Change_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Change_password_vue_vue_type_template_id_2b1dd5fe___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Change_password_vue_vue_type_template_id_2b1dd5fe___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/account/Change_password.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/account/Change_password.vue?vue&type=script&lang=js&":
/*!***************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/account/Change_password.vue?vue&type=script&lang=js& ***!
  \***************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Change_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Change_password.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/account/Change_password.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Change_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/account/Change_password.vue?vue&type=template&id=2b1dd5fe&":
/*!*********************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/account/Change_password.vue?vue&type=template&id=2b1dd5fe& ***!
  \*********************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Change_password_vue_vue_type_template_id_2b1dd5fe___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Change_password.vue?vue&type=template&id=2b1dd5fe& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/account/Change_password.vue?vue&type=template&id=2b1dd5fe&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Change_password_vue_vue_type_template_id_2b1dd5fe___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Change_password_vue_vue_type_template_id_2b1dd5fe___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/account/Edit_profile.vue":
/*!***********************************************************************!*\
  !*** ./resources/assets/js/components/admin/account/Edit_profile.vue ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Edit_profile_vue_vue_type_template_id_1adf3f66___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Edit_profile.vue?vue&type=template&id=1adf3f66& */ "./resources/assets/js/components/admin/account/Edit_profile.vue?vue&type=template&id=1adf3f66&");
/* harmony import */ var _Edit_profile_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Edit_profile.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/account/Edit_profile.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Edit_profile_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Edit_profile_vue_vue_type_template_id_1adf3f66___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Edit_profile_vue_vue_type_template_id_1adf3f66___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/account/Edit_profile.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/account/Edit_profile.vue?vue&type=script&lang=js&":
/*!************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/account/Edit_profile.vue?vue&type=script&lang=js& ***!
  \************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_profile_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Edit_profile.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/account/Edit_profile.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_profile_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/account/Edit_profile.vue?vue&type=template&id=1adf3f66&":
/*!******************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/account/Edit_profile.vue?vue&type=template&id=1adf3f66& ***!
  \******************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_profile_vue_vue_type_template_id_1adf3f66___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Edit_profile.vue?vue&type=template&id=1adf3f66& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/account/Edit_profile.vue?vue&type=template&id=1adf3f66&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_profile_vue_vue_type_template_id_1adf3f66___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_profile_vue_vue_type_template_id_1adf3f66___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/category/Editor.vue":
/*!******************************************************************!*\
  !*** ./resources/assets/js/components/admin/category/Editor.vue ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Editor_vue_vue_type_template_id_d7fd5f12_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Editor.vue?vue&type=template&id=d7fd5f12&scoped=true& */ "./resources/assets/js/components/admin/category/Editor.vue?vue&type=template&id=d7fd5f12&scoped=true&");
/* harmony import */ var _Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Editor.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/category/Editor.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _Editor_vue_vue_type_style_index_0_id_d7fd5f12_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Editor.vue?vue&type=style&index=0&id=d7fd5f12&scoped=true&lang=css& */ "./resources/assets/js/components/admin/category/Editor.vue?vue&type=style&index=0&id=d7fd5f12&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Editor_vue_vue_type_template_id_d7fd5f12_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Editor_vue_vue_type_template_id_d7fd5f12_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "d7fd5f12",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/category/Editor.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/category/Editor.vue?vue&type=script&lang=js&":
/*!*******************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/category/Editor.vue?vue&type=script&lang=js& ***!
  \*******************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/category/Editor.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/category/Editor.vue?vue&type=style&index=0&id=d7fd5f12&scoped=true&lang=css&":
/*!***************************************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/category/Editor.vue?vue&type=style&index=0&id=d7fd5f12&scoped=true&lang=css& ***!
  \***************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_d7fd5f12_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/style-loader!../../../../../../node_modules/css-loader??ref--6-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=style&index=0&id=d7fd5f12&scoped=true&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/category/Editor.vue?vue&type=style&index=0&id=d7fd5f12&scoped=true&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_d7fd5f12_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_d7fd5f12_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_d7fd5f12_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_d7fd5f12_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_d7fd5f12_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/components/admin/category/Editor.vue?vue&type=template&id=d7fd5f12&scoped=true&":
/*!*************************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/category/Editor.vue?vue&type=template&id=d7fd5f12&scoped=true& ***!
  \*************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_d7fd5f12_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=template&id=d7fd5f12&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/category/Editor.vue?vue&type=template&id=d7fd5f12&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_d7fd5f12_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_d7fd5f12_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/category/Index.vue":
/*!*****************************************************************!*\
  !*** ./resources/assets/js/components/admin/category/Index.vue ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Index_vue_vue_type_template_id_50dbfd90___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=50dbfd90& */ "./resources/assets/js/components/admin/category/Index.vue?vue&type=template&id=50dbfd90&");
/* harmony import */ var _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/category/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Index_vue_vue_type_template_id_50dbfd90___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Index_vue_vue_type_template_id_50dbfd90___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/category/Index.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/category/Index.vue?vue&type=script&lang=js&":
/*!******************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/category/Index.vue?vue&type=script&lang=js& ***!
  \******************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/category/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/category/Index.vue?vue&type=template&id=50dbfd90&":
/*!************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/category/Index.vue?vue&type=template&id=50dbfd90& ***!
  \************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_50dbfd90___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=template&id=50dbfd90& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/category/Index.vue?vue&type=template&id=50dbfd90&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_50dbfd90___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_50dbfd90___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/chat/Index.vue":
/*!*************************************************************!*\
  !*** ./resources/assets/js/components/admin/chat/Index.vue ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Index_vue_vue_type_template_id_e71332dc___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=e71332dc& */ "./resources/assets/js/components/admin/chat/Index.vue?vue&type=template&id=e71332dc&");
/* harmony import */ var _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/chat/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Index_vue_vue_type_template_id_e71332dc___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Index_vue_vue_type_template_id_e71332dc___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/chat/Index.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/chat/Index.vue?vue&type=script&lang=js&":
/*!**************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/chat/Index.vue?vue&type=script&lang=js& ***!
  \**************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/chat/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/chat/Index.vue?vue&type=template&id=e71332dc&":
/*!********************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/chat/Index.vue?vue&type=template&id=e71332dc& ***!
  \********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_e71332dc___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=template&id=e71332dc& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/chat/Index.vue?vue&type=template&id=e71332dc&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_e71332dc___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_e71332dc___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/inquiry/Index.vue":
/*!****************************************************************!*\
  !*** ./resources/assets/js/components/admin/inquiry/Index.vue ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Index_vue_vue_type_template_id_50808d63___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=50808d63& */ "./resources/assets/js/components/admin/inquiry/Index.vue?vue&type=template&id=50808d63&");
/* harmony import */ var _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/inquiry/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Index_vue_vue_type_template_id_50808d63___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Index_vue_vue_type_template_id_50808d63___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/inquiry/Index.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/inquiry/Index.vue?vue&type=script&lang=js&":
/*!*****************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/inquiry/Index.vue?vue&type=script&lang=js& ***!
  \*****************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/inquiry/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/inquiry/Index.vue?vue&type=template&id=50808d63&":
/*!***********************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/inquiry/Index.vue?vue&type=template&id=50808d63& ***!
  \***********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_50808d63___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=template&id=50808d63& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/inquiry/Index.vue?vue&type=template&id=50808d63&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_50808d63___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_50808d63___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/message_price/Index.vue":
/*!**********************************************************************!*\
  !*** ./resources/assets/js/components/admin/message_price/Index.vue ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Index_vue_vue_type_template_id_59fed56d___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=59fed56d& */ "./resources/assets/js/components/admin/message_price/Index.vue?vue&type=template&id=59fed56d&");
/* harmony import */ var _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/message_price/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Index_vue_vue_type_template_id_59fed56d___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Index_vue_vue_type_template_id_59fed56d___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/message_price/Index.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/message_price/Index.vue?vue&type=script&lang=js&":
/*!***********************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/message_price/Index.vue?vue&type=script&lang=js& ***!
  \***********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/message_price/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/message_price/Index.vue?vue&type=template&id=59fed56d&":
/*!*****************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/message_price/Index.vue?vue&type=template&id=59fed56d& ***!
  \*****************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_59fed56d___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=template&id=59fed56d& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/message_price/Index.vue?vue&type=template&id=59fed56d&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_59fed56d___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_59fed56d___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/message_purchase_history/Index.vue":
/*!*********************************************************************************!*\
  !*** ./resources/assets/js/components/admin/message_purchase_history/Index.vue ***!
  \*********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Index_vue_vue_type_template_id_0de442c8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=0de442c8& */ "./resources/assets/js/components/admin/message_purchase_history/Index.vue?vue&type=template&id=0de442c8&");
/* harmony import */ var _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/message_purchase_history/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Index_vue_vue_type_template_id_0de442c8___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Index_vue_vue_type_template_id_0de442c8___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/message_purchase_history/Index.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/message_purchase_history/Index.vue?vue&type=script&lang=js&":
/*!**********************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/message_purchase_history/Index.vue?vue&type=script&lang=js& ***!
  \**********************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/message_purchase_history/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/message_purchase_history/Index.vue?vue&type=template&id=0de442c8&":
/*!****************************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/message_purchase_history/Index.vue?vue&type=template&id=0de442c8& ***!
  \****************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_0de442c8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=template&id=0de442c8& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/message_purchase_history/Index.vue?vue&type=template&id=0de442c8&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_0de442c8___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_0de442c8___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/newsletter/Index.vue":
/*!*******************************************************************!*\
  !*** ./resources/assets/js/components/admin/newsletter/Index.vue ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Index_vue_vue_type_template_id_9289311a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=9289311a& */ "./resources/assets/js/components/admin/newsletter/Index.vue?vue&type=template&id=9289311a&");
/* harmony import */ var _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/newsletter/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Index_vue_vue_type_template_id_9289311a___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Index_vue_vue_type_template_id_9289311a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/newsletter/Index.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/newsletter/Index.vue?vue&type=script&lang=js&":
/*!********************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/newsletter/Index.vue?vue&type=script&lang=js& ***!
  \********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/newsletter/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/newsletter/Index.vue?vue&type=template&id=9289311a&":
/*!**************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/newsletter/Index.vue?vue&type=template&id=9289311a& ***!
  \**************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_9289311a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=template&id=9289311a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/newsletter/Index.vue?vue&type=template&id=9289311a&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_9289311a___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_9289311a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/order_tax/Index.vue":
/*!******************************************************************!*\
  !*** ./resources/assets/js/components/admin/order_tax/Index.vue ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Index_vue_vue_type_template_id_cc154a54___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=cc154a54& */ "./resources/assets/js/components/admin/order_tax/Index.vue?vue&type=template&id=cc154a54&");
/* harmony import */ var _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/order_tax/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Index_vue_vue_type_template_id_cc154a54___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Index_vue_vue_type_template_id_cc154a54___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/order_tax/Index.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/order_tax/Index.vue?vue&type=script&lang=js&":
/*!*******************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/order_tax/Index.vue?vue&type=script&lang=js& ***!
  \*******************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/order_tax/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/order_tax/Index.vue?vue&type=template&id=cc154a54&":
/*!*************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/order_tax/Index.vue?vue&type=template&id=cc154a54& ***!
  \*************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_cc154a54___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=template&id=cc154a54& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/order_tax/Index.vue?vue&type=template&id=cc154a54&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_cc154a54___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_cc154a54___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/product_comments/Editor.vue":
/*!**************************************************************************!*\
  !*** ./resources/assets/js/components/admin/product_comments/Editor.vue ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Editor_vue_vue_type_template_id_1974151e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Editor.vue?vue&type=template&id=1974151e&scoped=true& */ "./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=template&id=1974151e&scoped=true&");
/* harmony import */ var _Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Editor.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _Editor_vue_vue_type_style_index_0_id_1974151e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Editor.vue?vue&type=style&index=0&id=1974151e&scoped=true&lang=css& */ "./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=style&index=0&id=1974151e&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Editor_vue_vue_type_template_id_1974151e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Editor_vue_vue_type_template_id_1974151e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "1974151e",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/product_comments/Editor.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=script&lang=js&":
/*!***************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=script&lang=js& ***!
  \***************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=style&index=0&id=1974151e&scoped=true&lang=css&":
/*!***********************************************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=style&index=0&id=1974151e&scoped=true&lang=css& ***!
  \***********************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_1974151e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/style-loader!../../../../../../node_modules/css-loader??ref--6-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=style&index=0&id=1974151e&scoped=true&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=style&index=0&id=1974151e&scoped=true&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_1974151e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_1974151e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_1974151e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_1974151e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_1974151e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=template&id=1974151e&scoped=true&":
/*!*********************************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=template&id=1974151e&scoped=true& ***!
  \*********************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_1974151e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=template&id=1974151e&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/product_comments/Editor.vue?vue&type=template&id=1974151e&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_1974151e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_1974151e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/product_comments/Index.vue":
/*!*************************************************************************!*\
  !*** ./resources/assets/js/components/admin/product_comments/Index.vue ***!
  \*************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Index_vue_vue_type_template_id_6707d4fe___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=6707d4fe& */ "./resources/assets/js/components/admin/product_comments/Index.vue?vue&type=template&id=6707d4fe&");
/* harmony import */ var _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/product_comments/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Index_vue_vue_type_template_id_6707d4fe___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Index_vue_vue_type_template_id_6707d4fe___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/product_comments/Index.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/product_comments/Index.vue?vue&type=script&lang=js&":
/*!**************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/product_comments/Index.vue?vue&type=script&lang=js& ***!
  \**************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/product_comments/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/product_comments/Index.vue?vue&type=template&id=6707d4fe&":
/*!********************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/product_comments/Index.vue?vue&type=template&id=6707d4fe& ***!
  \********************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_6707d4fe___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=template&id=6707d4fe& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/product_comments/Index.vue?vue&type=template&id=6707d4fe&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_6707d4fe___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_6707d4fe___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/tags/Editor.vue":
/*!**************************************************************!*\
  !*** ./resources/assets/js/components/admin/tags/Editor.vue ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Editor_vue_vue_type_template_id_54e8ba08_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Editor.vue?vue&type=template&id=54e8ba08&scoped=true& */ "./resources/assets/js/components/admin/tags/Editor.vue?vue&type=template&id=54e8ba08&scoped=true&");
/* harmony import */ var _Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Editor.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/tags/Editor.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _Editor_vue_vue_type_style_index_0_id_54e8ba08_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Editor.vue?vue&type=style&index=0&id=54e8ba08&scoped=true&lang=css& */ "./resources/assets/js/components/admin/tags/Editor.vue?vue&type=style&index=0&id=54e8ba08&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Editor_vue_vue_type_template_id_54e8ba08_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Editor_vue_vue_type_template_id_54e8ba08_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "54e8ba08",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/tags/Editor.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/tags/Editor.vue?vue&type=script&lang=js&":
/*!***************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tags/Editor.vue?vue&type=script&lang=js& ***!
  \***************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tags/Editor.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/tags/Editor.vue?vue&type=style&index=0&id=54e8ba08&scoped=true&lang=css&":
/*!***********************************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tags/Editor.vue?vue&type=style&index=0&id=54e8ba08&scoped=true&lang=css& ***!
  \***********************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_54e8ba08_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/style-loader!../../../../../../node_modules/css-loader??ref--6-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=style&index=0&id=54e8ba08&scoped=true&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tags/Editor.vue?vue&type=style&index=0&id=54e8ba08&scoped=true&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_54e8ba08_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_54e8ba08_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_54e8ba08_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_54e8ba08_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_54e8ba08_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/components/admin/tags/Editor.vue?vue&type=template&id=54e8ba08&scoped=true&":
/*!*********************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tags/Editor.vue?vue&type=template&id=54e8ba08&scoped=true& ***!
  \*********************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_54e8ba08_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=template&id=54e8ba08&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tags/Editor.vue?vue&type=template&id=54e8ba08&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_54e8ba08_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_54e8ba08_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/tags/Index.vue":
/*!*************************************************************!*\
  !*** ./resources/assets/js/components/admin/tags/Index.vue ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Index_vue_vue_type_template_id_c03e6bda___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=c03e6bda& */ "./resources/assets/js/components/admin/tags/Index.vue?vue&type=template&id=c03e6bda&");
/* harmony import */ var _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/tags/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Index_vue_vue_type_template_id_c03e6bda___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Index_vue_vue_type_template_id_c03e6bda___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/tags/Index.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/tags/Index.vue?vue&type=script&lang=js&":
/*!**************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tags/Index.vue?vue&type=script&lang=js& ***!
  \**************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tags/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/tags/Index.vue?vue&type=template&id=c03e6bda&":
/*!********************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tags/Index.vue?vue&type=template&id=c03e6bda& ***!
  \********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_c03e6bda___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=template&id=c03e6bda& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tags/Index.vue?vue&type=template&id=c03e6bda&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_c03e6bda___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_c03e6bda___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/tax/Editor.vue":
/*!*************************************************************!*\
  !*** ./resources/assets/js/components/admin/tax/Editor.vue ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Editor_vue_vue_type_template_id_e1a31670_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Editor.vue?vue&type=template&id=e1a31670&scoped=true& */ "./resources/assets/js/components/admin/tax/Editor.vue?vue&type=template&id=e1a31670&scoped=true&");
/* harmony import */ var _Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Editor.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/tax/Editor.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _Editor_vue_vue_type_style_index_0_id_e1a31670_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Editor.vue?vue&type=style&index=0&id=e1a31670&scoped=true&lang=css& */ "./resources/assets/js/components/admin/tax/Editor.vue?vue&type=style&index=0&id=e1a31670&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Editor_vue_vue_type_template_id_e1a31670_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Editor_vue_vue_type_template_id_e1a31670_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "e1a31670",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/tax/Editor.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/tax/Editor.vue?vue&type=script&lang=js&":
/*!**************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tax/Editor.vue?vue&type=script&lang=js& ***!
  \**************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tax/Editor.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/tax/Editor.vue?vue&type=style&index=0&id=e1a31670&scoped=true&lang=css&":
/*!**********************************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tax/Editor.vue?vue&type=style&index=0&id=e1a31670&scoped=true&lang=css& ***!
  \**********************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_e1a31670_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/style-loader!../../../../../../node_modules/css-loader??ref--6-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=style&index=0&id=e1a31670&scoped=true&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tax/Editor.vue?vue&type=style&index=0&id=e1a31670&scoped=true&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_e1a31670_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_e1a31670_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_e1a31670_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_e1a31670_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_e1a31670_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/components/admin/tax/Editor.vue?vue&type=template&id=e1a31670&scoped=true&":
/*!********************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tax/Editor.vue?vue&type=template&id=e1a31670&scoped=true& ***!
  \********************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_e1a31670_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=template&id=e1a31670&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tax/Editor.vue?vue&type=template&id=e1a31670&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_e1a31670_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_e1a31670_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/tax/Index.vue":
/*!************************************************************!*\
  !*** ./resources/assets/js/components/admin/tax/Index.vue ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Index_vue_vue_type_template_id_08f68ec7___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=08f68ec7& */ "./resources/assets/js/components/admin/tax/Index.vue?vue&type=template&id=08f68ec7&");
/* harmony import */ var _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/tax/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Index_vue_vue_type_template_id_08f68ec7___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Index_vue_vue_type_template_id_08f68ec7___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/tax/Index.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/tax/Index.vue?vue&type=script&lang=js&":
/*!*************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tax/Index.vue?vue&type=script&lang=js& ***!
  \*************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tax/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/tax/Index.vue?vue&type=template&id=08f68ec7&":
/*!*******************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tax/Index.vue?vue&type=template&id=08f68ec7& ***!
  \*******************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_08f68ec7___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=template&id=08f68ec7& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tax/Index.vue?vue&type=template&id=08f68ec7&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_08f68ec7___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_08f68ec7___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/tip_history/Index.vue":
/*!********************************************************************!*\
  !*** ./resources/assets/js/components/admin/tip_history/Index.vue ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Index_vue_vue_type_template_id_565e6668___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=565e6668& */ "./resources/assets/js/components/admin/tip_history/Index.vue?vue&type=template&id=565e6668&");
/* harmony import */ var _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/tip_history/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Index_vue_vue_type_template_id_565e6668___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Index_vue_vue_type_template_id_565e6668___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/tip_history/Index.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/tip_history/Index.vue?vue&type=script&lang=js&":
/*!*********************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tip_history/Index.vue?vue&type=script&lang=js& ***!
  \*********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tip_history/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/tip_history/Index.vue?vue&type=template&id=565e6668&":
/*!***************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tip_history/Index.vue?vue&type=template&id=565e6668& ***!
  \***************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_565e6668___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=template&id=565e6668& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tip_history/Index.vue?vue&type=template&id=565e6668&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_565e6668___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_565e6668___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/tips/Editor.vue":
/*!**************************************************************!*\
  !*** ./resources/assets/js/components/admin/tips/Editor.vue ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Editor_vue_vue_type_template_id_47152a7d_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Editor.vue?vue&type=template&id=47152a7d&scoped=true& */ "./resources/assets/js/components/admin/tips/Editor.vue?vue&type=template&id=47152a7d&scoped=true&");
/* harmony import */ var _Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Editor.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/tips/Editor.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _Editor_vue_vue_type_style_index_0_id_47152a7d_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Editor.vue?vue&type=style&index=0&id=47152a7d&scoped=true&lang=css& */ "./resources/assets/js/components/admin/tips/Editor.vue?vue&type=style&index=0&id=47152a7d&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Editor_vue_vue_type_template_id_47152a7d_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Editor_vue_vue_type_template_id_47152a7d_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "47152a7d",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/tips/Editor.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/tips/Editor.vue?vue&type=script&lang=js&":
/*!***************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tips/Editor.vue?vue&type=script&lang=js& ***!
  \***************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tips/Editor.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/tips/Editor.vue?vue&type=style&index=0&id=47152a7d&scoped=true&lang=css&":
/*!***********************************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tips/Editor.vue?vue&type=style&index=0&id=47152a7d&scoped=true&lang=css& ***!
  \***********************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_47152a7d_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/style-loader!../../../../../../node_modules/css-loader??ref--6-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=style&index=0&id=47152a7d&scoped=true&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tips/Editor.vue?vue&type=style&index=0&id=47152a7d&scoped=true&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_47152a7d_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_47152a7d_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_47152a7d_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_47152a7d_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_id_47152a7d_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/components/admin/tips/Editor.vue?vue&type=template&id=47152a7d&scoped=true&":
/*!*********************************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tips/Editor.vue?vue&type=template&id=47152a7d&scoped=true& ***!
  \*********************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_47152a7d_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Editor.vue?vue&type=template&id=47152a7d&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tips/Editor.vue?vue&type=template&id=47152a7d&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_47152a7d_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_template_id_47152a7d_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/admin/tips/Index.vue":
/*!*************************************************************!*\
  !*** ./resources/assets/js/components/admin/tips/Index.vue ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Index_vue_vue_type_template_id_5937ce72___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=5937ce72& */ "./resources/assets/js/components/admin/tips/Index.vue?vue&type=template&id=5937ce72&");
/* harmony import */ var _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/admin/tips/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Index_vue_vue_type_template_id_5937ce72___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Index_vue_vue_type_template_id_5937ce72___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/admin/tips/Index.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/admin/tips/Index.vue?vue&type=script&lang=js&":
/*!**************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tips/Index.vue?vue&type=script&lang=js& ***!
  \**************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tips/Index.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/admin/tips/Index.vue?vue&type=template&id=5937ce72&":
/*!********************************************************************************************!*\
  !*** ./resources/assets/js/components/admin/tips/Index.vue?vue&type=template&id=5937ce72& ***!
  \********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_5937ce72___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=template&id=5937ce72& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/admin/tips/Index.vue?vue&type=template&id=5937ce72&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_5937ce72___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_5937ce72___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/front-end/home/Banner.vue":
/*!******************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/Banner.vue ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Banner_vue_vue_type_template_id_5f3237c6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Banner.vue?vue&type=template&id=5f3237c6& */ "./resources/assets/js/components/front-end/home/Banner.vue?vue&type=template&id=5f3237c6&");
/* harmony import */ var _Banner_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Banner.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/front-end/home/Banner.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Banner_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Banner_vue_vue_type_template_id_5f3237c6___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Banner_vue_vue_type_template_id_5f3237c6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/front-end/home/Banner.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/front-end/home/Banner.vue?vue&type=script&lang=js&":
/*!*******************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/Banner.vue?vue&type=script&lang=js& ***!
  \*******************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Banner_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Banner.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/Banner.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Banner_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/front-end/home/Banner.vue?vue&type=template&id=5f3237c6&":
/*!*************************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/Banner.vue?vue&type=template&id=5f3237c6& ***!
  \*************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Banner_vue_vue_type_template_id_5f3237c6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Banner.vue?vue&type=template&id=5f3237c6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/Banner.vue?vue&type=template&id=5f3237c6&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Banner_vue_vue_type_template_id_5f3237c6___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Banner_vue_vue_type_template_id_5f3237c6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/front-end/home/BuyNow.vue":
/*!******************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/BuyNow.vue ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _BuyNow_vue_vue_type_template_id_50fc0161___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BuyNow.vue?vue&type=template&id=50fc0161& */ "./resources/assets/js/components/front-end/home/BuyNow.vue?vue&type=template&id=50fc0161&");
/* harmony import */ var _BuyNow_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BuyNow.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/front-end/home/BuyNow.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _BuyNow_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _BuyNow_vue_vue_type_template_id_50fc0161___WEBPACK_IMPORTED_MODULE_0__["render"],
  _BuyNow_vue_vue_type_template_id_50fc0161___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/front-end/home/BuyNow.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/front-end/home/BuyNow.vue?vue&type=script&lang=js&":
/*!*******************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/BuyNow.vue?vue&type=script&lang=js& ***!
  \*******************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyNow_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./BuyNow.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/BuyNow.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyNow_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/front-end/home/BuyNow.vue?vue&type=template&id=50fc0161&":
/*!*************************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/BuyNow.vue?vue&type=template&id=50fc0161& ***!
  \*************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyNow_vue_vue_type_template_id_50fc0161___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./BuyNow.vue?vue&type=template&id=50fc0161& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/BuyNow.vue?vue&type=template&id=50fc0161&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyNow_vue_vue_type_template_id_50fc0161___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyNow_vue_vue_type_template_id_50fc0161___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/front-end/home/BuyTip.vue":
/*!******************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/BuyTip.vue ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _BuyTip_vue_vue_type_template_id_f87ca6b4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BuyTip.vue?vue&type=template&id=f87ca6b4& */ "./resources/assets/js/components/front-end/home/BuyTip.vue?vue&type=template&id=f87ca6b4&");
/* harmony import */ var _BuyTip_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BuyTip.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/front-end/home/BuyTip.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _BuyTip_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _BuyTip_vue_vue_type_template_id_f87ca6b4___WEBPACK_IMPORTED_MODULE_0__["render"],
  _BuyTip_vue_vue_type_template_id_f87ca6b4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/front-end/home/BuyTip.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/front-end/home/BuyTip.vue?vue&type=script&lang=js&":
/*!*******************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/BuyTip.vue?vue&type=script&lang=js& ***!
  \*******************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./BuyTip.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/BuyTip.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/front-end/home/BuyTip.vue?vue&type=template&id=f87ca6b4&":
/*!*************************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/BuyTip.vue?vue&type=template&id=f87ca6b4& ***!
  \*************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_template_id_f87ca6b4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./BuyTip.vue?vue&type=template&id=f87ca6b4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/BuyTip.vue?vue&type=template&id=f87ca6b4&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_template_id_f87ca6b4___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_template_id_f87ca6b4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/front-end/home/CommentModal.vue":
/*!************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/CommentModal.vue ***!
  \************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _CommentModal_vue_vue_type_template_id_32df3cbf___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CommentModal.vue?vue&type=template&id=32df3cbf& */ "./resources/assets/js/components/front-end/home/CommentModal.vue?vue&type=template&id=32df3cbf&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");

var script = {}


/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__["default"])(
  script,
  _CommentModal_vue_vue_type_template_id_32df3cbf___WEBPACK_IMPORTED_MODULE_0__["render"],
  _CommentModal_vue_vue_type_template_id_32df3cbf___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/front-end/home/CommentModal.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/front-end/home/CommentModal.vue?vue&type=template&id=32df3cbf&":
/*!*******************************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/CommentModal.vue?vue&type=template&id=32df3cbf& ***!
  \*******************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentModal_vue_vue_type_template_id_32df3cbf___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./CommentModal.vue?vue&type=template&id=32df3cbf& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/CommentModal.vue?vue&type=template&id=32df3cbf&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentModal_vue_vue_type_template_id_32df3cbf___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentModal_vue_vue_type_template_id_32df3cbf___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/front-end/home/Indx.vue":
/*!****************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/Indx.vue ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Indx_vue_vue_type_template_id_14f4c5ac___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Indx.vue?vue&type=template&id=14f4c5ac& */ "./resources/assets/js/components/front-end/home/Indx.vue?vue&type=template&id=14f4c5ac&");
/* harmony import */ var _Indx_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Indx.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/front-end/home/Indx.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Indx_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Indx_vue_vue_type_template_id_14f4c5ac___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Indx_vue_vue_type_template_id_14f4c5ac___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/front-end/home/Indx.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/front-end/home/Indx.vue?vue&type=script&lang=js&":
/*!*****************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/Indx.vue?vue&type=script&lang=js& ***!
  \*****************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Indx_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Indx.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/Indx.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Indx_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/front-end/home/Indx.vue?vue&type=template&id=14f4c5ac&":
/*!***********************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/Indx.vue?vue&type=template&id=14f4c5ac& ***!
  \***********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Indx_vue_vue_type_template_id_14f4c5ac___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Indx.vue?vue&type=template&id=14f4c5ac& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/Indx.vue?vue&type=template&id=14f4c5ac&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Indx_vue_vue_type_template_id_14f4c5ac___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Indx_vue_vue_type_template_id_14f4c5ac___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/front-end/home/SideBar.vue":
/*!*******************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/SideBar.vue ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _SideBar_vue_vue_type_template_id_0909aaca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SideBar.vue?vue&type=template&id=0909aaca& */ "./resources/assets/js/components/front-end/home/SideBar.vue?vue&type=template&id=0909aaca&");
/* harmony import */ var _SideBar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SideBar.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/front-end/home/SideBar.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _SideBar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _SideBar_vue_vue_type_template_id_0909aaca___WEBPACK_IMPORTED_MODULE_0__["render"],
  _SideBar_vue_vue_type_template_id_0909aaca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/front-end/home/SideBar.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/front-end/home/SideBar.vue?vue&type=script&lang=js&":
/*!********************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/SideBar.vue?vue&type=script&lang=js& ***!
  \********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SideBar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./SideBar.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/SideBar.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SideBar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/front-end/home/SideBar.vue?vue&type=template&id=0909aaca&":
/*!**************************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/SideBar.vue?vue&type=template&id=0909aaca& ***!
  \**************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_SideBar_vue_vue_type_template_id_0909aaca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./SideBar.vue?vue&type=template&id=0909aaca& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/home/SideBar.vue?vue&type=template&id=0909aaca&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_SideBar_vue_vue_type_template_id_0909aaca___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_SideBar_vue_vue_type_template_id_0909aaca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/front-end/home/chat/messageHistory.js":
/*!******************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/home/chat/messageHistory.js ***!
  \******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ([{
  type: 'text',
  author: "me",
  id: 0,
  data: {
    text: "Why don't they have salsa on the table?",
    file: {
      name: 'awesome',
      url: 'https://media.giphy.com/media/dkGhBWE3SyzXW/giphy.gif'
    }
  }
}, {
  type: 'text',
  author: "mattmezza",
  id: 1,
  data: {
    text: "What do you need salsa for?"
  }
}, {
  type: 'text',
  author: "me",
  id: 2,
  data: {
    text: "Salsa is now the number one condiment in America."
  }
}, {
  type: 'text',
  author: "mattmezza",
  id: 3,
  data: {
    text: "You know why? Because people like to say 'salsa.' 'Excuse me, do you have salsa?' 'We need more salsa.' 'Where is the salsa? No salsa?'"
  }
}, {
  type: 'text',
  author: "me",
  id: 4,
  data: {
    text: "You know it must be impossible for a Spanish person to order seltzer and not get salsa. 'I wanted seltzer, not salsa.'"
  }
}, {
  type: 'text',
  author: "mattmezza",
  id: 5,
  data: {
    text: "Don't you know the difference between seltzer and salsa?? You have the seltezer after the salsa!"
  }
}, {
  type: 'text',
  author: "me",
  id: 6,
  data: {
    text: "See, this should be a show. This is the show. "
  }
}, {
  type: 'text',
  author: "mattmezza",
  id: 7,
  data: {
    text: "What?"
  }
}, {
  type: 'text',
  author: "me",
  id: 8,
  data: {
    text: "This. Just talking."
  }
}, {
  type: 'text',
  author: "mattmezza",
  id: 9,
  data: {
    text: "Yeah, right."
  }
}, {
  type: 'text',
  author: "me",
  id: 10,
  data: {
    text: "I'm really serious. I think that's a good idea. "
  }
}, {
  type: 'text',
  author: "mattmezza",
  id: 11,
  data: {
    text: "Just talking? Well what's the show about?"
  }
}, {
  type: 'text',
  author: "me",
  id: 12,
  data: {
    text: "It's about nothing."
  }
}, {
  type: 'text',
  author: "mattmezza",
  id: 100,
  data: {
    text: "No story?"
  }
}, {
  type: 'system',
  id: 13,
  data: {
    text: 'You have been transferred to another operator',
    meta: '04-07-2018 15:57'
  }
}, {
  type: 'file',
  author: "support",
  id: 14,
  data: {
    text: "No forget the story. ",
    file: {
      name: 'awesome',
      url: 'https://media.giphy.com/media/dkGhBWE3SyzXW/giphy.gif'
    }
  }
}, {
  type: 'file',
  author: "me",
  id: 15,
  data: {
    text: "What about this one instead?? ",
    file: {
      url: 'http://www.quickmeme.com/img/2d/2d95cc80f9a2a2578a8f632eebecddcc1c12e5b08ab85f81a5d401670d5f36c1.jpg'
    },
    meta: '✓✓ Read'
  }
}, {
  type: 'text',
  author: "support",
  id: 16,
  data: {
    text: "You've got to have a story. You've got to have a story. You've got to have a story. You've got to have a story. You've got to have a story. You've got to have a story. "
  }
}, {
  type: 'emoji',
  author: "me",
  id: 17,
  data: {
    emoji: "\uD83D\uDE0B"
  }
}, {
  type: 'text',
  author: "me",
  id: 18,
  data: {
    text: "Do you read me...",
    meta: '✓✓ Read'
  }
}, {
  type: 'text',
  author: "me",
  id: 19,
  data: {
    text: "...or not?",
    meta: '✓ Delivered'
  }
}, {
  type: 'system',
  id: 20,
  data: {
    text: 'User changed security key',
    meta: '04-08-2018 15:57'
  }
}, {
  type: 'text',
  author: "support",
  id: 21,
  data: {
    text: "What about suggestions?"
  },
  suggestions: ["Looks good!", "It's OK.", "Uhh.. Do I really have to say something?", "This suggestion is way too long for css purpose. Let's make it long... Longer, and more and more.. Never ending."]
}]);

/***/ }),

/***/ "./resources/assets/js/components/front-end/layout/Footer.vue":
/*!********************************************************************!*\
  !*** ./resources/assets/js/components/front-end/layout/Footer.vue ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Footer_vue_vue_type_template_id_2a9ed9a1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Footer.vue?vue&type=template&id=2a9ed9a1& */ "./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=template&id=2a9ed9a1&");
/* harmony import */ var _Footer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Footer.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _Footer_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Footer.vue?vue&type=style&index=0&lang=css& */ "./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=style&index=0&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _Footer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Footer_vue_vue_type_template_id_2a9ed9a1___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Footer_vue_vue_type_template_id_2a9ed9a1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/front-end/layout/Footer.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=script&lang=js&":
/*!*********************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=script&lang=js& ***!
  \*********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Footer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Footer.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Footer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=style&index=0&lang=css&":
/*!*****************************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=style&index=0&lang=css& ***!
  \*****************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Footer_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/style-loader!../../../../../../node_modules/css-loader??ref--6-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Footer.vue?vue&type=style&index=0&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=style&index=0&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Footer_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Footer_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Footer_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Footer_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Footer_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=template&id=2a9ed9a1&":
/*!***************************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=template&id=2a9ed9a1& ***!
  \***************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Footer_vue_vue_type_template_id_2a9ed9a1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Footer.vue?vue&type=template&id=2a9ed9a1& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/layout/Footer.vue?vue&type=template&id=2a9ed9a1&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Footer_vue_vue_type_template_id_2a9ed9a1___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Footer_vue_vue_type_template_id_2a9ed9a1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/components/front-end/layout/Header.vue":
/*!********************************************************************!*\
  !*** ./resources/assets/js/components/front-end/layout/Header.vue ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Header_vue_vue_type_template_id_4bd13d93___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Header.vue?vue&type=template&id=4bd13d93& */ "./resources/assets/js/components/front-end/layout/Header.vue?vue&type=template&id=4bd13d93&");
/* harmony import */ var _Header_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Header.vue?vue&type=script&lang=js& */ "./resources/assets/js/components/front-end/layout/Header.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Header_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Header_vue_vue_type_template_id_4bd13d93___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Header_vue_vue_type_template_id_4bd13d93___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/components/front-end/layout/Header.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/components/front-end/layout/Header.vue?vue&type=script&lang=js&":
/*!*********************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/layout/Header.vue?vue&type=script&lang=js& ***!
  \*********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Header_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Header.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/layout/Header.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Header_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/components/front-end/layout/Header.vue?vue&type=template&id=4bd13d93&":
/*!***************************************************************************************************!*\
  !*** ./resources/assets/js/components/front-end/layout/Header.vue?vue&type=template&id=4bd13d93& ***!
  \***************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Header_vue_vue_type_template_id_4bd13d93___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Header.vue?vue&type=template&id=4bd13d93& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/components/front-end/layout/Header.vue?vue&type=template&id=4bd13d93&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Header_vue_vue_type_template_id_4bd13d93___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Header_vue_vue_type_template_id_4bd13d93___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/About.vue":
/*!*********************************************!*\
  !*** ./resources/assets/js/views/About.vue ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _About_vue_vue_type_template_id_49c1ab4a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./About.vue?vue&type=template&id=49c1ab4a& */ "./resources/assets/js/views/About.vue?vue&type=template&id=49c1ab4a&");
/* harmony import */ var _About_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./About.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/About.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _About_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _About_vue_vue_type_template_id_49c1ab4a___WEBPACK_IMPORTED_MODULE_0__["render"],
  _About_vue_vue_type_template_id_49c1ab4a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/About.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/About.vue?vue&type=script&lang=js&":
/*!**********************************************************************!*\
  !*** ./resources/assets/js/views/About.vue?vue&type=script&lang=js& ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_About_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./About.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/About.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_About_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/About.vue?vue&type=template&id=49c1ab4a&":
/*!****************************************************************************!*\
  !*** ./resources/assets/js/views/About.vue?vue&type=template&id=49c1ab4a& ***!
  \****************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_About_vue_vue_type_template_id_49c1ab4a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./About.vue?vue&type=template&id=49c1ab4a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/About.vue?vue&type=template&id=49c1ab4a&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_About_vue_vue_type_template_id_49c1ab4a___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_About_vue_vue_type_template_id_49c1ab4a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/AccountSetting.vue":
/*!******************************************************!*\
  !*** ./resources/assets/js/views/AccountSetting.vue ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _AccountSetting_vue_vue_type_template_id_60b62314___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AccountSetting.vue?vue&type=template&id=60b62314& */ "./resources/assets/js/views/AccountSetting.vue?vue&type=template&id=60b62314&");
/* harmony import */ var _AccountSetting_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AccountSetting.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/AccountSetting.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _AccountSetting_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _AccountSetting_vue_vue_type_template_id_60b62314___WEBPACK_IMPORTED_MODULE_0__["render"],
  _AccountSetting_vue_vue_type_template_id_60b62314___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/AccountSetting.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/AccountSetting.vue?vue&type=script&lang=js&":
/*!*******************************************************************************!*\
  !*** ./resources/assets/js/views/AccountSetting.vue?vue&type=script&lang=js& ***!
  \*******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AccountSetting_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./AccountSetting.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/AccountSetting.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AccountSetting_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/AccountSetting.vue?vue&type=template&id=60b62314&":
/*!*************************************************************************************!*\
  !*** ./resources/assets/js/views/AccountSetting.vue?vue&type=template&id=60b62314& ***!
  \*************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AccountSetting_vue_vue_type_template_id_60b62314___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./AccountSetting.vue?vue&type=template&id=60b62314& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/AccountSetting.vue?vue&type=template&id=60b62314&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AccountSetting_vue_vue_type_template_id_60b62314___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AccountSetting_vue_vue_type_template_id_60b62314___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/Admin/Dashboard.vue":
/*!*******************************************************!*\
  !*** ./resources/assets/js/views/Admin/Dashboard.vue ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Dashboard_vue_vue_type_template_id_ee70649e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Dashboard.vue?vue&type=template&id=ee70649e&scoped=true& */ "./resources/assets/js/views/Admin/Dashboard.vue?vue&type=template&id=ee70649e&scoped=true&");
/* harmony import */ var _Dashboard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Dashboard.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/Admin/Dashboard.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _Dashboard_vue_vue_type_style_index_0_id_ee70649e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Dashboard.vue?vue&type=style&index=0&id=ee70649e&scoped=true&lang=css& */ "./resources/assets/js/views/Admin/Dashboard.vue?vue&type=style&index=0&id=ee70649e&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _Dashboard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Dashboard_vue_vue_type_template_id_ee70649e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Dashboard_vue_vue_type_template_id_ee70649e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "ee70649e",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/Admin/Dashboard.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/Admin/Dashboard.vue?vue&type=script&lang=js&":
/*!********************************************************************************!*\
  !*** ./resources/assets/js/views/Admin/Dashboard.vue?vue&type=script&lang=js& ***!
  \********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Dashboard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Admin/Dashboard.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Dashboard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/Admin/Dashboard.vue?vue&type=style&index=0&id=ee70649e&scoped=true&lang=css&":
/*!****************************************************************************************************************!*\
  !*** ./resources/assets/js/views/Admin/Dashboard.vue?vue&type=style&index=0&id=ee70649e&scoped=true&lang=css& ***!
  \****************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Dashboard_vue_vue_type_style_index_0_id_ee70649e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader!../../../../../node_modules/css-loader??ref--6-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--6-2!../../../../../node_modules/vue-loader/lib??vue-loader-options!./Dashboard.vue?vue&type=style&index=0&id=ee70649e&scoped=true&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Admin/Dashboard.vue?vue&type=style&index=0&id=ee70649e&scoped=true&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Dashboard_vue_vue_type_style_index_0_id_ee70649e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Dashboard_vue_vue_type_style_index_0_id_ee70649e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Dashboard_vue_vue_type_style_index_0_id_ee70649e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Dashboard_vue_vue_type_style_index_0_id_ee70649e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Dashboard_vue_vue_type_style_index_0_id_ee70649e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/views/Admin/Dashboard.vue?vue&type=template&id=ee70649e&scoped=true&":
/*!**************************************************************************************************!*\
  !*** ./resources/assets/js/views/Admin/Dashboard.vue?vue&type=template&id=ee70649e&scoped=true& ***!
  \**************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Dashboard_vue_vue_type_template_id_ee70649e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../node_modules/vue-loader/lib??vue-loader-options!./Dashboard.vue?vue&type=template&id=ee70649e&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Admin/Dashboard.vue?vue&type=template&id=ee70649e&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Dashboard_vue_vue_type_template_id_ee70649e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Dashboard_vue_vue_type_template_id_ee70649e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/App.vue":
/*!*******************************************!*\
  !*** ./resources/assets/js/views/App.vue ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _App_vue_vue_type_template_id_50e73d1e_class_h_100___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=template&id=50e73d1e&class=h-100& */ "./resources/assets/js/views/App.vue?vue&type=template&id=50e73d1e&class=h-100&");
/* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/App.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _App_vue_vue_type_template_id_50e73d1e_class_h_100___WEBPACK_IMPORTED_MODULE_0__["render"],
  _App_vue_vue_type_template_id_50e73d1e_class_h_100___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/App.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/App.vue?vue&type=script&lang=js&":
/*!********************************************************************!*\
  !*** ./resources/assets/js/views/App.vue?vue&type=script&lang=js& ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./App.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/App.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/App.vue?vue&type=template&id=50e73d1e&class=h-100&":
/*!**************************************************************************************!*\
  !*** ./resources/assets/js/views/App.vue?vue&type=template&id=50e73d1e&class=h-100& ***!
  \**************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_50e73d1e_class_h_100___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./App.vue?vue&type=template&id=50e73d1e&class=h-100& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/App.vue?vue&type=template&id=50e73d1e&class=h-100&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_50e73d1e_class_h_100___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_50e73d1e_class_h_100___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/BuyTip.vue":
/*!**********************************************!*\
  !*** ./resources/assets/js/views/BuyTip.vue ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _BuyTip_vue_vue_type_template_id_11ab9548_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BuyTip.vue?vue&type=template&id=11ab9548&scoped=true& */ "./resources/assets/js/views/BuyTip.vue?vue&type=template&id=11ab9548&scoped=true&");
/* harmony import */ var _BuyTip_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BuyTip.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/BuyTip.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _BuyTip_vue_vue_type_style_index_0_id_11ab9548_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BuyTip.vue?vue&type=style&index=0&id=11ab9548&scoped=true&lang=css& */ "./resources/assets/js/views/BuyTip.vue?vue&type=style&index=0&id=11ab9548&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _BuyTip_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _BuyTip_vue_vue_type_template_id_11ab9548_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _BuyTip_vue_vue_type_template_id_11ab9548_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "11ab9548",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/BuyTip.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/BuyTip.vue?vue&type=script&lang=js&":
/*!***********************************************************************!*\
  !*** ./resources/assets/js/views/BuyTip.vue?vue&type=script&lang=js& ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./BuyTip.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/BuyTip.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/BuyTip.vue?vue&type=style&index=0&id=11ab9548&scoped=true&lang=css&":
/*!*******************************************************************************************************!*\
  !*** ./resources/assets/js/views/BuyTip.vue?vue&type=style&index=0&id=11ab9548&scoped=true&lang=css& ***!
  \*******************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_style_index_0_id_11ab9548_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader!../../../../node_modules/css-loader??ref--6-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./BuyTip.vue?vue&type=style&index=0&id=11ab9548&scoped=true&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/BuyTip.vue?vue&type=style&index=0&id=11ab9548&scoped=true&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_style_index_0_id_11ab9548_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_style_index_0_id_11ab9548_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_style_index_0_id_11ab9548_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_style_index_0_id_11ab9548_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_style_index_0_id_11ab9548_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/views/BuyTip.vue?vue&type=template&id=11ab9548&scoped=true&":
/*!*****************************************************************************************!*\
  !*** ./resources/assets/js/views/BuyTip.vue?vue&type=template&id=11ab9548&scoped=true& ***!
  \*****************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_template_id_11ab9548_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./BuyTip.vue?vue&type=template&id=11ab9548&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/BuyTip.vue?vue&type=template&id=11ab9548&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_template_id_11ab9548_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_BuyTip_vue_vue_type_template_id_11ab9548_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/ChangePassword.vue":
/*!******************************************************!*\
  !*** ./resources/assets/js/views/ChangePassword.vue ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ChangePassword_vue_vue_type_template_id_6556ed7e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ChangePassword.vue?vue&type=template&id=6556ed7e& */ "./resources/assets/js/views/ChangePassword.vue?vue&type=template&id=6556ed7e&");
/* harmony import */ var _ChangePassword_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ChangePassword.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/ChangePassword.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _ChangePassword_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _ChangePassword_vue_vue_type_template_id_6556ed7e___WEBPACK_IMPORTED_MODULE_0__["render"],
  _ChangePassword_vue_vue_type_template_id_6556ed7e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/ChangePassword.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/ChangePassword.vue?vue&type=script&lang=js&":
/*!*******************************************************************************!*\
  !*** ./resources/assets/js/views/ChangePassword.vue?vue&type=script&lang=js& ***!
  \*******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChangePassword_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ChangePassword.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/ChangePassword.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChangePassword_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/ChangePassword.vue?vue&type=template&id=6556ed7e&":
/*!*************************************************************************************!*\
  !*** ./resources/assets/js/views/ChangePassword.vue?vue&type=template&id=6556ed7e& ***!
  \*************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_ChangePassword_vue_vue_type_template_id_6556ed7e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./ChangePassword.vue?vue&type=template&id=6556ed7e& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/ChangePassword.vue?vue&type=template&id=6556ed7e&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_ChangePassword_vue_vue_type_template_id_6556ed7e___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_ChangePassword_vue_vue_type_template_id_6556ed7e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/Chat.vue":
/*!********************************************!*\
  !*** ./resources/assets/js/views/Chat.vue ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Chat_vue_vue_type_template_id_429c24aa___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Chat.vue?vue&type=template&id=429c24aa& */ "./resources/assets/js/views/Chat.vue?vue&type=template&id=429c24aa&");
/* harmony import */ var _Chat_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Chat.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/Chat.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Chat_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Chat_vue_vue_type_template_id_429c24aa___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Chat_vue_vue_type_template_id_429c24aa___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/Chat.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/Chat.vue?vue&type=script&lang=js&":
/*!*********************************************************************!*\
  !*** ./resources/assets/js/views/Chat.vue?vue&type=script&lang=js& ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Chat_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Chat.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Chat.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Chat_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/Chat.vue?vue&type=template&id=429c24aa&":
/*!***************************************************************************!*\
  !*** ./resources/assets/js/views/Chat.vue?vue&type=template&id=429c24aa& ***!
  \***************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Chat_vue_vue_type_template_id_429c24aa___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./Chat.vue?vue&type=template&id=429c24aa& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Chat.vue?vue&type=template&id=429c24aa&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Chat_vue_vue_type_template_id_429c24aa___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Chat_vue_vue_type_template_id_429c24aa___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/Checkout.vue":
/*!************************************************!*\
  !*** ./resources/assets/js/views/Checkout.vue ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Checkout_vue_vue_type_template_id_7b3dab19_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Checkout.vue?vue&type=template&id=7b3dab19&scoped=true& */ "./resources/assets/js/views/Checkout.vue?vue&type=template&id=7b3dab19&scoped=true&");
/* harmony import */ var _Checkout_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Checkout.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/Checkout.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _Checkout_vue_vue_type_style_index_0_id_7b3dab19_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Checkout.vue?vue&type=style&index=0&id=7b3dab19&scoped=true&lang=css& */ "./resources/assets/js/views/Checkout.vue?vue&type=style&index=0&id=7b3dab19&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _Checkout_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Checkout_vue_vue_type_template_id_7b3dab19_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Checkout_vue_vue_type_template_id_7b3dab19_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "7b3dab19",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/Checkout.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/Checkout.vue?vue&type=script&lang=js&":
/*!*************************************************************************!*\
  !*** ./resources/assets/js/views/Checkout.vue?vue&type=script&lang=js& ***!
  \*************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Checkout_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Checkout.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Checkout.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Checkout_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/Checkout.vue?vue&type=style&index=0&id=7b3dab19&scoped=true&lang=css&":
/*!*********************************************************************************************************!*\
  !*** ./resources/assets/js/views/Checkout.vue?vue&type=style&index=0&id=7b3dab19&scoped=true&lang=css& ***!
  \*********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Checkout_vue_vue_type_style_index_0_id_7b3dab19_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader!../../../../node_modules/css-loader??ref--6-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./Checkout.vue?vue&type=style&index=0&id=7b3dab19&scoped=true&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Checkout.vue?vue&type=style&index=0&id=7b3dab19&scoped=true&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Checkout_vue_vue_type_style_index_0_id_7b3dab19_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Checkout_vue_vue_type_style_index_0_id_7b3dab19_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Checkout_vue_vue_type_style_index_0_id_7b3dab19_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Checkout_vue_vue_type_style_index_0_id_7b3dab19_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Checkout_vue_vue_type_style_index_0_id_7b3dab19_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/views/Checkout.vue?vue&type=template&id=7b3dab19&scoped=true&":
/*!*******************************************************************************************!*\
  !*** ./resources/assets/js/views/Checkout.vue?vue&type=template&id=7b3dab19&scoped=true& ***!
  \*******************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Checkout_vue_vue_type_template_id_7b3dab19_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./Checkout.vue?vue&type=template&id=7b3dab19&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Checkout.vue?vue&type=template&id=7b3dab19&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Checkout_vue_vue_type_template_id_7b3dab19_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Checkout_vue_vue_type_template_id_7b3dab19_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/Confirmation.vue":
/*!****************************************************!*\
  !*** ./resources/assets/js/views/Confirmation.vue ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Confirmation_vue_vue_type_template_id_296b75f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Confirmation.vue?vue&type=template&id=296b75f0&scoped=true& */ "./resources/assets/js/views/Confirmation.vue?vue&type=template&id=296b75f0&scoped=true&");
/* harmony import */ var _Confirmation_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Confirmation.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/Confirmation.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _Confirmation_vue_vue_type_style_index_0_id_296b75f0_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Confirmation.vue?vue&type=style&index=0&id=296b75f0&scoped=true&lang=css& */ "./resources/assets/js/views/Confirmation.vue?vue&type=style&index=0&id=296b75f0&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _Confirmation_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Confirmation_vue_vue_type_template_id_296b75f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Confirmation_vue_vue_type_template_id_296b75f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "296b75f0",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/Confirmation.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/Confirmation.vue?vue&type=script&lang=js&":
/*!*****************************************************************************!*\
  !*** ./resources/assets/js/views/Confirmation.vue?vue&type=script&lang=js& ***!
  \*****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Confirmation_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Confirmation.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Confirmation.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Confirmation_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/Confirmation.vue?vue&type=style&index=0&id=296b75f0&scoped=true&lang=css&":
/*!*************************************************************************************************************!*\
  !*** ./resources/assets/js/views/Confirmation.vue?vue&type=style&index=0&id=296b75f0&scoped=true&lang=css& ***!
  \*************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Confirmation_vue_vue_type_style_index_0_id_296b75f0_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader!../../../../node_modules/css-loader??ref--6-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./Confirmation.vue?vue&type=style&index=0&id=296b75f0&scoped=true&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Confirmation.vue?vue&type=style&index=0&id=296b75f0&scoped=true&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Confirmation_vue_vue_type_style_index_0_id_296b75f0_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Confirmation_vue_vue_type_style_index_0_id_296b75f0_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Confirmation_vue_vue_type_style_index_0_id_296b75f0_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Confirmation_vue_vue_type_style_index_0_id_296b75f0_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Confirmation_vue_vue_type_style_index_0_id_296b75f0_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/views/Confirmation.vue?vue&type=template&id=296b75f0&scoped=true&":
/*!***********************************************************************************************!*\
  !*** ./resources/assets/js/views/Confirmation.vue?vue&type=template&id=296b75f0&scoped=true& ***!
  \***********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Confirmation_vue_vue_type_template_id_296b75f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./Confirmation.vue?vue&type=template&id=296b75f0&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Confirmation.vue?vue&type=template&id=296b75f0&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Confirmation_vue_vue_type_template_id_296b75f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Confirmation_vue_vue_type_template_id_296b75f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/DetailView.vue":
/*!**************************************************!*\
  !*** ./resources/assets/js/views/DetailView.vue ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _DetailView_vue_vue_type_template_id_3e9a6cae___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DetailView.vue?vue&type=template&id=3e9a6cae& */ "./resources/assets/js/views/DetailView.vue?vue&type=template&id=3e9a6cae&");
/* harmony import */ var _DetailView_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DetailView.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/DetailView.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _DetailView_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DetailView.vue?vue&type=style&index=0&lang=css& */ "./resources/assets/js/views/DetailView.vue?vue&type=style&index=0&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _DetailView_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _DetailView_vue_vue_type_template_id_3e9a6cae___WEBPACK_IMPORTED_MODULE_0__["render"],
  _DetailView_vue_vue_type_template_id_3e9a6cae___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/DetailView.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/DetailView.vue?vue&type=script&lang=js&":
/*!***************************************************************************!*\
  !*** ./resources/assets/js/views/DetailView.vue?vue&type=script&lang=js& ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_DetailView_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./DetailView.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/DetailView.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_DetailView_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/DetailView.vue?vue&type=style&index=0&lang=css&":
/*!***********************************************************************************!*\
  !*** ./resources/assets/js/views/DetailView.vue?vue&type=style&index=0&lang=css& ***!
  \***********************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_DetailView_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader!../../../../node_modules/css-loader??ref--6-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./DetailView.vue?vue&type=style&index=0&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/DetailView.vue?vue&type=style&index=0&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_DetailView_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_DetailView_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_DetailView_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_DetailView_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_DetailView_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/views/DetailView.vue?vue&type=template&id=3e9a6cae&":
/*!*********************************************************************************!*\
  !*** ./resources/assets/js/views/DetailView.vue?vue&type=template&id=3e9a6cae& ***!
  \*********************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_DetailView_vue_vue_type_template_id_3e9a6cae___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./DetailView.vue?vue&type=template&id=3e9a6cae& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/DetailView.vue?vue&type=template&id=3e9a6cae&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_DetailView_vue_vue_type_template_id_3e9a6cae___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_DetailView_vue_vue_type_template_id_3e9a6cae___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/Front-Login.vue":
/*!***************************************************!*\
  !*** ./resources/assets/js/views/Front-Login.vue ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Front_Login_vue_vue_type_template_id_5ec01aa2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Front-Login.vue?vue&type=template&id=5ec01aa2& */ "./resources/assets/js/views/Front-Login.vue?vue&type=template&id=5ec01aa2&");
/* harmony import */ var _Front_Login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Front-Login.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/Front-Login.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Front_Login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Front_Login_vue_vue_type_template_id_5ec01aa2___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Front_Login_vue_vue_type_template_id_5ec01aa2___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/Front-Login.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/Front-Login.vue?vue&type=script&lang=js&":
/*!****************************************************************************!*\
  !*** ./resources/assets/js/views/Front-Login.vue?vue&type=script&lang=js& ***!
  \****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Front_Login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Front-Login.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Front-Login.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Front_Login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/Front-Login.vue?vue&type=template&id=5ec01aa2&":
/*!**********************************************************************************!*\
  !*** ./resources/assets/js/views/Front-Login.vue?vue&type=template&id=5ec01aa2& ***!
  \**********************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Front_Login_vue_vue_type_template_id_5ec01aa2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./Front-Login.vue?vue&type=template&id=5ec01aa2& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Front-Login.vue?vue&type=template&id=5ec01aa2&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Front_Login_vue_vue_type_template_id_5ec01aa2___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Front_Login_vue_vue_type_template_id_5ec01aa2___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/Home.vue":
/*!********************************************!*\
  !*** ./resources/assets/js/views/Home.vue ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Home_vue_vue_type_template_id_6c0a33b2_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Home.vue?vue&type=template&id=6c0a33b2&scoped=true& */ "./resources/assets/js/views/Home.vue?vue&type=template&id=6c0a33b2&scoped=true&");
/* harmony import */ var _Home_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Home.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/Home.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _Home_vue_vue_type_style_index_0_id_6c0a33b2_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Home.vue?vue&type=style&index=0&id=6c0a33b2&scoped=true&lang=css& */ "./resources/assets/js/views/Home.vue?vue&type=style&index=0&id=6c0a33b2&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _Home_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Home_vue_vue_type_template_id_6c0a33b2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Home_vue_vue_type_template_id_6c0a33b2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "6c0a33b2",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/Home.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/Home.vue?vue&type=script&lang=js&":
/*!*********************************************************************!*\
  !*** ./resources/assets/js/views/Home.vue?vue&type=script&lang=js& ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Home.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Home.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/Home.vue?vue&type=style&index=0&id=6c0a33b2&scoped=true&lang=css&":
/*!*****************************************************************************************************!*\
  !*** ./resources/assets/js/views/Home.vue?vue&type=style&index=0&id=6c0a33b2&scoped=true&lang=css& ***!
  \*****************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_style_index_0_id_6c0a33b2_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader!../../../../node_modules/css-loader??ref--6-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./Home.vue?vue&type=style&index=0&id=6c0a33b2&scoped=true&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Home.vue?vue&type=style&index=0&id=6c0a33b2&scoped=true&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_style_index_0_id_6c0a33b2_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_style_index_0_id_6c0a33b2_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_style_index_0_id_6c0a33b2_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_style_index_0_id_6c0a33b2_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_style_index_0_id_6c0a33b2_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/views/Home.vue?vue&type=template&id=6c0a33b2&scoped=true&":
/*!***************************************************************************************!*\
  !*** ./resources/assets/js/views/Home.vue?vue&type=template&id=6c0a33b2&scoped=true& ***!
  \***************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_template_id_6c0a33b2_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./Home.vue?vue&type=template&id=6c0a33b2&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Home.vue?vue&type=template&id=6c0a33b2&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_template_id_6c0a33b2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_template_id_6c0a33b2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/Login.vue":
/*!*********************************************!*\
  !*** ./resources/assets/js/views/Login.vue ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Login_vue_vue_type_template_id_33212926___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Login.vue?vue&type=template&id=33212926& */ "./resources/assets/js/views/Login.vue?vue&type=template&id=33212926&");
/* harmony import */ var _Login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Login.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/Login.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Login_vue_vue_type_template_id_33212926___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Login_vue_vue_type_template_id_33212926___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/Login.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/Login.vue?vue&type=script&lang=js&":
/*!**********************************************************************!*\
  !*** ./resources/assets/js/views/Login.vue?vue&type=script&lang=js& ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Login.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Login.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/Login.vue?vue&type=template&id=33212926&":
/*!****************************************************************************!*\
  !*** ./resources/assets/js/views/Login.vue?vue&type=template&id=33212926& ***!
  \****************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Login_vue_vue_type_template_id_33212926___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./Login.vue?vue&type=template&id=33212926& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Login.vue?vue&type=template&id=33212926&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Login_vue_vue_type_template_id_33212926___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Login_vue_vue_type_template_id_33212926___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/MessagePurchaseHistory.vue":
/*!**************************************************************!*\
  !*** ./resources/assets/js/views/MessagePurchaseHistory.vue ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _MessagePurchaseHistory_vue_vue_type_template_id_7659b4df___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MessagePurchaseHistory.vue?vue&type=template&id=7659b4df& */ "./resources/assets/js/views/MessagePurchaseHistory.vue?vue&type=template&id=7659b4df&");
/* harmony import */ var _MessagePurchaseHistory_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MessagePurchaseHistory.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/MessagePurchaseHistory.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _MessagePurchaseHistory_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _MessagePurchaseHistory_vue_vue_type_template_id_7659b4df___WEBPACK_IMPORTED_MODULE_0__["render"],
  _MessagePurchaseHistory_vue_vue_type_template_id_7659b4df___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/MessagePurchaseHistory.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/MessagePurchaseHistory.vue?vue&type=script&lang=js&":
/*!***************************************************************************************!*\
  !*** ./resources/assets/js/views/MessagePurchaseHistory.vue?vue&type=script&lang=js& ***!
  \***************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessagePurchaseHistory_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./MessagePurchaseHistory.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/MessagePurchaseHistory.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessagePurchaseHistory_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/MessagePurchaseHistory.vue?vue&type=template&id=7659b4df&":
/*!*********************************************************************************************!*\
  !*** ./resources/assets/js/views/MessagePurchaseHistory.vue?vue&type=template&id=7659b4df& ***!
  \*********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_MessagePurchaseHistory_vue_vue_type_template_id_7659b4df___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./MessagePurchaseHistory.vue?vue&type=template&id=7659b4df& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/MessagePurchaseHistory.vue?vue&type=template&id=7659b4df&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_MessagePurchaseHistory_vue_vue_type_template_id_7659b4df___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_MessagePurchaseHistory_vue_vue_type_template_id_7659b4df___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue":
/*!*********************************************************************!*\
  !*** ./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _PayPalCheckout_vue_vue_type_template_id_ae7286a8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PayPalCheckout.vue?vue&type=template&id=ae7286a8& */ "./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue?vue&type=template&id=ae7286a8&");
/* harmony import */ var _PayPalCheckout_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PayPalCheckout.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _PayPalCheckout_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _PayPalCheckout_vue_vue_type_template_id_ae7286a8___WEBPACK_IMPORTED_MODULE_0__["render"],
  _PayPalCheckout_vue_vue_type_template_id_ae7286a8___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue?vue&type=script&lang=js&":
/*!**********************************************************************************************!*\
  !*** ./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue?vue&type=script&lang=js& ***!
  \**********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PayPalCheckout_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib??ref--4-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./PayPalCheckout.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PayPalCheckout_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue?vue&type=template&id=ae7286a8&":
/*!****************************************************************************************************!*\
  !*** ./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue?vue&type=template&id=ae7286a8& ***!
  \****************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_PayPalCheckout_vue_vue_type_template_id_ae7286a8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../node_modules/vue-loader/lib??vue-loader-options!./PayPalCheckout.vue?vue&type=template&id=ae7286a8& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/PayPalCheckout/PayPalCheckout.vue?vue&type=template&id=ae7286a8&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_PayPalCheckout_vue_vue_type_template_id_ae7286a8___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_PayPalCheckout_vue_vue_type_template_id_ae7286a8___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/PayPalCheckout/util/additionalProps.js":
/*!**************************************************************************!*\
  !*** ./resources/assets/js/views/PayPalCheckout/util/additionalProps.js ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _paypalProp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./paypalProp */ "./resources/assets/js/views/PayPalCheckout/util/paypalProp.js");
 // TODO: add item validator

var itemsPayPalProp = new _paypalProp__WEBPACK_IMPORTED_MODULE_0__["default"]({
  name: 'items',
  paypalName: 'item_list',
  type: Array,
  injection: _paypalProp__WEBPACK_IMPORTED_MODULE_0__["propTypes"].TRANSACTION
});
itemsPayPalProp.addChangeTransform(function (items) {
  return {
    items: items
  };
});
var shippingAddressProp = new _paypalProp__WEBPACK_IMPORTED_MODULE_0__["default"]({
  name: 'shippingAddress',
  paypalName: 'shipping_address',
  type: Object,
  injection: _paypalProp__WEBPACK_IMPORTED_MODULE_0__["propTypes"].TRANSACTION
});
var props = [// Button Props
new _paypalProp__WEBPACK_IMPORTED_MODULE_0__["default"]({
  name: 'buttonStyle',
  paypalName: 'style',
  injection: _paypalProp__WEBPACK_IMPORTED_MODULE_0__["propTypes"].BUTTON
}), new _paypalProp__WEBPACK_IMPORTED_MODULE_0__["default"]({
  name: 'braintree',
  injection: _paypalProp__WEBPACK_IMPORTED_MODULE_0__["propTypes"].BUTTON
}), new _paypalProp__WEBPACK_IMPORTED_MODULE_0__["default"]({
  name: 'locale',
  type: String,
  injection: _paypalProp__WEBPACK_IMPORTED_MODULE_0__["propTypes"].BUTTON
}), // Payment Props
new _paypalProp__WEBPACK_IMPORTED_MODULE_0__["default"]({
  name: 'experience',
  injection: _paypalProp__WEBPACK_IMPORTED_MODULE_0__["propTypes"].PAYMENT
}), // Transaction Props
new _paypalProp__WEBPACK_IMPORTED_MODULE_0__["default"]({
  name: 'invoiceNumber',
  paypalName: 'invoice_number',
  type: String,
  injection: _paypalProp__WEBPACK_IMPORTED_MODULE_0__["propTypes"].TRANSACTION
}), new _paypalProp__WEBPACK_IMPORTED_MODULE_0__["default"]({
  name: 'notifyUrl',
  paypalName: 'notify_url',
  type: String,
  validator: function validator(value) {
    return /^https?:\/\//.test(value);
  },
  injection: _paypalProp__WEBPACK_IMPORTED_MODULE_0__["propTypes"].TRANSACTION
}), itemsPayPalProp, shippingAddressProp];

function vmProps() {
  var vm = {};
  props.forEach(function (prop) {
    vm[prop.name] = prop.getVmProp();
  });
  return vm;
}

function getTypedProps(type) {
  return props.filter(function (prop) {
    return prop.injection === type;
  });
}

/* harmony default export */ __webpack_exports__["default"] = ({
  vmProps: vmProps,
  getTypedProps: getTypedProps
});

/***/ }),

/***/ "./resources/assets/js/views/PayPalCheckout/util/defaultProps.js":
/*!***********************************************************************!*\
  !*** ./resources/assets/js/views/PayPalCheckout/util/defaultProps.js ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }

function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

var requiredProps = [['amount'], ['currency', 'USD']];
var optionalProps = [['id'], ['invoiceNumber']];
var specificProps = [{
  name: 'env',
  type: String,
  required: false,
  "default": 'production',
  validator: function validator(value) {
    return ['sandbox', 'production'].indexOf(value) !== -1;
  }
}, {
  name: 'client',
  type: Object,
  required: true
}, {
  name: 'details',
  type: Object,
  required: false,
  "default": function _default() {
    return {};
  }
}, {
  name: 'commit',
  type: Boolean,
  required: false,
  "default": true
}];
/* harmony default export */ __webpack_exports__["default"] = (function () {
  var props = {}; // TODO: make type configurable
  // all required props are type String for now

  requiredProps.forEach(function (_ref) {
    var _ref2 = _slicedToArray(_ref, 2),
        name = _ref2[0],
        def = _ref2[1];

    props[name] = {
      type: String,
      required: true,
      "default": typeof def !== 'undefined' ? def : undefined
    };
  }); // TODO: make type configurable
  // all optional props are type String for now

  optionalProps.forEach(function (_ref3) {
    var _ref4 = _slicedToArray(_ref3, 2),
        name = _ref4[0],
        def = _ref4[1];

    props[name] = {
      type: String,
      required: false,
      "default": typeof def !== 'undefined' ? def : undefined
    };
  }); // all specific props are declared ahead of time

  specificProps.forEach(function (prop) {
    props[prop.name] = {
      type: prop.type,
      required: prop.required
    };

    if (prop["default"] !== undefined) {
      props[prop.name]["default"] = prop["default"];
    }
  });
  return props;
});

/***/ }),

/***/ "./resources/assets/js/views/PayPalCheckout/util/paypalProp.js":
/*!*********************************************************************!*\
  !*** ./resources/assets/js/views/PayPalCheckout/util/paypalProp.js ***!
  \*********************************************************************/
/*! exports provided: default, propTypes, assignToPropertyObject */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "propTypes", function() { return propTypes; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assignToPropertyObject", function() { return assignToPropertyObject; });
function paypalProp(prop) {
  /* eslint-disable no-param-reassign */
  var define = function getDefine(object) {
    return function def(name, param, defaultParam) {
      var isDefined = typeof param !== 'undefined' && param !== null;
      var hasDefault = typeof defaultParam !== 'undefined' && defaultParam !== null;
      if (isDefined) object[name] = param;else if (hasDefault) object[name] = defaultParam;else object[name] = undefined; // TODO: throw err?
    };
  }(this);

  define('name', prop.name);
  define('propName', prop.paypalName, prop.name);
  define('injection', prop.injection, 'button');
  define('type', prop.type, Object);
  define('required', prop.required, false);
  define('validator', prop.validator, undefined);
  this.transforms = [];
}

paypalProp.prototype.getVmProp = function getVmProp() {
  return {
    type: this.type,
    required: this.required,
    validator: this.validator
  };
};

paypalProp.prototype.addChangeTransform = function addChangeTransform(callable) {
  this.transforms.push(callable);
};

paypalProp.prototype.getChange = function getChange(src) {
  var value = src[this.name]; // change the value if necessary...

  if (value !== undefined && value !== null) {
    this.transforms.forEach(function (transform) {
      value = transform(value);
    });
  }

  return {
    name: this.propName,
    value: value
  };
};

/* harmony default export */ __webpack_exports__["default"] = (paypalProp);
var propTypes = {
  BUTTON: 'button',
  PAYMENT: 'payment',
  TRANSACTION: 'transaction'
};
function assignToPropertyObject(props) {
  return function assignTo(vm, type) {
    var obj = {};
    props.getTypedProps(type).forEach(function (item) {
      var _item$getChange = item.getChange(vm),
          name = _item$getChange.name,
          value = _item$getChange.value;

      if (name !== undefined && value !== undefined) {
        obj[name] = value;
      }
    });
    return obj;
  };
}

/***/ }),

/***/ "./resources/assets/js/views/PurchaseHistory.vue":
/*!*******************************************************!*\
  !*** ./resources/assets/js/views/PurchaseHistory.vue ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _PurchaseHistory_vue_vue_type_template_id_e029a260___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PurchaseHistory.vue?vue&type=template&id=e029a260& */ "./resources/assets/js/views/PurchaseHistory.vue?vue&type=template&id=e029a260&");
/* harmony import */ var _PurchaseHistory_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PurchaseHistory.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/PurchaseHistory.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _PurchaseHistory_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _PurchaseHistory_vue_vue_type_template_id_e029a260___WEBPACK_IMPORTED_MODULE_0__["render"],
  _PurchaseHistory_vue_vue_type_template_id_e029a260___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/PurchaseHistory.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/PurchaseHistory.vue?vue&type=script&lang=js&":
/*!********************************************************************************!*\
  !*** ./resources/assets/js/views/PurchaseHistory.vue?vue&type=script&lang=js& ***!
  \********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PurchaseHistory_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./PurchaseHistory.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/PurchaseHistory.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PurchaseHistory_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/PurchaseHistory.vue?vue&type=template&id=e029a260&":
/*!**************************************************************************************!*\
  !*** ./resources/assets/js/views/PurchaseHistory.vue?vue&type=template&id=e029a260& ***!
  \**************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_PurchaseHistory_vue_vue_type_template_id_e029a260___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./PurchaseHistory.vue?vue&type=template&id=e029a260& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/PurchaseHistory.vue?vue&type=template&id=e029a260&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_PurchaseHistory_vue_vue_type_template_id_e029a260___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_PurchaseHistory_vue_vue_type_template_id_e029a260___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/Register.vue":
/*!************************************************!*\
  !*** ./resources/assets/js/views/Register.vue ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Register_vue_vue_type_template_id_8376d414___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Register.vue?vue&type=template&id=8376d414& */ "./resources/assets/js/views/Register.vue?vue&type=template&id=8376d414&");
/* harmony import */ var _Register_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Register.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/Register.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Register_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Register_vue_vue_type_template_id_8376d414___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Register_vue_vue_type_template_id_8376d414___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/Register.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/Register.vue?vue&type=script&lang=js&":
/*!*************************************************************************!*\
  !*** ./resources/assets/js/views/Register.vue?vue&type=script&lang=js& ***!
  \*************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Register_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Register.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Register.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Register_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/Register.vue?vue&type=template&id=8376d414&":
/*!*******************************************************************************!*\
  !*** ./resources/assets/js/views/Register.vue?vue&type=template&id=8376d414& ***!
  \*******************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Register_vue_vue_type_template_id_8376d414___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./Register.vue?vue&type=template&id=8376d414& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/Register.vue?vue&type=template&id=8376d414&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Register_vue_vue_type_template_id_8376d414___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Register_vue_vue_type_template_id_8376d414___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/ResetPasswordForm.vue":
/*!*********************************************************!*\
  !*** ./resources/assets/js/views/ResetPasswordForm.vue ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ResetPasswordForm_vue_vue_type_template_id_761308ab___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ResetPasswordForm.vue?vue&type=template&id=761308ab& */ "./resources/assets/js/views/ResetPasswordForm.vue?vue&type=template&id=761308ab&");
/* harmony import */ var _ResetPasswordForm_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ResetPasswordForm.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/ResetPasswordForm.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _ResetPasswordForm_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _ResetPasswordForm_vue_vue_type_template_id_761308ab___WEBPACK_IMPORTED_MODULE_0__["render"],
  _ResetPasswordForm_vue_vue_type_template_id_761308ab___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/ResetPasswordForm.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/ResetPasswordForm.vue?vue&type=script&lang=js&":
/*!**********************************************************************************!*\
  !*** ./resources/assets/js/views/ResetPasswordForm.vue?vue&type=script&lang=js& ***!
  \**********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ResetPasswordForm_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ResetPasswordForm.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/ResetPasswordForm.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ResetPasswordForm_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/ResetPasswordForm.vue?vue&type=template&id=761308ab&":
/*!****************************************************************************************!*\
  !*** ./resources/assets/js/views/ResetPasswordForm.vue?vue&type=template&id=761308ab& ***!
  \****************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_ResetPasswordForm_vue_vue_type_template_id_761308ab___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./ResetPasswordForm.vue?vue&type=template&id=761308ab& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/ResetPasswordForm.vue?vue&type=template&id=761308ab&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_ResetPasswordForm_vue_vue_type_template_id_761308ab___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_ResetPasswordForm_vue_vue_type_template_id_761308ab___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/SendResetPasswordLink.vue":
/*!*************************************************************!*\
  !*** ./resources/assets/js/views/SendResetPasswordLink.vue ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _SendResetPasswordLink_vue_vue_type_template_id_47bae88e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SendResetPasswordLink.vue?vue&type=template&id=47bae88e& */ "./resources/assets/js/views/SendResetPasswordLink.vue?vue&type=template&id=47bae88e&");
/* harmony import */ var _SendResetPasswordLink_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SendResetPasswordLink.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/SendResetPasswordLink.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _SendResetPasswordLink_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _SendResetPasswordLink_vue_vue_type_template_id_47bae88e___WEBPACK_IMPORTED_MODULE_0__["render"],
  _SendResetPasswordLink_vue_vue_type_template_id_47bae88e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/SendResetPasswordLink.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/SendResetPasswordLink.vue?vue&type=script&lang=js&":
/*!**************************************************************************************!*\
  !*** ./resources/assets/js/views/SendResetPasswordLink.vue?vue&type=script&lang=js& ***!
  \**************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SendResetPasswordLink_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./SendResetPasswordLink.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/SendResetPasswordLink.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SendResetPasswordLink_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/SendResetPasswordLink.vue?vue&type=template&id=47bae88e&":
/*!********************************************************************************************!*\
  !*** ./resources/assets/js/views/SendResetPasswordLink.vue?vue&type=template&id=47bae88e& ***!
  \********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_SendResetPasswordLink_vue_vue_type_template_id_47bae88e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./SendResetPasswordLink.vue?vue&type=template&id=47bae88e& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/SendResetPasswordLink.vue?vue&type=template&id=47bae88e&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_SendResetPasswordLink_vue_vue_type_template_id_47bae88e___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_SendResetPasswordLink_vue_vue_type_template_id_47bae88e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/SingleProduct.vue":
/*!*****************************************************!*\
  !*** ./resources/assets/js/views/SingleProduct.vue ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _SingleProduct_vue_vue_type_template_id_25288544_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SingleProduct.vue?vue&type=template&id=25288544&scoped=true& */ "./resources/assets/js/views/SingleProduct.vue?vue&type=template&id=25288544&scoped=true&");
/* harmony import */ var _SingleProduct_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SingleProduct.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/SingleProduct.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _SingleProduct_vue_vue_type_style_index_0_id_25288544_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SingleProduct.vue?vue&type=style&index=0&id=25288544&scoped=true&lang=css& */ "./resources/assets/js/views/SingleProduct.vue?vue&type=style&index=0&id=25288544&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _SingleProduct_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _SingleProduct_vue_vue_type_template_id_25288544_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _SingleProduct_vue_vue_type_template_id_25288544_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "25288544",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/SingleProduct.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/SingleProduct.vue?vue&type=script&lang=js&":
/*!******************************************************************************!*\
  !*** ./resources/assets/js/views/SingleProduct.vue?vue&type=script&lang=js& ***!
  \******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SingleProduct_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./SingleProduct.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/SingleProduct.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SingleProduct_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/SingleProduct.vue?vue&type=style&index=0&id=25288544&scoped=true&lang=css&":
/*!**************************************************************************************************************!*\
  !*** ./resources/assets/js/views/SingleProduct.vue?vue&type=style&index=0&id=25288544&scoped=true&lang=css& ***!
  \**************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_SingleProduct_vue_vue_type_style_index_0_id_25288544_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader!../../../../node_modules/css-loader??ref--6-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./SingleProduct.vue?vue&type=style&index=0&id=25288544&scoped=true&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/SingleProduct.vue?vue&type=style&index=0&id=25288544&scoped=true&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_SingleProduct_vue_vue_type_style_index_0_id_25288544_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_SingleProduct_vue_vue_type_style_index_0_id_25288544_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_SingleProduct_vue_vue_type_style_index_0_id_25288544_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_SingleProduct_vue_vue_type_style_index_0_id_25288544_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_SingleProduct_vue_vue_type_style_index_0_id_25288544_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/views/SingleProduct.vue?vue&type=template&id=25288544&scoped=true&":
/*!************************************************************************************************!*\
  !*** ./resources/assets/js/views/SingleProduct.vue?vue&type=template&id=25288544&scoped=true& ***!
  \************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_SingleProduct_vue_vue_type_template_id_25288544_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./SingleProduct.vue?vue&type=template&id=25288544&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/SingleProduct.vue?vue&type=template&id=25288544&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_SingleProduct_vue_vue_type_template_id_25288544_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_SingleProduct_vue_vue_type_template_id_25288544_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/TransactionHistory.vue":
/*!**********************************************************!*\
  !*** ./resources/assets/js/views/TransactionHistory.vue ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _TransactionHistory_vue_vue_type_template_id_31289be9___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TransactionHistory.vue?vue&type=template&id=31289be9& */ "./resources/assets/js/views/TransactionHistory.vue?vue&type=template&id=31289be9&");
/* harmony import */ var _TransactionHistory_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TransactionHistory.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/TransactionHistory.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _TransactionHistory_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _TransactionHistory_vue_vue_type_template_id_31289be9___WEBPACK_IMPORTED_MODULE_0__["render"],
  _TransactionHistory_vue_vue_type_template_id_31289be9___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/TransactionHistory.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/TransactionHistory.vue?vue&type=script&lang=js&":
/*!***********************************************************************************!*\
  !*** ./resources/assets/js/views/TransactionHistory.vue?vue&type=script&lang=js& ***!
  \***********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TransactionHistory_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./TransactionHistory.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/TransactionHistory.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TransactionHistory_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/TransactionHistory.vue?vue&type=template&id=31289be9&":
/*!*****************************************************************************************!*\
  !*** ./resources/assets/js/views/TransactionHistory.vue?vue&type=template&id=31289be9& ***!
  \*****************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_TransactionHistory_vue_vue_type_template_id_31289be9___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./TransactionHistory.vue?vue&type=template&id=31289be9& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/TransactionHistory.vue?vue&type=template&id=31289be9&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_TransactionHistory_vue_vue_type_template_id_31289be9___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_TransactionHistory_vue_vue_type_template_id_31289be9___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/js/views/UserBoard.vue":
/*!*************************************************!*\
  !*** ./resources/assets/js/views/UserBoard.vue ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _UserBoard_vue_vue_type_template_id_751a1018_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UserBoard.vue?vue&type=template&id=751a1018&scoped=true& */ "./resources/assets/js/views/UserBoard.vue?vue&type=template&id=751a1018&scoped=true&");
/* harmony import */ var _UserBoard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./UserBoard.vue?vue&type=script&lang=js& */ "./resources/assets/js/views/UserBoard.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _UserBoard_vue_vue_type_style_index_0_id_751a1018_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UserBoard.vue?vue&type=style&index=0&id=751a1018&scoped=true&lang=css& */ "./resources/assets/js/views/UserBoard.vue?vue&type=style&index=0&id=751a1018&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _UserBoard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _UserBoard_vue_vue_type_template_id_751a1018_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _UserBoard_vue_vue_type_template_id_751a1018_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "751a1018",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "resources/assets/js/views/UserBoard.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./resources/assets/js/views/UserBoard.vue?vue&type=script&lang=js&":
/*!**************************************************************************!*\
  !*** ./resources/assets/js/views/UserBoard.vue?vue&type=script&lang=js& ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_UserBoard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./UserBoard.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/UserBoard.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_UserBoard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./resources/assets/js/views/UserBoard.vue?vue&type=style&index=0&id=751a1018&scoped=true&lang=css&":
/*!**********************************************************************************************************!*\
  !*** ./resources/assets/js/views/UserBoard.vue?vue&type=style&index=0&id=751a1018&scoped=true&lang=css& ***!
  \**********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_UserBoard_vue_vue_type_style_index_0_id_751a1018_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader!../../../../node_modules/css-loader??ref--6-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--6-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./UserBoard.vue?vue&type=style&index=0&id=751a1018&scoped=true&lang=css& */ "./node_modules/style-loader/index.js!./node_modules/css-loader/index.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/UserBoard.vue?vue&type=style&index=0&id=751a1018&scoped=true&lang=css&");
/* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_UserBoard_vue_vue_type_style_index_0_id_751a1018_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_UserBoard_vue_vue_type_style_index_0_id_751a1018_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_UserBoard_vue_vue_type_style_index_0_id_751a1018_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_UserBoard_vue_vue_type_style_index_0_id_751a1018_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_index_js_node_modules_css_loader_index_js_ref_6_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_2_node_modules_vue_loader_lib_index_js_vue_loader_options_UserBoard_vue_vue_type_style_index_0_id_751a1018_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./resources/assets/js/views/UserBoard.vue?vue&type=template&id=751a1018&scoped=true&":
/*!********************************************************************************************!*\
  !*** ./resources/assets/js/views/UserBoard.vue?vue&type=template&id=751a1018&scoped=true& ***!
  \********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserBoard_vue_vue_type_template_id_751a1018_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./UserBoard.vue?vue&type=template&id=751a1018&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/assets/js/views/UserBoard.vue?vue&type=template&id=751a1018&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserBoard_vue_vue_type_template_id_751a1018_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserBoard_vue_vue_type_template_id_751a1018_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./resources/assets/sass/app.scss":
/*!****************************************!*\
  !*** ./resources/assets/sass/app.scss ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),

/***/ 0:
/*!***************************************************************************!*\
  !*** multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss ***!
  \***************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(/*! D:\xampp\htdocs\swemanda\resources\assets\js\app.js */"./resources/assets/js/app.js");
module.exports = __webpack_require__(/*! D:\xampp\htdocs\swemanda\resources\assets\sass\app.scss */"./resources/assets/sass/app.scss");


/***/ })

/******/ });