(function webpackUniversalModuleDefinition(root, factory) { if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if (typeof define === 'function' && define.amd) define([], factory); else if (typeof exports === 'object') exports["Typed"] = factory(); else root["Typed"] = factory(); })(this, function () { return /******/ (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] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.loaded = 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; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/([ /* 0 */ /***/ (function (module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); 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 _initializerJs = __webpack_require__(1); var _htmlParserJs = __webpack_require__(3); /** * Welcome to Typed.js! * @param {string} elementId HTML element ID _OR_ HTML element * @param {object} options options object * @returns {object} a new Typed object */ var Typed = (function () { function Typed(elementId, options) { _classCallCheck(this, Typed); // Initialize it up _initializerJs.initializer.load(this, options, elementId); // All systems go! this.begin(); } /** * Toggle start() and stop() of the Typed instance * @public */ _createClass(Typed, [{ key: 'toggle', value: function toggle() { this.pause.status ? this.start() : this.stop(); } /** * Stop typing / backspacing and enable cursor blinking * @public */ }, { key: 'stop', value: function stop() { if (this.typingComplete) return; if (this.pause.status) return; this.toggleBlinking(true); this.pause.status = true; this.options.onStop(this.arrayPos, this); } /** * Start typing / backspacing after being stopped * @public */ }, { key: 'start', value: function start() { if (this.typingComplete) return; if (!this.pause.status) return; this.pause.status = false; if (this.pause.typewrite) { this.typewrite(this.pause.curString, this.pause.curStrPos); } else { this.backspace(this.pause.curString, this.pause.curStrPos); } this.options.onStart(this.arrayPos, this); } /** * Destroy this instance of Typed * @public */ }, { key: 'destroy', value: function destroy() { this.reset(false); this.options.onDestroy(this); } /** * Reset Typed and optionally restarts * @param {boolean} restart * @public */ }, { key: 'reset', value: function reset() { var restart = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0]; clearInterval(this.timeout); this.replaceText(''); if (this.cursor && this.cursor.parentNode) { this.cursor.parentNode.removeChild(this.cursor); this.cursor = null; } this.strPos = 0; this.arrayPos = 0; this.curLoop = 0; if (restart) { this.insertCursor(); this.options.onReset(this); this.begin(); } } /** * Begins the typing animation * @private */ }, { key: 'begin', value: function begin() { var _this = this; this.options.onBegin(this); this.typingComplete = false; this.shuffleStringsIfNeeded(this); this.insertCursor(); if (this.bindInputFocusEvents) this.bindFocusEvents(); this.timeout = setTimeout(function () { // Check if there is some text in the element, if yes start by backspacing the default message if (!_this.currentElContent || _this.currentElContent.length === 0) { _this.typewrite(_this.strings[_this.sequence[_this.arrayPos]], _this.strPos); } else { // Start typing _this.backspace(_this.currentElContent, _this.currentElContent.length); } }, this.startDelay); } /** * Called for each character typed * @param {string} curString the current string in the strings array * @param {number} curStrPos the current position in the curString * @private */ }, { key: 'typewrite', value: function typewrite(curString, curStrPos) { var _this2 = this; if (this.fadeOut && this.el.classList.contains(this.fadeOutClass)) { this.el.classList.remove(this.fadeOutClass); if (this.cursor) this.cursor.classList.remove(this.fadeOutClass); } var humanize = this.humanizer(this.typeSpeed); var numChars = 1; if (this.pause.status === true) { this.setPauseStatus(curString, curStrPos, true); return; } // contain typing function in a timeout humanize'd delay this.timeout = setTimeout(function () { // skip over any HTML chars curStrPos = _htmlParserJs.htmlParser.typeHtmlChars(curString, curStrPos, _this2); var pauseTime = 0; var substr = curString.substr(curStrPos); // check for an escape character before a pause value // format: \^\d+ .. eg: ^1000 .. should be able to print the ^ too using ^^ // single ^ are removed from string if (substr.charAt(0) === '^') { if (/^\^\d+/.test(substr)) { var skip = 1; // skip at least 1 substr = /\d+/.exec(substr)[0]; skip += substr.length; pauseTime = parseInt(substr); _this2.temporaryPause = true; _this2.options.onTypingPaused(_this2.arrayPos, _this2); // strip out the escape character and pause value so they're not printed curString = curString.substring(0, curStrPos) + curString.substring(curStrPos + skip); _this2.toggleBlinking(true); } } // check for skip characters formatted as // "this is a `string to print NOW` ..." if (substr.charAt(0) === '`') { while (curString.substr(curStrPos + numChars).charAt(0) !== '`') { numChars++; if (curStrPos + numChars > curString.length) break; } // strip out the escape characters and append all the string in between var stringBeforeSkip = curString.substring(0, curStrPos); var stringSkipped = curString.substring(stringBeforeSkip.length + 1, curStrPos + numChars); var stringAfterSkip = curString.substring(curStrPos + numChars + 1); curString = stringBeforeSkip + stringSkipped + stringAfterSkip; numChars--; } // timeout for any pause after a character _this2.timeout = setTimeout(function () { // Accounts for blinking while paused _this2.toggleBlinking(false); // We're done with this sentence! if (curStrPos >= curString.length) { _this2.doneTyping(curString, curStrPos); } else { _this2.keepTyping(curString, curStrPos, numChars); } // end of character pause if (_this2.temporaryPause) { _this2.temporaryPause = false; _this2.options.onTypingResumed(_this2.arrayPos, _this2); } }, pauseTime); // humanized value for typing }, humanize); } /** * Continue to the next string & begin typing * @param {string} curString the current string in the strings array * @param {number} curStrPos the current position in the curString * @private */ }, { key: 'keepTyping', value: function keepTyping(curString, curStrPos, numChars) { // call before functions if applicable if (curStrPos === 0) { this.toggleBlinking(false); this.options.preStringTyped(this.arrayPos, this); } // start typing each new char into existing string // curString: arg, this.el.html: original text inside element curStrPos += numChars; var nextString = curString.substr(0, curStrPos); this.replaceText(nextString); // loop the function this.typewrite(curString, curStrPos); } /** * We're done typing the current string * @param {string} curString the current string in the strings array * @param {number} curStrPos the current position in the curString * @private */ }, { key: 'doneTyping', value: function doneTyping(curString, curStrPos) { var _this3 = this; // fires callback function this.options.onStringTyped(this.arrayPos, this); this.toggleBlinking(true); // is this the final string if (this.arrayPos === this.strings.length - 1) { // callback that occurs on the last typed string this.complete(); // quit if we wont loop back if (this.loop === false || this.curLoop === this.loopCount) { return; } } this.timeout = setTimeout(function () { _this3.backspace(curString, curStrPos); }, this.backDelay); } /** * Backspaces 1 character at a time * @param {string} curString the current string in the strings array * @param {number} curStrPos the current position in the curString * @private */ }, { key: 'backspace', value: function backspace(curString, curStrPos) { var _this4 = this; if (this.pause.status === true) { this.setPauseStatus(curString, curStrPos, true); return; } if (this.fadeOut) return this.initFadeOut(); this.toggleBlinking(false); var humanize = this.humanizer(this.backSpeed); this.timeout = setTimeout(function () { curStrPos = _htmlParserJs.htmlParser.backSpaceHtmlChars(curString, curStrPos, _this4); // replace text with base text + typed characters var curStringAtPosition = curString.substr(0, curStrPos); _this4.replaceText(curStringAtPosition); // if smartBack is enabled if (_this4.smartBackspace) { // the remaining part of the current string is equal of the same part of the new string var nextString = _this4.strings[_this4.arrayPos + 1]; if (nextString && curStringAtPosition === nextString.substr(0, curStrPos)) { _this4.stopNum = curStrPos; } else { _this4.stopNum = 0; } } // if the number (id of character in current string) is // less than the stop number, keep going if (curStrPos > _this4.stopNum) { // subtract characters one by one curStrPos--; // loop the function _this4.backspace(curString, curStrPos); } else if (curStrPos <= _this4.stopNum) { // if the stop number has been reached, increase // array position to next string _this4.arrayPos++; // When looping, begin at the beginning after backspace complete if (_this4.arrayPos === _this4.strings.length) { _this4.arrayPos = 0; _this4.options.onLastStringBackspaced(); _this4.shuffleStringsIfNeeded(); _this4.begin(); } else { _this4.typewrite(_this4.strings[_this4.sequence[_this4.arrayPos]], curStrPos); } } // humanized value for typing }, humanize); } /** * Full animation is complete * @private */ }, { key: 'complete', value: function complete() { this.options.onComplete(this); if (this.loop) { this.curLoop++; } else { this.typingComplete = true; } } /** * Has the typing been stopped * @param {string} curString the current string in the strings array * @param {number} curStrPos the current position in the curString * @param {boolean} isTyping * @private */ }, { key: 'setPauseStatus', value: function setPauseStatus(curString, curStrPos, isTyping) { this.pause.typewrite = isTyping; this.pause.curString = curString; this.pause.curStrPos = curStrPos; } /** * Toggle the blinking cursor * @param {boolean} isBlinking * @private */ }, { key: 'toggleBlinking', value: function toggleBlinking(isBlinking) { if (!this.cursor) return; // if in paused state, don't toggle blinking a 2nd time if (this.pause.status) return; if (this.cursorBlinking === isBlinking) return; this.cursorBlinking = isBlinking; if (isBlinking) { this.cursor.classList.add('typed-cursor--blink'); } else { this.cursor.classList.remove('typed-cursor--blink'); } } /** * Speed in MS to type * @param {number} speed * @private */ }, { key: 'humanizer', value: function humanizer(speed) { return Math.round(Math.random() * speed / 2) + speed; } /** * Shuffle the sequence of the strings array * @private */ }, { key: 'shuffleStringsIfNeeded', value: function shuffleStringsIfNeeded() { if (!this.shuffle) return; this.sequence = this.sequence.sort(function () { return Math.random() - 0.5; }); } /** * Adds a CSS class to fade out current string * @private */ }, { key: 'initFadeOut', value: function initFadeOut() { var _this5 = this; this.el.className += ' ' + this.fadeOutClass; if (this.cursor) this.cursor.className += ' ' + this.fadeOutClass; return setTimeout(function () { _this5.arrayPos++; _this5.replaceText(''); // Resets current string if end of loop reached if (_this5.strings.length > _this5.arrayPos) { _this5.typewrite(_this5.strings[_this5.sequence[_this5.arrayPos]], 0); } else { _this5.typewrite(_this5.strings[0], 0); _this5.arrayPos = 0; } }, this.fadeOutDelay); } /** * Replaces current text in the HTML element * depending on element type * @param {string} str * @private */ }, { key: 'replaceText', value: function replaceText(str) { if (this.attr) { this.el.setAttribute(this.attr, str); } else { if (this.isInput) { this.el.value = str; } else if (this.contentType === 'html') { this.el.innerHTML = str; } else { this.el.textContent = str; } } } /** * If using input elements, bind focus in order to * start and stop the animation * @private */ }, { key: 'bindFocusEvents', value: function bindFocusEvents() { var _this6 = this; if (!this.isInput) return; this.el.addEventListener('focus', function (e) { _this6.stop(); }); this.el.addEventListener('blur', function (e) { if (_this6.el.value && _this6.el.value.length !== 0) { return; } _this6.start(); }); } /** * On init, insert the cursor element * @private */ }, { key: 'insertCursor', value: function insertCursor() { if (!this.showCursor) return; if (this.cursor) return; this.cursor = document.createElement('span'); this.cursor.className = 'typed-cursor'; this.cursor.innerHTML = this.cursorChar; this.el.parentNode && this.el.parentNode.insertBefore(this.cursor, this.el.nextSibling); } }]); return Typed; })(); exports['default'] = Typed; module.exports = exports['default']; /***/ }), /* 1 */ /***/ (function (module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _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; }; 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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } var _defaultsJs = __webpack_require__(2); var _defaultsJs2 = _interopRequireDefault(_defaultsJs); /** * Initialize the Typed object */ var Initializer = (function () { function Initializer() { _classCallCheck(this, Initializer); } _createClass(Initializer, [{ key: 'load', /** * Load up defaults & options on the Typed instance * @param {Typed} self instance of Typed * @param {object} options options object * @param {string} elementId HTML element ID _OR_ instance of HTML element * @private */ value: function load(self, options, elementId) { // chosen element to manipulate text if (typeof elementId === 'string') { self.el = document.querySelector(elementId); } else { self.el = elementId; } self.options = _extends({}, _defaultsJs2['default'], options); // attribute to type into self.isInput = self.el.tagName.toLowerCase() === 'input'; self.attr = self.options.attr; self.bindInputFocusEvents = self.options.bindInputFocusEvents; // show cursor self.showCursor = self.isInput ? false : self.options.showCursor; // custom cursor self.cursorChar = self.options.cursorChar; // Is the cursor blinking self.cursorBlinking = true; // text content of element self.elContent = self.attr ? self.el.getAttribute(self.attr) : self.el.textContent; // html or plain text self.contentType = self.options.contentType; // typing speed self.typeSpeed = self.options.typeSpeed; // add a delay before typing starts self.startDelay = self.options.startDelay; // backspacing speed self.backSpeed = self.options.backSpeed; // only backspace what doesn't match the previous string self.smartBackspace = self.options.smartBackspace; // amount of time to wait before backspacing self.backDelay = self.options.backDelay; // Fade out instead of backspace self.fadeOut = self.options.fadeOut; self.fadeOutClass = self.options.fadeOutClass; self.fadeOutDelay = self.options.fadeOutDelay; // variable to check whether typing is currently paused self.isPaused = false; // input strings of text self.strings = self.options.strings.map(function (s) { return s.trim(); }); // div containing strings if (typeof self.options.stringsElement === 'string') { self.stringsElement = document.querySelector(self.options.stringsElement); } else { self.stringsElement = self.options.stringsElement; } if (self.stringsElement) { self.strings = []; self.stringsElement.style.display = 'none'; var strings = Array.prototype.slice.apply(self.stringsElement.children); var stringsLength = strings.length; if (stringsLength) { for (var i = 0; i < stringsLength; i += 1) { var stringEl = strings[i]; self.strings.push(stringEl.innerHTML.trim()); } } } // character number position of current string self.strPos = 0; // current array position self.arrayPos = 0; // index of string to stop backspacing on self.stopNum = 0; // Looping logic self.loop = self.options.loop; self.loopCount = self.options.loopCount; self.curLoop = 0; // shuffle the strings self.shuffle = self.options.shuffle; // the order of strings self.sequence = []; self.pause = { status: false, typewrite: true, curString: '', curStrPos: 0 }; // When the typing is complete (when not looped) self.typingComplete = false; // Set the order in which the strings are typed for (var i in self.strings) { self.sequence[i] = i; } // If there is some text in the element self.currentElContent = this.getCurrentElContent(self); self.autoInsertCss = self.options.autoInsertCss; this.appendAnimationCss(self); } }, { key: 'getCurrentElContent', value: function getCurrentElContent(self) { var elContent = ''; if (self.attr) { elContent = self.el.getAttribute(self.attr); } else if (self.isInput) { elContent = self.el.value; } else if (self.contentType === 'html') { elContent = self.el.innerHTML; } else { elContent = self.el.textContent; } return elContent; } }, { key: 'appendAnimationCss', value: function appendAnimationCss(self) { var cssDataName = 'data-typed-js-css'; if (!self.autoInsertCss) { return; } if (!self.showCursor && !self.fadeOut) { return; } if (document.querySelector('[' + cssDataName + ']')) { return; } var css = document.createElement('style'); css.type = 'text/css'; css.setAttribute(cssDataName, true); var innerCss = ''; if (self.showCursor) { innerCss += '\n .typed-cursor{\n opacity: 1;\n }\n .typed-cursor.typed-cursor--blink{\n animation: typedjsBlink 0.7s infinite;\n -webkit-animation: typedjsBlink 0.7s infinite;\n animation: typedjsBlink 0.7s infinite;\n }\n @keyframes typedjsBlink{\n 50% { opacity: 0.0; }\n }\n @-webkit-keyframes typedjsBlink{\n 0% { opacity: 1; }\n 50% { opacity: 0.0; }\n 100% { opacity: 1; }\n }\n '; } if (self.fadeOut) { innerCss += '\n .typed-fade-out{\n opacity: 0;\n transition: opacity .25s;\n }\n .typed-cursor.typed-cursor--blink.typed-fade-out{\n -webkit-animation: 0;\n animation: 0;\n }\n '; } if (css.length === 0) { return; } css.innerHTML = innerCss; document.body.appendChild(css); } }]); return Initializer; })(); exports['default'] = Initializer; var initializer = new Initializer(); exports.initializer = initializer; /***/ }), /* 2 */ /***/ (function (module, exports) { /** * Defaults & options * @returns {object} Typed defaults & options * @public */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var defaults = { /** * @property {array} strings strings to be typed * @property {string} stringsElement ID of element containing string children */ strings: ['These are the default values...', 'You know what you should do?', 'Use your own!', 'Have a great day!'], stringsElement: null, /** * @property {number} typeSpeed type speed in milliseconds */ typeSpeed: 0, /** * @property {number} startDelay time before typing starts in milliseconds */ startDelay: 0, /** * @property {number} backSpeed backspacing speed in milliseconds */ backSpeed: 0, /** * @property {boolean} smartBackspace only backspace what doesn't match the previous string */ smartBackspace: true, /** * @property {boolean} shuffle shuffle the strings */ shuffle: false, /** * @property {number} backDelay time before backspacing in milliseconds */ backDelay: 700, /** * @property {boolean} fadeOut Fade out instead of backspace * @property {string} fadeOutClass css class for fade animation * @property {boolean} fadeOutDelay Fade out delay in milliseconds */ fadeOut: false, fadeOutClass: 'typed-fade-out', fadeOutDelay: 500, /** * @property {boolean} loop loop strings * @property {number} loopCount amount of loops */ loop: false, loopCount: Infinity, /** * @property {boolean} showCursor show cursor * @property {string} cursorChar character for cursor * @property {boolean} autoInsertCss insert CSS for cursor and fadeOut into HTML */ showCursor: true, cursorChar: '|', autoInsertCss: true, /** * @property {string} attr attribute for typing * Ex: input placeholder, value, or just HTML text */ attr: null, /** * @property {boolean} bindInputFocusEvents bind to focus and blur if el is text input */ bindInputFocusEvents: false, /** * @property {string} contentType 'html' or 'null' for plaintext */ contentType: 'html', /** * Before it begins typing * @param {Typed} self */ onBegin: function onBegin(self) { }, /** * All typing is complete * @param {Typed} self */ onComplete: function onComplete(self) { }, /** * Before each string is typed * @param {number} arrayPos * @param {Typed} self */ preStringTyped: function preStringTyped(arrayPos, self) { }, /** * After each string is typed * @param {number} arrayPos * @param {Typed} self */ onStringTyped: function onStringTyped(arrayPos, self) { }, /** * During looping, after last string is typed * @param {Typed} self */ onLastStringBackspaced: function onLastStringBackspaced(self) { }, /** * Typing has been stopped * @param {number} arrayPos * @param {Typed} self */ onTypingPaused: function onTypingPaused(arrayPos, self) { }, /** * Typing has been started after being stopped * @param {number} arrayPos * @param {Typed} self */ onTypingResumed: function onTypingResumed(arrayPos, self) { }, /** * After reset * @param {Typed} self */ onReset: function onReset(self) { }, /** * After stop * @param {number} arrayPos * @param {Typed} self */ onStop: function onStop(arrayPos, self) { }, /** * After start * @param {number} arrayPos * @param {Typed} self */ onStart: function onStart(arrayPos, self) { }, /** * After destroy * @param {Typed} self */ onDestroy: function onDestroy(self) { } }; exports['default'] = defaults; module.exports = exports['default']; /***/ }), /* 3 */ /***/ (function (module, exports) { /** * TODO: These methods can probably be combined somehow * Parse HTML tags & HTML Characters */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); 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 HTMLParser = (function () { function HTMLParser() { _classCallCheck(this, HTMLParser); } _createClass(HTMLParser, [{ key: 'typeHtmlChars', /** * Type HTML tags & HTML Characters * @param {string} curString Current string * @param {number} curStrPos Position in current string * @param {Typed} self instance of Typed * @returns {number} a new string position * @private */ value: function typeHtmlChars(curString, curStrPos, self) { if (self.contentType !== 'html') return curStrPos; var curChar = curString.substr(curStrPos).charAt(0); if (curChar === '<' || curChar === '&') { var endTag = ''; if (curChar === '<') { endTag = '>'; } else { endTag = ';'; } while (curString.substr(curStrPos + 1).charAt(0) !== endTag) { curStrPos++; if (curStrPos + 1 > curString.length) { break; } } curStrPos++; } return curStrPos; } /** * Backspace HTML tags and HTML Characters * @param {string} curString Current string * @param {number} curStrPos Position in current string * @param {Typed} self instance of Typed * @returns {number} a new string position * @private */ }, { key: 'backSpaceHtmlChars', value: function backSpaceHtmlChars(curString, curStrPos, self) { if (self.contentType !== 'html') return curStrPos; var curChar = curString.substr(curStrPos).charAt(0); if (curChar === '>' || curChar === ';') { var endTag = ''; if (curChar === '>') { endTag = '<'; } else { endTag = '&'; } while (curString.substr(curStrPos - 1).charAt(0) !== endTag) { curStrPos--; if (curStrPos < 0) { break; } } curStrPos--; } return curStrPos; } }]); return HTMLParser; })(); exports['default'] = HTMLParser; var htmlParser = new HTMLParser(); exports.htmlParser = htmlParser; /***/ }) /******/]) }); ;/*! For license information please see freemius-pricing.js.LICENSE.txt */ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Freemius=t():e.Freemius=t()}(self,(function(){return(()=>{var e={487:e=>{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n{var t,n;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n={rotl:function(e,t){return e<>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&n.rotl(e,8)|4278255360&n.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,a=0;n>>5]|=e[n]<<24-a%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n>>6*(3-i)&63)):n.push("=");return n.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var n=[],a=0,r=0;a>>6-2*r);return n}},e.exports=n},477:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(81),r=n.n(a),i=n(645),o=n.n(i)()(r());o.push([e.id,':root{--fs-ds-blue-10: #f0f6fc;--fs-ds-blue-50: #c5d9ed;--fs-ds-blue-100: #9ec2e6;--fs-ds-blue-200: #72aee6;--fs-ds-blue-300: #4f94d4;--fs-ds-blue-400: #3582c4;--fs-ds-blue-500: #2271b1;--fs-ds-blue-600: #135e96;--fs-ds-blue-700: #0a4b78;--fs-ds-blue-800: #043959;--fs-ds-blue-900: #01263a;--fs-ds-neutral-10: #f0f0f1;--fs-ds-neutral-50: #dcdcde;--fs-ds-neutral-100: #c3c4c7;--fs-ds-neutral-200: #a7aaad;--fs-ds-neutral-300: #8c8f94;--fs-ds-neutral-400: #787c82;--fs-ds-neutral-500: #646970;--fs-ds-neutral-600: #50575e;--fs-ds-neutral-700: #3c434a;--fs-ds-neutral-800: #2c3338;--fs-ds-neutral-900: #1d2327;--fs-ds-neutral-900-fade-60: rgba(29, 35, 39, .6);--fs-ds-neutral-900-fade-92: rgba(29, 35, 39, .08);--fs-ds-green-10: #b8e6bf;--fs-ds-green-100: #68de7c;--fs-ds-green-200: #1ed14b;--fs-ds-green-300: #00ba37;--fs-ds-green-400: #00a32a;--fs-ds-green-500: #008a20;--fs-ds-green-600: #007017;--fs-ds-green-700: #005c12;--fs-ds-green-800: #00450c;--fs-ds-green-900: #003008;--fs-ds-red-10: #facfd2;--fs-ds-red-100: #ffabaf;--fs-ds-red-200: #ff8085;--fs-ds-red-300: #f86368;--fs-ds-red-400: #e65054;--fs-ds-red-500: #d63638;--fs-ds-red-600: #b32d2e;--fs-ds-red-700: #8a2424;--fs-ds-red-800: #691c1c;--fs-ds-red-900: #451313;--fs-ds-yellow-10: #fcf9e8;--fs-ds-yellow-100: #f2d675;--fs-ds-yellow-200: #f0c33c;--fs-ds-yellow-300: #dba617;--fs-ds-yellow-400: #bd8600;--fs-ds-yellow-500: #996800;--fs-ds-yellow-600: #755100;--fs-ds-yellow-700: #614200;--fs-ds-yellow-800: #4a3200;--fs-ds-yellow-900: #362400;--fs-ds-white-10: #ffffff}#fs_pricing_app,#fs_pricing_wrapper{--fs-ds-theme-primary-accent-color: var(--fs-ds-blue-500);--fs-ds-theme-primary-accent-color-hover: var(--fs-ds-blue-600);--fs-ds-theme-primary-green-color: var(--fs-ds-green-500);--fs-ds-theme-primary-red-color: var(--fs-ds-red-500);--fs-ds-theme-primary-yellow-color: var(--fs-ds-yellow-500);--fs-ds-theme-error-color: var(--fs-ds-theme-primary-red-color);--fs-ds-theme-success-color: var(--fs-ds-theme-primary-green-color);--fs-ds-theme-warn-color: var(--fs-ds-theme-primary-yellow-color);--fs-ds-theme-background-color: var(--fs-ds-white-10);--fs-ds-theme-background-shade: var(--fs-ds-neutral-10);--fs-ds-theme-background-accented: var(--fs-ds-neutral-50);--fs-ds-theme-background-hover: var(--fs-ds-neutral-200);--fs-ds-theme-background-overlay: var(--fs-ds-neutral-900-fade-60);--fs-ds-theme-background-dark: var(--fs-ds-neutral-800);--fs-ds-theme-background-darkest: var(--fs-ds-neutral-900);--fs-ds-theme-text-color: var(--fs-ds-neutral-900);--fs-ds-theme-heading-text-color: var(--fs-ds-neutral-800);--fs-ds-theme-muted-text-color: var(--fs-ds-neutral-600);--fs-ds-theme-dark-background-text-color: var(--fs-ds-white-10);--fs-ds-theme-dark-background-muted-text-color: var(--fs-ds-neutral-300);--fs-ds-theme-divider-color: var(--fs-ds-theme-background-accented);--fs-ds-theme-border-color: var(--fs-ds-neutral-100);--fs-ds-theme-button-background-color: var(--fs-ds-neutral-50);--fs-ds-theme-button-background-hover-color: var(--fs-ds-neutral-200);--fs-ds-theme-button-text-color: var(--fs-ds-theme-heading-text-color);--fs-ds-theme-button-border-color: var(--fs-ds-neutral-300);--fs-ds-theme-button-border-hover-color: var(--fs-ds-neutral-600);--fs-ds-theme-button-border-focus-color: var(--fs-ds-blue-400);--fs-ds-theme-button-primary-background-color: var(--fs-ds-theme-primary-accent-color);--fs-ds-theme-button-primary-background-hover-color: var(--fs-ds-theme-primary-accent-color-hover);--fs-ds-theme-button-primary-text-color: var(--fs-ds-white-10);--fs-ds-theme-button-primary-border-color: var(--fs-ds-blue-800);--fs-ds-theme-button-primary-border-hover-color: var(--fs-ds-blue-900);--fs-ds-theme-button-primary-border-focus-color: var(--fs-ds-blue-100);--fs-ds-theme-button-disabled-border-color: var(--fs-ds-neutral-100);--fs-ds-theme-button-disabled-background-color: var(--fs-ds-neutral-50);--fs-ds-theme-button-disabled-text-color: var(--fs-ds-neutral-300);--fs-ds-theme-notice-warn-background: var(--fs-ds-yellow-10);--fs-ds-theme-notice-warn-color: var(--fs-ds-yellow-900);--fs-ds-theme-notice-warn-border: var(--fs-ds-theme-warn-color);--fs-ds-theme-notice-info-background: var(--fs-ds-theme-background-shade);--fs-ds-theme-notice-info-color: var(--fs-ds-theme-primary-accent-color-hover);--fs-ds-theme-notice-info-border: var(--fs-ds-theme-primary-accent-color);--fs-ds-theme-package-popular-background: var(--fs-ds-blue-200);--fs-ds-theme-testimonial-star-color: var(--fs-ds-yellow-300)}#fs_pricing.fs-full-size-wrapper{margin-top:0}#root,#fs_pricing_app{background:var(--fs-ds-theme-background-shade);color:var(--fs-ds-theme-text-color);height:auto;line-height:normal;font-size:13px;margin:0}#root h1,#root h2,#root h3,#root h4,#root ul,#root blockquote,#fs_pricing_app h1,#fs_pricing_app h2,#fs_pricing_app h3,#fs_pricing_app h4,#fs_pricing_app ul,#fs_pricing_app blockquote{margin:0;padding:0;text-align:center;color:var(--fs-ds-theme-heading-text-color)}#root h1,#fs_pricing_app h1{font-size:2.5em}#root h2,#fs_pricing_app h2{font-size:1.5em}#root h3,#fs_pricing_app h3{font-size:1.2em}#root ul,#fs_pricing_app ul{list-style-type:none}#root p,#fs_pricing_app p{font-size:.9em}#root p,#root blockquote,#fs_pricing_app p,#fs_pricing_app blockquote{color:var(--fs-ds-theme-text-color)}#root strong,#fs_pricing_app strong{font-weight:700}#root li,#root dd,#fs_pricing_app li,#fs_pricing_app dd{margin:0}#root .fs-app-header .fs-page-title,#fs_pricing_app .fs-app-header .fs-page-title{margin:0 0 15px;text-align:left;display:flex;flex-flow:row wrap;gap:10px;align-items:center;padding:20px 15px 10px}#root .fs-app-header .fs-page-title h1,#fs_pricing_app .fs-app-header .fs-page-title h1{font-size:18px;margin:0}#root .fs-app-header .fs-page-title h3,#fs_pricing_app .fs-app-header .fs-page-title h3{margin:0;font-size:14px;padding:4px 8px;font-weight:400;border-radius:4px;background-color:var(--fs-ds-theme-background-accented);color:var(--fs-ds-theme-muted-text-color)}#root .fs-app-header .fs-plugin-title-and-logo,#fs_pricing_app .fs-app-header .fs-plugin-title-and-logo{margin:0 15px;background:var(--fs-ds-theme-background-color);padding:12px 0;border:1px solid var(--fs-ds-theme-divider-color);border-radius:4px;text-align:center}#root .fs-app-header .fs-plugin-title-and-logo .fs-plugin-logo,#root .fs-app-header .fs-plugin-title-and-logo h1,#fs_pricing_app .fs-app-header .fs-plugin-title-and-logo .fs-plugin-logo,#fs_pricing_app .fs-app-header .fs-plugin-title-and-logo h1{display:inline-block;vertical-align:middle;margin:0 10px}#root .fs-app-header .fs-plugin-title-and-logo .fs-plugin-logo,#fs_pricing_app .fs-app-header .fs-plugin-title-and-logo .fs-plugin-logo{width:48px;height:48px;border-radius:4px}@media screen and (min-width: 601px){#root .fs-app-header .fs-plugin-title-and-logo .fs-plugin-logo,#fs_pricing_app .fs-app-header .fs-plugin-title-and-logo .fs-plugin-logo{width:64px;height:64px}}#root .fs-trial-message,#fs_pricing_app .fs-trial-message{padding:20px;background:var(--fs-ds-theme-notice-warn-background);color:var(--fs-ds-theme-notice-warn-color);font-weight:700;text-align:center;border-top:1px solid var(--fs-ds-theme-notice-warn-border);border-bottom:1px solid var(--fs-ds-theme-notice-warn-border);font-size:1.2em;box-sizing:border-box;margin:0 0 5px}#root .fs-app-main,#fs_pricing_app .fs-app-main{text-align:center}#root .fs-app-main .fs-section,#fs_pricing_app .fs-app-main .fs-section{margin:auto;display:block}#root .fs-app-main .fs-section .fs-section-header,#fs_pricing_app .fs-app-main .fs-section .fs-section-header{font-weight:700}#root .fs-app-main>.fs-section,#fs_pricing_app .fs-app-main>.fs-section{padding:20px;margin:4em auto 0}#root .fs-app-main>.fs-section:nth-child(even),#fs_pricing_app .fs-app-main>.fs-section:nth-child(even){background:var(--fs-ds-theme-background-color)}#root .fs-app-main>.fs-section>header,#fs_pricing_app .fs-app-main>.fs-section>header{margin:0 0 3em}#root .fs-app-main>.fs-section>header h2,#fs_pricing_app .fs-app-main>.fs-section>header h2{margin:0;font-size:2.5em}#root .fs-app-main .fs-section--plans-and-pricing,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing{padding:20px;margin-top:0}#root .fs-app-main .fs-section--plans-and-pricing>.fs-section,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing>.fs-section{margin:1.5em auto 0}#root .fs-app-main .fs-section--plans-and-pricing>.fs-section:first-child,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing>.fs-section:first-child{margin-top:0}#root .fs-app-main .fs-section--plans-and-pricing .fs-annual-discount,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-annual-discount{font-weight:700;font-size:small}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--trial-header,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--trial-header{text-align:center;background:var(--fs-ds-theme-background-color);padding:20px;border-radius:5px;box-sizing:border-box;max-width:945px}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--trial-header h2,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--trial-header h2{margin-bottom:10px}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--trial-header h4,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--trial-header h4{font-weight:400}#root .fs-app-main .fs-section--plans-and-pricing .fs-currencies,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-currencies{border-color:var(--fs-ds-theme-button-border-color)}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--billing-cycles,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--billing-cycles{display:inline-block;vertical-align:middle;padding:0 10px;width:auto}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--billing-cycles .fs-billing-cycles,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--billing-cycles .fs-billing-cycles{overflow:hidden}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--billing-cycles .fs-billing-cycles li,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--billing-cycles .fs-billing-cycles li{border:1px solid var(--fs-ds-theme-border-color);border-right-width:0;display:inline-block;font-weight:700;margin:0;padding:10px;cursor:pointer}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--billing-cycles .fs-billing-cycles li:first-child,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--billing-cycles .fs-billing-cycles li:first-child{border-radius:20px 0 0 20px}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--billing-cycles .fs-billing-cycles li:last-child,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--billing-cycles .fs-billing-cycles li:last-child{border-radius:0 20px 20px 0;border-right-width:1px}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--billing-cycles .fs-billing-cycles li.fs-selected-billing-cycle,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--billing-cycles .fs-billing-cycles li.fs-selected-billing-cycle{background:var(--fs-ds-theme-background-color);color:var(--fs-ds-theme-primary-accent-color-hover)}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--custom-implementation,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--custom-implementation{padding:15px;background:var(--fs-ds-theme-background-color);border:1px solid var(--fs-ds-theme-divider-color);border-radius:4px;box-sizing:border-box;max-width:945px;margin:0 auto}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--custom-implementation h2,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--custom-implementation h2{margin-bottom:10px;font-weight:700}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--custom-implementation p,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--custom-implementation p{font-size:small;margin:0}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--money-back-guarantee,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--money-back-guarantee{max-width:857px;margin:30px auto;position:relative}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--money-back-guarantee .fs-money-back-guarantee-title,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--money-back-guarantee .fs-money-back-guarantee-title{color:var(--fs-ds-theme-heading-text-color);font-weight:700;margin-bottom:15px}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--money-back-guarantee .fs-money-back-guarantee-message,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--money-back-guarantee .fs-money-back-guarantee-message{font-size:small;line-height:20px;margin-bottom:15px;padding:0 15px}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--money-back-guarantee img,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--money-back-guarantee img{position:absolute;width:90px;top:50%;right:0;margin-top:-45px}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--badges .fs-badge,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--badges .fs-badge{display:inline-block;vertical-align:middle;position:relative;box-shadow:none;background:transparent}#root .fs-app-main .fs-section--plans-and-pricing .fs-section--badges .fs-badge+.fs-badge,#fs_pricing_app .fs-app-main .fs-section--plans-and-pricing .fs-section--badges .fs-badge+.fs-badge{margin-left:20px;margin-top:13px}#root .fs-app-main .fs-section--testimonials,#fs_pricing_app .fs-app-main .fs-section--testimonials{border-top:1px solid var(--fs-ds-theme-border-color);border-bottom:1px solid var(--fs-ds-theme-border-color);padding:3em 4em 4em}#root .fs-app-main .fs-section--testimonials .fs-section-header,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-section-header{margin-left:-30px;margin-right:-30px}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav{margin:auto;display:block;width:auto;position:relative}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-nav.fs-nav-prev,#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-nav.fs-nav-next,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-nav.fs-nav-prev,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-nav.fs-nav-next{top:50%;border:1px solid var(--fs-ds-theme-border-color);border-radius:14px;cursor:pointer;margin-top:11px;position:absolute}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-nav.fs-nav-prev .fs-icon,#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-nav.fs-nav-next .fs-icon,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-nav.fs-nav-prev .fs-icon,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-nav.fs-nav-next .fs-icon{display:inline-block;height:1em;width:1em;line-height:1em;color:var(--fs-ds-theme-muted-text-color);padding:5px}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-nav.fs-nav-prev,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-nav.fs-nav-prev{margin-left:-30px}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-nav.fs-nav-next,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-nav.fs-nav-next{right:-30px}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials-track,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials-track{margin:auto;overflow:hidden;position:relative;display:block;padding-top:45px}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials{width:10000px;display:block;position:relative;transition:left .5s ease,right .5s ease}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial{float:left;font-size:small;position:relative;width:340px;box-sizing:border-box;margin:0}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial>section,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial>section{box-sizing:border-box}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-rating,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-rating{color:var(--fs-ds-theme-testimonial-star-color)}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-header,#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial>section,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-header,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial>section{background:var(--fs-ds-theme-background-color);padding:10px;margin:0 2em;border:1px solid var(--fs-ds-theme-divider-color)}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial>section,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial>section{border-radius:0 0 8px 8px;border-top:0 none}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-header,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-header{border-bottom:0 none;border-radius:8px 8px 0 0}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-header .fs-testimonial-logo,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-header .fs-testimonial-logo{border:1px solid var(--fs-ds-theme-divider-color);border-radius:44px;padding:5px;background:var(--fs-ds-theme-background-color);width:76px;height:76px;position:relative;margin-top:-54px;left:50%;margin-left:-44px}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-header .fs-testimonial-logo object,#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-header .fs-testimonial-logo img,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-header .fs-testimonial-logo object,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-header .fs-testimonial-logo img{max-width:100%;border-radius:40px}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-header h4,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-header h4{margin:15px 0 6px}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-icon-quote,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-icon-quote{color:var(--fs-ds-theme-muted-text-color)}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-message,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-message{line-height:18px}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-author,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-author{margin-top:30px;margin-bottom:10px}#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-author .fs-testimonial-author-name,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial .fs-testimonial-author .fs-testimonial-author-name{font-weight:700;margin-bottom:2px;color:var(--fs-ds-theme-text-color)}#root .fs-app-main .fs-section--testimonials .fs-nav-pagination,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-nav-pagination{margin:4em 0 0;position:relative}#root .fs-app-main .fs-section--testimonials .fs-nav-pagination li,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-nav-pagination li{position:relative;display:inline-block;margin:0 8px}#root .fs-app-main .fs-section--testimonials .fs-nav-pagination li button.fs-round-button,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-nav-pagination li button.fs-round-button{cursor:pointer;border:1px solid var(--fs-ds-theme-border-color);vertical-align:middle;display:inline-block;line-height:0;width:8px;height:8px;padding:0;color:transparent;outline:none;border-radius:4px;overflow:hidden}#root .fs-app-main .fs-section--testimonials .fs-nav-pagination li button.fs-round-button span,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-nav-pagination li button.fs-round-button span{display:inline-block;width:100%;height:100%;background:var(--fs-ds-theme-background-shade)}#root .fs-app-main .fs-section--testimonials .fs-nav-pagination li.selected button,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-nav-pagination li.selected button{border:0 none}#root .fs-app-main .fs-section--testimonials .fs-nav-pagination li.selected button.fs-round-button span,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-nav-pagination li.selected button.fs-round-button span{background:var(--fs-ds-theme-background-accented)}#root .fs-app-main .fs-section--faq,#fs_pricing_app .fs-app-main .fs-section--faq{background:var(--fs-ds-theme-background-shade)}#root .fs-app-main .fs-section--faq .fs-section--faq-items,#fs_pricing_app .fs-app-main .fs-section--faq .fs-section--faq-items{max-width:945px;margin:0 auto;box-sizing:border-box;text-align:left;columns:2;column-gap:20px}@media only screen and (max-width: 600px){#root .fs-app-main .fs-section--faq .fs-section--faq-items,#fs_pricing_app .fs-app-main .fs-section--faq .fs-section--faq-items{columns:1}}#root .fs-app-main .fs-section--faq .fs-section--faq-items .fs-section--faq-item,#fs_pricing_app .fs-app-main .fs-section--faq .fs-section--faq-items .fs-section--faq-item{width:100%;display:inline-block;vertical-align:top;margin:0 0 20px;overflow:hidden}#root .fs-app-main .fs-section--faq .fs-section--faq-items .fs-section--faq-item h3,#root .fs-app-main .fs-section--faq .fs-section--faq-items .fs-section--faq-item p,#fs_pricing_app .fs-app-main .fs-section--faq .fs-section--faq-items .fs-section--faq-item h3,#fs_pricing_app .fs-app-main .fs-section--faq .fs-section--faq-items .fs-section--faq-item p{margin:0;text-align:left}#root .fs-app-main .fs-section--faq .fs-section--faq-items .fs-section--faq-item h3,#fs_pricing_app .fs-app-main .fs-section--faq .fs-section--faq-items .fs-section--faq-item h3{background:var(--fs-ds-theme-background-dark);color:var(--fs-ds-theme-dark-background-text-color);padding:15px;font-weight:700;border:1px solid var(--fs-ds-theme-background-darkest);border-bottom:0 none;border-radius:4px 4px 0 0}#root .fs-app-main .fs-section--faq .fs-section--faq-items .fs-section--faq-item p,#fs_pricing_app .fs-app-main .fs-section--faq .fs-section--faq-items .fs-section--faq-item p{background:var(--fs-ds-theme-background-color);font-size:small;padding:15px;line-height:20px;border:1px solid var(--fs-ds-theme-border-color);border-top:0 none;border-radius:0 0 4px 4px}#root .fs-button,#fs_pricing_app .fs-button{background:var(--fs-ds-theme-button-background-color);color:var(--fs-ds-theme-button-text-color);padding:12px 10px;display:inline-block;text-transform:uppercase;font-weight:700;font-size:18px;width:100%;border-radius:4px;border:0 none;cursor:pointer;transition:background .2s ease-out,border-bottom-color .2s ease-out}#root .fs-button:focus:not(:disabled),#fs_pricing_app .fs-button:focus:not(:disabled){box-shadow:0 0 0 1px var(--fs-ds-theme-button-border-focus-color)}#root .fs-button:hover:not(:disabled),#root .fs-button:focus:not(:disabled),#root .fs-button:active:not(:disabled),#fs_pricing_app .fs-button:hover:not(:disabled),#fs_pricing_app .fs-button:focus:not(:disabled),#fs_pricing_app .fs-button:active:not(:disabled){will-change:background,border;background:var(--fs-ds-theme-button-background-hover-color)}#root .fs-button.fs-button--outline,#fs_pricing_app .fs-button.fs-button--outline{padding-top:11px;padding-bottom:11px;background:var(--fs-ds-theme-background-color);border:1px solid var(--fs-ds-theme-button-border-color)}#root .fs-button.fs-button--outline:focus:not(:disabled),#fs_pricing_app .fs-button.fs-button--outline:focus:not(:disabled){background:var(--fs-ds-theme-background-shade);border-color:var(--fs-ds-theme-button-border-focus-color)}#root .fs-button.fs-button--outline:hover:not(:disabled),#root .fs-button.fs-button--outline:active:not(:disabled),#fs_pricing_app .fs-button.fs-button--outline:hover:not(:disabled),#fs_pricing_app .fs-button.fs-button--outline:active:not(:disabled){background:var(--fs-ds-theme-background-shade);border-color:var(--fs-ds-theme-button-border-hover-color)}#root .fs-button.fs-button--type-primary,#fs_pricing_app .fs-button.fs-button--type-primary{background-color:var(--fs-ds-theme-button-primary-background-color);color:var(--fs-ds-theme-button-primary-text-color);border-color:var(--fs-ds-theme-button-primary-border-color)}#root .fs-button.fs-button--type-primary:focus:not(:disabled),#root .fs-button.fs-button--type-primary:hover:not(:disabled),#root .fs-button.fs-button--type-primary:active:not(:disabled),#fs_pricing_app .fs-button.fs-button--type-primary:focus:not(:disabled),#fs_pricing_app .fs-button.fs-button--type-primary:hover:not(:disabled),#fs_pricing_app .fs-button.fs-button--type-primary:active:not(:disabled){background-color:var(--fs-ds-theme-button-primary-background-hover-color);border-color:var(--fs-ds-theme-button-primary-border-hover-color)}#root .fs-button.fs-button--type-primary.fs-button--outline,#fs_pricing_app .fs-button.fs-button--type-primary.fs-button--outline{background-color:var(--fs-ds-theme-background-color);color:var(--fs-ds-theme-primary-accent-color);border:1px solid var(--fs-ds-theme-button-primary-border-color)}#root .fs-button.fs-button--type-primary.fs-button--outline:focus:not(:disabled),#root .fs-button.fs-button--type-primary.fs-button--outline:hover:not(:disabled),#root .fs-button.fs-button--type-primary.fs-button--outline:active:not(:disabled),#fs_pricing_app .fs-button.fs-button--type-primary.fs-button--outline:focus:not(:disabled),#fs_pricing_app .fs-button.fs-button--type-primary.fs-button--outline:hover:not(:disabled),#fs_pricing_app .fs-button.fs-button--type-primary.fs-button--outline:active:not(:disabled){background-color:var(--fs-ds-theme-background-shade);color:var(--fs-ds-theme-button-primary-background-hover-color);border-color:var(--fs-ds-theme-primary-accent-color-hover)}#root .fs-button:disabled,#fs_pricing_app .fs-button:disabled{cursor:not-allowed;background-color:var(--fs-ds-theme-button-disabled-background-color);color:var(--fs-ds-theme-button-disabled-text-color);border-color:var(--fs-ds-theme-button-disabled-border-color)}#root .fs-button.fs-button--size-small,#fs_pricing_app .fs-button.fs-button--size-small{font-size:14px;width:auto}#root .fs-placeholder:before,#fs_pricing_app .fs-placeholder:before{content:"";display:inline-block}@media only screen and (max-width: 768px){#root .fs-app-main .fs-section--testimonials .fs-nav-pagination,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-nav-pagination{display:none!important}#root .fs-app-main .fs-section>header h2,#fs_pricing_app .fs-app-main .fs-section>header h2{font-size:1.5em}}@media only screen and (max-width: 455px){#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial{width:auto}#root .fs-app-main .fs-section--billing-cycles .fs-billing-cycles li.fs-period--annual span,#fs_pricing_app .fs-app-main .fs-section--billing-cycles .fs-billing-cycles li.fs-period--annual span{display:none}}@media only screen and (max-width: 375px){#root .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial,#fs_pricing_app .fs-app-main .fs-section--testimonials .fs-testimonials-nav .fs-testimonials .fs-testimonial{width:auto}}\n',""]);const s=o},333:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(81),r=n.n(a),i=n(645),o=n.n(i)()(r());o.push([e.id,"#fs_pricing_app .fs-modal,#fs_pricing_wrapper .fs-modal,#fs_pricing_wrapper #fs_pricing_app .fs-modal{position:fixed;inset:0;z-index:1000;zoom:1;text-align:left;display:block!important}#fs_pricing_app .fs-modal .fs-modal-content-container,#fs_pricing_wrapper .fs-modal .fs-modal-content-container,#fs_pricing_wrapper #fs_pricing_app .fs-modal .fs-modal-content-container{display:block;position:absolute;left:50%;background:var(--fs-ds-theme-background-color);box-shadow:0 0 8px 2px #0000004d}#fs_pricing_app .fs-modal .fs-modal-content-container .fs-modal-header,#fs_pricing_wrapper .fs-modal .fs-modal-content-container .fs-modal-header,#fs_pricing_wrapper #fs_pricing_app .fs-modal .fs-modal-content-container .fs-modal-header{background:var(--fs-ds-theme-primary-accent-color);padding:15px}#fs_pricing_app .fs-modal .fs-modal-content-container .fs-modal-header h3,#fs_pricing_app .fs-modal .fs-modal-content-container .fs-modal-header .fs-modal-close,#fs_pricing_wrapper .fs-modal .fs-modal-content-container .fs-modal-header h3,#fs_pricing_wrapper .fs-modal .fs-modal-content-container .fs-modal-header .fs-modal-close,#fs_pricing_wrapper #fs_pricing_app .fs-modal .fs-modal-content-container .fs-modal-header h3,#fs_pricing_wrapper #fs_pricing_app .fs-modal .fs-modal-content-container .fs-modal-header .fs-modal-close{color:var(--fs-ds-theme-background-color)}#fs_pricing_app .fs-modal .fs-modal-content-container .fs-modal-content,#fs_pricing_wrapper .fs-modal .fs-modal-content-container .fs-modal-content,#fs_pricing_wrapper #fs_pricing_app .fs-modal .fs-modal-content-container .fs-modal-content{font-size:1.2em}#fs_pricing_app .fs-modal--loading,#fs_pricing_wrapper .fs-modal--loading,#fs_pricing_wrapper #fs_pricing_app .fs-modal--loading{background-color:#0000004d}#fs_pricing_app .fs-modal--loading .fs-modal-content-container,#fs_pricing_wrapper .fs-modal--loading .fs-modal-content-container,#fs_pricing_wrapper #fs_pricing_app .fs-modal--loading .fs-modal-content-container{width:220px;margin-left:-126px;padding:15px;border:1px solid var(--fs-ds-theme-divider-color);text-align:center;top:50%}#fs_pricing_app .fs-modal--loading .fs-modal-content-container span,#fs_pricing_wrapper .fs-modal--loading .fs-modal-content-container span,#fs_pricing_wrapper #fs_pricing_app .fs-modal--loading .fs-modal-content-container span{display:block;font-weight:700;font-size:16px;text-align:center;color:var(--fs-ds-theme-primary-accent-color);margin-bottom:10px}#fs_pricing_app .fs-modal--loading .fs-modal-content-container .fs-ajax-loader,#fs_pricing_wrapper .fs-modal--loading .fs-modal-content-container .fs-ajax-loader,#fs_pricing_wrapper #fs_pricing_app .fs-modal--loading .fs-modal-content-container .fs-ajax-loader{width:160px}#fs_pricing_app .fs-modal--loading .fs-modal-content-container i,#fs_pricing_wrapper .fs-modal--loading .fs-modal-content-container i,#fs_pricing_wrapper #fs_pricing_app .fs-modal--loading .fs-modal-content-container i{display:block;width:128px;margin:0 auto;height:15px;background:url(//img.freemius.com/blue-loader.gif)}#fs_pricing_app .fs-modal--refund-policy,#fs_pricing_app .fs-modal--trial-confirmation,#fs_pricing_wrapper .fs-modal--refund-policy,#fs_pricing_wrapper .fs-modal--trial-confirmation,#fs_pricing_wrapper #fs_pricing_app .fs-modal--refund-policy,#fs_pricing_wrapper #fs_pricing_app .fs-modal--trial-confirmation{background:rgba(0,0,0,.7)}#fs_pricing_app .fs-modal--refund-policy .fs-modal-content-container,#fs_pricing_app .fs-modal--trial-confirmation .fs-modal-content-container,#fs_pricing_wrapper .fs-modal--refund-policy .fs-modal-content-container,#fs_pricing_wrapper .fs-modal--trial-confirmation .fs-modal-content-container,#fs_pricing_wrapper #fs_pricing_app .fs-modal--refund-policy .fs-modal-content-container,#fs_pricing_wrapper #fs_pricing_app .fs-modal--trial-confirmation .fs-modal-content-container{width:510px;margin-left:-255px;top:20%}#fs_pricing_app .fs-modal--refund-policy .fs-modal-content-container .fs-modal-header .fs-modal-close,#fs_pricing_app .fs-modal--trial-confirmation .fs-modal-content-container .fs-modal-header .fs-modal-close,#fs_pricing_wrapper .fs-modal--refund-policy .fs-modal-content-container .fs-modal-header .fs-modal-close,#fs_pricing_wrapper .fs-modal--trial-confirmation .fs-modal-content-container .fs-modal-header .fs-modal-close,#fs_pricing_wrapper #fs_pricing_app .fs-modal--refund-policy .fs-modal-content-container .fs-modal-header .fs-modal-close,#fs_pricing_wrapper #fs_pricing_app .fs-modal--trial-confirmation .fs-modal-content-container .fs-modal-header .fs-modal-close{line-height:24px;font-size:24px;position:absolute;top:-12px;right:-12px;cursor:pointer}#fs_pricing_app .fs-modal--refund-policy .fs-modal-content-container .fs-modal-content,#fs_pricing_app .fs-modal--trial-confirmation .fs-modal-content-container .fs-modal-content,#fs_pricing_wrapper .fs-modal--refund-policy .fs-modal-content-container .fs-modal-content,#fs_pricing_wrapper .fs-modal--trial-confirmation .fs-modal-content-container .fs-modal-content,#fs_pricing_wrapper #fs_pricing_app .fs-modal--refund-policy .fs-modal-content-container .fs-modal-content,#fs_pricing_wrapper #fs_pricing_app .fs-modal--trial-confirmation .fs-modal-content-container .fs-modal-content{height:100%;padding:1px 15px}#fs_pricing_app .fs-modal--refund-policy .fs-modal-content-container .fs-modal-footer,#fs_pricing_app .fs-modal--trial-confirmation .fs-modal-content-container .fs-modal-footer,#fs_pricing_wrapper .fs-modal--refund-policy .fs-modal-content-container .fs-modal-footer,#fs_pricing_wrapper .fs-modal--trial-confirmation .fs-modal-content-container .fs-modal-footer,#fs_pricing_wrapper #fs_pricing_app .fs-modal--refund-policy .fs-modal-content-container .fs-modal-footer,#fs_pricing_wrapper #fs_pricing_app .fs-modal--trial-confirmation .fs-modal-content-container .fs-modal-footer{padding:10px;text-align:right;border-top:1px solid var(--fs-ds-theme-border-color);background:var(--fs-ds-theme-background-shade)}#fs_pricing_app .fs-modal--refund-policy .fs-modal-content-container .fs-modal-footer .fs-button--approve-trial,#fs_pricing_app .fs-modal--trial-confirmation .fs-modal-content-container .fs-modal-footer .fs-button--approve-trial,#fs_pricing_wrapper .fs-modal--refund-policy .fs-modal-content-container .fs-modal-footer .fs-button--approve-trial,#fs_pricing_wrapper .fs-modal--trial-confirmation .fs-modal-content-container .fs-modal-footer .fs-button--approve-trial,#fs_pricing_wrapper #fs_pricing_app .fs-modal--refund-policy .fs-modal-content-container .fs-modal-footer .fs-button--approve-trial,#fs_pricing_wrapper #fs_pricing_app .fs-modal--trial-confirmation .fs-modal-content-container .fs-modal-footer .fs-button--approve-trial{margin:0 7px}#fs_pricing_app .fs-modal--trial-confirmation .fs-button,#fs_pricing_wrapper .fs-modal--trial-confirmation .fs-button,#fs_pricing_wrapper #fs_pricing_app .fs-modal--trial-confirmation .fs-button{width:auto;font-size:13px}\n",""]);const s=o},267:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(81),r=n.n(a),i=n(645),o=n.n(i)()(r());o.push([e.id,'#root .fs-package,#fs_pricing_app .fs-package{display:inline-block;vertical-align:top;background:var(--fs-ds-theme-dark-background-text-color);border-bottom:3px solid var(--fs-ds-theme-border-color);width:315px;box-sizing:border-box}#root .fs-package:first-child,#root .fs-package+.fs-package,#fs_pricing_app .fs-package:first-child,#fs_pricing_app .fs-package+.fs-package{border-left:1px solid var(--fs-ds-theme-divider-color)}#root .fs-package:last-child,#fs_pricing_app .fs-package:last-child{border-right:1px solid var(--fs-ds-theme-divider-color)}#root .fs-package:not(.fs-featured-plan):first-child,#fs_pricing_app .fs-package:not(.fs-featured-plan):first-child{border-top-left-radius:10px}#root .fs-package:not(.fs-featured-plan):first-child .fs-plan-title,#fs_pricing_app .fs-package:not(.fs-featured-plan):first-child .fs-plan-title{border-top-left-radius:9px}#root .fs-package:not(.fs-featured-plan):last-child,#fs_pricing_app .fs-package:not(.fs-featured-plan):last-child{border-top-right-radius:10px}#root .fs-package:not(.fs-featured-plan):last-child .fs-plan-title,#fs_pricing_app .fs-package:not(.fs-featured-plan):last-child .fs-plan-title{border-top-right-radius:9px}#root .fs-package .fs-package-content,#fs_pricing_app .fs-package .fs-package-content{vertical-align:middle;padding-bottom:30px}#root .fs-package .fs-plan-title,#fs_pricing_app .fs-package .fs-plan-title{padding:10px 0;background:var(--fs-ds-theme-background-shade);text-transform:uppercase;border-bottom:1px solid var(--fs-ds-theme-divider-color);border-top:1px solid var(--fs-ds-theme-divider-color);width:100%;text-align:center}#root .fs-package .fs-plan-title:last-child,#fs_pricing_app .fs-package .fs-plan-title:last-child{border-right:none}#root .fs-package .fs-plan-description,#root .fs-package .fs-undiscounted-price,#root .fs-package .fs-licenses,#root .fs-package .fs-upgrade-button,#root .fs-package .fs-plan-features,#fs_pricing_app .fs-package .fs-plan-description,#fs_pricing_app .fs-package .fs-undiscounted-price,#fs_pricing_app .fs-package .fs-licenses,#fs_pricing_app .fs-package .fs-upgrade-button,#fs_pricing_app .fs-package .fs-plan-features{margin-top:10px}#root .fs-package .fs-plan-description,#fs_pricing_app .fs-package .fs-plan-description{text-transform:uppercase}#root .fs-package .fs-undiscounted-price,#fs_pricing_app .fs-package .fs-undiscounted-price{margin:auto;position:relative;display:inline-block;color:var(--fs-ds-theme-muted-text-color);top:6px}#root .fs-package .fs-undiscounted-price:after,#fs_pricing_app .fs-package .fs-undiscounted-price:after{display:block;content:"";position:absolute;height:1px;background-color:var(--fs-ds-theme-error-color);left:-4px;right:-4px;top:50%;transform:translateY(-50%) skewY(1deg)}#root .fs-package .fs-selected-pricing-amount,#fs_pricing_app .fs-package .fs-selected-pricing-amount{margin:5px 0}#root .fs-package .fs-selected-pricing-amount .fs-currency-symbol,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-currency-symbol{font-size:39px}#root .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-integer,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-integer{font-size:58px;margin:0 5px}#root .fs-package .fs-selected-pricing-amount .fs-currency-symbol,#root .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-integer,#root .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-fraction-container,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-currency-symbol,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-integer,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-fraction-container{display:inline-block;vertical-align:middle}#root .fs-package .fs-selected-pricing-amount .fs-currency-symbol:not(.fs-selected-pricing-amount-integer),#root .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-integer:not(.fs-selected-pricing-amount-integer),#root .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-fraction-container:not(.fs-selected-pricing-amount-integer),#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-currency-symbol:not(.fs-selected-pricing-amount-integer),#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-integer:not(.fs-selected-pricing-amount-integer),#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-fraction-container:not(.fs-selected-pricing-amount-integer){line-height:18px}#root .fs-package .fs-selected-pricing-amount .fs-currency-symbol .fs-selected-pricing-amount-fraction,#root .fs-package .fs-selected-pricing-amount .fs-currency-symbol .fs-selected-pricing-amount-cycle,#root .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-integer .fs-selected-pricing-amount-fraction,#root .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-integer .fs-selected-pricing-amount-cycle,#root .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-fraction-container .fs-selected-pricing-amount-fraction,#root .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-fraction-container .fs-selected-pricing-amount-cycle,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-currency-symbol .fs-selected-pricing-amount-fraction,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-currency-symbol .fs-selected-pricing-amount-cycle,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-integer .fs-selected-pricing-amount-fraction,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-integer .fs-selected-pricing-amount-cycle,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-fraction-container .fs-selected-pricing-amount-fraction,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-fraction-container .fs-selected-pricing-amount-cycle{display:block;font-size:12px}#root .fs-package .fs-selected-pricing-amount .fs-currency-symbol .fs-selected-pricing-amount-fraction,#root .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-integer .fs-selected-pricing-amount-fraction,#root .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-fraction-container .fs-selected-pricing-amount-fraction,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-currency-symbol .fs-selected-pricing-amount-fraction,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-integer .fs-selected-pricing-amount-fraction,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-fraction-container .fs-selected-pricing-amount-fraction{vertical-align:top}#root .fs-package .fs-selected-pricing-amount .fs-currency-symbol .fs-selected-pricing-amount-cycle,#root .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-integer .fs-selected-pricing-amount-cycle,#root .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-fraction-container .fs-selected-pricing-amount-cycle,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-currency-symbol .fs-selected-pricing-amount-cycle,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-integer .fs-selected-pricing-amount-cycle,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-fraction-container .fs-selected-pricing-amount-cycle{vertical-align:bottom}#root .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-fraction-container,#fs_pricing_app .fs-package .fs-selected-pricing-amount .fs-selected-pricing-amount-fraction-container{color:var(--fs-ds-theme-muted-text-color)}#root .fs-package .fs-selected-pricing-amount-free,#fs_pricing_app .fs-package .fs-selected-pricing-amount-free{font-size:48px}#root .fs-package .fs-selected-pricing-cycle,#fs_pricing_app .fs-package .fs-selected-pricing-cycle{margin-bottom:5px;text-transform:uppercase;color:var(--fs-ds-theme-muted-text-color)}#root .fs-package .fs-selected-pricing-license-quantity,#fs_pricing_app .fs-package .fs-selected-pricing-license-quantity{color:var(--fs-ds-theme-muted-text-color)}#root .fs-package .fs-selected-pricing-license-quantity .fs-tooltip,#fs_pricing_app .fs-package .fs-selected-pricing-license-quantity .fs-tooltip{margin-left:5px}#root .fs-package .fs-upgrade-button-container,#fs_pricing_app .fs-package .fs-upgrade-button-container{padding:0 13px;display:block}#root .fs-package .fs-upgrade-button-container .fs-upgrade-button,#fs_pricing_app .fs-package .fs-upgrade-button-container .fs-upgrade-button{margin-top:20px;margin-bottom:5px}#root .fs-package .fs-plan-features,#fs_pricing_app .fs-package .fs-plan-features{text-align:left;margin-left:13px}#root .fs-package .fs-plan-features li,#fs_pricing_app .fs-package .fs-plan-features li{font-size:16px;display:flex;margin-bottom:8px}#root .fs-package .fs-plan-features li:not(:first-child),#fs_pricing_app .fs-package .fs-plan-features li:not(:first-child){margin-top:8px}#root .fs-package .fs-plan-features li>span,#root .fs-package .fs-plan-features li .fs-tooltip,#fs_pricing_app .fs-package .fs-plan-features li>span,#fs_pricing_app .fs-package .fs-plan-features li .fs-tooltip{font-size:small;vertical-align:middle;display:inline-block}#root .fs-package .fs-plan-features li .fs-feature-title,#fs_pricing_app .fs-package .fs-plan-features li .fs-feature-title{margin:0 5px;color:var(--fs-ds-theme-muted-text-color);max-width:260px;overflow-wrap:break-word}#root .fs-package .fs-support-and-main-features,#fs_pricing_app .fs-package .fs-support-and-main-features{margin-top:12px;padding-top:18px;padding-bottom:18px;color:var(--fs-ds-theme-muted-text-color)}#root .fs-package .fs-support-and-main-features .fs-plan-support,#fs_pricing_app .fs-package .fs-support-and-main-features .fs-plan-support{margin-bottom:15px}#root .fs-package .fs-support-and-main-features .fs-plan-features-with-value li,#fs_pricing_app .fs-package .fs-support-and-main-features .fs-plan-features-with-value li{font-size:small}#root .fs-package .fs-support-and-main-features .fs-plan-features-with-value li .fs-feature-title,#fs_pricing_app .fs-package .fs-support-and-main-features .fs-plan-features-with-value li .fs-feature-title{margin:0 2px}#root .fs-package .fs-support-and-main-features .fs-plan-features-with-value li:not(:first-child),#fs_pricing_app .fs-package .fs-support-and-main-features .fs-plan-features-with-value li:not(:first-child){margin-top:5px}#root .fs-package .fs-plan-features-with-value,#fs_pricing_app .fs-package .fs-plan-features-with-value{color:var(--fs-ds-theme-muted-text-color)}#root .fs-package .fs-license-quantities,#fs_pricing_app .fs-package .fs-license-quantities{border-collapse:collapse;position:relative;width:100%}#root .fs-package .fs-license-quantities,#root .fs-package .fs-license-quantities input,#fs_pricing_app .fs-package .fs-license-quantities,#fs_pricing_app .fs-package .fs-license-quantities input{cursor:pointer}#root .fs-package .fs-license-quantities .fs-license-quantity-discount span,#fs_pricing_app .fs-package .fs-license-quantities .fs-license-quantity-discount span{background-color:var(--fs-ds-theme-background-color);border:1px solid var(--fs-ds-theme-primary-accent-color);color:var(--fs-ds-theme-primary-accent-color);display:inline;padding:4px 8px;border-radius:4px;font-weight:700;margin:0 5px;white-space:nowrap}#root .fs-package .fs-license-quantities .fs-license-quantity-discount span.fs-license-quantity-no-discount,#fs_pricing_app .fs-package .fs-license-quantities .fs-license-quantity-discount span.fs-license-quantity-no-discount{visibility:hidden}#root .fs-package .fs-license-quantities .fs-license-quantity-container,#fs_pricing_app .fs-package .fs-license-quantities .fs-license-quantity-container{line-height:30px;border-top:1px solid var(--fs-ds-theme-background-shade);font-size:small;color:var(--fs-ds-theme-muted-text-color)}#root .fs-package .fs-license-quantities .fs-license-quantity-container:last-child,#fs_pricing_app .fs-package .fs-license-quantities .fs-license-quantity-container:last-child{border-bottom:1px solid var(--fs-ds-theme-background-shade)}#root .fs-package .fs-license-quantities .fs-license-quantity-container:last-child.fs-license-quantity-selected,#fs_pricing_app .fs-package .fs-license-quantities .fs-license-quantity-container:last-child.fs-license-quantity-selected{border-bottom-color:var(--fs-ds-theme-divider-color)}#root .fs-package .fs-license-quantities .fs-license-quantity-container.fs-license-quantity-selected,#fs_pricing_app .fs-package .fs-license-quantities .fs-license-quantity-container.fs-license-quantity-selected{background:var(--fs-ds-theme-background-shade);border-color:var(--fs-ds-theme-divider-color);color:var(--fs-ds-theme-text-color)}#root .fs-package .fs-license-quantities .fs-license-quantity-container.fs-license-quantity-selected+.fs-license-quantity-container,#fs_pricing_app .fs-package .fs-license-quantities .fs-license-quantity-container.fs-license-quantity-selected+.fs-license-quantity-container{border-top-color:var(--fs-ds-theme-divider-color)}#root .fs-package .fs-license-quantities .fs-license-quantity-container>td:not(.fs-license-quantity-discount):not(.fs-license-quantity-price),#fs_pricing_app .fs-package .fs-license-quantities .fs-license-quantity-container>td:not(.fs-license-quantity-discount):not(.fs-license-quantity-price){text-align:left}#root .fs-package .fs-license-quantities .fs-license-quantity,#root .fs-package .fs-license-quantities .fs-license-quantity-discount,#root .fs-package .fs-license-quantities .fs-license-quantity-price,#fs_pricing_app .fs-package .fs-license-quantities .fs-license-quantity,#fs_pricing_app .fs-package .fs-license-quantities .fs-license-quantity-discount,#fs_pricing_app .fs-package .fs-license-quantities .fs-license-quantity-price{vertical-align:middle}#root .fs-package .fs-license-quantities .fs-license-quantity,#fs_pricing_app .fs-package .fs-license-quantities .fs-license-quantity{position:relative;white-space:nowrap}#root .fs-package .fs-license-quantities .fs-license-quantity input,#fs_pricing_app .fs-package .fs-license-quantities .fs-license-quantity input{position:relative;margin-top:-1px;margin-left:7px;margin-right:7px}#root .fs-package .fs-license-quantities .fs-license-quantity-price,#fs_pricing_app .fs-package .fs-license-quantities .fs-license-quantity-price{position:relative;margin-right:auto;padding-right:7px;white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}#root .fs-package.fs-free-plan .fs-license-quantity-container:not(:last-child),#fs_pricing_app .fs-package.fs-free-plan .fs-license-quantity-container:not(:last-child){border-color:transparent}#root .fs-package .fs-most-popular,#fs_pricing_app .fs-package .fs-most-popular{display:none}#root .fs-package.fs-featured-plan .fs-most-popular,#fs_pricing_app .fs-package.fs-featured-plan .fs-most-popular{display:block;line-height:2.8em;margin-top:-2.8em;border-radius:10px 10px 0 0;color:var(--fs-ds-theme-text-color);background:var(--fs-ds-theme-package-popular-background);text-transform:uppercase;font-size:14px}#root .fs-package.fs-featured-plan .fs-plan-title,#fs_pricing_app .fs-package.fs-featured-plan .fs-plan-title{color:var(--fs-ds-theme-dark-background-text-color);background:var(--fs-ds-theme-primary-accent-color);border-top-color:var(--fs-ds-theme-primary-accent-color);border-bottom-color:var(--fs-ds-theme-primary-accent-color)}#root .fs-package.fs-featured-plan .fs-selected-pricing-license-quantity,#fs_pricing_app .fs-package.fs-featured-plan .fs-selected-pricing-license-quantity{color:var(--fs-ds-theme-primary-accent-color)}#root .fs-package.fs-featured-plan .fs-license-quantity-discount span,#fs_pricing_app .fs-package.fs-featured-plan .fs-license-quantity-discount span{background:var(--fs-ds-theme-primary-accent-color);color:var(--fs-ds-theme-dark-background-text-color)}#root .fs-package.fs-featured-plan .fs-license-quantities .fs-license-quantity-selected,#fs_pricing_app .fs-package.fs-featured-plan .fs-license-quantities .fs-license-quantity-selected{background:var(--fs-ds-theme-primary-accent-color);border-color:var(--fs-ds-theme-primary-accent-color);color:var(--fs-ds-theme-dark-background-text-color)}#root .fs-package.fs-featured-plan .fs-license-quantities .fs-license-quantity-selected+.fs-license-quantity-container,#fs_pricing_app .fs-package.fs-featured-plan .fs-license-quantities .fs-license-quantity-selected+.fs-license-quantity-container{border-top-color:var(--fs-ds-theme-primary-accent-color)}#root .fs-package.fs-featured-plan .fs-license-quantities .fs-license-quantity-selected:last-child,#fs_pricing_app .fs-package.fs-featured-plan .fs-license-quantities .fs-license-quantity-selected:last-child{border-bottom-color:var(--fs-ds-theme-primary-accent-color)}#root .fs-package.fs-featured-plan .fs-license-quantities .fs-license-quantity-selected .fs-license-quantity-discount span,#fs_pricing_app .fs-package.fs-featured-plan .fs-license-quantities .fs-license-quantity-selected .fs-license-quantity-discount span{background:var(--fs-ds-theme-background-color);color:var(--fs-ds-theme-primary-accent-color-hover)}\n',""]);const s=o},700:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(81),r=n.n(a),i=n(645),o=n.n(i)()(r());o.push([e.id,'#root .fs-section--packages,#fs_pricing_app .fs-section--packages{display:inline-block;width:100%;position:relative}#root .fs-section--packages .fs-packages-menu,#fs_pricing_app .fs-section--packages .fs-packages-menu{display:none;flex-wrap:wrap;justify-content:center}#root .fs-section--packages .fs-packages-tab,#fs_pricing_app .fs-section--packages .fs-packages-tab{display:none}#root .fs-section--packages .fs-package-tab,#fs_pricing_app .fs-section--packages .fs-package-tab{display:inline-block;flex:1}#root .fs-section--packages .fs-package-tab a,#fs_pricing_app .fs-section--packages .fs-package-tab a{display:block;padding:4px 10px 7px;border-bottom:2px solid transparent;color:#000;text-align:center;text-decoration:none}#root .fs-section--packages .fs-package-tab.fs-package-tab--selected a,#fs_pricing_app .fs-section--packages .fs-package-tab.fs-package-tab--selected a{border-color:#0085ba}#root .fs-section--packages .fs-packages-nav,#fs_pricing_app .fs-section--packages .fs-packages-nav{position:relative;overflow:hidden;margin:auto}#root .fs-section--packages .fs-packages-nav:before,#root .fs-section--packages .fs-packages-nav:after,#fs_pricing_app .fs-section--packages .fs-packages-nav:before,#fs_pricing_app .fs-section--packages .fs-packages-nav:after{position:absolute;top:0;bottom:0;width:60px;margin-bottom:32px}#root .fs-section--packages .fs-packages-nav:before,#fs_pricing_app .fs-section--packages .fs-packages-nav:before{z-index:1}#root .fs-section--packages .fs-packages-nav.fs-has-previous-plan:before,#fs_pricing_app .fs-section--packages .fs-packages-nav.fs-has-previous-plan:before{content:"";left:0;background:linear-gradient(to right,#cccccc96,transparent)}#root .fs-section--packages .fs-packages-nav.fs-has-next-plan:after,#fs_pricing_app .fs-section--packages .fs-packages-nav.fs-has-next-plan:after{content:"";right:0;background:linear-gradient(to left,#cccccc96,transparent)}#root .fs-section--packages .fs-packages-nav.fs-has-featured-plan:before,#root .fs-section--packages .fs-packages-nav.fs-has-featured-plan:after,#fs_pricing_app .fs-section--packages .fs-packages-nav.fs-has-featured-plan:before,#fs_pricing_app .fs-section--packages .fs-packages-nav.fs-has-featured-plan:after{top:2.8em}#root .fs-section--packages .fs-prev-package,#root .fs-section--packages .fs-next-package,#fs_pricing_app .fs-section--packages .fs-prev-package,#fs_pricing_app .fs-section--packages .fs-next-package{position:absolute;top:50%;margin-top:-11px;cursor:pointer;font-size:48px;z-index:1}#root .fs-section--packages .fs-prev-package,#fs_pricing_app .fs-section--packages .fs-prev-package{visibility:hidden;z-index:2}#root .fs-section--packages .fs-has-featured-plan .fs-packages,#fs_pricing_app .fs-section--packages .fs-has-featured-plan .fs-packages{margin-top:2.8em}#root .fs-section--packages .fs-packages,#fs_pricing_app .fs-section--packages .fs-packages{width:auto;display:flex;flex-direction:row;margin-left:auto;margin-right:auto;margin-bottom:30px;border-top-right-radius:10px;position:relative;transition:left .5s ease,right .5s ease;padding-top:5px}#root .fs-section--packages .fs-packages:before,#fs_pricing_app .fs-section--packages .fs-packages:before{content:"";position:absolute;top:0;right:0;bottom:0;width:100px;height:100px}@media only screen and (max-width: 768px){#root .fs-section--plans-and-pricing .fs-section--packages .fs-next-package,#root .fs-section--plans-and-pricing .fs-section--packages .fs-prev-package,#fs_pricing_app .fs-section--plans-and-pricing .fs-section--packages .fs-next-package,#fs_pricing_app .fs-section--plans-and-pricing .fs-section--packages .fs-prev-package{display:none}#root .fs-section--plans-and-pricing .fs-section--packages .fs-packages-menu,#fs_pricing_app .fs-section--plans-and-pricing .fs-section--packages .fs-packages-menu{display:block;font-size:24px;margin:0 auto 10px}#root .fs-section--plans-and-pricing .fs-section--packages .fs-packages-tab,#fs_pricing_app .fs-section--plans-and-pricing .fs-section--packages .fs-packages-tab{display:flex;font-size:18px;margin:0 auto 10px}#root .fs-section--plans-and-pricing .fs-section--packages .fs-packages .fs-most-popular,#root .fs-section--plans-and-pricing .fs-section--packages .fs-package .fs-most-popular,#fs_pricing_app .fs-section--plans-and-pricing .fs-section--packages .fs-packages .fs-most-popular,#fs_pricing_app .fs-section--plans-and-pricing .fs-section--packages .fs-package .fs-most-popular{display:none}#root .fs-section--plans-and-pricing .fs-section--packages .fs-has-featured-plan .fs-packages,#fs_pricing_app .fs-section--plans-and-pricing .fs-section--packages .fs-has-featured-plan .fs-packages{margin-top:0}}@media only screen and (max-width: 455px){#root .fs-section--plans-and-pricing .fs-section--packages .fs-packages .fs-package,#fs_pricing_app .fs-section--plans-and-pricing .fs-section--packages .fs-packages .fs-package{width:100%}#root .fs-section--plans-and-pricing,#fs_pricing_app .fs-section--plans-and-pricing{padding:10px}}@media only screen and (max-width: 375px){#root .fs-section--plans-and-pricing .fs-section--packages .fs-packages .fs-package,#fs_pricing_app .fs-section--plans-and-pricing .fs-section--packages .fs-packages .fs-package{width:100%}}\n',""]);const s=o},302:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(81),r=n.n(a),i=n(645),o=n.n(i)()(r());o.push([e.id,'#root .fs-tooltip,#fs_pricing_app .fs-tooltip{cursor:help;position:relative;color:inherit}#root .fs-tooltip .fs-tooltip-message,#fs_pricing_app .fs-tooltip .fs-tooltip-message{position:absolute;width:200px;background:var(--fs-ds-theme-background-darkest);z-index:1;display:none;border-radius:4px;color:var(--fs-ds-theme-dark-background-text-color);padding:8px;text-align:left;line-height:18px}#root .fs-tooltip .fs-tooltip-message:before,#fs_pricing_app .fs-tooltip .fs-tooltip-message:before{content:"";position:absolute;z-index:1}#root .fs-tooltip .fs-tooltip-message:not(.fs-tooltip-message--position-none),#fs_pricing_app .fs-tooltip .fs-tooltip-message:not(.fs-tooltip-message--position-none){display:block}#root .fs-tooltip .fs-tooltip-message.fs-tooltip-message--position-right,#fs_pricing_app .fs-tooltip .fs-tooltip-message.fs-tooltip-message--position-right{transform:translateY(-50%);left:30px;top:8px}#root .fs-tooltip .fs-tooltip-message.fs-tooltip-message--position-right:before,#fs_pricing_app .fs-tooltip .fs-tooltip-message.fs-tooltip-message--position-right:before{left:-8px;top:50%;margin-top:-6px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid var(--fs-ds-theme-background-darkest)}#root .fs-tooltip .fs-tooltip-message.fs-tooltip-message--position-top,#fs_pricing_app .fs-tooltip .fs-tooltip-message.fs-tooltip-message--position-top{left:50%;bottom:30px;transform:translate(-50%)}#root .fs-tooltip .fs-tooltip-message.fs-tooltip-message--position-top:before,#fs_pricing_app .fs-tooltip .fs-tooltip-message.fs-tooltip-message--position-top:before{left:50%;bottom:-8px;margin-left:-6px;border-right:6px solid transparent;border-left:6px solid transparent;border-top:8px solid var(--fs-ds-theme-background-darkest)}#root .fs-tooltip .fs-tooltip-message.fs-tooltip-message--position-top-right,#fs_pricing_app .fs-tooltip .fs-tooltip-message.fs-tooltip-message--position-top-right{right:-10px;bottom:30px}#root .fs-tooltip .fs-tooltip-message.fs-tooltip-message--position-top-right:before,#fs_pricing_app .fs-tooltip .fs-tooltip-message.fs-tooltip-message--position-top-right:before{right:10px;bottom:-8px;margin-left:-6px;border-right:6px solid transparent;border-left:6px solid transparent;border-top:8px solid var(--fs-ds-theme-background-darkest)}\n',""]);const s=o},645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",a=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),a&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),a&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,a,r,i){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(a)for(var s=0;s0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),r&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=r):u[4]="".concat(r)),t.push(u))}},t}},81:e=>{"use strict";e.exports=function(e){return e[1]}},867:(e,t,n)=>{let a=document.getElementById("fs_pricing_wrapper");a&&a.dataset&&a.dataset.publicUrl&&(n.p=a.dataset.publicUrl)},738:e=>{function t(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(t(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)}},568:(e,t,n)=>{var a,r,i,o,s;a=n(12),r=n(487).utf8,i=n(738),o=n(487).bin,(s=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?o.stringToBytes(e):r.stringToBytes(e):i(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var n=a.bytesToWords(e),l=8*e.length,c=1732584193,u=-271733879,f=-1732584194,p=271733878,d=0;d>>24)|4278255360&(n[d]<<24|n[d]>>>8);n[l>>>5]|=128<>>9<<4)]=l;var m=s._ff,g=s._gg,h=s._hh,b=s._ii;for(d=0;d>>0,u=u+v>>>0,f=f+k>>>0,p=p+_>>>0}return a.endian([c,u,f,p])})._ff=function(e,t,n,a,r,i,o){var s=e+(t&n|~t&a)+(r>>>0)+o;return(s<>>32-i)+t},s._gg=function(e,t,n,a,r,i,o){var s=e+(t&a|n&~a)+(r>>>0)+o;return(s<>>32-i)+t},s._hh=function(e,t,n,a,r,i,o){var s=e+(t^n^a)+(r>>>0)+o;return(s<>>32-i)+t},s._ii=function(e,t,n,a,r,i,o){var s=e+(n^(t|~a))+(r>>>0)+o;return(s<>>32-i)+t},s._blocksize=16,s._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var n=a.wordsToBytes(s(e,t));return t&&t.asBytes?n:t&&t.asString?o.bytesToString(n):a.bytesToHex(n)}},418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function r(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach((function(e){a[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},a)).join("")}catch(e){return!1}}()?Object.assign:function(e,i){for(var o,s,l=r(e),c=1;c{"use strict";var a=n(414);function r(){}function i(){}i.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,i,o){if(o!==a){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return n.PropTypes=n,n}},697:(e,t,n)=>{e.exports=n(703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},448:(e,t,n)=>{"use strict";var a=n(294),r=n(418),i=n(840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n